{"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-94715b138c709472", "name": "Stray `console.log` in TS/JS \u2014 __tests__/geometric-validator.test.ts:312", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/geometric-validator.test.ts:312"}, "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-855c4f94fb17b507", "name": "Stray `console.log` in TS/JS \u2014 __tests__/mack-confidence-rescore.test.ts:427", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/mack-confidence-rescore.test.ts:427"}, "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-feeba397b912b3f5", "name": "Stray `console.log` in TS/JS \u2014 scripts/mack-rescore-backfill.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mack-rescore-backfill.ts:82"}, "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-28ec9659883af676", "name": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-sonnet-vs-opus.ts:293", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-sonnet-vs-opus.ts:293"}, "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-e1153550859cbbf4", "name": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerCompletionScreen.tsx:160", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerCompletionScreen.tsx:160"}, "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-2012a12cd13e8dd6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/mack/StructureCard.tsx:165", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/StructureCard.tsx:165"}, "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-fd2bd127937d2baa", "name": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesCompletionScreen.tsx:426", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesCompletionScreen.tsx:426"}, "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-f5e092cd1931c8e1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerReviewWizard.tsx:349", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerReviewWizard.tsx:349"}, "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-6875210a02d9eb3c", "name": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesReviewWizard.tsx:875", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesReviewWizard.tsx:875"}, "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-1fdd7a2212569dfb", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/floating-intake-button.tsx:278", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/floating-intake-button.tsx:278"}, "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-138026b626fb4d02", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-template-editor.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-template-editor.tsx:186"}, "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-cc93ab2971c16aff", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/leads-kanban.tsx:148", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/leads-kanban.tsx:148"}, "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-20f5e55050f46264", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-morning-briefing.tsx:97", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-morning-briefing.tsx:97"}, "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-289ac0e24ae0eff0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/employee-tune-drawer.tsx:253", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/employee-tune-drawer.tsx:253"}, "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-7e19436d88bd159e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/client-morning-briefing.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/client-morning-briefing.tsx:167"}, "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-e6c107b70c1da001", "name": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-home.tsx:799", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-home.tsx:799"}, "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-3151cee277cfbfb5", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/health-pulse.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/health-pulse.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-1571f8e864e1a56c", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox.tsx:184", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox.tsx:184"}, "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-5f9ec5452e4c419b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/sidebar.tsx:306", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/sidebar.tsx:306"}, "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-48ff998eb6e1b121", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/run-inspect-drawer.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/run-inspect-drawer.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-84291eadf5b02de4", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox-v2.tsx:499", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox-v2.tsx:499"}, "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-0b03b98fe6ba4317", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/command-palette.tsx:485", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/command-palette.tsx:485"}, "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-00b4c29f59315527", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/app/theme-toggle.tsx:103", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/app/theme-toggle.tsx:103"}, "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-40f05b12f9fbc769", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/home-chat-starter.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home-chat-starter.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-c235c9a7164655de", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/api-keys-panel.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/api-keys-panel.tsx:79"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6925d4d0b551972", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/workspace-menu.tsx:29", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/workspace-menu.tsx:29"}, "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-ab21dee208b20132", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/team-settings-client.tsx:154", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/team-settings-client.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-d775ec95f3890bc0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/activation-milestones-widget.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/activation-milestones-widget.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-93c8889346e82de7", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/activity-feed.tsx:231", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/activity-feed.tsx:231"}, "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-5df6d9adccf66a4a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/recent-failures-list.tsx:26", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/recent-failures-list.tsx:26"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a097a68a91b74392", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/mobile-nav.tsx:194", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/mobile-nav.tsx:194"}, "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-bab48047b64c272f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenant-switcher.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenant-switcher.tsx:83"}, "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-6cc63e8ee8c05935", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/meetings-list.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/meetings-list.tsx:44"}, "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-d4278a4c041e76ac", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/breadcrumbs.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/breadcrumbs.tsx:52"}, "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-48598984769da236", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/settings/alert-recipients-manager.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/settings/alert-recipients-manager.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-6d722d211fd57bed", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenants/admin-new-workspace-flow.tsx:127", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenants/admin-new-workspace-flow.tsx:127"}, "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-37977f77af424641", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/templates/template-preview-drawer.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/templates/template-preview-drawer.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-4a8ae5f79725787e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/emails/emails-settings-ui.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/emails/emails-settings-ui.tsx:108"}, "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-7197012cbc554b99", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/tasks-list.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/tasks-list.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc29ca680f307454", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/lindy-tasks-pane.tsx:611", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/lindy-tasks-pane.tsx:611"}, "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-cb3eae2616ce1bc3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/audit-tile.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/audit-tile.tsx:240"}, "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-80ea00af1948c420", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/admin-command-center.tsx:633", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/admin-command-center.tsx:633"}, "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-fcef69d5412af78e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/command-center-widgets.tsx:119", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/command-center-widgets.tsx:119"}, "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-e8ca9ae08eed19be", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/at-risk-panel.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/at-risk-panel.tsx:88"}, "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-bec20f5e183ca6d1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/tenant-health-card.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/tenant-health-card.tsx:105"}, "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-0f8a8aae363d7bfb", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/onboarding-smoke-runner.tsx:122", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/onboarding-smoke-runner.tsx:122"}, "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-acb346e4550e6962", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-form.tsx:272", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-form.tsx:272"}, "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-9ab838a953c75013", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-manage-table.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-manage-table.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-92b10de8dc9d9ba1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/runs-panel.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/runs-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-fccccf2d054b6600", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/action-picker.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/action-picker.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec2e93bdae61b623", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-canvas.tsx:268", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-canvas.tsx:268"}, "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-d706006f61ce19c0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/trigger-config-rail.tsx:304", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/trigger-config-rail.tsx:304"}, "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-5cba9fad0127f5df", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/triggers-summary-rail.tsx:164", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/triggers-summary-rail.tsx:164"}, "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-7c26c56b784c521a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/cold-email-bulk.tsx:162", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/cold-email-bulk.tsx:162"}, "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-282c8a7a44a23eab", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/test-run-drawer.tsx:130", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/test-run-drawer.tsx:130"}, "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-10cdecc6179ef2eb", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-tabs.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-tabs.tsx:85"}, "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-0751028b8e87872f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/chat-interface.tsx:124", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/chat-interface.tsx:124"}, "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-3545c131e8db009d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-grid.tsx:180", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-grid.tsx:180"}, "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-3a633196374582a3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/logic-panel.tsx:464", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/logic-panel.tsx:464"}, "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-8405b315c9a22aed", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-top-bar.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-top-bar.tsx:84"}, "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-c63bda233bde2779", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/approvals/approvals-inbox.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/approvals/approvals-inbox.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-3a9a6831583a9c22", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaigns-list.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaigns-list.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-fd5adbeac17cd810", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaign-builder.tsx:258", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaign-builder.tsx:258"}, "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-2192a7c52c847f88", "name": "React Flow <MiniMap> without dark background \u2014 components/app/workflows/editor.tsx:161", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 components/app/workflows/editor.tsx:161"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0a08e6fce2104cc", "name": "React Flow <Controls> without dark theming \u2014 components/app/workflows/editor.tsx:162", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 components/app/workflows/editor.tsx:162"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ee52bb11ae4e0d9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/workflows/editor.tsx:330", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/workflows/editor.tsx:330"}, "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-995ba8ae6df10f3c", "name": "Custom React Flow node registered without explicit width/height \u2014 components/app/workflows/editor.tsx:49", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 components/app/workflows/editor.tsx:49"}, "fullDescription": {"text": "When you register a custom node type via `nodeTypes`, the RFNode object you build must include `width` and `height` props. Without them, MiniMap renders ZERO mini-nodes for that type and `fitView` underestimates the bounds (cuts off lane labels, etc.). Add `width: \u2026, height: \u2026` to the node object. See P-I.\n\nWhy: P-I in CHECKLIST.md \u2014 RF MiniMap + fitView need explicit dims on custom nodes.\nRule id: fq.rfnode.no-dims"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88baef26587a2d92", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/council/approvals-client.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/council/approvals-client.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-caaa9870d88581c3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/inbox-v3.tsx:583", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/inbox-v3.tsx:583"}, "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-1d1a2ef9525f161d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/conversations-pane.tsx:425", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/conversations-pane.tsx:425"}, "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-8eb3f866a786da80", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/ghl-card.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/ghl-card.tsx:83"}, "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-2b13d4c0ccdec59f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/connections-ui.tsx:330", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/connections-ui.tsx:330"}, "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-90815fc0b78f9526", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/funnel-page.tsx:1519", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/funnel-page.tsx:1519"}, "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-34ef2d578755ee01", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-roofing.tsx:778", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-roofing.tsx:778"}, "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-d4e32620e2bff4bf", "name": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-roofing.tsx:737", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-roofing.tsx:737"}, "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-3e407d3651f68363", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-roofing.tsx:1302", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-roofing.tsx:1302"}, "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-32f9898db8a53e44", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-medspa.tsx:692", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-medspa.tsx:692"}, "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-d2a98e99f11b3ce6", "name": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v5-ai-employees.tsx:725", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v5-ai-employees.tsx:725"}, "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-7175bc8cc63f6717", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-ai-employees.tsx:1098", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-ai-employees.tsx:1098"}, "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-6e17d7083f2f4ede", "name": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4.tsx:737", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4.tsx:737"}, "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-138af110b2490442", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4.tsx:1302", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4.tsx:1302"}, "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-5f2fe49d68c5b30e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/marketing/booking-widget.tsx:301", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketing/booking-widget.tsx:301"}, "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-9051fb641a78941e", "name": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-medspa.tsx:737", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-medspa.tsx:737"}, "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-5dd355c8142fc218", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-medspa.tsx:1302", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-medspa.tsx:1302"}, "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-2c7c50354de129cb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/mobile-nav.tsx:198", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/mobile-nav.tsx:198"}, "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-48cf70c494281593", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/blog/blog-post.tsx:169", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/blog/blog-post.tsx:169"}, "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-e9efbbe631e03d00", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/status-grid.tsx:69", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/status-grid.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-fdbefd7b8af96f69", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/cold-email-health-console.tsx:127", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/cold-email-health-console.tsx:127"}, "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-ec69f0b14f4031ea", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/agent-trust-console.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/agent-trust-console.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-e0262cfe36e322d5", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/sms-pool-manager.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/sms-pool-manager.tsx:111"}, "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-b92a075328f1d429", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/meeting-console.tsx:231", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/meeting-console.tsx:231"}, "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-03f5e9491fad9c99", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/leads-console.tsx:600", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/leads-console.tsx:600"}, "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-a65c3e29b829ef6b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/team-console.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/team-console.tsx:262"}, "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-70c41430d970eb24", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:63", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:63"}, "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-0868a84d569f00dd", "name": "`truncate` class without `title=` for hover reveal \u2014 app/p/[slug]/page.tsx:148", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/p/[slug]/page.tsx:148"}, "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-9e77dfa7326c37a1", "name": "Stray `console.log` in TS/JS \u2014 app/auth/callback/route.ts:249", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/auth/callback/route.ts:249"}, "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-cc7f9d3355a19f08", "name": "Stray `console.log` in TS/JS \u2014 app/auth/confirm/[token]/route.ts:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/auth/confirm/[token]/route.ts:75"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d0641b85630fc13", "name": "Stray `console.log` in TS/JS \u2014 app/api/employees/hire-workspace/route.ts:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/employees/hire-workspace/route.ts:136"}, "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-918c30f66ff48b6c", "name": "Stray `console.log` in TS/JS \u2014 app/api/employees/provision/route.ts:234", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/employees/provision/route.ts:234"}, "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-c02ba9b3f9d9d155", "name": "Stray `console.log` in TS/JS \u2014 app/api/meetings/recall-webhook/route.ts:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/meetings/recall-webhook/route.ts:95"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f28f417711df45c1", "name": "Stray `console.log` in TS/JS \u2014 app/api/auth/signup/route.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/signup/route.ts:126"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74ecb7cecc999fcf", "name": "Stray `console.log` in TS/JS \u2014 app/api/auth/resend-confirmation/route.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/resend-confirmation/route.ts:56"}, "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-b82e9ce574ab0735", "name": "TODO/FIXME marker in shipping code \u2014 app/api/activity/route.ts:134", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/activity/route.ts:134"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29f85255b71c4609", "name": "Stray `console.log` in TS/JS \u2014 app/api/v5/custom-employees/[slug]/knowledge/upload/route.ts:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/v5/custom-employees/[slug]/knowledge/upload/route.ts:170"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f508cd1678577a5", "name": "TODO/FIXME marker in shipping code \u2014 app/api/v5/agents/feed/route.ts:92", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v5/agents/feed/route.ts:92"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96d50a1779b442aa", "name": "TODO/FIXME marker in shipping code \u2014 app/api/v5/senders/feed/route.ts:158", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v5/senders/feed/route.ts:158"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-146f013a3b2e83e0", "name": "Stray `console.log` in TS/JS \u2014 app/api/inbound/vapi/route.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/inbound/vapi/route.ts:122"}, "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-ed9038a837c66135", "name": "Stray `console.log` in TS/JS \u2014 app/api/oauth/connect/route.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/oauth/connect/route.ts:128"}, "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-b4f8e80a6366714d", "name": "Stray `console.log` in TS/JS \u2014 app/api/oauth/callback/[provider]/route.ts:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/oauth/callback/[provider]/route.ts:181"}, "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-1f29291c1645da6e", "name": "Stray `console.log` in TS/JS \u2014 app/api/marketing/chat/route.ts:211", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/marketing/chat/route.ts:211"}, "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-d8081540a3dba7ad", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/change-persona/route.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/change-persona/route.ts:122"}, "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-53ed86512c97d2d6", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/mark-training/route.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/mark-training/route.ts:30"}, "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-b98565d7be69fdfc", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/approve/route.ts:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/approve/route.ts:96"}, "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-0f532efb047cd731", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/mack-reextract-lite/route.ts:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/mack-reextract-lite/route.ts:255"}, "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-abab56b68a79cfc6", "name": "Stray `console.log` in TS/JS \u2014 app/api/admin/kill-switches/route.ts:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/kill-switches/route.ts:104"}, "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-c999f901491d6a28", "name": "Stray `console.log` in TS/JS \u2014 app/api/twilio/inbound-sms/route.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/twilio/inbound-sms/route.ts:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e7d16d9d29c94aef", "name": "Stray `console.log` in TS/JS \u2014 app/api/onboarding/hire/complete/route.ts:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/onboarding/hire/complete/route.ts:109"}, "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-bd2c5191ff255588", "name": "Stray `console.log` in TS/JS \u2014 app/api/v9/admin/billing/test-subscription/route.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/v9/admin/billing/test-subscription/route.ts:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5bfa70e6f361e90b", "name": "TODO/FIXME marker in shipping code \u2014 app/api/v9/founder-tasks/route.ts:48", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v9/founder-tasks/route.ts:48"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfb99194ce79998b", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-email-sequences/route.ts:914", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-email-sequences/route.ts:914"}, "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-1951684ad1510d0d", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-mailbox-warmup-ramp/route.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-mailbox-warmup-ramp/route.ts:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-23ebb555ee7762fc", "name": "TODO/FIXME marker in shipping code \u2014 app/api/cron/warm-sms-on-email-reply/route.ts:250", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/cron/warm-sms-on-email-reply/route.ts:250"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ce547775e784e4d", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/gmail-inbox-poll/route.ts:414", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/gmail-inbox-poll/route.ts:414"}, "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-31a13e628bdc1f62", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-sms-sequences/route.ts:648", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-sms-sequences/route.ts:648"}, "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-b6aad2e7a02e15e0", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/booking-intent-followup/route.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/booking-intent-followup/route.ts:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c480095379f0b5c7", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/mack-reextract-lite/route.ts:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/mack-reextract-lite/route.ts:109"}, "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-ad8c155e18c9e107", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/voice-cold-call/route.ts:172", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/voice-cold-call/route.ts:172"}, "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-f5986b93ba27504c", "name": "TODO/FIXME marker in shipping code \u2014 app/api/tenant-knowledge/upload/route.ts:64", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/tenant-knowledge/upload/route.ts:64"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b00e2a39f2130fc", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/twilio/status/route.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/twilio/status/route.ts:83"}, "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-e9ed40d7353c260c", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/gmail/pubsub/route.ts:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/gmail/pubsub/route.ts:161"}, "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-da07000a0dd0e121", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/vapi/route.ts:261", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/vapi/route.ts:261"}, "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-a1d4bd5588fd898f", "name": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/snooze/route.ts:27", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/snooze/route.ts:27"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64f095342626bc98", "name": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/mute-ai/route.ts:24", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/mute-ai/route.ts:24"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4823cde6ba0d175", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/_client-shell.tsx:1147", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/_client-shell.tsx:1147"}, "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-e1d347b947ce5e62", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/integrations/page.tsx:333", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/integrations/page.tsx:333"}, "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-eb370b19b6b243f4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/notifications/page.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/notifications/page.tsx:89"}, "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-0604c4f31e7b29b4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/team/page.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/team/page.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-0e01756c4cb0cc66", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/crons/page.tsx:247", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/crons/page.tsx:247"}, "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-be6e722b17d345b9", "name": "\"active\" state uses light bg in a dark theme \u2014 app/v5/settings/crons/page.tsx:402", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/settings/crons/page.tsx:402"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2446956034b4be23", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/intent-signals/page.tsx:457", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/intent-signals/page.tsx:457"}, "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-c6a5e15185e09df6", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:245", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:245"}, "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-8cd50633e5060bda", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:168", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:168"}, "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-647632699e6c502b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_view-as-toggle.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_view-as-toggle.tsx:98"}, "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-10894192696fb367", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/page.tsx:344", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/page.tsx:344"}, "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-aa0fcd9143885372", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v5/employees/[slug]/page.tsx:1076", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v5/employees/[slug]/page.tsx:1076"}, "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-0495b811681a9fa9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_job-picker.tsx:138", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_job-picker.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-99c712b828fff195", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_today-landing.tsx:489", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_today-landing.tsx:489"}, "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-b0fb91d7a262c1fd", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/analytics/page.tsx:177", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/analytics/page.tsx:177"}, "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-6d9db4fbbaaada74", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/press-desk/_shell.tsx:408", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/press-desk/_shell.tsx:408"}, "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-2897abd67f63f472", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/oversight/_client.tsx:279", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/oversight/_client.tsx:279"}, "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-b88b684206ccf64a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:526", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:526"}, "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-4a150d25aedb993b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_view.tsx:529", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_view.tsx:529"}, "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-a387624115fe2537", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:389", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:389"}, "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-75ce833ac5c638e7", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/revisions/_client.tsx:173", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/revisions/_client.tsx:173"}, "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-325ddfd04241610a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/sales/page.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/sales/page.tsx:167"}, "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-56c2acbfdd171826", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/engineer/_queue-client.tsx:667", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/engineer/_queue-client.tsx:667"}, "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-4f6647e7097fadde", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:322", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:322"}, "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-78f3f6ecc99777e4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_revision-history.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_revision-history.tsx:86"}, "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-aa962575f52c4dc4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:904", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:904"}, "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-57b41c95ce3a54a9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:117"}, "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-66fc93be41e8727f", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:77", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:77"}, "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-4f8f2c064afef83a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:341", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:341"}, "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-0c6926b08f8389ae", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:431", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:431"}, "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-a5a99d9a6ac21301", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/training/_view.tsx:429", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/training/_view.tsx:429"}, "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-4ab5bc8ff6cac4e3", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/connect/_client-view.tsx:268", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/connect/_client-view.tsx:268"}, "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-5184a448452645b3", "name": "Stray `console.log` in TS/JS \u2014 app/v5/connect/_client-view.tsx:298", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/v5/connect/_client-view.tsx:298"}, "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-55412dd4a48aea8d", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/leads/_page-legacy.tsx:613", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/leads/_page-legacy.tsx:613"}, "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-fb79eaeff707e411", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/insights/page.tsx:393", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/insights/page.tsx:393"}, "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-e81eff641b0e8d49", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/voice/page.tsx:218", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/voice/page.tsx:218"}, "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-d4a9ef9d2113d8d7", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/page.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/page.tsx:128"}, "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-3d298f131840a48c", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:571", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:571"}, "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-bdc24ce18af4e1dc", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/hot-leads/_client.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/hot-leads/_client.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-79a971c2a6d7fcc7", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/custom-employees/[slug]/_managers.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/custom-employees/[slug]/_managers.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-e453cd252f360053", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/copy-monitor/_client.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/copy-monitor/_client.tsx:47"}, "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-0174435e867e241a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/tenant-quality/_client.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/tenant-quality/_client.tsx:92"}, "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-71f27b7588e023f0", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/agents/_page-legacy.tsx:281", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/agents/_page-legacy.tsx:281"}, "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-e4b4de360dbad8dc", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/upgrade/page.tsx:322", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/upgrade/page.tsx:322"}, "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-9b7cfccc9fb81934", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/senders/_view.tsx:241", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/senders/_view.tsx:241"}, "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-fbc5615f4395d62a", "name": "\"active\" state uses light bg in a dark theme \u2014 app/v5/senders/_view.tsx:180", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/senders/_view.tsx:180"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fa72e2a9d06b8567", "name": "\"active\" state uses light bg in a dark theme \u2014 app/v5/council/page.tsx:347", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/council/page.tsx:347"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6748a2369a72e0d2", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v5/inbox/_page-legacy.tsx:1257", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/inbox/_page-legacy.tsx:1257"}, "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-0745c2ae903767ae", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/cold-mailbox-connect/page.tsx:75", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/cold-mailbox-connect/page.tsx:75"}, "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-8f4ccae6cfd01f51", "name": "Icon-only button without accessible name \u2014 app/v9/employees/page.tsx:199", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/v9/employees/page.tsx:199"}, "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-faafe3fb8b55b090", "name": "Icon-only button without accessible name \u2014 app/v9/leads/page.tsx:396", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/v9/leads/page.tsx:396"}, "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-3439c2fd4c8143df", "name": "Icon-only button without accessible name \u2014 app/v9/workspaces/page.tsx:925", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/page.tsx:925"}, "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-c887f8de2c68bc2e", "name": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/activity/page.tsx:471", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/activity/page.tsx:471"}, "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-87a7e48509697dba", "name": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/jobs/page.tsx:331", "shortDescription": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/jobs/page.tsx:331"}, "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-32e9321d81816f49", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v9/audits/_page-legacy.tsx:381", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v9/audits/_page-legacy.tsx:381"}, "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-eceda7462ed9e3d5", "name": "`truncate` class without `title=` for hover reveal \u2014 app/v9/app/refer/page.tsx:257", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v9/app/refer/page.tsx:257"}, "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-f70a8883c127fd2a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/dashboard/dashboard-impl.tsx:368", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/dashboard/dashboard-impl.tsx:368"}, "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-d1d8921d38685551", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/qa/onboarding-smoke/page.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/qa/onboarding-smoke/page.tsx:82"}, "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-ac747c07c72e3fe9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/onboarding/page.tsx:237", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/onboarding/page.tsx:237"}, "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-829f4803c43d83d4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/layout.tsx:100", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/layout.tsx:100"}, "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-f6da8376b918363e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/case-studies/page.tsx:414", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/case-studies/page.tsx:414"}, "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-adf928285614c463", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/audit/page.tsx:214", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/audit/page.tsx:214"}, "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-4c43cf68be1f875f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/insurance/page.tsx:118", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/insurance/page.tsx:118"}, "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-eb039c29d251d9f6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/book/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/book/page.tsx:40"}, "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-226c6e01b19ea7f4", "name": "Stray `console.log` in TS/JS \u2014 lib/anthropic-logged.ts:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/anthropic-logged.ts:173"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d953603029ef6d26", "name": "Stray `console.log` in TS/JS \u2014 lib/agent-runner.ts:325", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/agent-runner.ts:325"}, "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-63335170487ecc37", "name": "TODO/FIXME marker in shipping code \u2014 lib/integrations/vapi.ts:9", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/integrations/vapi.ts:9"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7496f6cbd4860aa8", "name": "Stray `console.log` in TS/JS \u2014 lib/mack/schedule-multi-source.ts:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/mack/schedule-multi-source.ts:120"}, "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-bd2d3180f39b1006", "name": "Stray `console.log` in TS/JS \u2014 lib/notifications/founder-alerts.ts:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/notifications/founder-alerts.ts:135"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22176cc71e8fd4c4", "name": "TODO/FIXME marker in shipping code \u2014 lib/ams/adapters/ezlynx.ts:60", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ams/adapters/ezlynx.ts:60"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-803f06c406d888e5", "name": "Stray `console.log` in TS/JS \u2014 lib/email/invite.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/email/invite.ts:207"}, "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-cbd4159b9dc6d53a", "name": "Stray `console.log` in TS/JS \u2014 lib/press-desk/booking-sms.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/press-desk/booking-sms.ts:98"}, "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-94e0d9f6a314f865", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/plan-table-parser.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/plan-table-parser.ts:212"}, "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-ca89ae11a5d58bad", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/extraction-review.ts:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/extraction-review.ts:148"}, "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-cc5b23ea717e01a5", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-locator.ts:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-locator.ts:223"}, "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-f40ad3de49581c72", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/self-grade.ts:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/self-grade.ts:181"}, "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-73abd0daac7bba99", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/processor.ts:434", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/processor.ts:434"}, "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-45524ecacb091140", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-enumerator.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-enumerator.ts:137"}, "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-00f6440fe6d89008", "name": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-screenshot-renderer.ts:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-screenshot-renderer.ts:191"}, "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-4b65c3c64742dd8f", "name": "Stray `console.log` in TS/JS \u2014 lib/billing/subscription.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/billing/subscription.ts:89"}, "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-70b6d2173a3408ae", "name": "Stray `console.log` in TS/JS \u2014 lib/billing/webhook-handler.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/billing/webhook-handler.ts:89"}, "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-1e9ca15848f2c463", "name": "Stray `console.log` in TS/JS \u2014 lib/agents/builder.ts:725", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/agents/builder.ts:725"}, "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-d453b29dbb84f721", "name": "Stray `console.log` in TS/JS \u2014 lib/onboarding/extract-brand-voice.ts:222", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/onboarding/extract-brand-voice.ts:222"}, "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-37baa3a09f444109", "name": "Stray `console.log` in TS/JS \u2014 lib/cron/settings.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/cron/settings.ts:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-006485cf149b4a55", "name": "Stray `console.log` in TS/JS \u2014 lib/managers/tools.ts:2017", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/managers/tools.ts:2017"}, "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-212c6dbe7441ed56", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/seo/schema.ts:11", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/seo/schema.ts:11"}, "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-e982c4e6d95456e0", "name": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/transcriber.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/transcriber.ts:85"}, "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-4e55107406c1c2f3", "name": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/meet-bot.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/meet-bot.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-9f5975b5db074c69", "name": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/server.ts:225", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/server.ts:225"}, "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-cfe43f7b22dfcab1", "name": "Stray `console.log` in TS/JS \u2014 services/council/src/agents/runAgent.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/council/src/agents/runAgent.ts:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-daf9182378990303", "name": "Privileged port 587 in use", "shortDescription": {"text": "Privileged port 587 in use"}, "fullDescription": {"text": "Port 587 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d5ce71921300afa9", "name": "Dockerfile runs as root: services/meeting-bot/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/meeting-bot/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-65e6a039ed2f26ae", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78430569d36ac14f", "name": "Dockerfile runs as root: services/council/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/council/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0146f17e15ef97b1", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88bbe0d2c258f107", "name": "Insecure pattern 'node_child_process' in scripts/check-tsc-baseline.mjs:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/check-tsc-baseline.mjs:23"}, "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-60c023cd07abc729", "name": "Possible secret in scripts/_smoke-export-context.mjs", "shortDescription": {"text": "Possible secret in scripts/_smoke-export-context.mjs"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5c8771d4af8046a0", "name": "Insecure pattern 'node_child_process' in scripts/mack-rescore-backfill.mjs:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/mack-rescore-backfill.mjs:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b633d30a77727bb", "name": "Insecure pattern 'node_child_process' in scripts/apply-migrations.mjs:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/apply-migrations.mjs:31"}, "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-ac6c0fcccd6410bc", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/funnel-page.tsx:1519", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/funnel-page.tsx:1519"}, "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-32f7a90835cfa93d", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-roofing.tsx:778", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-roofing.tsx:778"}, "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-eb50f0ed4fe54839", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-roofing.tsx:1302", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-roofing.tsx:1302"}, "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-dfc8774e34d43d3a", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-medspa.tsx:692", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-medspa.tsx:692"}, "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-3a5e778746a1dd20", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-ai-employees.tsx:1098", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-ai-employees.tsx:1098"}, "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-79470c2478d3e68b", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4.tsx:1302", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4.tsx:1302"}, "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-1f3aad35407523fc", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-medspa.tsx:1302", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-medspa.tsx:1302"}, "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-c9621f4f6f75980b", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/mobile-nav.tsx:198", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/mobile-nav.tsx:198"}, "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-22163d70f10dd5f3", "name": "Insecure pattern 'dangerous_innerhtml' in components/marketing/blog/blog-post.tsx:169", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/blog/blog-post.tsx:169"}, "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-5e6b78bc13377766", "name": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:63", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:63"}, "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-a53b161f1dd95ae0", "name": "Possible secret in app/api/admin/env-probe/route.ts", "shortDescription": {"text": "Possible secret in app/api/admin/env-probe/route.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-13eb4580f4ee1523", "name": "Insecure pattern 'dangerous_innerhtml' in app/v5/employees/[slug]/page.tsx:1076", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/v5/employees/[slug]/page.tsx:1076"}, "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-0f1aa821d3ef4296", "name": "Insecure pattern 'local_storage_auth_token' in app/v9/ops/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in app/v9/ops/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9c26321c8e0b877", "name": "Insecure pattern 'dangerous_innerhtml' in app/v9/audits/_page-legacy.tsx:381", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/v9/audits/_page-legacy.tsx:381"}, "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-825bc54c82b07878", "name": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/layout.tsx:100", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/layout.tsx:100"}, "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-34ef6fbc9148ee8c", "name": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/case-studies/page.tsx:414", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/case-studies/page.tsx:414"}, "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-c78a11036c535d79", "name": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/audit/page.tsx:214", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/audit/page.tsx:214"}, "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-42946250df7ea071", "name": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/insurance/page.tsx:118", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/insurance/page.tsx:118"}, "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-317a25b66be70a33", "name": "Insecure pattern 'dangerous_innerhtml' in app/book/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/book/page.tsx:40"}, "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-7f3004f7872f7b90", "name": "Insecure pattern 'node_child_process' in services/meeting-bot/src/transcriber.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in services/meeting-bot/src/transcriber.ts:10"}, "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-c9694f2d3f810a2a", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "gitleaks/gitleaks-action@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-0252b23fe84c9c16", "name": "Very large file: components/mack/EngineerReviewWizard.tsx (1137 lines)", "shortDescription": {"text": "Very large file: components/mack/EngineerReviewWizard.tsx (1137 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d28dd0962bcf3128", "name": "Very large file: components/mack/SalesReviewWizard.tsx (1379 lines)", "shortDescription": {"text": "Very large file: components/mack/SalesReviewWizard.tsx (1379 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bcc78f77fde12aa", "name": "Very large file: components/v5/admin-home-v2.tsx (1829 lines)", "shortDescription": {"text": "Very large file: components/v5/admin-home-v2.tsx (1829 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91ee8566129262b6", "name": "Very large file: components/app/tasks/lindy-tasks-pane.tsx (1486 lines)", "shortDescription": {"text": "Very large file: components/app/tasks/lindy-tasks-pane.tsx (1486 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e5979cc6b191e8f", "name": "Very large file: components/app/inbox/inbox-v3.tsx (1270 lines)", "shortDescription": {"text": "Very large file: components/app/inbox/inbox-v3.tsx (1270 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05dff144a58d378b", "name": "Very large file: components/marketing/funnel-page.tsx (2022 lines)", "shortDescription": {"text": "Very large file: components/marketing/funnel-page.tsx (2022 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5add8e10124df062", "name": "Very large file: components/marketing/landing-v5-roofing.tsx (980 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v5-roofing.tsx (980 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-121b0b7162b65262", "name": "Very large file: components/marketing/homepage-2026.tsx (1453 lines)", "shortDescription": {"text": "Very large file: components/marketing/homepage-2026.tsx (1453 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b49db394e1c5630", "name": "Very large file: components/marketing/landing-v4-roofing.tsx (1331 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v4-roofing.tsx (1331 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5b727d11a93bbbd", "name": "Very large file: components/marketing/landing-v5-medspa.tsx (894 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v5-medspa.tsx (894 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84375c94686b8349", "name": "Very large file: components/marketing/landing-v5-ai-employees.tsx (1433 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v5-ai-employees.tsx (1433 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3426083412b9eb7e", "name": "Very large file: components/marketing/landing-v4.tsx (1330 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v4.tsx (1330 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31893fa1a3c8acb4", "name": "Very large file: components/marketing/landing-v4-medspa.tsx (1331 lines)", "shortDescription": {"text": "Very large file: components/marketing/landing-v4-medspa.tsx (1331 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7170955b83fbd8ce", "name": "Very large file: components/admin/leads-console.tsx (1911 lines)", "shortDescription": {"text": "Very large file: components/admin/leads-console.tsx (1911 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62630bb1d35c53c5", "name": "Very large file: components/admin/cold-email-console.tsx (1392 lines)", "shortDescription": {"text": "Very large file: components/admin/cold-email-console.tsx (1392 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c450b88229a9ec2c", "name": "Very large file: components/onboarding/wizard.tsx (1273 lines)", "shortDescription": {"text": "Very large file: components/onboarding/wizard.tsx (1273 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61863c08331a0f3d", "name": "Very large file: app/v5/_client-shell.tsx (2572 lines)", "shortDescription": {"text": "Very large file: app/v5/_client-shell.tsx (2572 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-751947042fdb2818", "name": "Very large file: app/v5/employees/[slug]/page.tsx (1148 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/page.tsx (1148 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c275100aad44d42", "name": "Very large file: app/v5/employees/[slug]/_blocks.tsx (1646 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/_blocks.tsx (1646 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40b3ba4ba15d8f9b", "name": "Very large file: app/v5/employees/[slug]/assistant/_client.tsx (2127 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/assistant/_client.tsx (2127 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f5c52dac6361ea0", "name": "Very large file: app/v5/employees/[slug]/engineer/_queue-client.tsx (1208 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/engineer/_queue-client.tsx (1208 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5879774be10f9982", "name": "Very large file: app/v5/employees/[slug]/jobs/[id]/page.tsx (2318 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/jobs/[id]/page.tsx (2318 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58a0818c1356b339", "name": "Very large file: app/v5/employees/[slug]/jobs/[id]/review/_client.tsx (1815 lines)", "shortDescription": {"text": "Very large file: app/v5/employees/[slug]/jobs/[id]/review/_client.tsx (1815 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82d98fa70074cefc", "name": "Very large file: app/v5/leads/_page-legacy.tsx (1476 lines)", "shortDescription": {"text": "Very large file: app/v5/leads/_page-legacy.tsx (1476 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d236887a5a6e10b7", "name": "Very large file: app/v5/agents/_page-legacy.tsx (961 lines)", "shortDescription": {"text": "Very large file: app/v5/agents/_page-legacy.tsx (961 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba6977c541628d4e", "name": "Very large file: app/v5/inbox/_page-legacy.tsx (2350 lines)", "shortDescription": {"text": "Very large file: app/v5/inbox/_page-legacy.tsx (2350 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89cb2d84b7083633", "name": "Very large file: app/v9/_shell.tsx (1394 lines)", "shortDescription": {"text": "Very large file: app/v9/_shell.tsx (1394 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca8a57b4d4285420", "name": "Very large file: app/v9/workspaces/new-with-ai/_client.tsx (1287 lines)", "shortDescription": {"text": "Very large file: app/v9/workspaces/new-with-ai/_client.tsx (1287 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-449a833a8e27764d", "name": "Very large file: lib/custom-employees/engineer-submittal-pdf.ts (896 lines)", "shortDescription": {"text": "Very large file: lib/custom-employees/engineer-submittal-pdf.ts (896 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a70a8a68bc233e96", "name": "Very large file: lib/custom-employees/processor.ts (3254 lines)", "shortDescription": {"text": "Very large file: lib/custom-employees/processor.ts (3254 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3bdf13739686ad21", "name": "Very large file: lib/custom-employees/structure-screenshot-renderer.ts (1211 lines)", "shortDescription": {"text": "Very large file: lib/custom-employees/structure-screenshot-renderer.ts (1211 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31f349877be24b01", "name": "Very large file: lib/custom-employees/mack-submittal-pdf.ts (1199 lines)", "shortDescription": {"text": "Very large file: lib/custom-employees/mack-submittal-pdf.ts (1199 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-920f8a54b31e8126", "name": "Very large file: lib/audit/prompt.ts (1090 lines)", "shortDescription": {"text": "Very large file: lib/audit/prompt.ts (1090 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ce7da907f5c9eac", "name": "Very large file: lib/managers/tools.ts (2393 lines)", "shortDescription": {"text": "Very large file: lib/managers/tools.ts (2393 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "104 test file(s) for 1824 source file(s) (ratio 0.06). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae5321b88c1a4e7a", "name": "Node manifest has dependencies but no lockfile: services/meeting-bot/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: services/meeting-bot/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 444 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 813 placeholder/mock markers across 260 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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-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-e87c5c4113c0057a", "name": "Commented-code block (6 lines) in next.config.js:35", "shortDescription": {"text": "Commented-code block (6 lines) in next.config.js:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12de56efd58b3a5e", "name": "Commented-code block (6 lines) in middleware.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in middleware.ts:30"}, "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-2deb927414af0bff", "name": "Commented-code block (5 lines) in __tests__/sms-send-window.test.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in __tests__/sms-send-window.test.ts:8"}, "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-a0438ed0574b5a4c", "name": "Commented-code block (6 lines) in __tests__/geometric-validator.test.ts:317", "shortDescription": {"text": "Commented-code block (6 lines) in __tests__/geometric-validator.test.ts:317"}, "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-54e605668b088257", "name": "Commented-code block (5 lines) in __tests__/mack-role-isolation.test.ts:161", "shortDescription": {"text": "Commented-code block (5 lines) in __tests__/mack-role-isolation.test.ts:161"}, "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-0239804eca64d117", "name": "Commented-code block (5 lines) in __tests__/mack-confidence-rescore.test.ts:304", "shortDescription": {"text": "Commented-code block (5 lines) in __tests__/mack-confidence-rescore.test.ts:304"}, "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-ca95b8da8684300f", "name": "Legacy-named symbol `sprint_v1` in scripts/create-stripe-sprint-products.mjs:108", "shortDescription": {"text": "Legacy-named symbol `sprint_v1` in scripts/create-stripe-sprint-products.mjs:108"}, "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-ed60bdebe12d1eb6", "name": "Commented-code block (6 lines) in scripts/route-link-crawl.mjs:215", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/route-link-crawl.mjs:215"}, "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-dbf1abcfe6d771d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-cv52037-revision-smoke-test.mjs:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-cv52037-revision-smoke-test.mjs:77"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf89b8284c73f3dc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/run-mack-blind-benchmark.mjs:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/run-mack-blind-benchmark.mjs: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-4caa1fb22815bfd0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/check-realtime-gate.mjs:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/check-realtime-gate.mjs: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-2fc7a1d7b7c490a4", "name": "Commented-code block (5 lines) in scripts/mack-blind-test.mjs:25", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/mack-blind-test.mjs:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b51ee76f627a736", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-blind-test.mjs:293", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-blind-test.mjs:293"}, "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-dbb2d46545d5d396", "name": "Commented-code block (5 lines) in scripts/extract-mack-template.mjs:22", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/extract-mack-template.mjs:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7044145979c299c5", "name": "Commented-code block (5 lines) in scripts/r172-test-discover.mjs:95", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/r172-test-discover.mjs:95"}, "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-4984c9bab8dba612", "name": "Commented-code block (14 lines) in scripts/preflight.mjs:119", "shortDescription": {"text": "Commented-code block (14 lines) in scripts/preflight.mjs:119"}, "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-688b27441ee6571d", "name": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerCompletionScreen.tsx:5", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerCompletionScreen.tsx:5"}, "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-f08e1525858588d1", "name": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesCompletionScreen.tsx:5", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesCompletionScreen.tsx:5"}, "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-8c9b35898f9a18c6", "name": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerReviewWizard.tsx:7", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerReviewWizard.tsx:7"}, "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-a425009880ac442e", "name": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesReviewWizard.tsx:4", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesReviewWizard.tsx:4"}, "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-2dc52f45bdca21fa", "name": "Commented-code block (5 lines) in components/mack/SalesReviewWizard.tsx:444", "shortDescription": {"text": "Commented-code block (5 lines) in components/mack/SalesReviewWizard.tsx:444"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68b529d488bb2a9a", "name": "Legacy-named symbol `mack_sales_review_v2` in components/mack/LegacyReviewList.tsx:8", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/LegacyReviewList.tsx:8"}, "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-daeb8b66d12009e7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/floating-intake-button.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/floating-intake-button.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-6597eecc6af305f4", "name": "Commented-code block (6 lines) in components/v5/admin-home-v2.tsx:351", "shortDescription": {"text": "Commented-code block (6 lines) in components/v5/admin-home-v2.tsx:351"}, "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-55eb752e5592375e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/admin-home-v2.tsx:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/admin-home-v2.tsx:285"}, "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-a0c186438f8536c4", "name": "Commented-code block (5 lines) in components/v5/audits-v2.tsx:100", "shortDescription": {"text": "Commented-code block (5 lines) in components/v5/audits-v2.tsx:100"}, "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-96eb1e044ba2508e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/audits-v2.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/audits-v2.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-04e078d9273d5939", "name": "Commented-code block (5 lines) in components/v5/pdf-viewer-inner.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in components/v5/pdf-viewer-inner.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c33f70ac212c7c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/employee-builder-wizard.tsx:143", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/employee-builder-wizard.tsx:143"}, "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-1fc1cd4f41b3e7bf", "name": "Commented-code block (6 lines) in components/v5/admin-home.tsx:260", "shortDescription": {"text": "Commented-code block (6 lines) in components/v5/admin-home.tsx:260"}, "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-4c619d2628d4abb9", "name": "Commented-code block (6 lines) in components/app/sidebar.tsx:104", "shortDescription": {"text": "Commented-code block (6 lines) in components/app/sidebar.tsx:104"}, "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-61144b3dfd16b2d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/exit-ghost-floating.tsx:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/exit-ghost-floating.tsx:51"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c64844a82a09268", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/home-chat-starter.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/home-chat-starter.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-617a52095a1639ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/api-keys-panel.tsx:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/api-keys-panel.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-373b33c92916f914", "name": "Commented-code block (6 lines) in components/app/activity-feed.tsx:66", "shortDescription": {"text": "Commented-code block (6 lines) in components/app/activity-feed.tsx:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6295ce262d675fba", "name": "Commented-code block (6 lines) in components/app/mobile-nav.tsx:30", "shortDescription": {"text": "Commented-code block (6 lines) in components/app/mobile-nav.tsx:30"}, "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-b524e4c95533fe4b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/settings/alert-recipients-manager.tsx:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/settings/alert-recipients-manager.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-343d788d9f0fd99b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/triggers/triggers-ui.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/triggers/triggers-ui.tsx:21"}, "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-0c2f2b67206a4e15", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tenants/agent-toggle.tsx:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tenants/agent-toggle.tsx:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cdefad13388b8e3d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/emails/emails-settings-ui.tsx:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/emails/emails-settings-ui.tsx:64"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cfa3c534b3fedc8e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tasks/inbox-clear-button.tsx:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tasks/inbox-clear-button.tsx:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-79e8ce89a599ef6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/coupons-manager.tsx:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/coupons-manager.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-7fe01048f1c55e52", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/cleanup-orphans-button.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/cleanup-orphans-button.tsx:21"}, "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-d1fb0058e5e60a3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/knowledge-panel.tsx:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/knowledge-panel.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-8e5a105e89fac261", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/agent-form.tsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/agent-form.tsx:128"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b74bad106e8b5b58", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/action-picker.tsx:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/action-picker.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-06d5f9ba0463ce04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/triggers-panel.tsx:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/triggers-panel.tsx:117"}, "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-bbcc2076bddd790f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/brand-voice-panel.tsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/brand-voice-panel.tsx:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d63f87d29e884939", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/chat-interface.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/chat-interface.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-d6e10b4ef7d2fcd5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/new-agent-button.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/new-agent-button.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-5f9b11d397c7765f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/logic-panel.tsx:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/logic-panel.tsx:157"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00d5cd56e2e70bea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/developer/api-keys-panel.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/developer/api-keys-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-0c7a968b63ff0e6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/campaigns/campaign-builder.tsx:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/campaigns/campaign-builder.tsx:65"}, "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-a96a13851cb4e3b5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/workflows/editor.tsx:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/workflows/editor.tsx:120"}, "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-005243cca5b5bffc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/ghl-card.tsx:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/ghl-card.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-103432e334051464", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/imap-modal.tsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/imap-modal.tsx:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-84e5c5f6f336b656", "name": "Commented-code block (6 lines) in components/app/connections/connections-ui.tsx:257", "shortDescription": {"text": "Commented-code block (6 lines) in components/app/connections/connections-ui.tsx:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb9adb27847b8d8d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/connections-ui.tsx:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/connections-ui.tsx:285"}, "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-ce8d8a07d3517885", "name": "Commented-code block (6 lines) in components/marketing/funnel-page.tsx:64", "shortDescription": {"text": "Commented-code block (6 lines) in components/marketing/funnel-page.tsx:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10bb00a8b02bbe5d", "name": "Commented-code block (5 lines) in components/marketing/live-chat-widget.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in components/marketing/live-chat-widget.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e316788e35a0c29", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-roofing.tsx:542", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-roofing.tsx:542"}, "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-70c964b9407a61de", "name": "Commented-code block (7 lines) in components/marketing/homepage-2026.tsx:498", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketing/homepage-2026.tsx:498"}, "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-31d51fa1e919f06f", "name": "Commented-code block (7 lines) in components/marketing/landing-v4-roofing.tsx:595", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4-roofing.tsx:595"}, "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-1391efd4ded02585", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-roofing.tsx:666", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-roofing.tsx:666"}, "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-a349bb16619f5065", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-medspa.tsx:470", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-medspa.tsx:470"}, "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-e34dae2b4a1b0bce", "name": "Commented-code block (7 lines) in components/marketing/landing-v5-ai-employees.tsx:583", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketing/landing-v5-ai-employees.tsx:583"}, "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-6d3546a4dd05cb61", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-ai-employees.tsx:654", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-ai-employees.tsx:654"}, "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-1f325113df0aeb3a", "name": "Commented-code block (7 lines) in components/marketing/landing-v4.tsx:595", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4.tsx:595"}, "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-938a09db213de64e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4.tsx:666", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4.tsx:666"}, "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-97f04d177ab9b04a", "name": "Commented-code block (5 lines) in components/marketing/testimonials.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/marketing/testimonials.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d974bb73e76e3d37", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/booking-widget.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/booking-widget.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-85fd4d7b7bf4ab53", "name": "Commented-code block (7 lines) in components/marketing/landing-v4-medspa.tsx:595", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4-medspa.tsx:595"}, "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-ec83b74a617b19ab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-medspa.tsx:666", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-medspa.tsx:666"}, "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-d48497f829a7353c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/book-call-modal.tsx:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/book-call-modal.tsx:124"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-add025e5d29ad63b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/billing-admin-console.tsx:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/billing-admin-console.tsx:57"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-861cf9a51919fa2d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/invites-panel.tsx:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/invites-panel.tsx:29"}, "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-0b0d26f20f6a3a70", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-trust-console.tsx:281", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-trust-console.tsx:281"}, "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-7f10aff2c4afcead", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/meeting-console.tsx:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/meeting-console.tsx:86"}, "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-f07f0abb17810895", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-activity-console.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-activity-console.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-ef69b9d5c364ace0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/leads-console.tsx:340", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/leads-console.tsx:340"}, "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-f5e133d89becb8d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/conversion-funnel-console.tsx:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/conversion-funnel-console.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-3426aedd6089fc1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/team-console.tsx:129", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/team-console.tsx:129"}, "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-4126fbe658d062c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/cold-email-console.tsx:208", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/cold-email-console.tsx:208"}, "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-35cf6a98f5c14d98", "name": "Commented-code block (5 lines) in components/onboarding/wizard.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in components/onboarding/wizard.tsx:16"}, "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-54b2e9597584408a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/wizard.tsx:689", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/wizard.tsx:689"}, "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-307211258839e884", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/hire/hire-wizard.tsx:239", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/hire/hire-wizard.tsx:239"}, "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-335b5838210e640a", "name": "Commented-code block (6 lines) in app/layout.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in app/layout.tsx:32"}, "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-1539707565dea9a3", "name": "Commented-code block (7 lines) in app/error.tsx:46", "shortDescription": {"text": "Commented-code block (7 lines) in app/error.tsx: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-45430ccc650960d4", "name": "Commented-code block (6 lines) in app/p/[slug]/_chat.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in app/p/[slug]/_chat.tsx:10"}, "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-4b40091b378af64a", "name": "Commented-code block (5 lines) in app/auth/callback/route.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in app/auth/callback/route.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae8a5d2564e8148a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/admin/[token]/page.tsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/admin/[token]/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-345d7d1a787d2ba6", "name": "Commented-code block (5 lines) in app/invite/[token]/page.tsx:64", "shortDescription": {"text": "Commented-code block (5 lines) in app/invite/[token]/page.tsx:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b66970d54b31b71b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/[token]/page.tsx:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/[token]/page.tsx:24"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d641a5112c7a813", "name": "Commented-code block (10 lines) in app/api/marketing-chat/route.ts:10", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/marketing-chat/route.ts:10"}, "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-9af40c5cc7daef88", "name": "Commented-code block (5 lines) in app/api/employees/provision/route.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/employees/provision/route.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9033ab1d49c13b64", "name": "Commented-code block (6 lines) in app/api/demo/lead/route.ts:80", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/demo/lead/route.ts:80"}, "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-621ce216b42eae7d", "name": "Commented-code block (5 lines) in app/api/demo/lead-update/route.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/demo/lead-update/route.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-136767ad76453cee", "name": "Commented-code block (6 lines) in app/api/meetings/recall-webhook/route.ts:44", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/meetings/recall-webhook/route.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dad7b5d2f3cd6983", "name": "Commented-code block (6 lines) in app/api/meetings/transcript-webhook/route.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/meetings/transcript-webhook/route.ts:30"}, "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-f9765825ac125beb", "name": "Commented-code block (6 lines) in app/api/triggers/microsoft/notification/route.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/triggers/microsoft/notification/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78daa94861d113c6", "name": "Commented-code block (5 lines) in app/api/auth/signup/route.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/auth/signup/route.ts:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c84350894f37d95", "name": "Commented-code block (5 lines) in app/api/invite/[token]/route.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/invite/[token]/route.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d41b4e6936982ef", "name": "Commented-code block (6 lines) in app/api/invite/[token]/redeem/route.ts:27", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/invite/[token]/redeem/route.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-338dd4551165f477", "name": "Commented-code block (14 lines) in app/api/tenants/switch/route.ts:29", "shortDescription": {"text": "Commented-code block (14 lines) in app/api/tenants/switch/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da1d1c78d6edcfbb", "name": "Commented-code block (6 lines) in app/api/tenants/switch-and-go/route.ts:23", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/tenants/switch-and-go/route.ts:23"}, "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-4b755adea7264eaa", "name": "Commented-code block (5 lines) in app/api/v5/employees/picker/route.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/employees/picker/route.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4176339bf3772d5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/mack/training/action/route.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/mack/training/action/route.ts: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-d30c7a73a4a5ef20", "name": "Commented-code block (5 lines) in app/api/v5/leads/bulk/route.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/leads/bulk/route.ts:123"}, "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-f50e07f2cee20519", "name": "Commented-code block (5 lines) in app/api/v5/leads/feed/route.ts:113", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/leads/feed/route.ts:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0fe9321c18f30c8", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/action-inbox/route.ts:174", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/action-inbox/route.ts:174"}, "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-8e53bdaa4d7dff72", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/engineers/route.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/engineers/route.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3298625c1dfb66a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/custom-employees/[slug]/stackit-credentials/route.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/custom-employees/[slug]/stackit-credentials/route.ts:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2b3432d23657e2f", "name": "Commented-code block (7 lines) in app/api/v5/custom-employees/[slug]/review-queue/route.ts:45", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/v5/custom-employees/[slug]/review-queue/route.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b6dfc659b46f662", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/route.ts:305", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/route.ts:305"}, "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-9eba21d502c890b4", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/revision-upload/route.ts:183", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/revision-upload/route.ts:183"}, "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-a7af6a21dd8f95c0", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structures/route.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structures/route.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b4694b8d47e7250", "name": "Commented-code block (8 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structure-edits/route.ts:28", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structure-edits/route.ts:28"}, "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-b7f66245b645eaf6", "name": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/engineer-dimension-override/route.ts:75", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/engineer-dimension-override/route.ts:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2b11a4fabf1a7bc", "name": "Commented-code block (6 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/assign-to-engineer/route.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/assign-to-engineer/route.ts:135"}, "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-f89221182de093eb", "name": "Commented-code block (5 lines) in app/api/v5/home/feed/route.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/home/feed/route.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e98feca717bb052", "name": "Commented-code block (5 lines) in app/api/v5/home/outbound-overview/route.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/home/outbound-overview/route.ts:57"}, "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-a61e9691e8011039", "name": "Commented-code block (6 lines) in app/api/v5/senders/feed/route.ts:56", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v5/senders/feed/route.ts:56"}, "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-4906c99e62f2c669", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/senders/sms/[id]/sync/route.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/senders/sms/[id]/sync/route.ts:51"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d484ef3efba4f186", "name": "Commented-code block (5 lines) in app/api/v5/inbox/thread/[id]/route.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v5/inbox/thread/[id]/route.ts:70"}, "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-2e47527d90aae8e4", "name": "Commented-code block (7 lines) in app/api/v5/inbox/feed/route.ts:65", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/v5/inbox/feed/route.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c467d88ec8e02f56", "name": "Commented-code block (6 lines) in app/api/inbound/form/[slug]/route.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/form/[slug]/route.ts:30"}, "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-be2848a3d0c4cf96", "name": "Commented-code block (6 lines) in app/api/inbound/review/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/review/route.ts:15"}, "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-82efaf148b153b6d", "name": "Commented-code block (6 lines) in app/api/inbound/webhook/[agentId]/route.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/webhook/[agentId]/route.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee0ab075069c2d37", "name": "Commented-code block (6 lines) in app/api/inbound/chat/route.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/chat/route.ts:20"}, "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-340893a9533f149b", "name": "Commented-code block (5 lines) in app/api/inbound/meta/webhook/route.ts:108", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/inbound/meta/webhook/route.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f64164f17523ce1", "name": "Commented-code block (6 lines) in app/api/inbound/job-completed/route.ts:23", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/job-completed/route.ts:23"}, "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-892da6f1dbe71df5", "name": "Commented-code block (6 lines) in app/api/inbound/twilio/sms-test/route.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/twilio/sms-test/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce27a9b06dd17de1", "name": "Commented-code block (6 lines) in app/api/inbound/vapi/route.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbound/vapi/route.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ffce52feef73226", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/inbound/vapi/route.ts:206", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/inbound/vapi/route.ts:206"}, "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-473cf4bcc60bc01e", "name": "Commented-code block (7 lines) in app/api/audit/generate/route.ts:152", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/audit/generate/route.ts:152"}, "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-16b0477600ebf5b3", "name": "Legacy-named symbol `custom_ai_v1` in app/api/audit/book/route.ts:250", "shortDescription": {"text": "Legacy-named symbol `custom_ai_v1` in app/api/audit/book/route.ts:250"}, "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-28e2935e15d3bb05", "name": "Commented-code block (5 lines) in app/api/audit/book/route.ts:246", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/audit/book/route.ts:246"}, "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-ca6bf21758af2a2a", "name": "Commented-code block (7 lines) in app/api/voice/provision-assistant/route.ts:161", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/voice/provision-assistant/route.ts:161"}, "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-689346211593f5d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/voice/provision-assistant/route.ts:352", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/voice/provision-assistant/route.ts:352"}, "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-e33fa7b4dc4fda20", "name": "Commented-code block (7 lines) in app/api/oauth/connect/route.ts:17", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/oauth/connect/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74d33e13515d33a1", "name": "Commented-code block (8 lines) in app/api/oauth/callback/[provider]/route.ts:112", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/oauth/callback/[provider]/route.ts:112"}, "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-cac540ee296eb0d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/oauth/callback/[provider]/route.ts:246", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/oauth/callback/[provider]/route.ts:246"}, "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-f15f5d3d5229da70", "name": "Commented-code block (11 lines) in app/api/marketing/chat/route.ts:11", "shortDescription": {"text": "Commented-code block (11 lines) in app/api/marketing/chat/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e32365b82462167", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/marketing/chat/route.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/marketing/chat/route.ts: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-bc17a9d7c0799355", "name": "Commented-code block (7 lines) in app/api/preview/[slug]/chat/route.ts:38", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/preview/[slug]/chat/route.ts:38"}, "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-a1ee33d37fb5ec9c", "name": "Commented-code block (6 lines) in app/api/billing/tenant-plan/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/billing/tenant-plan/route.ts:15"}, "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-9659019ec60af1d1", "name": "Commented-code block (5 lines) in app/api/billing/start-trial-no-card/route.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/billing/start-trial-no-card/route.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7234cfa82b5d789", "name": "Commented-code block (7 lines) in app/api/billing/start-trial/route.ts:33", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/billing/start-trial/route.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb55a4feacca82e9", "name": "Commented-code block (5 lines) in app/api/billing/finalize-trial/route.ts:141", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/billing/finalize-trial/route.ts:141"}, "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-3793fdff37c57e08", "name": "Legacy-named symbol `d_old` in app/api/admin/maildoso-sync/route.ts:101", "shortDescription": {"text": "Legacy-named symbol `d_old` in app/api/admin/maildoso-sync/route.ts:101"}, "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-ac636048f428a92a", "name": "Commented-code block (5 lines) in app/api/admin/prospects/bulk/route.ts:124", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/prospects/bulk/route.ts:124"}, "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-991899cc25358876", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/smoke-test/route.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/smoke-test/route.ts: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-6791b757d26b8fb6", "name": "Commented-code block (6 lines) in app/api/admin/workspaces/[tenantId]/delete/route.ts:57", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/workspaces/[tenantId]/delete/route.ts:57"}, "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-e91531d094613a8f", "name": "Commented-code block (5 lines) in app/api/admin/workspaces/[tenantId]/invites/route.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/workspaces/[tenantId]/invites/route.ts:18"}, "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-37bb179cd05dd8fd", "name": "Commented-code block (6 lines) in app/api/admin/view-mode/route.ts:36", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/view-mode/route.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54939106e3b7dc7f", "name": "Commented-code block (5 lines) in app/api/admin/sms-draft/route.ts:68", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/sms-draft/route.ts:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-204a8b5aeb89f8f6", "name": "Commented-code block (11 lines) in app/api/admin/health/pulse/route.ts:32", "shortDescription": {"text": "Commented-code block (11 lines) in app/api/admin/health/pulse/route.ts:32"}, "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-8b8f9ebeff761491", "name": "Commented-code block (6 lines) in app/api/admin/today/route.ts:61", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/today/route.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-65f74de4d4aa9e47", "name": "Commented-code block (5 lines) in app/api/admin/seed-templates/route.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/seed-templates/route.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-658fd5cbf16b5b64", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/diag-google-token/route.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/diag-google-token/route.ts: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-b0d59803e69fe8c7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/stability-check/route.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/stability-check/route.ts: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-f63ea3eb0949156a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/cold-mailbox/bootstrap-history/route.ts:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/cold-mailbox/bootstrap-history/route.ts:49"}, "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-afea5abd4129f638", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/status/route.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/status/route.ts:29"}, "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-7fc46c4244f3fde5", "name": "Commented-code block (10 lines) in app/api/admin/agents/[id]/change-persona/route.ts:81", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/admin/agents/[id]/change-persona/route.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d798e2d78ccc8c3f", "name": "Commented-code block (5 lines) in app/api/admin/agents/[id]/approve/route.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/agents/[id]/approve/route.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8978981f95d20bbc", "name": "Commented-code block (5 lines) in app/api/admin/voice-readiness/route.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/voice-readiness/route.ts:265"}, "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-a221d5a7bafdb49b", "name": "Commented-code block (9 lines) in app/api/admin/import-prospects/route.ts:13", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/admin/import-prospects/route.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70f3d139bbd05c0b", "name": "Commented-code block (5 lines) in app/api/admin/mack-blind-test/route.ts:198", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/mack-blind-test/route.ts:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7db5147de3e6d71", "name": "Legacy-named symbol `plant_routing_v2` in app/api/admin/mack-mine-knowledge/route.ts:18", "shortDescription": {"text": "Legacy-named symbol `plant_routing_v2` in app/api/admin/mack-mine-knowledge/route.ts:18"}, "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-a6686cb1ef044da3", "name": "Commented-code block (6 lines) in app/api/admin/mack-reextract-lite/route.ts:291", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/mack-reextract-lite/route.ts:291"}, "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-c7c14e0a97dd79ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/mack-reextract-lite/route.ts:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/mack-reextract-lite/route.ts:108"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a75e82ffa6137345", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/crons/run/route.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/crons/run/route.ts: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-704f945395d3be40", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/booking-diagnose/route.ts:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/booking-diagnose/route.ts: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-8390b2d7903f40ac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/council/approve/route.ts:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/council/approve/route.ts:114"}, "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-b13b06ae004c99db", "name": "Legacy-named symbol `CV52037_v1` in app/api/admin/mack-drawing-ingest/route.ts:19", "shortDescription": {"text": "Legacy-named symbol `CV52037_v1` in app/api/admin/mack-drawing-ingest/route.ts:19"}, "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-68dc7fd2b4cdda68", "name": "Commented-code block (5 lines) in app/api/admin/kill-switches/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/kill-switches/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42da445961d08c60", "name": "Commented-code block (5 lines) in app/api/admin/cold-email/sequences/enroll/route.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/cold-email/sequences/enroll/route.ts:56"}, "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-9707ea4d41feaea4", "name": "Legacy-named symbol `dupeLegacy` in app/api/twilio/inbound-sms/route.ts:147", "shortDescription": {"text": "Legacy-named symbol `dupeLegacy` in app/api/twilio/inbound-sms/route.ts:147"}, "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-ff5b619160f4f2c7", "name": "Commented-code block (6 lines) in app/api/twilio/inbound-sms/route.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/twilio/inbound-sms/route.ts:42"}, "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-0efc14c0cd4c79be", "name": "Commented-code block (6 lines) in app/api/agents/[id]/test-run/route.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/agents/[id]/test-run/route.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9837b9cc69c4ecb4", "name": "Commented-code block (6 lines) in app/api/approvals/[id]/approve/route.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/approvals/[id]/approve/route.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-6a84072578e03289", "name": "Commented-code block (5 lines) in app/api/onboarding/complete/route.ts:65", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/onboarding/complete/route.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99e0b79f764435cf", "name": "Commented-code block (6 lines) in app/api/v9/employees/route.ts:31", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v9/employees/route.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cc12f12900d9ed5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/employees/[id]/builder/route.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/employees/[id]/builder/route.ts:51"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7cd707f324aef77c", "name": "Commented-code block (5 lines) in app/api/v9/notifications/route.ts:105", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/notifications/route.ts:105"}, "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-e82a423349158d49", "name": "Commented-code block (5 lines) in app/api/v9/workspaces/route.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/workspaces/route.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31b32cbc3751a5e8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/workspaces/custom-draft/route.ts:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/workspaces/custom-draft/route.ts:10"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f49674f650d9bb72", "name": "Commented-code block (5 lines) in app/api/v9/workspaces/[id]/manager/chat/route.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/workspaces/[id]/manager/chat/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b170649d91502743", "name": "Commented-code block (6 lines) in app/api/v9/workspaces/[id]/personas/route.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v9/workspaces/[id]/personas/route.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f5c4eed0d57c0dc", "name": "Commented-code block (7 lines) in app/api/v9/workspaces/[id]/members/route.ts:74", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/v9/workspaces/[id]/members/route.ts:74"}, "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-10b77dfea834e923", "name": "Commented-code block (6 lines) in app/api/v9/workspace-drafts/[id]/create/route.ts:154", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v9/workspace-drafts/[id]/create/route.ts:154"}, "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-1d888ab991eee516", "name": "Commented-code block (7 lines) in app/api/v9/audits/route.ts:45", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/v9/audits/route.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-766d2c3ed9e96a10", "name": "Commented-code block (5 lines) in app/api/v9/audits/[id]/action/route.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/audits/[id]/action/route.ts:89"}, "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-1b1f8ea1202afa19", "name": "Commented-code block (9 lines) in app/api/v9/home/onboarding/route.ts:24", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/v9/home/onboarding/route.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b77964bf66359cb2", "name": "Commented-code block (5 lines) in app/api/v9/home/urgent/route.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/home/urgent/route.ts:67"}, "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-112cb0f5fa31530f", "name": "Commented-code block (5 lines) in app/api/v9/admin/finance/route.ts:128", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v9/admin/finance/route.ts:128"}, "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-bf282ba97afc4f68", "name": "Commented-code block (6 lines) in app/api/v9/inbox/threads/route.ts:94", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v9/inbox/threads/route.ts:94"}, "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-6073d4c320fa703c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/inbox/ai-draft/route.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/inbox/ai-draft/route.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-5a488487b6506bc9", "name": "Commented-code block (6 lines) in app/api/cron/route.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/route.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7465c932bed1fba", "name": "Commented-code block (5 lines) in app/api/cron/cold-email-sequences/route.ts:66", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/cold-email-sequences/route.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e776622b8b515b15", "name": "Commented-code block (9 lines) in app/api/cron/learn-cold-angles/route.ts:100", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/cron/learn-cold-angles/route.ts:100"}, "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-73c580c91fc484b1", "name": "Legacy-named symbol `d_old` in app/api/cron/cold-mailbox-promote/route.ts:55", "shortDescription": {"text": "Legacy-named symbol `d_old` in app/api/cron/cold-mailbox-promote/route.ts:55"}, "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-de009238dfa3f759", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/cold-mailbox-promote/route.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/cold-mailbox-promote/route.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-b35bd9dcdb8a2ae9", "name": "Commented-code block (7 lines) in app/api/cron/ooo-pitch-reply/route.ts:205", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/ooo-pitch-reply/route.ts:205"}, "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-163019f953211a3a", "name": "Commented-code block (6 lines) in app/api/cron/custom-employee-jobs/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/custom-employee-jobs/route.ts:15"}, "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-12c4e466f47c1c02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/daily-brief/route.ts:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/daily-brief/route.ts:110"}, "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-3e8eb3db6e3a294a", "name": "Commented-code block (7 lines) in app/api/cron/audit-deliver/route.ts:119", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/audit-deliver/route.ts:119"}, "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-90fcb0c8b357069a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/hot-lead-concierge/route.ts:238", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/hot-lead-concierge/route.ts:238"}, "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-ac775d27b55e2cf6", "name": "Commented-code block (7 lines) in app/api/cron/cold-mailbox-warmup-ramp/route.ts:71", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/cold-mailbox-warmup-ramp/route.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fb00212c3234320", "name": "Commented-code block (5 lines) in app/api/cron/handoff-watchdog/route.ts:159", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/handoff-watchdog/route.ts:159"}, "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-86dea605e981e374", "name": "Commented-code block (5 lines) in app/api/cron/prospect-nurture/route.ts:66", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/prospect-nurture/route.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-451f426cd4c17404", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/prospect-nurture/route.ts:357", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/prospect-nurture/route.ts:357"}, "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-1bbdd942cd84dfad", "name": "Commented-code block (6 lines) in app/api/cron/outlook-inbox-poll/route.ts:38", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/outlook-inbox-poll/route.ts:38"}, "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-dd0bf37020d8096b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/meeting-auto-join/route.ts:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/meeting-auto-join/route.ts:88"}, "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-70836528802b17a3", "name": "Commented-code block (6 lines) in app/api/cron/mack-blind-suite/route.ts:156", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/mack-blind-suite/route.ts:156"}, "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-610fb43b2dd8c3d4", "name": "Commented-code block (6 lines) in app/api/cron/gmail-inbox-poll/route.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/gmail-inbox-poll/route.ts:42"}, "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-a614905e6512375e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/gmail-inbox-poll/route.ts:260", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/gmail-inbox-poll/route.ts:260"}, "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-a0a3f9987ba3a967", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/weekly-brief/route.ts:135", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/weekly-brief/route.ts:135"}, "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-6c911d6e21355f42", "name": "Commented-code block (6 lines) in app/api/cron/cold-sms-sequences/route.ts:79", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/cold-sms-sequences/route.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2e03485c7d80cec", "name": "Commented-code block (6 lines) in app/api/cron/audit-followup/route.ts:170", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/audit-followup/route.ts:170"}, "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-3acc7e86e46defe8", "name": "Commented-code block (5 lines) in app/api/cron/monthly-report/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/monthly-report/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29e5a5dbc815f17d", "name": "Commented-code block (6 lines) in app/api/cron/email-verify/route.ts:40", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/email-verify/route.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-612f1f42e2a589f8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/mack-reextract-lite/route.ts:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/mack-reextract-lite/route.ts:73"}, "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-eb40f7df8cba90ad", "name": "Commented-code block (7 lines) in app/api/cron/voice-cold-call/route.ts:227", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/voice-cold-call/route.ts:227"}, "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-8a0f8eb9640ee7af", "name": "Commented-code block (6 lines) in app/api/cron/meeting-recording-poll/route.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/meeting-recording-poll/route.ts:37"}, "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-ad9f06c0ac5bc137", "name": "Commented-code block (6 lines) in app/api/cron/council/[agent]/route.ts:68", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/council/[agent]/route.ts:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5072d96679447d2d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/blog-publish/route.ts:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/blog-publish/route.ts: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-b449609628efb00e", "name": "Commented-code block (5 lines) in app/api/cron/billing-jobs/route.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/billing-jobs/route.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e313da0d8dbbca8c", "name": "Commented-code block (7 lines) in app/api/cron/enrich-prospects-from-website/route.ts:43", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/enrich-prospects-from-website/route.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fcb02a7641ec599", "name": "Commented-code block (6 lines) in app/api/cron/cold-email-learn-daily/route.ts:131", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/cold-email-learn-daily/route.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13b0d3351302f748", "name": "Commented-code block (5 lines) in app/api/cron/sms-number-circuit-breaker/route.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/sms-number-circuit-breaker/route.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98f95b2858d544ce", "name": "Commented-code block (6 lines) in app/api/cron/calendar-sync/route.ts:148", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/calendar-sync/route.ts:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66dd475cc2e1c492", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/apollo-insurance-enrich/route.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/apollo-insurance-enrich/route.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-04e9ae542ef34ca4", "name": "Commented-code block (6 lines) in app/api/agent-triggers/schedule/route.ts:17", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/agent-triggers/schedule/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43c7f3d9ec3c0350", "name": "Commented-code block (6 lines) in app/api/agent-triggers/twilio-sms/route.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/agent-triggers/twilio-sms/route.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0215c50dbe30fdb8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/vapi/call/route.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/vapi/call/route.ts: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-cd4d22bc3084a03a", "name": "Commented-code block (8 lines) in app/api/book-call/route.ts:130", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/book-call/route.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee39e8eb086a6eda", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/route.ts:248", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/route.ts:248"}, "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-f93a5c376581c177", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/availability/route.ts:260", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/availability/route.ts:260"}, "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-3ac3f398c0a6c0fa", "name": "Commented-code block (5 lines) in app/api/track/open/route.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/track/open/route.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6aab701da7e7356", "name": "Commented-code block (5 lines) in app/api/webhooks/twilio/status/route.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/webhooks/twilio/status/route.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df81919038839f11", "name": "Commented-code block (6 lines) in app/api/webhooks/gmail/pubsub/route.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/webhooks/gmail/pubsub/route.ts:37"}, "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-927e43a0d1139017", "name": "Commented-code block (7 lines) in app/api/webhooks/vapi/route.ts:58", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/webhooks/vapi/route.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c26ef966f4e9c719", "name": "Commented-code block (6 lines) in app/api/inbox/conversations/route.ts:45", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/inbox/conversations/route.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-203965fc990b25c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/connections/smoke-test/route.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/connections/smoke-test/route.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-9210be609371f689", "name": "Commented-code block (6 lines) in app/api/cancel-survey/route.ts:47", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cancel-survey/route.ts:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80105a9dfd82b9ad", "name": "Commented-code block (5 lines) in app/signup/page.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in app/signup/page.tsx:18"}, "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-a7f1795643c2574b", "name": "Commented-code block (5 lines) in app/c/[id]/route.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in app/c/[id]/route.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fce83eb0c0cd04fb", "name": "Commented-code block (5 lines) in app/v5/page.tsx:26", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/page.tsx:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-137717d540797198", "name": "Commented-code block (6 lines) in app/v5/layout.tsx:46", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/layout.tsx: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-524b8e17a694724f", "name": "Commented-code block (5 lines) in app/v5/_client-shell.tsx:62", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/_client-shell.tsx:62"}, "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-efff917dc3b72b2e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/_client-shell.tsx:488", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/_client-shell.tsx:488"}, "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-20698210f81e6303", "name": "Commented-code block (5 lines) in app/v5/settings/layout.tsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/settings/layout.tsx:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51be7e6de13597b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/settings/crons/page.tsx:160", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/settings/crons/page.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-5278bab20e8d767a", "name": "Commented-code block (7 lines) in app/v5/employees/page.tsx:51", "shortDescription": {"text": "Commented-code block (7 lines) in app/v5/employees/page.tsx:51"}, "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-3b2badd2fab1a59c", "name": "Commented-code block (7 lines) in app/v5/employees/_hub-client.tsx:132", "shortDescription": {"text": "Commented-code block (7 lines) in app/v5/employees/_hub-client.tsx:132"}, "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-45b6aa6b38e30b70", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/_hub-client.tsx:412", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/_hub-client.tsx:412"}, "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-d31f59c597aa2292", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/_drag-drop-upload.tsx:59", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/_drag-drop-upload.tsx:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19443a7682502c81", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:123"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96160f69124221ab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:90"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c825171ef35a7cb0", "name": "Commented-code block (5 lines) in app/v5/employees/[slug]/page.tsx:198", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/employees/[slug]/page.tsx:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed94af530b353ec9", "name": "Commented-code block (8 lines) in app/v5/employees/[slug]/_today-landing.tsx:53", "shortDescription": {"text": "Commented-code block (8 lines) in app/v5/employees/[slug]/_today-landing.tsx:53"}, "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-bef4f0546e40a478", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_today-landing.tsx:226", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_today-landing.tsx:226"}, "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-66311529c7d805c5", "name": "Commented-code block (5 lines) in app/v5/employees/[slug]/_blocks.tsx:876", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/employees/[slug]/_blocks.tsx:876"}, "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-2600ad7a5be4d28a", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/team/_press_desk_view.tsx:277", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/team/_press_desk_view.tsx:277"}, "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-8d673e5914f94260", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:316", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:316"}, "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-dd479484240121d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:129", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:129"}, "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-1585e5f9352ac649", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/anomalies/_client.tsx:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/anomalies/_client.tsx:110"}, "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-ce6fd074e9e7bac2", "name": "Commented-code block (7 lines) in app/v5/employees/[slug]/assistant/_client.tsx:36", "shortDescription": {"text": "Commented-code block (7 lines) in app/v5/employees/[slug]/assistant/_client.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a2e0f1c8849cfbc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/assistant/_client.tsx:304", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/assistant/_client.tsx:304"}, "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-6e93fea2836d9160", "name": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/page.tsx:50", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/page.tsx:50"}, "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-75df19771fd9280b", "name": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/_queue-client.tsx:27", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/_queue-client.tsx:27"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7aaba5c6046a26b4", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/_tabs.tsx:72", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/_tabs.tsx:72"}, "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-6575390842fa4de3", "name": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/jobs/[id]/page.tsx:42", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/jobs/[id]/page.tsx:42"}, "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-aa75d915533f31e8", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/page.tsx:128", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/page.tsx:128"}, "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-8846e69470c4abbc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285"}, "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-e4e1d3b686e85e83", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75db2abf8d903f5c", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/page.tsx:121", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/page.tsx:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cadc5b1802e4de1", "name": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:67", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:67"}, "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-eb07ab194cc8e5be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658"}, "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-917ffb26d9ff6971", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:189", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:189"}, "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-acabe1101da9ef57", "name": "Commented-code block (7 lines) in app/v5/connect/_admin-view.tsx:68", "shortDescription": {"text": "Commented-code block (7 lines) in app/v5/connect/_admin-view.tsx:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7970fe9d001a1b41", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_admin-view.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_admin-view.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-aa5dafa83ab4fc47", "name": "Commented-code block (5 lines) in app/v5/connect/_client-view.tsx:27", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/connect/_client-view.tsx:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-856f433074960b11", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_client-view.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_client-view.tsx:88"}, "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-e8b18e06e7ecd98b", "name": "Commented-code block (5 lines) in app/v5/leads/_page-legacy.tsx:210", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/leads/_page-legacy.tsx:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d233ef50b6d5e07", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/leads/_page-legacy.tsx:167", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/leads/_page-legacy.tsx:167"}, "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-672f4f049a250fcf", "name": "Commented-code block (5 lines) in app/v5/dashboard/page.tsx:42", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/dashboard/page.tsx:42"}, "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-31daaa578c47543c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/voice/page.tsx:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/voice/page.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-d67f09448ce1a030", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:364", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:364"}, "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-132bb8f9bfc7dd6a", "name": "Commented-code block (6 lines) in app/v5/employees-admin/[slug]/page.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/v5/employees-admin/[slug]/page.tsx: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-d21d44734d45b6aa", "name": "Commented-code block (5 lines) in app/v5/admin/audits/audit-table-client.tsx:231", "shortDescription": {"text": "Commented-code block (5 lines) in app/v5/admin/audits/audit-table-client.tsx:231"}, "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-278199feebca1823", "name": "Commented-code block (7 lines) in app/v5/admin/audits/[id]/review-client.tsx:66", "shortDescription": {"text": "Commented-code block (7 lines) in app/v5/admin/audits/[id]/review-client.tsx:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8f1285ba432df16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/_managers.tsx:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/_managers.tsx:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a9e35673f924e6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.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-1fd6407fe468682c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25"}, "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-0e86bc2e1807a3b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/agents/_page-legacy.tsx:196", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/agents/_page-legacy.tsx:196"}, "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-8f1879717ff47380", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/content/page.tsx:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/content/page.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-31f75e2a6b09f8d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/campaigns/_page-legacy.tsx:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/campaigns/_page-legacy.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-c6b1f19a6b16917e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/upgrade/page.tsx:153", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/upgrade/page.tsx:153"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4044820e432801e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/senders/_view.tsx:461", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/senders/_view.tsx:461"}, "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-a7e79c7a3d4c0c96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/council/page.tsx:115", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/council/page.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-a2d01cd3f8a92057", "name": "Commented-code block (8 lines) in app/v5/inbox/_page-legacy.tsx:234", "shortDescription": {"text": "Commented-code block (8 lines) in app/v5/inbox/_page-legacy.tsx:234"}, "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-36b613a75bf7618d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/inbox/_page-legacy.tsx:430", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/inbox/_page-legacy.tsx:430"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7df72215dbd95f0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/retry.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/retry.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-f128f1b0b2638dae", "name": "Commented-code block (6 lines) in app/workers/outbound.ts:73", "shortDescription": {"text": "Commented-code block (6 lines) in app/workers/outbound.ts:73"}, "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-e7561e0abe3a7c76", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/outbound.ts:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/outbound.ts:91"}, "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-0bc6ea3421e5ff89", "name": "Commented-code block (5 lines) in app/admin/funnel/page.tsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/funnel/page.tsx:28"}, "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-1fc3586b8e9c1002", "name": "Commented-code block (18 lines) in app/v9/_shell.tsx:31", "shortDescription": {"text": "Commented-code block (18 lines) in app/v9/_shell.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdc35701fa63f10a", "name": "Commented-code block (6 lines) in app/v9/layout.tsx:34", "shortDescription": {"text": "Commented-code block (6 lines) in app/v9/layout.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0706fd3785ff042a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/settings/page.tsx:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/settings/page.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-9c67c09883ed4b7f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/page.tsx:349", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/page.tsx:349"}, "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-659d0d1d5c7f5aab", "name": "Commented-code block (5 lines) in app/v9/workspaces/[id]/_admin-shell.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in app/v9/workspaces/[id]/_admin-shell.tsx:14"}, "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-31b42fba9aa6f351", "name": "Commented-code block (5 lines) in app/v9/workspaces/[id]/page.tsx:96", "shortDescription": {"text": "Commented-code block (5 lines) in app/v9/workspaces/[id]/page.tsx:96"}, "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-b2d0b8bb0bfd5315", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/page.tsx:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/page.tsx:108"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3564ed5a85f2932d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/settings/page.tsx:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/settings/page.tsx:114"}, "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-37ee1e2f7195fba6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/manager/page.tsx:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/manager/page.tsx:144"}, "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-cff06822419310fc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/audit-log/page.tsx:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/audit-log/page.tsx:39"}, "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-ca5f265d1084f6b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/pricing/page.tsx:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/pricing/page.tsx:66"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-734cdc2978974f5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-from-call/page.tsx:231", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-from-call/page.tsx: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-9f8f29b080f995cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-with-ai/_client.tsx:491", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-with-ai/_client.tsx:491"}, "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-f0e3ce9ca9c2e4ff", "name": "Commented-code block (9 lines) in app/v9/audits/_page-legacy.tsx:295", "shortDescription": {"text": "Commented-code block (9 lines) in app/v9/audits/_page-legacy.tsx:295"}, "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-85e2591b0c1a6d42", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/billing/page.tsx:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/billing/page.tsx:119"}, "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-c1601061acbc5c65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/portfolio/[tenantId]/page.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/portfolio/[tenantId]/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-389a9d3f4121c28f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/mack-benchmark/page.tsx:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/mack-benchmark/page.tsx:144"}, "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-e4da9551dbe7c716", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/inbox/page.tsx:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/inbox/page.tsx:117"}, "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-6224d896b70a377f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-task-center.tsx:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-task-center.tsx:89"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c37187f10dfda6aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-workspace-signals.tsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-workspace-signals.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-5d041249759a52d2", "name": "Commented-code block (5 lines) in app/(app)/layout.tsx:59", "shortDescription": {"text": "Commented-code block (5 lines) in app/(app)/layout.tsx:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-010cce56d87d4337", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/(app)/billing/start-trial/page.tsx:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(app)/billing/start-trial/page.tsx:86"}, "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-9f42de07350e077b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/q/[token]/_actions.tsx:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/q/[token]/_actions.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-a2e3cafdf94092ce", "name": "Commented-code block (5 lines) in app/v/[shortId]/route.ts:107", "shortDescription": {"text": "Commented-code block (5 lines) in app/v/[shortId]/route.ts:107"}, "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-0b2581faaa0a137b", "name": "Commented-code block (6 lines) in app/reports/monthly/[token]/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/reports/monthly/[token]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f0bdc642cc425ac", "name": "Commented-code block (6 lines) in app/(marketing)/layout.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/(marketing)/layout.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fde42ad9542ae94c", "name": "Commented-code block (6 lines) in app/(marketing)/case-studies/page.tsx:123", "shortDescription": {"text": "Commented-code block (6 lines) in app/(marketing)/case-studies/page.tsx:123"}, "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-4f3d3c6d4761db09", "name": "Commented-code block (7 lines) in app/(marketing)/demo/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in app/(marketing)/demo/page.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99c296a834b42415", "name": "Legacy-named symbol `custom_ai_v1` in app/(marketing)/audit/audit-form.tsx:211", "shortDescription": {"text": "Legacy-named symbol `custom_ai_v1` in app/(marketing)/audit/audit-form.tsx:211"}, "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-40ebaf9d872b3102", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/(marketing)/audit/book/[id]/slot-picker.tsx:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(marketing)/audit/book/[id]/slot-picker.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-2846323735a130e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/google-oidc.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/google-oidc.ts:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1950e5a7072708d1", "name": "Commented-code block (5 lines) in lib/kill-switch.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/kill-switch.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c56982b0b09bf34b", "name": "Commented-code block (5 lines) in lib/heartbeat.ts:43", "shortDescription": {"text": "Commented-code block (5 lines) in lib/heartbeat.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b6c5cdafe54c354", "name": "Commented-code block (5 lines) in lib/alerts.ts:82", "shortDescription": {"text": "Commented-code block (5 lines) in lib/alerts.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7de8b870fa1fb4b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/alerts.ts:317", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/alerts.ts:317"}, "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-3592d741716d1552", "name": "Commented-code block (7 lines) in lib/anthropic-logged.ts:56", "shortDescription": {"text": "Commented-code block (7 lines) in lib/anthropic-logged.ts:56"}, "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-898239c9d2d50c42", "name": "Commented-code block (7 lines) in lib/tenant.ts:144", "shortDescription": {"text": "Commented-code block (7 lines) in lib/tenant.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eb3b85dfb3397d1", "name": "Commented-code block (5 lines) in lib/rate-limit.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rate-limit.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dda22bd1b08c1aec", "name": "Commented-code block (8 lines) in lib/postgrest-filter.ts:7", "shortDescription": {"text": "Commented-code block (8 lines) in lib/postgrest-filter.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f4e6d1a246f4e3c", "name": "Commented-code block (6 lines) in lib/agent-runner.ts:255", "shortDescription": {"text": "Commented-code block (6 lines) in lib/agent-runner.ts:255"}, "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-5d6b29064cb6ae60", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resilient-fetch.ts:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resilient-fetch.ts:4"}, "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-a89065d953af57c0", "name": "Commented-code block (5 lines) in lib/integrations/twilio.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/twilio.ts:67"}, "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-4dcf0d5827aafe9d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/twilio.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/twilio.ts: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-cac470591820f7e5", "name": "Commented-code block (5 lines) in lib/integrations/jobnimbus.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/jobnimbus.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e969ecb00b51fe30", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/jobnimbus.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/jobnimbus.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61869f3f94180bb7", "name": "Commented-code block (5 lines) in lib/integrations/gmail.ts:161", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/gmail.ts:161"}, "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-6e42797e08148b06", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/gmail.ts:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/gmail.ts:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5fdb7152175129cf", "name": "Commented-code block (5 lines) in lib/integrations/calendar.ts:130", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/calendar.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82daf2611bca7a6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/calendar.ts:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/calendar.ts:25"}, "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-b430cbe31f831b92", "name": "Commented-code block (5 lines) in lib/integrations/stackit.ts:359", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/stackit.ts:359"}, "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-b63f1c3a76d9206a", "name": "Commented-code block (5 lines) in lib/integrations/vapi.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/vapi.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0aec7484f73f998c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/vapi.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/vapi.ts: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-d9bb506385fbbb6f", "name": "Commented-code block (5 lines) in lib/integrations/acculynx.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/acculynx.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e588aa462b1f67b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/acculynx.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/acculynx.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b3e51aa6bc39885", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/slack.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/slack.ts: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-49fab48edea5eadb", "name": "Commented-code block (5 lines) in lib/integrations/outlook.ts:190", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/outlook.ts:190"}, "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-857890e3c0b86f99", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/outlook.ts:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/outlook.ts:34"}, "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-1c2f0d36e4fa99dd", "name": "Commented-code block (6 lines) in lib/integrations/servicetitan.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/integrations/servicetitan.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9f88c1069b125a7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/servicetitan.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/servicetitan.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3789c47192baef1a", "name": "Commented-code block (5 lines) in lib/integrations/google/token.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in lib/integrations/google/token.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07f53cbe6ae356d7", "name": "Commented-code block (9 lines) in lib/employees/client-metrics.ts:85", "shortDescription": {"text": "Commented-code block (9 lines) in lib/employees/client-metrics.ts:85"}, "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-38d5070f2060771d", "name": "Commented-code block (5 lines) in lib/outreach/humanize.ts:116", "shortDescription": {"text": "Commented-code block (5 lines) in lib/outreach/humanize.ts:116"}, "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-d001ba5689ca111f", "name": "Commented-code block (5 lines) in lib/safeguards/alerts.ts:78", "shortDescription": {"text": "Commented-code block (5 lines) in lib/safeguards/alerts.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2a13815d3e9fb79", "name": "Legacy-named symbol `timestamp_too_old` in lib/meetings/hmac.ts:66", "shortDescription": {"text": "Legacy-named symbol `timestamp_too_old` in lib/meetings/hmac.ts:66"}, "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-a8f2de9bafebb663", "name": "Legacy-named symbol `timestamp_too_old` in lib/meetings/recall.ts:203", "shortDescription": {"text": "Legacy-named symbol `timestamp_too_old` in lib/meetings/recall.ts:203"}, "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-7cb900f9cdcd0d58", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/meetings/recall.ts:115", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/meetings/recall.ts: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-c6845b06b9c8c27f", "name": "Commented-code block (7 lines) in lib/mack/evidence-card.ts:108", "shortDescription": {"text": "Commented-code block (7 lines) in lib/mack/evidence-card.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1b6b25031990af2", "name": "Commented-code block (5 lines) in lib/mack/load-job-structures-db.ts:180", "shortDescription": {"text": "Commented-code block (5 lines) in lib/mack/load-job-structures-db.ts:180"}, "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-0bf2e7a2f72e0fe3", "name": "Commented-code block (7 lines) in lib/mack/confidence-rescore.ts:724", "shortDescription": {"text": "Commented-code block (7 lines) in lib/mack/confidence-rescore.ts:724"}, "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-906ab1caa44a3433", "name": "Legacy-named symbol `mack_sales_review_v2` in lib/mack/auto-approve.ts:5", "shortDescription": {"text": "Legacy-named symbol `mack_sales_review_v2` in lib/mack/auto-approve.ts:5"}, "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-b4c01b7c4a6b807c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/mack/strategies/vision-focused.ts:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/mack/strategies/vision-focused.ts:119"}, "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-132a3ae961ab9d65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ams/adapters/nowcerts.ts:218", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ams/adapters/nowcerts.ts:218"}, "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-47a0529e00ebca05", "name": "Commented-code block (13 lines) in lib/email/warmup-filter.ts:196", "shortDescription": {"text": "Commented-code block (13 lines) in lib/email/warmup-filter.ts:196"}, "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-99980a9f0a8db954", "name": "Commented-code block (5 lines) in lib/qa/onboarding-smoke.ts:402", "shortDescription": {"text": "Commented-code block (5 lines) in lib/qa/onboarding-smoke.ts:402"}, "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-47210c369c1349e6", "name": "Commented-code block (7 lines) in lib/dashboard/analytics.ts:609", "shortDescription": {"text": "Commented-code block (7 lines) in lib/dashboard/analytics.ts:609"}, "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-82e5db8e13eb69bc", "name": "Commented-code block (5 lines) in lib/dashboard/admin-morning-briefing.ts:172", "shortDescription": {"text": "Commented-code block (5 lines) in lib/dashboard/admin-morning-briefing.ts:172"}, "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-11e84dddbd0c9157", "name": "Commented-code block (5 lines) in lib/agent/handle-sms-reply.ts:435", "shortDescription": {"text": "Commented-code block (5 lines) in lib/agent/handle-sms-reply.ts:435"}, "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-d9668b09e6d2b1e4", "name": "Commented-code block (6 lines) in lib/custom-employees/engineer-prompts.ts:376", "shortDescription": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-prompts.ts:376"}, "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-c860e0fb547fc75e", "name": "Commented-code block (5 lines) in lib/custom-employees/mack-quote-pdf.ts:166", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-quote-pdf.ts:166"}, "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-f5f957f002c39bee", "name": "Commented-code block (5 lines) in lib/custom-employees/plan-summary-auditor.ts:140", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/plan-summary-auditor.ts:140"}, "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-416199c182a02aab", "name": "Commented-code block (6 lines) in lib/custom-employees/engineer-submittal-pdf.ts:71", "shortDescription": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-submittal-pdf.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a0c227cc0a385de", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/engineer-submittal-pdf.ts:824", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/engineer-submittal-pdf.ts:824"}, "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-1666db652a81e2c7", "name": "Commented-code block (6 lines) in lib/custom-employees/engineer-postprocess.ts:278", "shortDescription": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-postprocess.ts:278"}, "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-dd5f9e2720db8749", "name": "Commented-code block (5 lines) in lib/custom-employees/artifact-generator.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/artifact-generator.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e17270f01acb85c5", "name": "Commented-code block (5 lines) in lib/custom-employees/contractor-processor.ts:316", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/contractor-processor.ts:316"}, "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-4e8521f219402582", "name": "Commented-code block (5 lines) in lib/custom-employees/mack-production-pdf.ts:192", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-production-pdf.ts:192"}, "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-0860008592175a83", "name": "Commented-code block (7 lines) in lib/custom-employees/mack-blind-benchmark.ts:410", "shortDescription": {"text": "Commented-code block (7 lines) in lib/custom-employees/mack-blind-benchmark.ts:410"}, "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-44eae61e854ed3c3", "name": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf-v2.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf-v2.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8001d98b3ec9ad0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/mack-submittal-pdf-v2.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/mack-submittal-pdf-v2.ts:29"}, "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-bb9c3b699e8ce2e7", "name": "Commented-code block (7 lines) in lib/custom-employees/processor.ts:22", "shortDescription": {"text": "Commented-code block (7 lines) in lib/custom-employees/processor.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9565036b2ffbcacd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/processor.ts:965", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/processor.ts:965"}, "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-5018825bb672bfd3", "name": "Commented-code block (5 lines) in lib/custom-employees/structure-screenshot-renderer.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/structure-screenshot-renderer.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6e60ecb1ee18495", "name": "Commented-code block (5 lines) in lib/custom-employees/per-page-extractor.ts:340", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/per-page-extractor.ts:340"}, "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-f88e14c7978825b6", "name": "Commented-code block (5 lines) in lib/custom-employees/mack-opus-benchmark.ts:236", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-opus-benchmark.ts:236"}, "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-bbc20deab39f96ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/contractor-pdf-render.ts:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/contractor-pdf-render.ts:16"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32705e10ff03c111", "name": "Commented-code block (8 lines) in lib/custom-employees/mack-purchasing-pdf.ts:130", "shortDescription": {"text": "Commented-code block (8 lines) in lib/custom-employees/mack-purchasing-pdf.ts:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-474eff5becc170ae", "name": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf.ts:613", "shortDescription": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf.ts:613"}, "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-a48a115f3bafc79b", "name": "Commented-code block (5 lines) in lib/conversations/log-event.ts:139", "shortDescription": {"text": "Commented-code block (5 lines) in lib/conversations/log-event.ts:139"}, "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-41ca2ce3fa5d956d", "name": "Commented-code block (9 lines) in lib/v5/mack-route-guard.ts:76", "shortDescription": {"text": "Commented-code block (9 lines) in lib/v5/mack-route-guard.ts:76"}, "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-ba6b1f34145bd4a3", "name": "Commented-code block (8 lines) in lib/design/v2/primitives/HeroSection.tsx:23", "shortDescription": {"text": "Commented-code block (8 lines) in lib/design/v2/primitives/HeroSection.tsx:23"}, "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-48d34400f947e835", "name": "Commented-code block (5 lines) in lib/audit/prompt.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in lib/audit/prompt.ts:80"}, "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-8c12687ca8c5a3a2", "name": "Commented-code block (9 lines) in lib/oauth/providers.ts:71", "shortDescription": {"text": "Commented-code block (9 lines) in lib/oauth/providers.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5bfcc06f3c8e727", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/oauth/tokens.ts:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/oauth/tokens.ts:90"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0912106fb9f1824", "name": "Commented-code block (6 lines) in lib/oauth/crypto.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in lib/oauth/crypto.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e44a8a14baa86d1", "name": "Commented-code block (6 lines) in lib/billing/stripe.ts:59", "shortDescription": {"text": "Commented-code block (6 lines) in lib/billing/stripe.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60af62814b594417", "name": "Commented-code block (5 lines) in lib/billing/ai-cost-tracker.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in lib/billing/ai-cost-tracker.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1f990bc49d51926", "name": "Commented-code block (5 lines) in lib/workspace-templates/smoke-test-runner.ts:211", "shortDescription": {"text": "Commented-code block (5 lines) in lib/workspace-templates/smoke-test-runner.ts:211"}, "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-3e501314814e821a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/cold-mailbox/poll.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/cold-mailbox/poll.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-18d3839e22316681", "name": "Commented-code block (7 lines) in lib/twilio/sms-sender.ts:28", "shortDescription": {"text": "Commented-code block (7 lines) in lib/twilio/sms-sender.ts:28"}, "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-66c66a601792741b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract-business.ts:148", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract-business.ts:148"}, "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-7cd1f9a237a9529f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/harvest-historical-plans.ts:143", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/harvest-historical-plans.ts:143"}, "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-2c1e78b0d60bc3c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract.ts:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract.ts:157"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7beb216a389ca958", "name": "Commented-code block (6 lines) in lib/agents/builder.ts:78", "shortDescription": {"text": "Commented-code block (6 lines) in lib/agents/builder.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b2ab0cf22fe65b4", "name": "Commented-code block (7 lines) in lib/onboarding/seed-agents.ts:77", "shortDescription": {"text": "Commented-code block (7 lines) in lib/onboarding/seed-agents.ts:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c728ff76e18536d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/onboarding/extract-brand-voice.ts:106", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/onboarding/extract-brand-voice.ts:106"}, "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-c4998004a625d752", "name": "Commented-code block (6 lines) in lib/v9/home-revenue.ts:65", "shortDescription": {"text": "Commented-code block (6 lines) in lib/v9/home-revenue.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0441c262560bd310", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/v9/tab-seen.ts:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/v9/tab-seen.ts: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-98ea52f765c53ecd", "name": "Commented-code block (5 lines) in lib/supabase/server.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in lib/supabase/server.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-239c71218a0dd5d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/supabase/server.ts:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/supabase/server.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-04a9dc39593c017e", "name": "Commented-code block (5 lines) in lib/retention/monthly-report.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/retention/monthly-report.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8026c4a45a0f0f95", "name": "Commented-code block (6 lines) in lib/retention/learn-tone.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/retention/learn-tone.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37fd8d38f0f3b829", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/retention/learn-tone.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/retention/learn-tone.ts: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-fdb343f7de6fb7cf", "name": "Commented-code block (12 lines) in lib/managers/task-plans.ts:475", "shortDescription": {"text": "Commented-code block (12 lines) in lib/managers/task-plans.ts:475"}, "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-6c459c120c4063f6", "name": "Commented-code block (7 lines) in lib/managers/tools.ts:404", "shortDescription": {"text": "Commented-code block (7 lines) in lib/managers/tools.ts:404"}, "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-6b66d222da8ef1c9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/tools.ts:1995", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/tools.ts:1995"}, "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-2b8ad970f0fdd75c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/apply-proposal.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/apply-proposal.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-fa445a01a59c8d11", "name": "Commented-code block (7 lines) in lib/managers/runner.ts:30", "shortDescription": {"text": "Commented-code block (7 lines) in lib/managers/runner.ts:30"}, "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-937a717919ef2fd7", "name": "Commented-code block (5 lines) in lib/council/admin-views.ts:52", "shortDescription": {"text": "Commented-code block (5 lines) in lib/council/admin-views.ts:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aac28dafc351a72d", "name": "Commented-code block (6 lines) in lib/council/claude.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/council/claude.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fc9123a8bdb18fc", "name": "Commented-code block (10 lines) in lib/council/budget.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in lib/council/budget.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69f8879143f6f80b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/council/tools/web-search.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/council/tools/web-search.ts:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0df2bd988688d684", "name": "Commented-code block (5 lines) in lib/council/tools/open-github-pr.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in lib/council/tools/open-github-pr.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d1a6d6e969fe863", "name": "Commented-code block (5 lines) in lib/sms/shortlink.ts:66", "shortDescription": {"text": "Commented-code block (5 lines) in lib/sms/shortlink.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-949ac61a4b87ecd7", "name": "Commented-code block (6 lines) in lib/vapi/client.ts:220", "shortDescription": {"text": "Commented-code block (6 lines) in lib/vapi/client.ts:220"}, "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-7aca74eccf4fa3c0", "name": "Legacy-named symbol `isLegacy` in lib/vapi/assistant-config.ts:231", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in lib/vapi/assistant-config.ts:231"}, "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-e0f35a8f020264d3", "name": "Commented-code block (15 lines) in lib/vapi/assistant-config.ts:174", "shortDescription": {"text": "Commented-code block (15 lines) in lib/vapi/assistant-config.ts:174"}, "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-884780b8b993a821", "name": "Legacy-named symbol `audit_v1` in lib/cold-email/vertical-copy.ts:476", "shortDescription": {"text": "Legacy-named symbol `audit_v1` in lib/cold-email/vertical-copy.ts:476"}, "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-972818788cfc10bb", "name": "Commented-code block (5 lines) in lib/cold-email/vertical-copy.ts:307", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cold-email/vertical-copy.ts:307"}, "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-6bc3b57ad3d39a9f", "name": "Commented-code block (7 lines) in lib/cold-email/composer.ts:30", "shortDescription": {"text": "Commented-code block (7 lines) in lib/cold-email/composer.ts:30"}, "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-f199cfd890b770a0", "name": "Commented-code block (8 lines) in lib/cold-email/angle-bank.ts:667", "shortDescription": {"text": "Commented-code block (8 lines) in lib/cold-email/angle-bank.ts:667"}, "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-bca7973255274628", "name": "Commented-code block (9 lines) in lib/cold-email/dispatcher.ts:34", "shortDescription": {"text": "Commented-code block (9 lines) in lib/cold-email/dispatcher.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aeddfcfa5c981498", "name": "Commented-code block (5 lines) in lib/cold-email/crypto.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cold-email/crypto.ts:16"}, "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-a685b41e5ff5e5ea", "name": "Commented-code block (10 lines) in lib/llm/mack-model-routes.ts:103", "shortDescription": {"text": "Commented-code block (10 lines) in lib/llm/mack-model-routes.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f29f7091e8531052", "name": "Legacy-named symbol `timestamp_too_old` in services/meeting-bot/src/hmac.ts:42", "shortDescription": {"text": "Legacy-named symbol `timestamp_too_old` in services/meeting-bot/src/hmac.ts:42"}, "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-aee2f57f711ac33a", "name": "205 env vars used in code but missing from .env.example", "shortDescription": {"text": "205 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_ALERT_PHONE`, `ADMIN_API_TOKEN`, `ADMIN_DEPLOY_SECRET`, `ADMIN_NOTIFY_EMAIL`, `ADMIN_NOTIFY_PHONE`, `ADMIN_SMS_RECIPIENTS`, `AGENCYZOOM_CLIENT_ID`, `AGENCYZOOM_CLIENT_SECRET` + 197 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e7d41a54ab418ec9", "name": "Dangling fetch: GET /api/billing/subscription (components/SubscriptionBanner.tsx:15)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/subscription (components/SubscriptionBanner.tsx:15)"}, "fullDescription": {"text": "`components/SubscriptionBanner.tsx:15` calls `GET /api/billing/subscription` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/subscription`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28923fea64ca909b", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/signoff (components/mack/EngineerCompletionScreen.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/signoff (components/mack/EngineerCompletionScreen.tsx:108)"}, "fullDescription": {"text": "`components/mack/EngineerCompletionScreen.tsx:108` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/signoff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/signoff`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ba4b982aa4b0e52", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerCompletio", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerCompletionScreen.tsx:133)"}, "fullDescription": {"text": "`components/mack/EngineerCompletionScreen.tsx:133` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/engineer-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-7671649cde5172c4", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-quote (components/mack/GenerateQuoteButton.", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-quote (components/mack/GenerateQuoteButton.tsx:31)"}, "fullDescription": {"text": "`components/mack/GenerateQuoteButton.tsx:31` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-quote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/generate-quote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d38b50cf59b414cf", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-field (components/mack/ExceptionsReview.tsx:7", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-field (components/mack/ExceptionsReview.tsx:79)"}, "fullDescription": {"text": "`components/mack/ExceptionsReview.tsx:79` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-field` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-field`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a47a3b7e5c5b2e8b", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:122)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:122)"}, "fullDescription": {"text": "`components/mack/MackSettingsClient.tsx:122` calls `POST /api/v5/custom-employees/${slug}/stackit-credentials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/stackit-credentials`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a928c5271af1679", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:144)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:144)"}, "fullDescription": {"text": "`components/mack/MackSettingsClient.tsx:144` calls `POST /api/v5/custom-employees/${slug}/stackit-credentials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/stackit-credentials`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b38185e4756a369", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/mack-settings (components/mack/MackSettingsClient.tsx:188)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/mack-settings (components/mack/MackSettingsClient.tsx:188)"}, "fullDescription": {"text": "`components/mack/MackSettingsClient.tsx:188` calls `POST /api/v5/custom-employees/${slug}/mack-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/mack-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-088f99767642e6a4", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReview", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:167)"}, "fullDescription": {"text": "`components/mack/StructureReviewModal.tsx:167` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-field`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25fbd03307d2e29c", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReview", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:204)"}, "fullDescription": {"text": "`components/mack/StructureReviewModal.tsx:204` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-field`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0074b1cb472c37e4", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReview", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:307)"}, "fullDescription": {"text": "`components/mack/StructureReviewModal.tsx:307` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-field`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-093c754ec2a461b2", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesCompletionScre", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesCompletionScreen.tsx:259)"}, "fullDescription": {"text": "`components/mack/SalesCompletionScreen.tsx:259` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structure-edits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-377f6540be7af7bd", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/EngineerReviewWizar", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/EngineerReviewWizard.tsx:560)"}, "fullDescription": {"text": "`components/mack/EngineerReviewWizard.tsx:560` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structure-edits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33ee73c670f68c85", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerReviewWiz", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerReviewWizard.tsx:654)"}, "fullDescription": {"text": "`components/mack/EngineerReviewWizard.tsx:654` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/engineer-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-915efe7491d0fe2e", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (components/mack/GenerateViewsB", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (components/mack/GenerateViewsButton.tsx:55)"}, "fullDescription": {"text": "`components/mack/GenerateViewsButton.tsx:55` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/generate-screenshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46bf43e57755e365", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-dimension-override (components/mack/Enginee", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-dimension-override (components/mack/EngineerDimensionsPanel.tsx:71)"}, "fullDescription": {"text": "`components/mack/EngineerDimensionsPanel.tsx:71` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-dimension-override` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/engineer-dimension-override`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe3588e5e8294a9d", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesReviewWizard.t", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesReviewWizard.tsx:520)"}, "fullDescription": {"text": "`components/mack/SalesReviewWizard.tsx:520` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structure-edits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7821b7d0bffa01b", "name": "Dangling fetch: GET /api/v5/senders/feed (components/v5/senders-v2.tsx:147)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/senders/feed (components/v5/senders-v2.tsx:147)"}, "fullDescription": {"text": "`components/v5/senders-v2.tsx:147` calls `GET /api/v5/senders/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37171f4edcfd9d56", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (components/v5/floating-intake-button.tsx:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (components/v5/floating-intake-button.tsx:106)"}, "fullDescription": {"text": "`components/v5/floating-intake-button.tsx:106` calls `POST /api/v5/custom-employees/${personaSlug}/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/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-cc517494fcf41f4c", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (components/v5/floating-intake-button.t", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (components/v5/floating-intake-button.tsx:122)"}, "fullDescription": {"text": "`components/v5/floating-intake-button.tsx:122` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22e4cace01a81ffe", "name": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home-v2.tsx:284)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home-v2.tsx:284)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:284` calls `GET /api/v5/home/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1073947569454e0e", "name": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home-v2.tsx:285)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home-v2.tsx:285)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:285` calls `GET /api/v5/home/outbound-overview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/outbound-overview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6588456fe816799", "name": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home-v2.tsx:286)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home-v2.tsx:286)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:286` calls `GET /api/v5/activity?limit=8` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f924dd69de56295a", "name": "Dangling fetch: GET /api/v9/workspaces (components/v5/admin-home-v2.tsx:287)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces (components/v5/admin-home-v2.tsx:287)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:287` calls `GET /api/v9/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-a53db32023a18aec", "name": "Dangling fetch: GET /api/v9/workspace-ai-activity?days=7&limit=40 (components/v5/admin-home-v2.tsx:288)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspace-ai-activity?days=7&limit=40 (components/v5/admin-home-v2.tsx:288)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:288` calls `GET /api/v9/workspace-ai-activity?days=7&limit=40` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-ai-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f38bdb2f505b5d5", "name": "Dangling fetch: GET /api/v9/workspace-task-plans?status=active&limit=20 (components/v5/admin-home-v2.tsx:289)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspace-task-plans?status=active&limit=20 (components/v5/admin-home-v2.tsx:289)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:289` calls `GET /api/v9/workspace-task-plans?status=active&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: `/v9/workspace-task-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-754f8a00b0793784", "name": "Dangling fetch: GET /api/v9/workspace-task-plans?status=recent&limit=20 (components/v5/admin-home-v2.tsx:290)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspace-task-plans?status=recent&limit=20 (components/v5/admin-home-v2.tsx:290)"}, "fullDescription": {"text": "`components/v5/admin-home-v2.tsx:290` calls `GET /api/v9/workspace-task-plans?status=recent&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: `/v9/workspace-task-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-d51f97b26795a5b0", "name": "Dangling fetch: GET /api/admin/employees/publish?slug=${slug} (components/v5/admin-template-editor.tsx:65)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/employees/publish?slug=${slug} (components/v5/admin-template-editor.tsx:65)"}, "fullDescription": {"text": "`components/v5/admin-template-editor.tsx:65` calls `GET /api/admin/employees/publish?slug=${slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/employees/publish`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0438cc19a8f6885a", "name": "Dangling fetch: POST /api/admin/employees/publish (components/v5/admin-template-editor.tsx:92)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/employees/publish (components/v5/admin-template-editor.tsx:92)"}, "fullDescription": {"text": "`components/v5/admin-template-editor.tsx:92` calls `POST /api/admin/employees/publish` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/employees/publish`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82a84ebd1a57de34", "name": "Dangling fetch: GET /api/v5/leads (components/v5/leads-v2.tsx:144)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/leads (components/v5/leads-v2.tsx:144)"}, "fullDescription": {"text": "`components/v5/leads-v2.tsx:144` calls `GET /api/v5/leads` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0984b9eb0f3a417c", "name": "Dangling fetch: PATCH /api/v5/leads/${activeId} (components/v5/leads-v2.tsx:222)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/leads/${activeId} (components/v5/leads-v2.tsx:222)"}, "fullDescription": {"text": "`components/v5/leads-v2.tsx:222` calls `PATCH /api/v5/leads/${activeId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-bd2feebfd319e8e7", "name": "Dangling fetch: PATCH /api/v5/leads/${id} (components/v5/leads-v2.tsx:961)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/leads/${id} (components/v5/leads-v2.tsx:961)"}, "fullDescription": {"text": "`components/v5/leads-v2.tsx:961` calls `PATCH /api/v5/leads/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-aaca03e9b47f1976", "name": "Dangling fetch: GET /api/v9/audits?status=${tab} (components/v5/audits-v2.tsx:96)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/audits?status=${tab} (components/v5/audits-v2.tsx:96)"}, "fullDescription": {"text": "`components/v5/audits-v2.tsx:96` calls `GET /api/v9/audits?status=${tab}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9dc5846840ed16b", "name": "Dangling fetch: POST /api/v9/audits/${id}/send (components/v5/audits-v2.tsx:392)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/audits/${id}/send (components/v5/audits-v2.tsx:392)"}, "fullDescription": {"text": "`components/v5/audits-v2.tsx:392` calls `POST /api/v9/audits/${id}/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits/<p>/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-993f2bc72309c539", "name": "Dangling fetch: POST /api/v9/audits/${id}/skip (components/v5/audits-v2.tsx:403)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/audits/${id}/skip (components/v5/audits-v2.tsx:403)"}, "fullDescription": {"text": "`components/v5/audits-v2.tsx:403` calls `POST /api/v9/audits/${id}/skip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits/<p>/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-2c2ce8a91b4095bd", "name": "Dangling fetch: GET /api/v5/inbox/feed (components/v5/inbox-v2.tsx:190)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/inbox/feed (components/v5/inbox-v2.tsx:190)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:190` calls `GET /api/v5/inbox/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e22e219b0c3d414", "name": "Dangling fetch: GET /api/v5/inbox/thread/${activeId} (components/v5/inbox-v2.tsx:213)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${activeId} (components/v5/inbox-v2.tsx:213)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:213` calls `GET /api/v5/inbox/thread/${activeId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<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-4abff175db049475", "name": "Dangling fetch: GET /api/v5/inbox/thread/${thread.id}/draft (components/v5/inbox-v2.tsx:645)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${thread.id}/draft (components/v5/inbox-v2.tsx:645)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:645` calls `GET /api/v5/inbox/thread/${thread.id}/draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<p>/draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7616601f73f186e3", "name": "Dangling fetch: POST /api/v5/inbox/thread/${thread.id}/reply (components/v5/inbox-v2.tsx:674)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${thread.id}/reply (components/v5/inbox-v2.tsx:674)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:674` calls `POST /api/v5/inbox/thread/${thread.id}/reply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<p>/reply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3724a4b69df7cb8", "name": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/outcome (components/v5/inbox-v2.tsx:1341)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/outcome (components/v5/inbox-v2.tsx:1341)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:1341` calls `POST /api/v5/inbox/thread/${threadId}/outcome` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<p>/outcome`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06e96bc7623c52d5", "name": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/mute (components/v5/inbox-v2.tsx:1351)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/mute (components/v5/inbox-v2.tsx:1351)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:1351` calls `POST /api/v5/inbox/thread/${threadId}/mute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<p>/mute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a550726a1e34773", "name": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/note (components/v5/inbox-v2.tsx:1362)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/note (components/v5/inbox-v2.tsx:1362)"}, "fullDescription": {"text": "`components/v5/inbox-v2.tsx:1362` calls `POST /api/v5/inbox/thread/${threadId}/note` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<p>/note`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2080e8caae6e27a6", "name": "Dangling fetch: POST /api/v5/employees/overlay (components/v5/employee-tune-drawer.tsx:105)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/employees/overlay (components/v5/employee-tune-drawer.tsx:105)"}, "fullDescription": {"text": "`components/v5/employee-tune-drawer.tsx:105` calls `POST /api/v5/employees/overlay` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/employees/overlay`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da2b773eebe7b9cf", "name": "Dangling fetch: POST /api/v5/storage/sign (components/v5/pdf-viewer-inner.tsx:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/storage/sign (components/v5/pdf-viewer-inner.tsx:106)"}, "fullDescription": {"text": "`components/v5/pdf-viewer-inner.tsx:106` calls `POST /api/v5/storage/sign` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/storage/sign`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a2e8c43dbd1446d", "name": "Dangling fetch: POST /api/v5/employees/builder (components/v5/employee-builder-wizard.tsx:143)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/employees/builder (components/v5/employee-builder-wizard.tsx:143)"}, "fullDescription": {"text": "`components/v5/employee-builder-wizard.tsx:143` calls `POST /api/v5/employees/builder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/employees/builder`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4163fada0478f203", "name": "Dangling fetch: POST /api/v5/reputation/draft (components/v5/reputation-hub.tsx:162)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/reputation/draft (components/v5/reputation-hub.tsx:162)"}, "fullDescription": {"text": "`components/v5/reputation-hub.tsx:162` calls `POST /api/v5/reputation/draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/reputation/draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a42b3f4b0cee60b", "name": "Dangling fetch: GET /api/v5/campaigns/feed (components/v5/campaigns-v2.tsx:99)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/campaigns/feed (components/v5/campaigns-v2.tsx:99)"}, "fullDescription": {"text": "`components/v5/campaigns-v2.tsx:99` calls `GET /api/v5/campaigns/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-626f889caeeda52c", "name": "Dangling fetch: POST /api/v5/campaigns/create (components/v5/campaigns-v2.tsx:381)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/campaigns/create (components/v5/campaigns-v2.tsx:381)"}, "fullDescription": {"text": "`components/v5/campaigns-v2.tsx:381` calls `POST /api/v5/campaigns/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/create`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d4938c267597edc", "name": "Dangling fetch: GET /api/v5/agents/feed (components/v5/agents-v2.tsx:95)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/agents/feed (components/v5/agents-v2.tsx:95)"}, "fullDescription": {"text": "`components/v5/agents-v2.tsx:95` calls `GET /api/v5/agents/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/agents/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-733b210f3fc4a551", "name": "Dangling fetch: POST /api/v5/agents/${id}/${action} (components/v5/agents-v2.tsx:439)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/agents/${id}/${action} (components/v5/agents-v2.tsx:439)"}, "fullDescription": {"text": "`components/v5/agents-v2.tsx:439` calls `POST /api/v5/agents/${id}/${action}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/agents/<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-f1f45fe3c1eabda8", "name": "Dangling fetch: POST /api/settings/team/invite (components/v5/team-invite-form.tsx:30)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite (components/v5/team-invite-form.tsx:30)"}, "fullDescription": {"text": "`components/v5/team-invite-form.tsx:30` calls `POST /api/settings/team/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/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-1ba145455a0dc882", "name": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home.tsx:145)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home.tsx:145)"}, "fullDescription": {"text": "`components/v5/admin-home.tsx:145` calls `GET /api/v5/home/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d729aff526c730e1", "name": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home.tsx:146)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home.tsx:146)"}, "fullDescription": {"text": "`components/v5/admin-home.tsx:146` calls `GET /api/v5/home/outbound-overview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/outbound-overview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-343ae6bfe79dc7e8", "name": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home.tsx:147)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home.tsx:147)"}, "fullDescription": {"text": "`components/v5/admin-home.tsx:147` calls `GET /api/v5/activity?limit=8` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65bd9db6974a9a59", "name": "Dangling fetch: GET /api/v5/pricing/cohort (components/v5/admin-home.tsx:148)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/pricing/cohort (components/v5/admin-home.tsx:148)"}, "fullDescription": {"text": "`components/v5/admin-home.tsx:148` calls `GET /api/v5/pricing/cohort` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/pricing/cohort`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d0ff57c7adab442", "name": "Dangling fetch: PATCH /api/admin/workspaces/${tenant.id}/settings (components/app/workspace-settings-form.tsx:104)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/workspaces/${tenant.id}/settings (components/app/workspace-settings-form.tsx:104)"}, "fullDescription": {"text": "`components/app/workspace-settings-form.tsx:104` calls `PATCH /api/admin/workspaces/${tenant.id}/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/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-c63848d61c26ff52", "name": "Dangling fetch: GET /api/admin/health/pulse (components/app/health-pulse.tsx:49)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/health/pulse (components/app/health-pulse.tsx:49)"}, "fullDescription": {"text": "`components/app/health-pulse.tsx:49` calls `GET /api/admin/health/pulse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/health/pulse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e02610c47628f36", "name": "Dangling fetch: GET /api/admin/onboarding/queue-count (components/app/sidebar.tsx:409)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/onboarding/queue-count (components/app/sidebar.tsx:409)"}, "fullDescription": {"text": "`components/app/sidebar.tsx:409` calls `GET /api/admin/onboarding/queue-count` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/onboarding/queue-count`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b4a3cecf5ca991c", "name": "Dangling fetch: GET /api/runs/${runId} (components/app/run-inspect-drawer.tsx:69)", "shortDescription": {"text": "Dangling fetch: GET /api/runs/${runId} (components/app/run-inspect-drawer.tsx:69)"}, "fullDescription": {"text": "`components/app/run-inspect-drawer.tsx:69` calls `GET /api/runs/${runId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/<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-e8fc9f62280c9785", "name": "Dangling fetch: POST /api/approvals/${a.id}/approve (components/app/unified-inbox-v2.tsx:288)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${a.id}/approve (components/app/unified-inbox-v2.tsx:288)"}, "fullDescription": {"text": "`components/app/unified-inbox-v2.tsx:288` calls `POST /api/approvals/${a.id}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-90e0b72ebb09f14e", "name": "Dangling fetch: POST /api/approvals/${a.id}/reject (components/app/unified-inbox-v2.tsx:306)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${a.id}/reject (components/app/unified-inbox-v2.tsx:306)"}, "fullDescription": {"text": "`components/app/unified-inbox-v2.tsx:306` calls `POST /api/approvals/${a.id}/reject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-18d2f01281ff2cee", "name": "Dangling fetch: POST /api/inbox/delete (components/app/unified-inbox-v2.tsx:349)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/delete (components/app/unified-inbox-v2.tsx:349)"}, "fullDescription": {"text": "`components/app/unified-inbox-v2.tsx:349` calls `POST /api/inbox/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fdbb2d0b68b236f", "name": "Dangling fetch: POST /api/tenants/switch-and-go (components/app/exit-ghost-floating.tsx:51)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants/switch-and-go (components/app/exit-ghost-floating.tsx:51)"}, "fullDescription": {"text": "`components/app/exit-ghost-floating.tsx:51` calls `POST /api/tenants/switch-and-go` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants/switch-and-go`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5dbeb9b1f84a1816", "name": "Dangling fetch: POST /api/compose (components/app/compose-drawer.tsx:54)", "shortDescription": {"text": "Dangling fetch: POST /api/compose (components/app/compose-drawer.tsx:54)"}, "fullDescription": {"text": "`components/app/compose-drawer.tsx:54` calls `POST /api/compose` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/compose`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b24b782554712304", "name": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/home-chat-starter.tsx:45)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/home-chat-starter.tsx:45)"}, "fullDescription": {"text": "`components/app/home-chat-starter.tsx:45` calls `POST /api/agents/${agentId}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07dbcb261c45db76", "name": "Dangling fetch: GET /api/tenant-api-keys (components/app/api-keys-panel.tsx:30)", "shortDescription": {"text": "Dangling fetch: GET /api/tenant-api-keys (components/app/api-keys-panel.tsx:30)"}, "fullDescription": {"text": "`components/app/api-keys-panel.tsx:30` calls `GET /api/tenant-api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-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-a8fa59da84d97f17", "name": "Dangling fetch: POST /api/tenant-api-keys (components/app/api-keys-panel.tsx:43)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-api-keys (components/app/api-keys-panel.tsx:43)"}, "fullDescription": {"text": "`components/app/api-keys-panel.tsx:43` calls `POST /api/tenant-api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-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-a685a50491b6cf16", "name": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/api-keys-panel.tsx:62)", "shortDescription": {"text": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/api-keys-panel.tsx:62)"}, "fullDescription": {"text": "`components/app/api-keys-panel.tsx:62` calls `DELETE /api/tenant-api-keys/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-api-keys/<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-4b788afcfb971796", "name": "Dangling fetch: POST /api/settings/team/invite (components/app/team-settings-client.tsx:60)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite (components/app/team-settings-client.tsx:60)"}, "fullDescription": {"text": "`components/app/team-settings-client.tsx:60` calls `POST /api/settings/team/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/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-d156ef48b97422f3", "name": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/team-settings-client.tsx:83)", "shortDescription": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/team-settings-client.tsx:83)"}, "fullDescription": {"text": "`components/app/team-settings-client.tsx:83` calls `DELETE /api/settings/team/invite/${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<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-a7a97405fc3d2f86", "name": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/team-settings-client.tsx:97)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/team-settings-client.tsx:97)"}, "fullDescription": {"text": "`components/app/team-settings-client.tsx:97` calls `POST /api/settings/team/invite/${token}/resend` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<p>/resend`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1986bfa1d76f41ac", "name": "Dangling fetch: PATCH /api/settings/business-profile (components/app/business-profile-form.tsx:200)", "shortDescription": {"text": "Dangling fetch: PATCH /api/settings/business-profile (components/app/business-profile-form.tsx:200)"}, "fullDescription": {"text": "`components/app/business-profile-form.tsx:200` calls `PATCH /api/settings/business-profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/business-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-38b58093793ea52e", "name": "Dangling fetch: GET /api/activation-milestones?tenant=${tenantId} (components/app/activation-milestones-widget.tsx:35)", "shortDescription": {"text": "Dangling fetch: GET /api/activation-milestones?tenant=${tenantId} (components/app/activation-milestones-widget.tsx:35)"}, "fullDescription": {"text": "`components/app/activation-milestones-widget.tsx:35` calls `GET /api/activation-milestones?tenant=${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/activation-milestones`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b0abd51181601d7", "name": "Dangling fetch: POST /api/voice/provision-assistant (components/app/voice-setup-card.tsx:36)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/provision-assistant (components/app/voice-setup-card.tsx:36)"}, "fullDescription": {"text": "`components/app/voice-setup-card.tsx:36` calls `POST /api/voice/provision-assistant` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/provision-assistant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5944f645d6edb15", "name": "Dangling fetch: GET /api/activity (components/app/activity-feed.tsx:79)", "shortDescription": {"text": "Dangling fetch: GET /api/activity (components/app/activity-feed.tsx:79)"}, "fullDescription": {"text": "`components/app/activity-feed.tsx:79` calls `GET /api/activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fd2f8c3130996f2", "name": "Dangling fetch: POST /api/settings/business-hours (components/app/business-hours-card.tsx:33)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/business-hours (components/app/business-hours-card.tsx:33)"}, "fullDescription": {"text": "`components/app/business-hours-card.tsx:33` calls `POST /api/settings/business-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/business-hours`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d98ac0e549fc1a21", "name": "Dangling fetch: POST /api/admin/view-as (components/app/tenant-switcher.tsx:37)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/tenant-switcher.tsx:37)"}, "fullDescription": {"text": "`components/app/tenant-switcher.tsx:37` calls `POST /api/admin/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13b7af6e4b656fd0", "name": "Dangling fetch: POST /api/tenants/switch (components/app/tenant-switcher.tsx:52)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants/switch (components/app/tenant-switcher.tsx:52)"}, "fullDescription": {"text": "`components/app/tenant-switcher.tsx:52` calls `POST /api/tenants/switch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants/switch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68e0d09fb56ebffa", "name": "Dangling fetch: GET /api/approvals?status=pending (components/app/inbox-hub-tabs.tsx:13)", "shortDescription": {"text": "Dangling fetch: GET /api/approvals?status=pending (components/app/inbox-hub-tabs.tsx:13)"}, "fullDescription": {"text": "`components/app/inbox-hub-tabs.tsx:13` calls `GET /api/approvals?status=pending` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b76d733deb4c37e", "name": "Dangling fetch: GET /api/settings/team (components/app/settings/team-panel.tsx:81)", "shortDescription": {"text": "Dangling fetch: GET /api/settings/team (components/app/settings/team-panel.tsx:81)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:81` calls `GET /api/settings/team` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75aeb687bcee5378", "name": "Dangling fetch: POST /api/settings/team/invite (components/app/settings/team-panel.tsx:97)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite (components/app/settings/team-panel.tsx:97)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:97` calls `POST /api/settings/team/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/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-0e6018ab82e3dffe", "name": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/settings/team-panel.tsx:157)", "shortDescription": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/settings/team-panel.tsx:157)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:157` calls `DELETE /api/settings/team/invite/${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<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-b1c031190ed4f75f", "name": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/settings/team-panel.tsx:168)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/settings/team-panel.tsx:168)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:168` calls `POST /api/settings/team/invite/${token}/resend` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<p>/resend`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c1f584a5a09723a", "name": "Dangling fetch: PATCH /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:185)", "shortDescription": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:185)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:185` calls `PATCH /api/settings/team/member/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/member/<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-46e339918e27c212", "name": "Dangling fetch: DELETE /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:202)", "shortDescription": {"text": "Dangling fetch: DELETE /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:202)"}, "fullDescription": {"text": "`components/app/settings/team-panel.tsx:202` calls `DELETE /api/settings/team/member/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/member/<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-c495f875a8eb56a8", "name": "Dangling fetch: PATCH /api/profile (components/app/settings/profile-form.tsx:27)", "shortDescription": {"text": "Dangling fetch: PATCH /api/profile (components/app/settings/profile-form.tsx:27)"}, "fullDescription": {"text": "`components/app/settings/profile-form.tsx:27` calls `PATCH /api/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-9d0be06ebe6b4a56", "name": "Dangling fetch: POST /api/admin/alert-recipients (components/app/settings/alert-recipients-manager.tsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/alert-recipients (components/app/settings/alert-recipients-manager.tsx:29)"}, "fullDescription": {"text": "`components/app/settings/alert-recipients-manager.tsx:29` calls `POST /api/admin/alert-recipients` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/alert-recipients`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f2c4409235ce4d4", "name": "Dangling fetch: PATCH /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:47)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:47)"}, "fullDescription": {"text": "`components/app/settings/alert-recipients-manager.tsx:47` calls `PATCH /api/admin/alert-recipients/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/alert-recipients/<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-1a35fdde62e29d0c", "name": "Dangling fetch: DELETE /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:56)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:56)"}, "fullDescription": {"text": "`components/app/settings/alert-recipients-manager.tsx:56` calls `DELETE /api/admin/alert-recipients/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/alert-recipients/<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-0f47ed542ddb42bd", "name": "Dangling fetch: GET /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:71)"}, "fullDescription": {"text": "`components/app/meetings/meeting-settings-panel.tsx:71` calls `GET /api/meeting-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meeting-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-19c57463ccfa23a7", "name": "Dangling fetch: PATCH /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:88)", "shortDescription": {"text": "Dangling fetch: PATCH /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:88)"}, "fullDescription": {"text": "`components/app/meetings/meeting-settings-panel.tsx:88` calls `PATCH /api/meeting-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meeting-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-4152e2ed2f9102a5", "name": "Dangling fetch: POST /api/triggers (components/app/triggers/triggers-ui.tsx:21)", "shortDescription": {"text": "Dangling fetch: POST /api/triggers (components/app/triggers/triggers-ui.tsx:21)"}, "fullDescription": {"text": "`components/app/triggers/triggers-ui.tsx:21` calls `POST /api/triggers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/triggers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4176fb808c5330e5", "name": "Dangling fetch: DELETE /api/triggers?id=${id} (components/app/triggers/triggers-ui.tsx:36)", "shortDescription": {"text": "Dangling fetch: DELETE /api/triggers?id=${id} (components/app/triggers/triggers-ui.tsx:36)"}, "fullDescription": {"text": "`components/app/triggers/triggers-ui.tsx:36` calls `DELETE /api/triggers?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/triggers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a3c8997ba61dd04", "name": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/tenants/agent-toggle.tsx:22)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/tenants/agent-toggle.tsx:22)"}, "fullDescription": {"text": "`components/app/tenants/agent-toggle.tsx:22` calls `PATCH /api/agents/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-b281979b641bffdb", "name": "Dangling fetch: POST /api/tenants (components/app/tenants/onboarding-wizard.tsx:62)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants (components/app/tenants/onboarding-wizard.tsx:62)"}, "fullDescription": {"text": "`components/app/tenants/onboarding-wizard.tsx:62` calls `POST /api/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fafcd6cc30c226f", "name": "Dangling fetch: POST /api/tenants (components/app/tenants/admin-new-workspace-flow.tsx:73)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants (components/app/tenants/admin-new-workspace-flow.tsx:73)"}, "fullDescription": {"text": "`components/app/tenants/admin-new-workspace-flow.tsx:73` calls `POST /api/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02f096196dd04221", "name": "Dangling fetch: POST /api/templates (components/app/templates/template-preview-drawer.tsx:72)", "shortDescription": {"text": "Dangling fetch: POST /api/templates (components/app/templates/template-preview-drawer.tsx:72)"}, "fullDescription": {"text": "`components/app/templates/template-preview-drawer.tsx:72` calls `POST /api/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-e28bc16e63255f80", "name": "Dangling fetch: PUT /api/email-settings?account=${account.id} (components/app/emails/emails-settings-ui.tsx:64)", "shortDescription": {"text": "Dangling fetch: PUT /api/email-settings?account=${account.id} (components/app/emails/emails-settings-ui.tsx:64)"}, "fullDescription": {"text": "`components/app/emails/emails-settings-ui.tsx:64` calls `PUT /api/email-settings?account=${account.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email-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-f5169d0d0eb68b67", "name": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/inbox-clear-button.tsx:68)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/inbox-clear-button.tsx:68)"}, "fullDescription": {"text": "`components/app/tasks/inbox-clear-button.tsx:68` calls `POST /api/runs/bulk-archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-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-7f14f3b4c3f698d1", "name": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/lindy-tasks-pane.tsx:306)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/lindy-tasks-pane.tsx:306)"}, "fullDescription": {"text": "`components/app/tasks/lindy-tasks-pane.tsx:306` calls `POST /api/runs/bulk-archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-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-60f2dc06d7ccbd04", "name": "Dangling fetch: POST /api/runs/bulk-recover (components/app/tasks/lindy-tasks-pane.tsx:334)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-recover (components/app/tasks/lindy-tasks-pane.tsx:334)"}, "fullDescription": {"text": "`components/app/tasks/lindy-tasks-pane.tsx:334` calls `POST /api/runs/bulk-recover` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-recover`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ebc2e2fd6711f8a4", "name": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/lindy-tasks-pane.tsx:365)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/lindy-tasks-pane.tsx:365)"}, "fullDescription": {"text": "`components/app/tasks/lindy-tasks-pane.tsx:365` calls `POST /api/runs/bulk-purge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-purge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-025883164cc0b498", "name": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/inbox-clear-all-permanently.tsx:32)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/inbox-clear-all-permanently.tsx:32)"}, "fullDescription": {"text": "`components/app/tasks/inbox-clear-all-permanently.tsx:32` calls `POST /api/runs/bulk-purge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-purge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95f42965fae96c65", "name": "Dangling fetch: GET /api/v5/audit/stats (components/app/home/audit-tile.tsx:86)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/audit/stats (components/app/home/audit-tile.tsx:86)"}, "fullDescription": {"text": "`components/app/home/audit-tile.tsx:86` calls `GET /api/v5/audit/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/audit/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-2aeaa2b1ee029a9a", "name": "Dangling fetch: GET /api/v5/activity (components/app/home/admin-command-center.tsx:135)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/activity (components/app/home/admin-command-center.tsx:135)"}, "fullDescription": {"text": "`components/app/home/admin-command-center.tsx:135` calls `GET /api/v5/activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60895f17e13776ab", "name": "Dangling fetch: GET /api/v5/home/feed (components/app/home/admin-command-center.tsx:147)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/feed (components/app/home/admin-command-center.tsx:147)"}, "fullDescription": {"text": "`components/app/home/admin-command-center.tsx:147` calls `GET /api/v5/home/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2d493d84e5410df", "name": "Dangling fetch: GET /api/admin/onboarding/recent?limit=5 (components/app/home/admin-command-center.tsx:671)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/onboarding/recent?limit=5 (components/app/home/admin-command-center.tsx:671)"}, "fullDescription": {"text": "`components/app/home/admin-command-center.tsx:671` calls `GET /api/admin/onboarding/recent?limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/onboarding/recent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4537b1f7744bd368", "name": "Dangling fetch: GET /api/v5/home/outbound-overview (components/app/home/outbound-overview.tsx:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/app/home/outbound-overview.tsx:63)"}, "fullDescription": {"text": "`components/app/home/outbound-overview.tsx:63` calls `GET /api/v5/home/outbound-overview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/home/outbound-overview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93d36f0a4c62dd3a", "name": "Dangling fetch: POST /api/admin/bookings/disposition (components/app/home/command-center-widgets.tsx:96)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/bookings/disposition (components/app/home/command-center-widgets.tsx:96)"}, "fullDescription": {"text": "`components/app/home/command-center-widgets.tsx:96` calls `POST /api/admin/bookings/disposition` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/bookings/disposition`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9dcb46838d40f9e", "name": "Dangling fetch: GET /api/admin/today (components/app/home/command-center-widgets.tsx:153)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/today (components/app/home/command-center-widgets.tsx:153)"}, "fullDescription": {"text": "`components/app/home/command-center-widgets.tsx:153` calls `GET /api/admin/today` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/today`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f60e42b1e3d28cd", "name": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-toggle.tsx:16)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-toggle.tsx:16)"}, "fullDescription": {"text": "`components/app/admin/view-as-toggle.tsx:16` calls `POST /api/admin/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb9c13d8a724a333", "name": "Dangling fetch: POST /api/admin/qa/onboarding-smoke (components/app/admin/onboarding-smoke-runner.tsx:57)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/qa/onboarding-smoke (components/app/admin/onboarding-smoke-runner.tsx:57)"}, "fullDescription": {"text": "`components/app/admin/onboarding-smoke-runner.tsx:57` calls `POST /api/admin/qa/onboarding-smoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/qa/onboarding-smoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5c8acb30002d022", "name": "Dangling fetch: POST /api/admin/qa/persona-drafts (components/app/admin/persona-drafts-runner.tsx:46)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/qa/persona-drafts (components/app/admin/persona-drafts-runner.tsx:46)"}, "fullDescription": {"text": "`components/app/admin/persona-drafts-runner.tsx:46` calls `POST /api/admin/qa/persona-drafts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/qa/persona-drafts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c7ef5f12af0f759", "name": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-banner.tsx:17)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-banner.tsx:17)"}, "fullDescription": {"text": "`components/app/admin/view-as-banner.tsx:17` calls `POST /api/admin/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32bfae745a3dcb9e", "name": "Dangling fetch: POST /api/admin/agents/${agentId}/change-persona (components/app/admin/onboarding-row-actions.tsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agents/${agentId}/change-persona (components/app/admin/onboarding-row-actions.tsx:58)"}, "fullDescription": {"text": "`components/app/admin/onboarding-row-actions.tsx:58` calls `POST /api/admin/agents/${agentId}/change-persona` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agents/<p>/change-persona`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d58be02a9946addd", "name": "Dangling fetch: GET /api/admin/coupons (components/app/admin/coupons-manager.tsx:50)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/coupons (components/app/admin/coupons-manager.tsx:50)"}, "fullDescription": {"text": "`components/app/admin/coupons-manager.tsx:50` calls `GET /api/admin/coupons` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/coupons`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18bad1d7a9c7975d", "name": "Dangling fetch: POST /api/admin/coupons (components/app/admin/coupons-manager.tsx:71)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/coupons (components/app/admin/coupons-manager.tsx:71)"}, "fullDescription": {"text": "`components/app/admin/coupons-manager.tsx:71` calls `POST /api/admin/coupons` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/coupons`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-676c38a604340090", "name": "Dangling fetch: DELETE /api/admin/coupons/${id} (components/app/admin/coupons-manager.tsx:97)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/coupons/${id} (components/app/admin/coupons-manager.tsx:97)"}, "fullDescription": {"text": "`components/app/admin/coupons-manager.tsx:97` calls `DELETE /api/admin/coupons/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/coupons/<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-8679b98bd0a65053", "name": "Dangling fetch: POST /api/admin/orphans/cleanup (components/app/admin/cleanup-orphans-button.tsx:21)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/orphans/cleanup (components/app/admin/cleanup-orphans-button.tsx:21)"}, "fullDescription": {"text": "`components/app/admin/cleanup-orphans-button.tsx:21` calls `POST /api/admin/orphans/cleanup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/orphans/cleanup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ac40fa1f7e1cf59", "name": "Dangling fetch: POST /api/admin/tenants/bulk (components/app/admin/tenants-bulk-bar.tsx:30)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/tenants/bulk (components/app/admin/tenants-bulk-bar.tsx:30)"}, "fullDescription": {"text": "`components/app/admin/tenants-bulk-bar.tsx:30` calls `POST /api/admin/tenants/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/tenants/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-b74505946c4081f5", "name": "Dangling fetch: GET /api/tenant-knowledge?kind=${k.value} (components/app/agents/knowledge-panel.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/tenant-knowledge?kind=${k.value} (components/app/agents/knowledge-panel.tsx:67)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:67` calls `GET /api/tenant-knowledge?kind=${k.value}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72bafa63fb133056", "name": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:83)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:83)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:83` calls `POST /api/tenant-knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4158c58374c07a8", "name": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/knowledge-panel.tsx:102)", "shortDescription": {"text": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/knowledge-panel.tsx:102)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:102` calls `DELETE /api/tenant-knowledge/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge/<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-84038fa342e1484d", "name": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:126)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:126)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:126` calls `POST /api/tenant-knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3cecf35b21af13bb", "name": "Dangling fetch: POST /api/tenant-knowledge/upload (components/app/agents/knowledge-panel.tsx:139)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-knowledge/upload (components/app/agents/knowledge-panel.tsx:139)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:139` calls `POST /api/tenant-knowledge/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d88bfc938d7a1c1", "name": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:142)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:142)"}, "fullDescription": {"text": "`components/app/agents/knowledge-panel.tsx:142` calls `POST /api/tenant-knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bef2db415b2427d2", "name": "Dangling fetch: DELETE /api/agents/${initial.id} (components/app/agents/agent-form.tsx:128)", "shortDescription": {"text": "Dangling fetch: DELETE /api/agents/${initial.id} (components/app/agents/agent-form.tsx:128)"}, "fullDescription": {"text": "`components/app/agents/agent-form.tsx:128` calls `DELETE /api/agents/${initial.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-ece4458e292b400f", "name": "Dangling fetch: PATCH /api/agents/${a.id} (components/app/agents/agents-manage-table.tsx:61)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${a.id} (components/app/agents/agents-manage-table.tsx:61)"}, "fullDescription": {"text": "`components/app/agents/agents-manage-table.tsx:61` calls `PATCH /api/agents/${a.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-3872663f02948780", "name": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/runs-panel.tsx:70)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/runs-panel.tsx:70)"}, "fullDescription": {"text": "`components/app/agents/runs-panel.tsx:70` calls `POST /api/agents/${agentId}/test-run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/test-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-ac2f3f8ba9ffb017", "name": "Dangling fetch: GET /api/actions (components/app/agents/action-picker.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/actions (components/app/agents/action-picker.tsx:71)"}, "fullDescription": {"text": "`components/app/agents/action-picker.tsx:71` calls `GET /api/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-457c10e927f1f257", "name": "Dangling fetch: POST /api/agents/${agentId}/test-cold-reply (components/app/agents/cold-reply-tester.tsx:33)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-cold-reply (components/app/agents/cold-reply-tester.tsx:33)"}, "fullDescription": {"text": "`components/app/agents/cold-reply-tester.tsx:33` calls `POST /api/agents/${agentId}/test-cold-reply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/test-cold-reply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b12f64b631e7e0b", "name": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-canvas.tsx:228)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-canvas.tsx:228)"}, "fullDescription": {"text": "`components/app/agents/agent-canvas.tsx:228` calls `PATCH /api/agents/${agent.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-7dfefd7a9f76faed", "name": "Dangling fetch: GET /api/agent-triggers?agent_id=${agentId} (components/app/agents/triggers-panel.tsx:117)", "shortDescription": {"text": "Dangling fetch: GET /api/agent-triggers?agent_id=${agentId} (components/app/agents/triggers-panel.tsx:117)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:117` calls `GET /api/agent-triggers?agent_id=${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-673b6085cdaee6a5", "name": "Dangling fetch: GET /api/connected-accounts?provider=google (components/app/agents/triggers-panel.tsx:118)", "shortDescription": {"text": "Dangling fetch: GET /api/connected-accounts?provider=google (components/app/agents/triggers-panel.tsx:118)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:118` calls `GET /api/connected-accounts?provider=google` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connected-accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f61559267e6a7ece", "name": "Dangling fetch: GET /api/connected-accounts?provider=microsoft (components/app/agents/triggers-panel.tsx:119)", "shortDescription": {"text": "Dangling fetch: GET /api/connected-accounts?provider=microsoft (components/app/agents/triggers-panel.tsx:119)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:119` calls `GET /api/connected-accounts?provider=microsoft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connected-accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da1dd50090363022", "name": "Dangling fetch: GET /api/connected-accounts?provider=imap (components/app/agents/triggers-panel.tsx:120)", "shortDescription": {"text": "Dangling fetch: GET /api/connected-accounts?provider=imap (components/app/agents/triggers-panel.tsx:120)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:120` calls `GET /api/connected-accounts?provider=imap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connected-accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c80e79a59c3c5d4", "name": "Dangling fetch: POST /api/agent-triggers/gmail/register (components/app/agents/triggers-panel.tsx:394)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/gmail/register (components/app/agents/triggers-panel.tsx:394)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:394` calls `POST /api/agent-triggers/gmail/register` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/gmail/register`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a70aca8878a041d7", "name": "Dangling fetch: POST /api/agent-triggers/microsoft/register (components/app/agents/triggers-panel.tsx:418)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/microsoft/register (components/app/agents/triggers-panel.tsx:418)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:418` calls `POST /api/agent-triggers/microsoft/register` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/microsoft/register`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35b38d24f4de250e", "name": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/triggers-panel.tsx:456)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/triggers-panel.tsx:456)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:456` calls `POST /api/agent-triggers/twilio-sms` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/twilio-sms`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22cd0f1dea03e50a", "name": "Dangling fetch: POST /api/agent-triggers/cold-inbox (components/app/agents/triggers-panel.tsx:508)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/cold-inbox (components/app/agents/triggers-panel.tsx:508)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:508` calls `POST /api/agent-triggers/cold-inbox` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/cold-inbox`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f083e76054c8eb57", "name": "Dangling fetch: POST /api/agent-triggers/schedule (components/app/agents/triggers-panel.tsx:562)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/schedule (components/app/agents/triggers-panel.tsx:562)"}, "fullDescription": {"text": "`components/app/agents/triggers-panel.tsx:562` calls `POST /api/agent-triggers/schedule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/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-3eb459788ad35e02", "name": "Dangling fetch: GET /api/actions (components/app/agents/step-config-rail.tsx:80)", "shortDescription": {"text": "Dangling fetch: GET /api/actions (components/app/agents/step-config-rail.tsx:80)"}, "fullDescription": {"text": "`components/app/agents/step-config-rail.tsx:80` calls `GET /api/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-37eb989121aa8d7a", "name": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/step-config-rail.tsx:97)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/step-config-rail.tsx:97)"}, "fullDescription": {"text": "`components/app/agents/step-config-rail.tsx:97` calls `PATCH /api/agents/${agent.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-ee64190fd34ad928", "name": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/sms-launch-panel.tsx:38)", "shortDescription": {"text": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/sms-launch-panel.tsx:38)"}, "fullDescription": {"text": "`components/app/agents/sms-launch-panel.tsx:38` calls `POST /api/agent-triggers/twilio-sms` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/twilio-sms`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21eca915dcc55305", "name": "Dangling fetch: POST /api/inbound/twilio/sms-test (components/app/agents/sms-launch-panel.tsx:53)", "shortDescription": {"text": "Dangling fetch: POST /api/inbound/twilio/sms-test (components/app/agents/sms-launch-panel.tsx:53)"}, "fullDescription": {"text": "`components/app/agents/sms-launch-panel.tsx:53` calls `POST /api/inbound/twilio/sms-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbound/twilio/sms-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-cbe2fc3b69367e71", "name": "Dangling fetch: POST /api/cold-email/bulk-compose (components/app/agents/cold-email-bulk.tsx:61)", "shortDescription": {"text": "Dangling fetch: POST /api/cold-email/bulk-compose (components/app/agents/cold-email-bulk.tsx:61)"}, "fullDescription": {"text": "`components/app/agents/cold-email-bulk.tsx:61` calls `POST /api/cold-email/bulk-compose` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cold-email/bulk-compose`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-447c30605af8350e", "name": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/app/agents/cold-email-bulk.tsx:81)", "shortDescription": {"text": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/app/agents/cold-email-bulk.tsx:81)"}, "fullDescription": {"text": "`components/app/agents/cold-email-bulk.tsx:81` calls `POST /api/cold-email/drafts/approve-batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cold-email/drafts/approve-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-da2ab2383e02dda5", "name": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/test-run-drawer.tsx:86)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/test-run-drawer.tsx:86)"}, "fullDescription": {"text": "`components/app/agents/test-run-drawer.tsx:86` calls `POST /api/agents/${agentId}/test-run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/test-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-12f81b23c10b0bf3", "name": "Dangling fetch: GET /api/tenant-knowledge?kind=voice_sample (components/app/agents/brand-voice-panel.tsx:18)", "shortDescription": {"text": "Dangling fetch: GET /api/tenant-knowledge?kind=voice_sample (components/app/agents/brand-voice-panel.tsx:18)"}, "fullDescription": {"text": "`components/app/agents/brand-voice-panel.tsx:18` calls `GET /api/tenant-knowledge?kind=voice_sample` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf1a6eb9ae52dee2", "name": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/brand-voice-panel.tsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/brand-voice-panel.tsx:29)"}, "fullDescription": {"text": "`components/app/agents/brand-voice-panel.tsx:29` calls `POST /api/tenant-knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6274c62c6d89cc10", "name": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/brand-voice-panel.tsx:47)", "shortDescription": {"text": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/brand-voice-panel.tsx:47)"}, "fullDescription": {"text": "`components/app/agents/brand-voice-panel.tsx:47` calls `DELETE /api/tenant-knowledge/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-knowledge/<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-1e361ccefcc9ee08", "name": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/agents/agent-editor-actions.tsx:41)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/agents/agent-editor-actions.tsx:41)"}, "fullDescription": {"text": "`components/app/agents/agent-editor-actions.tsx:41` calls `PATCH /api/agents/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-20f4f63658ec0ed6", "name": "Dangling fetch: POST /api/admin/agents/${agentId}/approve (components/app/agents/agent-editor-actions.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agents/${agentId}/approve (components/app/agents/agent-editor-actions.tsx:59)"}, "fullDescription": {"text": "`components/app/agents/agent-editor-actions.tsx:59` calls `POST /api/admin/agents/${agentId}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agents/<p>/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-9f62c0506bd42dbc", "name": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/agents/chat-interface.tsx:53)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/agents/chat-interface.tsx:53)"}, "fullDescription": {"text": "`components/app/agents/chat-interface.tsx:53` calls `POST /api/agents/${agentId}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c0da2f62174de11", "name": "Dangling fetch: PATCH /api/agents/${id} (components/app/agents/agents-grid.tsx:72)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${id} (components/app/agents/agents-grid.tsx:72)"}, "fullDescription": {"text": "`components/app/agents/agents-grid.tsx:72` calls `PATCH /api/agents/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-d3ffae316936146f", "name": "Dangling fetch: POST /api/agents/${id}/duplicate (components/app/agents/agents-grid.tsx:85)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${id}/duplicate (components/app/agents/agents-grid.tsx:85)"}, "fullDescription": {"text": "`components/app/agents/agents-grid.tsx:85` calls `POST /api/agents/${id}/duplicate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/duplicate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4b02898d2b9f83b", "name": "Dangling fetch: DELETE /api/agents/${id} (components/app/agents/agents-grid.tsx:101)", "shortDescription": {"text": "Dangling fetch: DELETE /api/agents/${id} (components/app/agents/agents-grid.tsx:101)"}, "fullDescription": {"text": "`components/app/agents/agents-grid.tsx:101` calls `DELETE /api/agents/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-0d2184bd225df485", "name": "Dangling fetch: GET /api/connections/limits (components/app/agents/new-agent-button.tsx:21)", "shortDescription": {"text": "Dangling fetch: GET /api/connections/limits (components/app/agents/new-agent-button.tsx:21)"}, "fullDescription": {"text": "`components/app/agents/new-agent-button.tsx:21` calls `GET /api/connections/limits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connections/limits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-856fb40ce96d5cbb", "name": "Dangling fetch: GET /api/billing/plan-limit?category=agents (components/app/agents/new-agent-button.tsx:28)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/plan-limit?category=agents (components/app/agents/new-agent-button.tsx:28)"}, "fullDescription": {"text": "`components/app/agents/new-agent-button.tsx:28` calls `GET /api/billing/plan-limit?category=agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/plan-limit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c841c376f8179c6", "name": "Dangling fetch: POST /api/agents/${agentId}/compose-cold (components/app/agents/cold-email-composer.tsx:33)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/compose-cold (components/app/agents/cold-email-composer.tsx:33)"}, "fullDescription": {"text": "`components/app/agents/cold-email-composer.tsx:33` calls `POST /api/agents/${agentId}/compose-cold` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/compose-cold`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8a570bbf450b58f", "name": "Dangling fetch: PATCH /api/agents/${props.agentId} (components/app/agents/review-panel.tsx:149)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${props.agentId} (components/app/agents/review-panel.tsx:149)"}, "fullDescription": {"text": "`components/app/agents/review-panel.tsx:149` calls `PATCH /api/agents/${props.agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-2d5c237c256c03b4", "name": "Dangling fetch: PATCH /api/agent-triggers/${t.id} (components/app/agents/review-panel.tsx:174)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agent-triggers/${t.id} (components/app/agents/review-panel.tsx:174)"}, "fullDescription": {"text": "`components/app/agents/review-panel.tsx:174` calls `PATCH /api/agent-triggers/${t.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agent-triggers/<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-e6e5cedae1b1dc01", "name": "Dangling fetch: DELETE /api/agents/${props.agentId}/tools/${encodeURIComponent(toolId)} (components/app/agents/review-pa", "shortDescription": {"text": "Dangling fetch: DELETE /api/agents/${props.agentId}/tools/${encodeURIComponent(toolId)} (components/app/agents/review-panel.tsx:198)"}, "fullDescription": {"text": "`components/app/agents/review-panel.tsx:198` calls `DELETE /api/agents/${props.agentId}/tools/${encodeURIComponent(toolId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/tools/<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-c7d096c5a761c462", "name": "Dangling fetch: POST /api/admin/agents/${props.agentId}/approve (components/app/agents/review-panel.tsx:219)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agents/${props.agentId}/approve (components/app/agents/review-panel.tsx:219)"}, "fullDescription": {"text": "`components/app/agents/review-panel.tsx:219` calls `POST /api/admin/agents/${props.agentId}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agents/<p>/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-8ae4d88e345495ba", "name": "Dangling fetch: POST /api/admin/agents/${props.agentId}/mark-training (components/app/agents/review-panel.tsx:235)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agents/${props.agentId}/mark-training (components/app/agents/review-panel.tsx:235)"}, "fullDescription": {"text": "`components/app/agents/review-panel.tsx:235` calls `POST /api/admin/agents/${props.agentId}/mark-training` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agents/<p>/mark-training`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-967d797a3a2f934b", "name": "Dangling fetch: GET /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:118)", "shortDescription": {"text": "Dangling fetch: GET /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:118)"}, "fullDescription": {"text": "`components/app/agents/logic-panel.tsx:118` calls `GET /api/agents/${agentId}/logic-rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/logic-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-da59a5e37416dd07", "name": "Dangling fetch: POST /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:131)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:131)"}, "fullDescription": {"text": "`components/app/agents/logic-panel.tsx:131` calls `POST /api/agents/${agentId}/logic-rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/logic-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-157adb869479ca4f", "name": "Dangling fetch: PATCH /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:157)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:157)"}, "fullDescription": {"text": "`components/app/agents/logic-panel.tsx:157` calls `PATCH /api/agents/${agentId}/logic-rules/${rule.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/logic-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-6a722703656236a8", "name": "Dangling fetch: DELETE /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:171)", "shortDescription": {"text": "Dangling fetch: DELETE /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:171)"}, "fullDescription": {"text": "`components/app/agents/logic-panel.tsx:171` calls `DELETE /api/agents/${agentId}/logic-rules/${rule.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/logic-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-8c9045497c6777f7", "name": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-top-bar.tsx:54)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-top-bar.tsx:54)"}, "fullDescription": {"text": "`components/app/agents/agent-top-bar.tsx:54` calls `PATCH /api/agents/${agent.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-284fd40ecd232c5d", "name": "Dangling fetch: GET /api/approvals?status=${filter} (components/app/approvals/approvals-inbox.tsx:65)", "shortDescription": {"text": "Dangling fetch: GET /api/approvals?status=${filter} (components/app/approvals/approvals-inbox.tsx:65)"}, "fullDescription": {"text": "`components/app/approvals/approvals-inbox.tsx:65` calls `GET /api/approvals?status=${filter}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25f28359bb6da429", "name": "Dangling fetch: POST /api/approvals/${item.id}/approve (components/app/approvals/approvals-inbox.tsx:95)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${item.id}/approve (components/app/approvals/approvals-inbox.tsx:95)"}, "fullDescription": {"text": "`components/app/approvals/approvals-inbox.tsx:95` calls `POST /api/approvals/${item.id}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-be80c712b69cf864", "name": "Dangling fetch: POST /api/approvals/${item.id}/reject (components/app/approvals/approvals-inbox.tsx:113)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${item.id}/reject (components/app/approvals/approvals-inbox.tsx:113)"}, "fullDescription": {"text": "`components/app/approvals/approvals-inbox.tsx:113` calls `POST /api/approvals/${item.id}/reject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-215e25f5c0d60a52", "name": "Dangling fetch: POST /api/tenant-api-keys (components/app/developer/api-keys-panel.tsx:28)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-api-keys (components/app/developer/api-keys-panel.tsx:28)"}, "fullDescription": {"text": "`components/app/developer/api-keys-panel.tsx:28` calls `POST /api/tenant-api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-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-5653ca3e1e733ff9", "name": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/developer/api-keys-panel.tsx:53)", "shortDescription": {"text": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/developer/api-keys-panel.tsx:53)"}, "fullDescription": {"text": "`components/app/developer/api-keys-panel.tsx:53` calls `DELETE /api/tenant-api-keys/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-api-keys/<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-cc7cba82fbef7077", "name": "Dangling fetch: POST /api/onboarding/hire/dismiss (components/app/onboarding/setup-ai-teammate-banner.tsx:60)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/hire/dismiss (components/app/onboarding/setup-ai-teammate-banner.tsx:60)"}, "fullDescription": {"text": "`components/app/onboarding/setup-ai-teammate-banner.tsx:60` calls `POST /api/onboarding/hire/dismiss` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/hire/dismiss`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32110bc84735c728", "name": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:65)", "shortDescription": {"text": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:65)"}, "fullDescription": {"text": "`components/app/campaigns/campaign-builder.tsx:65` calls `PATCH /api/campaigns/${campaign.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/campaigns/<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-3459932d0a77c3c5", "name": "Dangling fetch: PUT /api/campaigns/${campaign.id}/steps (components/app/campaigns/campaign-builder.tsx:71)", "shortDescription": {"text": "Dangling fetch: PUT /api/campaigns/${campaign.id}/steps (components/app/campaigns/campaign-builder.tsx:71)"}, "fullDescription": {"text": "`components/app/campaigns/campaign-builder.tsx:71` calls `PUT /api/campaigns/${campaign.id}/steps` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/campaigns/<p>/steps`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6d4f95799e59a13", "name": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:85)", "shortDescription": {"text": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:85)"}, "fullDescription": {"text": "`components/app/campaigns/campaign-builder.tsx:85` calls `PATCH /api/campaigns/${campaign.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/campaigns/<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-862c28e9c6f4b8a4", "name": "Dangling fetch: DELETE /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:92)", "shortDescription": {"text": "Dangling fetch: DELETE /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:92)"}, "fullDescription": {"text": "`components/app/campaigns/campaign-builder.tsx:92` calls `DELETE /api/campaigns/${campaign.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/campaigns/<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-d200f8f58246de6b", "name": "Dangling fetch: PATCH /api/workflows/${workflow.id} (components/app/workflows/editor.tsx:120)", "shortDescription": {"text": "Dangling fetch: PATCH /api/workflows/${workflow.id} (components/app/workflows/editor.tsx:120)"}, "fullDescription": {"text": "`components/app/workflows/editor.tsx:120` calls `PATCH /api/workflows/${workflow.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/workflows/<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-c9cdf2dc4dbd6c26", "name": "Dangling fetch: POST /api/workflows/${workflow.id}/run (components/app/workflows/editor.tsx:130)", "shortDescription": {"text": "Dangling fetch: POST /api/workflows/${workflow.id}/run (components/app/workflows/editor.tsx:130)"}, "fullDescription": {"text": "`components/app/workflows/editor.tsx:130` calls `POST /api/workflows/${workflow.id}/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/workflows/<p>/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-5585d162ac5dfe0e", "name": "Dangling fetch: POST /api/tenant-phone-routing (components/app/connect-phone/phone-routing-client.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/tenant-phone-routing (components/app/connect-phone/phone-routing-client.tsx:63)"}, "fullDescription": {"text": "`components/app/connect-phone/phone-routing-client.tsx:63` calls `POST /api/tenant-phone-routing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant-phone-routing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bd4ddb7b7fa2320", "name": "Dangling fetch: POST /api/migrate/lindy (components/app/migrate/lindy-migrator.tsx:107)", "shortDescription": {"text": "Dangling fetch: POST /api/migrate/lindy (components/app/migrate/lindy-migrator.tsx:107)"}, "fullDescription": {"text": "`components/app/migrate/lindy-migrator.tsx:107` calls `POST /api/migrate/lindy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/migrate/lindy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0671e2e3c652647", "name": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/overview-client.tsx:48)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/overview-client.tsx:48)"}, "fullDescription": {"text": "`components/app/council/overview-client.tsx:48` calls `POST /api/admin/council/run-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/run-now`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aed0b7cfcd0be12d", "name": "Dangling fetch: POST /api/admin/council/pause (components/app/council/overview-client.tsx:69)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/pause (components/app/council/overview-client.tsx:69)"}, "fullDescription": {"text": "`components/app/council/overview-client.tsx:69` calls `POST /api/admin/council/pause` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/pause`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-542c7aae25e8357f", "name": "Dangling fetch: POST /api/admin/council/approve (components/app/council/approvals-client.tsx:55)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/approve (components/app/council/approvals-client.tsx:55)"}, "fullDescription": {"text": "`components/app/council/approvals-client.tsx:55` calls `POST /api/admin/council/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/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-5d869346ffdd117e", "name": "Dangling fetch: POST /api/admin/council/give-task (components/app/council/give-task-button.tsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/give-task (components/app/council/give-task-button.tsx:49)"}, "fullDescription": {"text": "`components/app/council/give-task-button.tsx:49` calls `POST /api/admin/council/give-task` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/give-task`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db5eb90891d61947", "name": "Dangling fetch: POST /api/admin/council/feedback (components/app/council/agent-thread.tsx:180)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/feedback (components/app/council/agent-thread.tsx:180)"}, "fullDescription": {"text": "`components/app/council/agent-thread.tsx:180` calls `POST /api/admin/council/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/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-5dbeb175bb138972", "name": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/agent-thread.tsx:206)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/agent-thread.tsx:206)"}, "fullDescription": {"text": "`components/app/council/agent-thread.tsx:206` calls `POST /api/admin/council/run-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/run-now`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25bf638f264ea673", "name": "Dangling fetch: GET /api/inbox/feed (components/app/inbox/inbox-v3.tsx:315)", "shortDescription": {"text": "Dangling fetch: GET /api/inbox/feed (components/app/inbox/inbox-v3.tsx:315)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:315` calls `GET /api/inbox/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-242afae6bfc88982", "name": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:388)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:388)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:388` calls `POST /api/runs/bulk-archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-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-e7b913fa9fa51ffd", "name": "Dangling fetch: POST /api/approvals/${p.id}/approve (components/app/inbox/inbox-v3.tsx:401)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${p.id}/approve (components/app/inbox/inbox-v3.tsx:401)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:401` calls `POST /api/approvals/${p.id}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-4d7d819677610e76", "name": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:476)", "shortDescription": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:476)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:476` calls `POST /api/runs/bulk-archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runs/bulk-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-5d52e9364599707b", "name": "Dangling fetch: POST /api/approvals/${draftPending.id}/approve (components/app/inbox/inbox-v3.tsx:890)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${draftPending.id}/approve (components/app/inbox/inbox-v3.tsx:890)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:890` calls `POST /api/approvals/${draftPending.id}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-128862e6644e3a12", "name": "Dangling fetch: POST /api/approvals/${draftPending.id}/reject (components/app/inbox/inbox-v3.tsx:913)", "shortDescription": {"text": "Dangling fetch: POST /api/approvals/${draftPending.id}/reject (components/app/inbox/inbox-v3.tsx:913)"}, "fullDescription": {"text": "`components/app/inbox/inbox-v3.tsx:913` calls `POST /api/approvals/${draftPending.id}/reject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/approvals/<p>/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-e5c91f628afdeeac", "name": "Dangling fetch: GET /api/inbox/conversations/${id} (components/app/inbox/conversations-pane.tsx:276)", "shortDescription": {"text": "Dangling fetch: GET /api/inbox/conversations/${id} (components/app/inbox/conversations-pane.tsx:276)"}, "fullDescription": {"text": "`components/app/inbox/conversations-pane.tsx:276` calls `GET /api/inbox/conversations/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/conversations/<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-1c11b47ad1d795d0", "name": "Dangling fetch: POST /api/inbox/send (components/app/inbox/conversations-pane.tsx:336)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/send (components/app/inbox/conversations-pane.tsx:336)"}, "fullDescription": {"text": "`components/app/inbox/conversations-pane.tsx:336` calls `POST /api/inbox/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4e09ed96d635b4d", "name": "Dangling fetch: POST /api/connections/twilio (components/app/connections/twilio-modal.tsx:22)", "shortDescription": {"text": "Dangling fetch: POST /api/connections/twilio (components/app/connections/twilio-modal.tsx:22)"}, "fullDescription": {"text": "`components/app/connections/twilio-modal.tsx:22` calls `POST /api/connections/twilio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connections/twilio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9df1d4d6701b1743", "name": "Dangling fetch: POST /api/connections/vapi (components/app/connections/vapi-modal.tsx:26)", "shortDescription": {"text": "Dangling fetch: POST /api/connections/vapi (components/app/connections/vapi-modal.tsx:26)"}, "fullDescription": {"text": "`components/app/connections/vapi-modal.tsx:26` calls `POST /api/connections/vapi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connections/vapi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22f478eba1ac9b0b", "name": "Dangling fetch: GET /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:29)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:29)"}, "fullDescription": {"text": "`components/app/connections/ghl-card.tsx:29` calls `GET /api/admin/ghl/connect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/ghl/connect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf895f7077be52e7", "name": "Dangling fetch: DELETE /api/admin/ghl/connect?id=${id} (components/app/connections/ghl-card.tsx:47)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/ghl/connect?id=${id} (components/app/connections/ghl-card.tsx:47)"}, "fullDescription": {"text": "`components/app/connections/ghl-card.tsx:47` calls `DELETE /api/admin/ghl/connect?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/ghl/connect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bb5bbdee96d1641", "name": "Dangling fetch: POST /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:122)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:122)"}, "fullDescription": {"text": "`components/app/connections/ghl-card.tsx:122` calls `POST /api/admin/ghl/connect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/ghl/connect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d6411c292a15460", "name": "Dangling fetch: POST /api/connections/imap (components/app/connections/imap-modal.tsx:18)", "shortDescription": {"text": "Dangling fetch: POST /api/connections/imap (components/app/connections/imap-modal.tsx:18)"}, "fullDescription": {"text": "`components/app/connections/imap-modal.tsx:18` calls `POST /api/connections/imap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connections/imap`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4d1c8dcd3291ddb", "name": "Dangling fetch: GET /api/connections/limits (components/app/connections/connections-ui.tsx:183)", "shortDescription": {"text": "Dangling fetch: GET /api/connections/limits (components/app/connections/connections-ui.tsx:183)"}, "fullDescription": {"text": "`components/app/connections/connections-ui.tsx:183` calls `GET /api/connections/limits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/connections/limits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36c84a28a07483fa", "name": "Dangling fetch: POST /api/retention/learn-tone (components/app/connections/connections-ui.tsx:203)", "shortDescription": {"text": "Dangling fetch: POST /api/retention/learn-tone (components/app/connections/connections-ui.tsx:203)"}, "fullDescription": {"text": "`components/app/connections/connections-ui.tsx:203` calls `POST /api/retention/learn-tone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/retention/learn-tone`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0af6be663dc3b90f", "name": "Dangling fetch: POST /api/marketing/chat (components/marketing/live-chat-widget.tsx:84)", "shortDescription": {"text": "Dangling fetch: POST /api/marketing/chat (components/marketing/live-chat-widget.tsx:84)"}, "fullDescription": {"text": "`components/marketing/live-chat-widget.tsx:84` calls `POST /api/marketing/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/marketing/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7c13ff255be78a0", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:537)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:537)"}, "fullDescription": {"text": "`components/marketing/landing-v5-roofing.tsx:537` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c3f0cf8782c156a", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:542)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:542)"}, "fullDescription": {"text": "`components/marketing/landing-v5-roofing.tsx:542` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-91dbf5a8751adc58", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:585)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:585)"}, "fullDescription": {"text": "`components/marketing/landing-v5-roofing.tsx:585` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3858031d8304ad1e", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:590)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:590)"}, "fullDescription": {"text": "`components/marketing/landing-v5-roofing.tsx:590` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-1b94b6a3ef149ed2", "name": "Dangling fetch: POST /api/partners/apply (components/marketing/partners-apply-form.tsx:67)", "shortDescription": {"text": "Dangling fetch: POST /api/partners/apply (components/marketing/partners-apply-form.tsx:67)"}, "fullDescription": {"text": "`components/marketing/partners-apply-form.tsx:67` calls `POST /api/partners/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/partners/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-398ec52a376d2050", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:661)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:661)"}, "fullDescription": {"text": "`components/marketing/landing-v4-roofing.tsx:661` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-063a7529124c37a7", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:666)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:666)"}, "fullDescription": {"text": "`components/marketing/landing-v4-roofing.tsx:666` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-5593fc6b471fc34c", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:746)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:746)"}, "fullDescription": {"text": "`components/marketing/landing-v4-roofing.tsx:746` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a4f96567aae821c", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:751)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:751)"}, "fullDescription": {"text": "`components/marketing/landing-v4-roofing.tsx:751` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-239f49e4a14a5f47", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:465)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:465)"}, "fullDescription": {"text": "`components/marketing/landing-v5-medspa.tsx:465` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac37021364c1c0f6", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:470)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:470)"}, "fullDescription": {"text": "`components/marketing/landing-v5-medspa.tsx:470` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-f7957df623e79b61", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:503)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:503)"}, "fullDescription": {"text": "`components/marketing/landing-v5-medspa.tsx:503` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e149416d9216bcd", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:508)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:508)"}, "fullDescription": {"text": "`components/marketing/landing-v5-medspa.tsx:508` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-762c5ff23520e6ca", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:649)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:649)"}, "fullDescription": {"text": "`components/marketing/landing-v5-ai-employees.tsx:649` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18cb8e5c894230a1", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:654)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:654)"}, "fullDescription": {"text": "`components/marketing/landing-v5-ai-employees.tsx:654` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-919a658082d2adb3", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:734)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:734)"}, "fullDescription": {"text": "`components/marketing/landing-v5-ai-employees.tsx:734` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4424e49a2ba6b979", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:739)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:739)"}, "fullDescription": {"text": "`components/marketing/landing-v5-ai-employees.tsx:739` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-540088cd9ede7136", "name": "Dangling fetch: POST /api/v5/billing/sprint-checkout (components/marketing/sprint-checkout-button.tsx:97)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/billing/sprint-checkout (components/marketing/sprint-checkout-button.tsx:97)"}, "fullDescription": {"text": "`components/marketing/sprint-checkout-button.tsx:97` calls `POST /api/v5/billing/sprint-checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/billing/sprint-checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2aacdb78c743914", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:661)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:661)"}, "fullDescription": {"text": "`components/marketing/landing-v4.tsx:661` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19ab9ba9c24fb79b", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:666)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:666)"}, "fullDescription": {"text": "`components/marketing/landing-v4.tsx:666` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-b632bfca30fc1a8a", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:746)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:746)"}, "fullDescription": {"text": "`components/marketing/landing-v4.tsx:746` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1e1e881b55593cf", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:751)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:751)"}, "fullDescription": {"text": "`components/marketing/landing-v4.tsx:751` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-d4aa024a3ff94098", "name": "Dangling fetch: GET /api/book-call/availability (components/marketing/booking-widget.tsx:63)", "shortDescription": {"text": "Dangling fetch: GET /api/book-call/availability (components/marketing/booking-widget.tsx:63)"}, "fullDescription": {"text": "`components/marketing/booking-widget.tsx:63` calls `GET /api/book-call/availability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call/availability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-356fe6bb01261dd3", "name": "Dangling fetch: POST /api/book-call (components/marketing/booking-widget.tsx:98)", "shortDescription": {"text": "Dangling fetch: POST /api/book-call (components/marketing/booking-widget.tsx:98)"}, "fullDescription": {"text": "`components/marketing/booking-widget.tsx:98` calls `POST /api/book-call` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7da95814d75d50c", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:661)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:661)"}, "fullDescription": {"text": "`components/marketing/landing-v4-medspa.tsx:661` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b64f27b07f0c5a0", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:666)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:666)"}, "fullDescription": {"text": "`components/marketing/landing-v4-medspa.tsx:666` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-8151f1d3d2d9b003", "name": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:746)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:746)"}, "fullDescription": {"text": "`components/marketing/landing-v4-medspa.tsx:746` calls `POST /api/demo/lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/lead`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91d6ae3806e74172", "name": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:751)", "shortDescription": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:751)"}, "fullDescription": {"text": "`components/marketing/landing-v4-medspa.tsx:751` calls `POST /api/demo/voice/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/demo/voice/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-9aa912e45ff7a788", "name": "Dangling fetch: POST /api/marketing/book-call (components/marketing/book-call-form.tsx:152)", "shortDescription": {"text": "Dangling fetch: POST /api/marketing/book-call (components/marketing/book-call-form.tsx:152)"}, "fullDescription": {"text": "`components/marketing/book-call-form.tsx:152` calls `POST /api/marketing/book-call` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/marketing/book-call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05fe5ba35744ea8e", "name": "Dangling fetch: GET /api/book-call/availability (components/marketing/book-call-modal.tsx:124)", "shortDescription": {"text": "Dangling fetch: GET /api/book-call/availability (components/marketing/book-call-modal.tsx:124)"}, "fullDescription": {"text": "`components/marketing/book-call-modal.tsx:124` calls `GET /api/book-call/availability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call/availability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bda4fd03b0dd6ee4", "name": "Dangling fetch: POST /api/book-call (components/marketing/book-call-modal.tsx:157)", "shortDescription": {"text": "Dangling fetch: POST /api/book-call (components/marketing/book-call-modal.tsx:157)"}, "fullDescription": {"text": "`components/marketing/book-call-modal.tsx:157` calls `POST /api/book-call` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0546654e90d34f25", "name": "Dangling fetch: GET /api/admin/status (components/admin/status-grid.tsx:16)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/status (components/admin/status-grid.tsx:16)"}, "fullDescription": {"text": "`components/admin/status-grid.tsx:16` calls `GET /api/admin/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/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-745a0901854b99ac", "name": "Dangling fetch: GET /api/admin/cold-email-health (components/admin/cold-email-health-console.tsx:44)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email-health (components/admin/cold-email-health-console.tsx:44)"}, "fullDescription": {"text": "`components/admin/cold-email-health-console.tsx:44` calls `GET /api/admin/cold-email-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email-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-6e25a6c2c3eb9654", "name": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-card.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-card.tsx:59)"}, "fullDescription": {"text": "`components/admin/kill-switch-card.tsx:59` calls `POST /api/admin/kill-switches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/kill-switches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56a2c52cb6a9a877", "name": "Dangling fetch: GET /api/admin/kill-switches (components/admin/kill-switch-card.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/kill-switches (components/admin/kill-switch-card.tsx:71)"}, "fullDescription": {"text": "`components/admin/kill-switch-card.tsx:71` calls `GET /api/admin/kill-switches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/kill-switches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64a21441cfdd934c", "name": "Dangling fetch: GET /api/admin/billing/metrics (components/admin/billing-admin-console.tsx:57)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/billing/metrics (components/admin/billing-admin-console.tsx:57)"}, "fullDescription": {"text": "`components/admin/billing-admin-console.tsx:57` calls `GET /api/admin/billing/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/billing/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-f4e9f2b3cd864ac7", "name": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/billing-admin-console.tsx:58)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/billing-admin-console.tsx:58)"}, "fullDescription": {"text": "`components/admin/billing-admin-console.tsx:58` calls `GET /api/admin/billing/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/billing/tenants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a18d82f8c619d9b", "name": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:29)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:29)"}, "fullDescription": {"text": "`components/admin/invites-panel.tsx:29` calls `GET /api/admin/workspaces/${tenantId}/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e580385b72297f49", "name": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:39)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:39)"}, "fullDescription": {"text": "`components/admin/invites-panel.tsx:39` calls `POST /api/admin/workspaces/${tenantId}/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7c405999b181d5e", "name": "Dangling fetch: GET /api/admin/agent-trust/${a.key}?days=${days} (components/admin/agent-trust-console.tsx:110)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/agent-trust/${a.key}?days=${days} (components/admin/agent-trust-console.tsx:110)"}, "fullDescription": {"text": "`components/admin/agent-trust-console.tsx:110` calls `GET /api/admin/agent-trust/${a.key}?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: `/admin/agent-trust/<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-322752ab6569cb20", "name": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-trust-console.tsx:281)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-trust-console.tsx:281)"}, "fullDescription": {"text": "`components/admin/agent-trust-console.tsx:281` calls `POST /api/admin/agent-activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agent-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c56f39b997154515", "name": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-inline.tsx:46)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-inline.tsx:46)"}, "fullDescription": {"text": "`components/admin/kill-switch-inline.tsx:46` calls `POST /api/admin/kill-switches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/kill-switches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7abe19489c95b81f", "name": "Dangling fetch: GET /api/admin/cold-sms-health (components/admin/cold-sms-health-console.tsx:38)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-sms-health (components/admin/cold-sms-health-console.tsx:38)"}, "fullDescription": {"text": "`components/admin/cold-sms-health-console.tsx:38` calls `GET /api/admin/cold-sms-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-sms-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-62420934f804bc7e", "name": "Dangling fetch: GET /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:30)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:30)"}, "fullDescription": {"text": "`components/admin/sms-pool-manager.tsx:30` calls `GET /api/admin/sms-pool` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/sms-pool`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2405368c77985bac", "name": "Dangling fetch: DELETE /api/admin/sms-pool/${encodeURIComponent(phone)} (components/admin/sms-pool-manager.tsx:45)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/sms-pool/${encodeURIComponent(phone)} (components/admin/sms-pool-manager.tsx:45)"}, "fullDescription": {"text": "`components/admin/sms-pool-manager.tsx:45` calls `DELETE /api/admin/sms-pool/${encodeURIComponent(phone)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/sms-pool/<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-5d2391ae8619edd7", "name": "Dangling fetch: POST /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:143)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:143)"}, "fullDescription": {"text": "`components/admin/sms-pool-manager.tsx:143` calls `POST /api/admin/sms-pool` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/sms-pool`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d42cc74313f617bb", "name": "Dangling fetch: GET /api/admin/meetings/list?${q.toString()} (components/admin/meeting-console.tsx:86)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/meetings/list?${q.toString()} (components/admin/meeting-console.tsx:86)"}, "fullDescription": {"text": "`components/admin/meeting-console.tsx:86` calls `GET /api/admin/meetings/list?${q.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/meetings/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2bf002784b085d6", "name": "Dangling fetch: GET /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:95)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:95)"}, "fullDescription": {"text": "`components/admin/meeting-console.tsx:95` calls `GET /api/admin/meetings/settings?tenant_id=${tenantFilter}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/meetings/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-5d5980cf9ad78cff", "name": "Dangling fetch: PUT /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:106)", "shortDescription": {"text": "Dangling fetch: PUT /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:106)"}, "fullDescription": {"text": "`components/admin/meeting-console.tsx:106` calls `PUT /api/admin/meetings/settings?tenant_id=${tenantFilter}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/meetings/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-33510642aa7fd9f3", "name": "Dangling fetch: POST /api/meetings/start (components/admin/meeting-console.tsx:136)", "shortDescription": {"text": "Dangling fetch: POST /api/meetings/start (components/admin/meeting-console.tsx:136)"}, "fullDescription": {"text": "`components/admin/meeting-console.tsx:136` calls `POST /api/meetings/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/meetings/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-fa49866628f2ec36", "name": "Dangling fetch: GET /api/admin/meetings/${id} (components/admin/meeting-console.tsx:152)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/meetings/${id} (components/admin/meeting-console.tsx:152)"}, "fullDescription": {"text": "`components/admin/meeting-console.tsx:152` calls `GET /api/admin/meetings/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/meetings/<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-2cbea86e5f154fa8", "name": "Dangling fetch: GET /api/admin/agent-activity?${p} (components/admin/agent-activity-console.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/agent-activity?${p} (components/admin/agent-activity-console.tsx:52)"}, "fullDescription": {"text": "`components/admin/agent-activity-console.tsx:52` calls `GET /api/admin/agent-activity?${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agent-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61a0512f4943e9fd", "name": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-activity-console.tsx:70)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-activity-console.tsx:70)"}, "fullDescription": {"text": "`components/admin/agent-activity-console.tsx:70` calls `POST /api/admin/agent-activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/agent-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b3127fbe2c919eb", "name": "Dangling fetch: GET /api/admin/integration-health (components/admin/integration-health-banner.tsx:28)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/integration-health (components/admin/integration-health-banner.tsx:28)"}, "fullDescription": {"text": "`components/admin/integration-health-banner.tsx:28` calls `GET /api/admin/integration-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/integration-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-da500518c5ea20fc", "name": "Dangling fetch: GET /api/admin/prospects/pipeline (components/admin/leads-console.tsx:242)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/prospects/pipeline (components/admin/leads-console.tsx:242)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:242` calls `GET /api/admin/prospects/pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-713659b2ad52bf9e", "name": "Dangling fetch: GET /api/admin/leads?${params} (components/admin/leads-console.tsx:266)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/leads?${params} (components/admin/leads-console.tsx:266)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:266` calls `GET /api/admin/leads?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/leads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94ef7cc779d1982b", "name": "Dangling fetch: POST /api/admin/leads/bulk (components/admin/leads-console.tsx:340)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/leads/bulk (components/admin/leads-console.tsx:340)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:340` calls `POST /api/admin/leads/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/leads/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-2c6b2ea62bb03fd3", "name": "Dangling fetch: POST /api/admin/leads/export (components/admin/leads-console.tsx:361)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/leads/export (components/admin/leads-console.tsx:361)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:361` calls `POST /api/admin/leads/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/leads/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-c87d412e5d9aeb95", "name": "Dangling fetch: POST /api/admin/prospects (components/admin/leads-console.tsx:835)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/prospects (components/admin/leads-console.tsx:835)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:835` calls `POST /api/admin/prospects` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e14a72abe215a8f3", "name": "Dangling fetch: POST /api/admin/prospects/bulk (components/admin/leads-console.tsx:1130)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/prospects/bulk (components/admin/leads-console.tsx:1130)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1130` calls `POST /api/admin/prospects/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/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-9b2e4dd066eed490", "name": "Dangling fetch: GET /api/admin/prospects/${id}/timeline (components/admin/leads-console.tsx:1376)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/prospects/${id}/timeline (components/admin/leads-console.tsx:1376)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1376` calls `GET /api/admin/prospects/${id}/timeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<p>/timeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac9be72b24a92d1b", "name": "Dangling fetch: PATCH /api/admin/prospects/${id} (components/admin/leads-console.tsx:1391)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/prospects/${id} (components/admin/leads-console.tsx:1391)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1391` calls `PATCH /api/admin/prospects/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<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-896a6496cae65624", "name": "Dangling fetch: POST /api/admin/prospects/${id}/pause (components/admin/leads-console.tsx:1406)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/pause (components/admin/leads-console.tsx:1406)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1406` calls `POST /api/admin/prospects/${id}/pause` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<p>/pause`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aed96dd0106c1d32", "name": "Dangling fetch: POST /api/admin/prospects/${id}/resume (components/admin/leads-console.tsx:1413)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/resume (components/admin/leads-console.tsx:1413)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1413` calls `POST /api/admin/prospects/${id}/resume` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<p>/resume`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1b41c86dea7072e", "name": "Dangling fetch: DELETE /api/admin/prospects/${id} (components/admin/leads-console.tsx:1430)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/prospects/${id} (components/admin/leads-console.tsx:1430)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1430` calls `DELETE /api/admin/prospects/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<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-4dfa19e0d43368a1", "name": "Dangling fetch: POST /api/admin/prospects/${id}/rate (components/admin/leads-console.tsx:1437)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/rate (components/admin/leads-console.tsx:1437)"}, "fullDescription": {"text": "`components/admin/leads-console.tsx:1437` calls `POST /api/admin/prospects/${id}/rate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/prospects/<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-25c99c3325afe697", "name": "Dangling fetch: GET /api/admin/conversion-funnel?window=${win}&channel=${channel} (components/admin/conversion-funnel-co", "shortDescription": {"text": "Dangling fetch: GET /api/admin/conversion-funnel?window=${win}&channel=${channel} (components/admin/conversion-funnel-console.tsx:27)"}, "fullDescription": {"text": "`components/admin/conversion-funnel-console.tsx:27` calls `GET /api/admin/conversion-funnel?window=${win}&channel=${channel}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/conversion-funnel`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-042ebcbc3eb4af73", "name": "Dangling fetch: GET /api/admin/team/admins (components/admin/team-console.tsx:68)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/team/admins (components/admin/team-console.tsx:68)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:68` calls `GET /api/admin/team/admins` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/admins`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e24cbd47d75602c2", "name": "Dangling fetch: GET /api/admin/team/operators (components/admin/team-console.tsx:69)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/team/operators (components/admin/team-console.tsx:69)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:69` calls `GET /api/admin/team/operators` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/operators`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6eda18a4c9f6fe3", "name": "Dangling fetch: GET /api/admin/team/invites (components/admin/team-console.tsx:70)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/team/invites (components/admin/team-console.tsx:70)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:70` calls `GET /api/admin/team/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e26487b9d8f82e03", "name": "Dangling fetch: GET /api/admin/team/operator-invites (components/admin/team-console.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/team/operator-invites (components/admin/team-console.tsx:71)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:71` calls `GET /api/admin/team/operator-invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/operator-invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33df3f150c7b2e28", "name": "Dangling fetch: GET /api/tenants (components/admin/team-console.tsx:72)", "shortDescription": {"text": "Dangling fetch: GET /api/tenants (components/admin/team-console.tsx:72)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:72` calls `GET /api/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cebc85855e1f2b6", "name": "Dangling fetch: GET /api/admin/team/operators/${op.id}/workspaces (components/admin/team-console.tsx:129)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/team/operators/${op.id}/workspaces (components/admin/team-console.tsx:129)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:129` calls `GET /api/admin/team/operators/${op.id}/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/operators/<p>/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-daded136760dbff9", "name": "Dangling fetch: PUT /api/admin/team/operators/${editing.op.id}/workspaces (components/admin/team-console.tsx:138)", "shortDescription": {"text": "Dangling fetch: PUT /api/admin/team/operators/${editing.op.id}/workspaces (components/admin/team-console.tsx:138)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:138` calls `PUT /api/admin/team/operators/${editing.op.id}/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/operators/<p>/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-4632e8b5f562a509", "name": "Dangling fetch: DELETE /api/admin/team/operators/${op.id} (components/admin/team-console.tsx:150)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/team/operators/${op.id} (components/admin/team-console.tsx:150)"}, "fullDescription": {"text": "`components/admin/team-console.tsx:150` calls `DELETE /api/admin/team/operators/${op.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/team/operators/<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-cf34de0e65c9c4f4", "name": "Dangling fetch: GET /api/admin/cold-email/stats${tenantParam} (components/admin/cold-email-console.tsx:208)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/stats${tenantParam} (components/admin/cold-email-console.tsx:208)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:208` calls `GET /api/admin/cold-email/stats${tenantParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/stats/<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-b1111e96d9a3dba8", "name": "Dangling fetch: GET /api/admin/cold-email/mailboxes${tenantParam} (components/admin/cold-email-console.tsx:218)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/mailboxes${tenantParam} (components/admin/cold-email-console.tsx:218)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:218` calls `GET /api/admin/cold-email/mailboxes${tenantParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/mailboxes/<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-a70a3fd8acddaa9e", "name": "Dangling fetch: GET /api/admin/cold-email/funnel${tenantParam} (components/admin/cold-email-console.tsx:222)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/funnel${tenantParam} (components/admin/cold-email-console.tsx:222)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:222` calls `GET /api/admin/cold-email/funnel${tenantParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/funnel/<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-0f991f3d608faf37", "name": "Dangling fetch: GET /api/admin/cold-email/lists${tenantParam} (components/admin/cold-email-console.tsx:226)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/lists${tenantParam} (components/admin/cold-email-console.tsx:226)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:226` calls `GET /api/admin/cold-email/lists${tenantParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/lists/<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-07407f70e3c2d757", "name": "Dangling fetch: GET /api/admin/cold-email/sequences${tenantParam} (components/admin/cold-email-console.tsx:230)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/sequences${tenantParam} (components/admin/cold-email-console.tsx:230)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:230` calls `GET /api/admin/cold-email/sequences${tenantParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/sequences/<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-0aaed90c7384be4c", "name": "Dangling fetch: GET /api/admin/cold-email/settings?tenant_id=${tenantId} (components/admin/cold-email-console.tsx:235)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/cold-email/settings?tenant_id=${tenantId} (components/admin/cold-email-console.tsx:235)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:235` calls `GET /api/admin/cold-email/settings?tenant_id=${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/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-3bc8e496280f1664", "name": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/cold-email-console.tsx:249)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/cold-email-console.tsx:249)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:249` calls `GET /api/admin/billing/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/billing/tenants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d018d4b067e44fe9", "name": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/admin/cold-email-console.tsx:262)", "shortDescription": {"text": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/admin/cold-email-console.tsx:262)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:262` calls `POST /api/cold-email/drafts/approve-batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cold-email/drafts/approve-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-425527c40638ba34", "name": "Dangling fetch: PATCH /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:599)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:599)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:599` calls `PATCH /api/admin/cold-email/mailboxes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/mailboxes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3f0be28e377400c", "name": "Dangling fetch: DELETE /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:607)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:607)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:607` calls `DELETE /api/admin/cold-email/mailboxes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/mailboxes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23b95e6b1f3e189c", "name": "Dangling fetch: DELETE /api/admin/cold-email/lists (components/admin/cold-email-console.tsx:734)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/cold-email/lists (components/admin/cold-email-console.tsx:734)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:734` calls `DELETE /api/admin/cold-email/lists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/lists`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7e4d312e4302b78", "name": "Dangling fetch: POST /api/admin/cold-email/sequences/enroll (components/admin/cold-email-console.tsx:760)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/cold-email/sequences/enroll (components/admin/cold-email-console.tsx:760)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:760` calls `POST /api/admin/cold-email/sequences/enroll` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/sequences/enroll`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb38475d2cdf1986", "name": "Dangling fetch: PATCH /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:769)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:769)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:769` calls `PATCH /api/admin/cold-email/sequences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/sequences`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8da842a8a94b20ec", "name": "Dangling fetch: DELETE /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:774)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:774)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:774` calls `DELETE /api/admin/cold-email/sequences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/sequences`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9dd1bdff9e74897f", "name": "Dangling fetch: PATCH /api/admin/cold-email/settings (components/admin/cold-email-console.tsx:895)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/cold-email/settings (components/admin/cold-email-console.tsx:895)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:895` calls `PATCH /api/admin/cold-email/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/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-efe94d433d7f4dc5", "name": "Dangling fetch: POST /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:1045)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:1045)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:1045` calls `POST /api/admin/cold-email/mailboxes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/mailboxes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecd756f86b7d58fb", "name": "Dangling fetch: POST /api/admin/cold-email/lists/upload (components/admin/cold-email-console.tsx:1122)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/cold-email/lists/upload (components/admin/cold-email-console.tsx:1122)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:1122` calls `POST /api/admin/cold-email/lists/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/lists/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd42075c95814019", "name": "Dangling fetch: POST /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:1209)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:1209)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:1209` calls `POST /api/admin/cold-email/sequences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/sequences`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1954161715e2a1ba", "name": "Dangling fetch: POST /api/admin/cold-email/mailboxes/bulk-upload (components/admin/cold-email-console.tsx:1308)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/cold-email/mailboxes/bulk-upload (components/admin/cold-email-console.tsx:1308)"}, "fullDescription": {"text": "`components/admin/cold-email-console.tsx:1308` calls `POST /api/admin/cold-email/mailboxes/bulk-upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/cold-email/mailboxes/bulk-upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cb1e6b2ad386fc7", "name": "Dangling fetch: POST /api/onboarding/complete (components/onboarding/wizard.tsx:162)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/complete (components/onboarding/wizard.tsx:162)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:162` calls `POST /api/onboarding/complete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/complete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2cc92d0ee106ec0", "name": "Dangling fetch: POST /api/onboarding/skip (components/onboarding/wizard.tsx:267)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/skip (components/onboarding/wizard.tsx:267)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:267` calls `POST /api/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: `/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-efe3f1e9dd5a4b62", "name": "Dangling fetch: POST /api/billing/start-trial (components/onboarding/wizard.tsx:475)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/start-trial (components/onboarding/wizard.tsx:475)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:475` calls `POST /api/billing/start-trial` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/start-trial`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48f252e97c42b1a5", "name": "Dangling fetch: POST /api/billing/change-plan (components/onboarding/wizard.tsx:572)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/change-plan (components/onboarding/wizard.tsx:572)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:572` calls `POST /api/billing/change-plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/change-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-ffd7f143e177accb", "name": "Dangling fetch: POST /api/billing/finalize-trial (components/onboarding/wizard.tsx:689)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/finalize-trial (components/onboarding/wizard.tsx:689)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:689` calls `POST /api/billing/finalize-trial` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/finalize-trial`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9cc17029b83843b", "name": "Dangling fetch: POST /api/employees/provision (components/onboarding/wizard.tsx:725)", "shortDescription": {"text": "Dangling fetch: POST /api/employees/provision (components/onboarding/wizard.tsx:725)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:725` calls `POST /api/employees/provision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/employees/provision`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc6ff3e52a330b4d", "name": "Dangling fetch: GET /api/onboarding/connected-accounts (components/onboarding/wizard.tsx:796)", "shortDescription": {"text": "Dangling fetch: GET /api/onboarding/connected-accounts (components/onboarding/wizard.tsx:796)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:796` calls `GET /api/onboarding/connected-accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/connected-accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4153fa70a0cefeb2", "name": "Dangling fetch: POST /api/onboarding/business-profile (components/onboarding/wizard.tsx:945)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/business-profile (components/onboarding/wizard.tsx:945)"}, "fullDescription": {"text": "`components/onboarding/wizard.tsx:945` calls `POST /api/onboarding/business-profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/business-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-1c66e6cdc2470fb6", "name": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:154)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:154)"}, "fullDescription": {"text": "`components/onboarding/hire/hire-wizard.tsx:154` calls `POST /api/onboarding/hire` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/hire`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bed0cfad85a74b2a", "name": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:239)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:239)"}, "fullDescription": {"text": "`components/onboarding/hire/hire-wizard.tsx:239` calls `POST /api/onboarding/hire` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/hire`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8646b89934f80b23", "name": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:258)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:258)"}, "fullDescription": {"text": "`components/onboarding/hire/hire-wizard.tsx:258` calls `POST /api/onboarding/hire/complete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/hire/complete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd4ca006306728b8", "name": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:268)", "shortDescription": {"text": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:268)"}, "fullDescription": {"text": "`components/onboarding/hire/hire-wizard.tsx:268` calls `POST /api/onboarding/hire/complete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboarding/hire/complete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3ef6d77a184e485", "name": "Dangling fetch: POST /api/support/report (components/support/ReportProblem.tsx:26)", "shortDescription": {"text": "Dangling fetch: POST /api/support/report (components/support/ReportProblem.tsx:26)"}, "fullDescription": {"text": "`components/support/ReportProblem.tsx:26` calls `POST /api/support/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/support/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-f2c1c53d6da1f0af", "name": "Dangling fetch: POST /api/admin/log-error (app/error.tsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/log-error (app/error.tsx:29)"}, "fullDescription": {"text": "`app/error.tsx:29` calls `POST /api/admin/log-error` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/log-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-264f491d74236b03", "name": "Dangling fetch: POST /api/admin/log-error (app/global-error.tsx:12)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/log-error (app/global-error.tsx:12)"}, "fullDescription": {"text": "`app/global-error.tsx:12` calls `POST /api/admin/log-error` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/log-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-e6fa95e3affecbc4", "name": "Dangling fetch: POST /api/go-live (app/go-live/_form.tsx:23)", "shortDescription": {"text": "Dangling fetch: POST /api/go-live (app/go-live/_form.tsx:23)"}, "fullDescription": {"text": "`app/go-live/_form.tsx:23` calls `POST /api/go-live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/go-live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d477d579240421b", "name": "Dangling fetch: POST /api/public/quote-request/${slug} (app/quote-request/[slug]/_form.tsx:31)", "shortDescription": {"text": "Dangling fetch: POST /api/public/quote-request/${slug} (app/quote-request/[slug]/_form.tsx:31)"}, "fullDescription": {"text": "`app/quote-request/[slug]/_form.tsx:31` calls `POST /api/public/quote-request/${slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/public/quote-request/<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-b42ec49d005aa61e", "name": "Dangling fetch: POST /api/go-live (app/p/[slug]/_widgets.tsx:38)", "shortDescription": {"text": "Dangling fetch: POST /api/go-live (app/p/[slug]/_widgets.tsx:38)"}, "fullDescription": {"text": "`app/p/[slug]/_widgets.tsx:38` calls `POST /api/go-live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/go-live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22d91286fd2b0f08", "name": "Dangling fetch: POST /api/preview/${slug}/chat (app/p/[slug]/_chat.tsx:33)", "shortDescription": {"text": "Dangling fetch: POST /api/preview/${slug}/chat (app/p/[slug]/_chat.tsx:33)"}, "fullDescription": {"text": "`app/p/[slug]/_chat.tsx:33` calls `POST /api/preview/${slug}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/preview/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b853f7dbfa04ad6b", "name": "Dangling fetch: GET /api/invite/admin/${params.token} (app/invite/admin/[token]/page.tsx:23)", "shortDescription": {"text": "Dangling fetch: GET /api/invite/admin/${params.token} (app/invite/admin/[token]/page.tsx:23)"}, "fullDescription": {"text": "`app/invite/admin/[token]/page.tsx:23` calls `GET /api/invite/admin/${params.token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/invite/admin/<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-088cb284b6861b46", "name": "Dangling fetch: POST /api/invite/admin/${params.token}/redeem (app/invite/admin/[token]/page.tsx:38)", "shortDescription": {"text": "Dangling fetch: POST /api/invite/admin/${params.token}/redeem (app/invite/admin/[token]/page.tsx:38)"}, "fullDescription": {"text": "`app/invite/admin/[token]/page.tsx:38` calls `POST /api/invite/admin/${params.token}/redeem` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/invite/admin/<p>/redeem`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b97823cc10977a87", "name": "Dangling fetch: POST /api/invite/operator/${token} (app/invite/operator/[token]/page.tsx:36)", "shortDescription": {"text": "Dangling fetch: POST /api/invite/operator/${token} (app/invite/operator/[token]/page.tsx:36)"}, "fullDescription": {"text": "`app/invite/operator/[token]/page.tsx:36` calls `POST /api/invite/operator/${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/invite/operator/<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-79303de9dbac7328", "name": "Dangling fetch: GET /api/invite/${params.token} (app/invite/[token]/page.tsx:24)", "shortDescription": {"text": "Dangling fetch: GET /api/invite/${params.token} (app/invite/[token]/page.tsx:24)"}, "fullDescription": {"text": "`app/invite/[token]/page.tsx:24` calls `GET /api/invite/${params.token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/invite/<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-7e75c41e81af81ee", "name": "Dangling fetch: POST /api/invite/${params.token}/redeem (app/invite/[token]/page.tsx:69)", "shortDescription": {"text": "Dangling fetch: POST /api/invite/${params.token}/redeem (app/invite/[token]/page.tsx:69)"}, "fullDescription": {"text": "`app/invite/[token]/page.tsx:69` calls `POST /api/invite/${params.token}/redeem` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/invite/<p>/redeem`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72ecd364137d9cf4", "name": "Dangling fetch: GET https://api.anthropic.com/v1/models (app/api/health/route.ts:54)", "shortDescription": {"text": "Dangling fetch: GET https://api.anthropic.com/v1/models (app/api/health/route.ts:54)"}, "fullDescription": {"text": "`app/api/health/route.ts:54` calls `GET https://api.anthropic.com/v1/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ed1a10e8b768ba5", "name": "Dangling fetch: POST https://api.instantly.ai/api/v2/leads/update (app/api/unsubscribe/route.ts:64)", "shortDescription": {"text": "Dangling fetch: POST https://api.instantly.ai/api/v2/leads/update (app/api/unsubscribe/route.ts:64)"}, "fullDescription": {"text": "`app/api/unsubscribe/route.ts:64` calls `POST https://api.instantly.ai/api/v2/leads/update` 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.instantly.ai/api/v2/leads/update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3106b3e5332c948", "name": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${plan.message_id}/attachments/${plan.attachment_id}/$v", "shortDescription": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${plan.message_id}/attachments/${plan.attachment_id}/$value (app/api/v5/mack/training/action/route.ts:102)"}, "fullDescription": {"text": "`app/api/v5/mack/training/action/route.ts:102` calls `GET https://graph.microsoft.com/v1.0/me/messages/${plan.message_id}/attachments/${plan.attachment_id}/$value` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/graph.microsoft.com/v1.0/me/messages/<p>/attachments/<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-1c2c48e13852b1d8", "name": "Dangling fetch: POST https://api.openai.com/v1/audio/speech (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-speak/ro", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/audio/speech (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-speak/route.ts:56)"}, "fullDescription": {"text": "`app/api/v5/custom-employees/[slug]/jobs/[id]/voice-speak/route.ts:56` calls `POST https://api.openai.com/v1/audio/speech` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/audio/speech`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd9b5e4f57e949a4", "name": "Dangling fetch: POST https://api.openai.com/v1/audio/transcriptions (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/audio/transcriptions (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-transcribe/route.ts:91)"}, "fullDescription": {"text": "`app/api/v5/custom-employees/[slug]/jobs/[id]/voice-transcribe/route.ts:91` calls `POST https://api.openai.com/v1/audio/transcriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/audio/transcriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a70732cd74bb379e", "name": "Dangling fetch: GET https://www.clarity.ms/export-data/api/v1/project-live-insights?numOfDays=1 (app/api/v5/home/outboun", "shortDescription": {"text": "Dangling fetch: GET https://www.clarity.ms/export-data/api/v1/project-live-insights?numOfDays=1 (app/api/v5/home/outbound-overview/route.ts:170)"}, "fullDescription": {"text": "`app/api/v5/home/outbound-overview/route.ts:170` calls `GET https://www.clarity.ms/export-data/api/v1/project-live-insights?numOfDays=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.clarity.ms/export-data/api/v1/project-live-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-d6175013f21f998c", "name": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${existingAssistantId} (app/api/voice/provision-assistant/route.ts:3", "shortDescription": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${existingAssistantId} (app/api/voice/provision-assistant/route.ts:352)"}, "fullDescription": {"text": "`app/api/voice/provision-assistant/route.ts:352` calls `PATCH https://api.vapi.ai/assistant/${existingAssistantId}` 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.vapi.ai/assistant/<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-8ed08fbab17b051a", "name": "Dangling fetch: POST https://api.vapi.ai/assistant (app/api/voice/provision-assistant/route.ts:361)", "shortDescription": {"text": "Dangling fetch: POST https://api.vapi.ai/assistant (app/api/voice/provision-assistant/route.ts:361)"}, "fullDescription": {"text": "`app/api/voice/provision-assistant/route.ts:361` calls `POST https://api.vapi.ai/assistant` 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.vapi.ai/assistant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b793d0d57b3f0dc", "name": "Dangling fetch: POST https://api.vapi.ai/phone-number (app/api/voice/provision-assistant/route.ts:394)", "shortDescription": {"text": "Dangling fetch: POST https://api.vapi.ai/phone-number (app/api/voice/provision-assistant/route.ts:394)"}, "fullDescription": {"text": "`app/api/voice/provision-assistant/route.ts:394` calls `POST https://api.vapi.ai/phone-number` 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.vapi.ai/phone-number`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba4f2f431a533d69", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/marketing/chat/route.ts:123)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/marketing/chat/route.ts:123)"}, "fullDescription": {"text": "`app/api/marketing/chat/route.ts:123` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3970334fda7ddea9", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/preview/[slug]/chat/route.ts:52)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/preview/[slug]/chat/route.ts:52)"}, "fullDescription": {"text": "`app/api/preview/[slug]/chat/route.ts:52` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b23a770383c557c4", "name": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/patch-vapi-assistant/route.ts:169)", "shortDescription": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/patch-vapi-assistant/route.ts:169)"}, "fullDescription": {"text": "`app/api/admin/patch-vapi-assistant/route.ts:169` calls `PATCH https://api.vapi.ai/assistant/${assistantId}` 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.vapi.ai/assistant/<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-7675fdef375cc4d6", "name": "Dangling fetch: DELETE https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers/${twilioSid}.json (app/api", "shortDescription": {"text": "Dangling fetch: DELETE https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers/${twilioSid}.json (app/api/admin/sms-pool/[number]/route.ts:42)"}, "fullDescription": {"text": "`app/api/admin/sms-pool/[number]/route.ts:42` calls `DELETE https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers/${twilioSid}.json` 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.twilio.com/2010-04-01/accounts/<p>/incomingphonenumbers/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f01aecb04848755c", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${twAcct}.json (app/api/admin/smoke-test/route.ts:67)", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${twAcct}.json (app/api/admin/smoke-test/route.ts:67)"}, "fullDescription": {"text": "`app/api/admin/smoke-test/route.ts:67` calls `GET https://api.twilio.com/2010-04-01/Accounts/${twAcct}.json` 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.twilio.com/2010-04-01/accounts/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b7d2b03403d7920", "name": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(decrypted)} (app/api/admin", "shortDescription": {"text": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(decrypted)} (app/api/admin/diag-google-token/route.ts:32)"}, "fullDescription": {"text": "`app/api/admin/diag-google-token/route.ts:32` calls `GET https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(decrypted)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/tokeninfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fae7cd1f68c722b", "name": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/diag-google-token/route.ts:36)", "shortDescription": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/diag-google-token/route.ts:36)"}, "fullDescription": {"text": "`app/api/admin/diag-google-token/route.ts:36` calls `POST https://www.googleapis.com/calendar/v3/freeBusy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/freebusy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-720c58bbda7ab036", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/stability-check/route.ts:38)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/stability-check/route.ts:38)"}, "fullDescription": {"text": "`app/api/admin/stability-check/route.ts:38` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bebb9d0e9b12d98", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/admin/stability-check/route.ts:46)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/admin/stability-check/route.ts:46)"}, "fullDescription": {"text": "`app/api/admin/stability-check/route.ts:46` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aab93037256e4a69", "name": "Dangling fetch: GET https://api.vapi.ai/assistant?limit=1 (app/api/admin/stability-check/route.ts:55)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant?limit=1 (app/api/admin/stability-check/route.ts:55)"}, "fullDescription": {"text": "`app/api/admin/stability-check/route.ts:55` calls `GET https://api.vapi.ai/assistant?limit=1` 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.vapi.ai/assistant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ed5958d1c35abcc", "name": "Dangling fetch: GET https://api.stripe.com/v1/customers?limit=1 (app/api/admin/stability-check/route.ts:60)", "shortDescription": {"text": "Dangling fetch: GET https://api.stripe.com/v1/customers?limit=1 (app/api/admin/stability-check/route.ts:60)"}, "fullDescription": {"text": "`app/api/admin/stability-check/route.ts:60` calls `GET https://api.stripe.com/v1/customers?limit=1` 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.stripe.com/v1/customers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-010ee4f3c215dc89", "name": "Dangling fetch: GET https://api.vapi.ai/assistant/${aid} (app/api/admin/stability-check/route.ts:116)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant/${aid} (app/api/admin/stability-check/route.ts:116)"}, "fullDescription": {"text": "`app/api/admin/stability-check/route.ts:116` calls `GET https://api.vapi.ai/assistant/${aid}` 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.vapi.ai/assistant/<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-f0a8e48a6db03e1b", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${encodeURIComponent(sid)}.json (a", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${encodeURIComponent(sid)}.json (app/api/admin/twilio-status-backfill/route.ts:47)"}, "fullDescription": {"text": "`app/api/admin/twilio-status-backfill/route.ts:47` calls `GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${encodeURIComponent(sid)}.json` 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.twilio.com/2010-04-01/accounts/<p>/messages/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-826e24eaf7489cb8", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${messageSid}.json (app/api/admin/", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${messageSid}.json (app/api/admin/test-alert/route.ts:28)"}, "fullDescription": {"text": "`app/api/admin/test-alert/route.ts:28` calls `GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${messageSid}.json` 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.twilio.com/2010-04-01/accounts/<p>/messages/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3072016f7817da1e", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/test-alert/route.ts:", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/test-alert/route.ts:91)"}, "fullDescription": {"text": "`app/api/admin/test-alert/route.ts:91` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f821e46ea5d3989", "name": "Dangling fetch: GET https://api.vapi.ai/call?assistantId=${assistantId}&limit=5 (app/api/admin/diagnose-vapi-call/route.", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/call?assistantId=${assistantId}&limit=5 (app/api/admin/diagnose-vapi-call/route.ts:25)"}, "fullDescription": {"text": "`app/api/admin/diagnose-vapi-call/route.ts:25` calls `GET https://api.vapi.ai/call?assistantId=${assistantId}&limit=5` 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.vapi.ai/call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74786ce640acbef4", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${sid}.json (app/api/admin/preview", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${sid}.json (app/api/admin/preview-founder-alert/route.ts:42)"}, "fullDescription": {"text": "`app/api/admin/preview-founder-alert/route.ts:42` calls `GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${sid}.json` 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.twilio.com/2010-04-01/accounts/<p>/messages/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb366657dfb5a5f2", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/preview-founder-aler", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/preview-founder-alert/route.ts:92)"}, "fullDescription": {"text": "`app/api/admin/preview-founder-alert/route.ts:92` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91d783440c2312ac", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-mailbox/bootstrap-history/route.ts:49)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-mailbox/bootstrap-history/route.ts:49)"}, "fullDescription": {"text": "`app/api/admin/cold-mailbox/bootstrap-history/route.ts:49` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-eb5f309d668f3811", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/admin/cold-mailbox/bootstrap-history", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/admin/cold-mailbox/bootstrap-history/route.ts:102)"}, "fullDescription": {"text": "`app/api/admin/cold-mailbox/bootstrap-history/route.ts:102` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/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-0b81d106d8cd61e1", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${process.env.TWILIO_ACCOUNT_SID}.json (app/api/admin/pre", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${process.env.TWILIO_ACCOUNT_SID}.json (app/api/admin/preflight/route.ts:86)"}, "fullDescription": {"text": "`app/api/admin/preflight/route.ts:86` calls `GET https://api.twilio.com/2010-04-01/Accounts/${process.env.TWILIO_ACCOUNT_SID}.json` 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.twilio.com/2010-04-01/accounts/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c588f2246c9625d", "name": "Dangling fetch: GET https://api.postmarkapp.com/server (app/api/admin/preflight/route.ts:110)", "shortDescription": {"text": "Dangling fetch: GET https://api.postmarkapp.com/server (app/api/admin/preflight/route.ts:110)"}, "fullDescription": {"text": "`app/api/admin/preflight/route.ts:110` calls `GET https://api.postmarkapp.com/server` 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.postmarkapp.com/server`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a14cac1184548c3", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/preflight/route.ts:128)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/preflight/route.ts:128)"}, "fullDescription": {"text": "`app/api/admin/preflight/route.ts:128` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6e1cbff827722c7", "name": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/diagnose-vapi-raw/route.ts:29)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/diagnose-vapi-raw/route.ts:29)"}, "fullDescription": {"text": "`app/api/admin/diagnose-vapi-raw/route.ts:29` calls `GET https://api.vapi.ai${path}` 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.vapi.ai/<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-5bb8bb64ec0d9b72", "name": "Dangling fetch: GET https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:208)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:208)"}, "fullDescription": {"text": "`app/api/admin/voice-readiness/route.ts:208` calls `GET https://api.vapi.ai/assistant/${assistantId}` 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.vapi.ai/assistant/<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-586075d26958c2c8", "name": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:348)", "shortDescription": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:348)"}, "fullDescription": {"text": "`app/api/admin/voice-readiness/route.ts:348` calls `PATCH https://api.vapi.ai/assistant/${assistantId}` 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.vapi.ai/assistant/<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-f58820dbf8ba07a8", "name": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:432)", "shortDescription": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:432)"}, "fullDescription": {"text": "`app/api/admin/voice-readiness/route.ts:432` calls `PATCH https://api.vapi.ai/assistant/${assistantId}` 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.vapi.ai/assistant/<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-d0c7e6c484099a3f", "name": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/bootstrap-demo/route.ts:133)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/bootstrap-demo/route.ts:133)"}, "fullDescription": {"text": "`app/api/admin/bootstrap-demo/route.ts:133` calls `GET https://api.vapi.ai${path}` 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.vapi.ai/<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-36db086baa932e73", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/booking-diagnose/route.ts:59)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/booking-diagnose/route.ts:59)"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:59` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-a36878c68aad46bc", "name": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=${encodeURIComponent(accessToken!)} (app", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=${encodeURIComponent(accessToken!)} (app/api/admin/booking-diagnose/route.ts:92)"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:92` calls `GET https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=${encodeURIComponent(accessToken!)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/oauth2/v3/tokeninfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e58bfd599eca11f", "name": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,summary,primary,accessR", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,summary,primary,accessRole,timeZone) (app/api/admin/booking-diagnose/route.ts:96)"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:96` calls `GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,summary,primary,accessRole,timeZone)` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/users/me/calendarlist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a2812d6f6efa60c", "name": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:102)", "shortDescription": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:102)"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:102` calls `POST https://www.googleapis.com/calendar/v3/freeBusy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/freebusy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37919d2f1dbc4591", "name": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:114)", "shortDescription": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:114)"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:114` calls `POST https://www.googleapis.com/calendar/v3/freeBusy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/freebusy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-906bd918e5457fd3", "name": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=${new Date().toISOString()}&", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=${new Date().toISOString()}&timeMax=${new Date(Date.now() + 86_400_000).toISOString()}&singleEvents=true&maxResults=5 (app/api/admin/booking-diagnos"}, "fullDescription": {"text": "`app/api/admin/booking-diagnose/route.ts:126` calls `GET https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=${new Date().toISOString()}&timeMax=${new Date(Date.now() + 86_400_000).toISOString()}&singleEvents=true&maxResults=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/calendars/primary/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-bfa4dcec1d5ff2d2", "name": "Dangling fetch: PUT https://api.github.com/repos/${owner}/${repo}/pulls/${prNumber}/merge (app/api/admin/council/approve", "shortDescription": {"text": "Dangling fetch: PUT https://api.github.com/repos/${owner}/${repo}/pulls/${prNumber}/merge (app/api/admin/council/approve/route.ts:114)"}, "fullDescription": {"text": "`app/api/admin/council/approve/route.ts:114` calls `PUT https://api.github.com/repos/${owner}/${repo}/pulls/${prNumber}/merge` 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.github.com/repos/<p>/<p>/pulls/<p>/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-86f1912294a4765b", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/smoke-test-mailbox/route.ts:54)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/smoke-test-mailbox/route.ts:54)"}, "fullDescription": {"text": "`app/api/admin/cold-email/smoke-test-mailbox/route.ts:54` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-128fc8c8ab768329", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/oauth/callback/route.ts:51)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/oauth/callback/route.ts:51)"}, "fullDescription": {"text": "`app/api/admin/cold-email/oauth/callback/route.ts:51` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-4942203fd656afb3", "name": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (app/api/admin/cold-email/oauth/callback/route.ts:72)", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (app/api/admin/cold-email/oauth/callback/route.ts:72)"}, "fullDescription": {"text": "`app/api/admin/cold-email/oauth/callback/route.ts:72` calls `GET https://www.googleapis.com/oauth2/v3/userinfo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/oauth2/v3/userinfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc20f41c1cf61c74", "name": "Dangling fetch: GET https://api.stripe.com/v1/invoices?customer=${s.stripe_customer_id}&limit=10 (app/api/v9/settings/bi", "shortDescription": {"text": "Dangling fetch: GET https://api.stripe.com/v1/invoices?customer=${s.stripe_customer_id}&limit=10 (app/api/v9/settings/billing/route.ts:46)"}, "fullDescription": {"text": "`app/api/v9/settings/billing/route.ts:46` calls `GET https://api.stripe.com/v1/invoices?customer=${s.stripe_customer_id}&limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/invoices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-241d4b43a6fb9979", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/employees/[id]/builder/route.ts:51)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/employees/[id]/builder/route.ts:51)"}, "fullDescription": {"text": "`app/api/v9/employees/[id]/builder/route.ts:51` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72a3347f2ec2be74", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/workspaces/custom-draft/route.ts:10)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/workspaces/custom-draft/route.ts:10)"}, "fullDescription": {"text": "`app/api/v9/workspaces/custom-draft/route.ts:10` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6829602d8142d752", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/inbox/ai-draft/route.ts:48)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/inbox/ai-draft/route.ts:48)"}, "fullDescription": {"text": "`app/api/v9/inbox/ai-draft/route.ts:48` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea05a6b8855255d3", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/no-show-reengage/rout", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/no-show-reengage/route.ts:50)"}, "fullDescription": {"text": "`app/api/cron/no-show-reengage/route.ts:50` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce3898d44b072475", "name": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/try-arc-followup/route.ts:114)", "shortDescription": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/try-arc-followup/route.ts:114)"}, "fullDescription": {"text": "`app/api/cron/try-arc-followup/route.ts:114` calls `POST https://api.postmarkapp.com/email` 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.postmarkapp.com/email`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-599103733595710e", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/daily-brief/route.ts:110)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/daily-brief/route.ts:110)"}, "fullDescription": {"text": "`app/api/cron/daily-brief/route.ts:110` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e74eeb79f6bcc2e", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/cron/hot-lead-concierge/route.ts:238)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/cron/hot-lead-concierge/route.ts:238)"}, "fullDescription": {"text": "`app/api/cron/hot-lead-concierge/route.ts:238` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7474464fe2da5a6b", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/prospect-nurture/rout", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/prospect-nurture/route.ts:357)"}, "fullDescription": {"text": "`app/api/cron/prospect-nurture/route.ts:357` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c622d16aeffbd23b", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/cron/meeting-auto-join/route.ts:88)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/cron/meeting-auto-join/route.ts:88)"}, "fullDescription": {"text": "`app/api/cron/meeting-auto-join/route.ts:88` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-3569eb2c49beb1f0", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/cron/gmail-inbox-poll/route.ts:302)", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/cron/gmail-inbox-poll/route.ts:302)"}, "fullDescription": {"text": "`app/api/cron/gmail-inbox-poll/route.ts:302` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/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-6f148be598034ac7", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${msgId}?format=full (app/api/cron/gmail-inb", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${msgId}?format=full (app/api/cron/gmail-inbox-poll/route.ts:339)"}, "fullDescription": {"text": "`app/api/cron/gmail-inbox-poll/route.ts:339` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${msgId}?format=full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-0881affc79bc964f", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/weekly-brief/route.ts:135)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/weekly-brief/route.ts:135)"}, "fullDescription": {"text": "`app/api/cron/weekly-brief/route.ts:135` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecb23a43aca99fc4", "name": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/custom-employee-sla/route.ts:104)", "shortDescription": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/custom-employee-sla/route.ts:104)"}, "fullDescription": {"text": "`app/api/cron/custom-employee-sla/route.ts:104` calls `POST https://api.postmarkapp.com/email` 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.postmarkapp.com/email`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f43708d6a4d77bac", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/blog-publish/route.ts:71)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/blog-publish/route.ts:71)"}, "fullDescription": {"text": "`app/api/cron/blog-publish/route.ts:71` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d34eedd374490a51", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/booking-reminders/rou", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/booking-reminders/route.ts:123)"}, "fullDescription": {"text": "`app/api/cron/booking-reminders/route.ts:123` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfc548daaa65cfbd", "name": "Dangling fetch: POST https://api.vapi.ai/call (app/api/vapi/call/route.ts:32)", "shortDescription": {"text": "Dangling fetch: POST https://api.vapi.ai/call (app/api/vapi/call/route.ts:32)"}, "fullDescription": {"text": "`app/api/vapi/call/route.ts:32` calls `POST https://api.vapi.ai/call` 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.vapi.ai/call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dd4d70ec302e511", "name": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1&sendUpdates", "shortDescription": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1&sendUpdates=all (app/api/book-call/route.ts:248)"}, "fullDescription": {"text": "`app/api/book-call/route.ts:248` calls `POST https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1&sendUpdates=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/calendars/primary/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-ce6823fe5d6c3f0d", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/route.ts:500)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/route.ts:500)"}, "fullDescription": {"text": "`app/api/book-call/route.ts:500` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-4e547e7a77036930", "name": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,primary,accessRole)&min", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,primary,accessRole)&minAccessRole=owner (app/api/book-call/availability/route.ts:282)"}, "fullDescription": {"text": "`app/api/book-call/availability/route.ts:282` calls `GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,primary,accessRole)&minAccessRole=owner` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/users/me/calendarlist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-134ec720c262aad9", "name": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/book-call/availability/route.ts:298)", "shortDescription": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/book-call/availability/route.ts:298)"}, "fullDescription": {"text": "`app/api/book-call/availability/route.ts:298` calls `POST https://www.googleapis.com/calendar/v3/freeBusy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/freebusy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ec3abaa2912ae5c", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/availability/route.ts:332)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/availability/route.ts:332)"}, "fullDescription": {"text": "`app/api/book-call/availability/route.ts:332` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-b75717ee6e0bc727", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/connections/smoke-test/route.ts:58)", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/connections/smoke-test/route.ts:58)"}, "fullDescription": {"text": "`app/api/connections/smoke-test/route.ts:58` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/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-2c7092f3f9fe3a5e", "name": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages?$top=1&$select=id,subject (app/api/connections/smoke-te", "shortDescription": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages?$top=1&$select=id,subject (app/api/connections/smoke-test/route.ts:69)"}, "fullDescription": {"text": "`app/api/connections/smoke-test/route.ts:69` calls `GET https://graph.microsoft.com/v1.0/me/messages?$top=1&$select=id,subject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/graph.microsoft.com/v1.0/me/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b9779480a9e46d6", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${b.account_sid}.json (app/api/connections/twilio/route.t", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${b.account_sid}.json (app/api/connections/twilio/route.ts:68)"}, "fullDescription": {"text": "`app/api/connections/twilio/route.ts:68` calls `GET https://api.twilio.com/2010-04-01/Accounts/${b.account_sid}.json` 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.twilio.com/2010-04-01/accounts/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9741540e1c24c340", "name": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers.json?PageSize=200 (app/api/co", "shortDescription": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers.json?PageSize=200 (app/api/connections/twilio/numbers/route.ts:45)"}, "fullDescription": {"text": "`app/api/connections/twilio/numbers/route.ts:45` calls `GET https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers.json?PageSize=200` 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.twilio.com/2010-04-01/accounts/<p>/incomingphonenumbers.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59bbe0d09f21df75", "name": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/route.ts:69)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/route.ts:69)"}, "fullDescription": {"text": "`app/api/connections/vapi/route.ts:69` calls `GET https://api.vapi.ai/assistant` 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.vapi.ai/assistant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6ff98e9dc90cc51", "name": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/assistants/route.ts:46)", "shortDescription": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/assistants/route.ts:46)"}, "fullDescription": {"text": "`app/api/connections/vapi/assistants/route.ts:46` calls `GET https://api.vapi.ai/assistant` 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.vapi.ai/assistant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6bbd8981664ace3", "name": "Dangling fetch: POST /api/unsubscribe (app/unsubscribe/form.tsx:15)", "shortDescription": {"text": "Dangling fetch: POST /api/unsubscribe (app/unsubscribe/form.tsx:15)"}, "fullDescription": {"text": "`app/unsubscribe/form.tsx:15` calls `POST /api/unsubscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/unsubscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1295cc8a2ea7c381", "name": "Dangling fetch: POST /api/signup-intent (app/signup/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: POST /api/signup-intent (app/signup/page.tsx:81)"}, "fullDescription": {"text": "`app/signup/page.tsx:81` calls `POST /api/signup-intent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/signup-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-9da9661861c2850c", "name": "Dangling fetch: POST /api/auth/signup (app/signup/page.tsx:99)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/signup (app/signup/page.tsx:99)"}, "fullDescription": {"text": "`app/signup/page.tsx:99` calls `POST /api/auth/signup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cf60d40f0f6eb3e", "name": "Dangling fetch: POST /api/auth/resend-confirmation (app/signup/page.tsx:161)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/resend-confirmation (app/signup/page.tsx:161)"}, "fullDescription": {"text": "`app/signup/page.tsx:161` calls `POST /api/auth/resend-confirmation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/resend-confirmation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e974b13af006dce", "name": "Dangling fetch: GET /api/auth/check-confirmed?email=${encodeURIComponent(email)} (app/signup/page.tsx:198)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/check-confirmed?email=${encodeURIComponent(email)} (app/signup/page.tsx:198)"}, "fullDescription": {"text": "`app/signup/page.tsx:198` calls `GET /api/auth/check-confirmed?email=${encodeURIComponent(email)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/check-confirmed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7aa9a153a0a3be4b", "name": "Dangling fetch: POST /api/admin/log-error (app/v5/error.tsx:42)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/log-error (app/v5/error.tsx:42)"}, "fullDescription": {"text": "`app/v5/error.tsx:42` calls `POST /api/admin/log-error` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/log-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-106c38fcf2b2e69a", "name": "Dangling fetch: GET /api/v5/role (app/v5/_client-shell.tsx:488)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/role (app/v5/_client-shell.tsx:488)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:488` calls `GET /api/v5/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/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-0787cb381065e803", "name": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:557)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:557)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:557` calls `GET /api/v5/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-231803c5ae14efce", "name": "Dangling fetch: GET /api/v5/badges (app/v5/_client-shell.tsx:594)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/badges (app/v5/_client-shell.tsx:594)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:594` calls `GET /api/v5/badges` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/badges`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d945de096549fa99", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer/queue-count (app/v5/_client-shell.tsx:624)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer/queue-count (app/v5/_client-shell.tsx:624)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:624` calls `GET /api/v5/custom-employees/${personaSlug}/engineer/queue-count` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/engineer/queue-count`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e61e9730603a6713", "name": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:796)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:796)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:796` calls `GET /api/v5/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/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-84856da18c41916f", "name": "Dangling fetch: POST /api/tenants/switch (app/v5/_client-shell.tsx:820)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants/switch (app/v5/_client-shell.tsx:820)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:820` calls `POST /api/tenants/switch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants/switch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92dc869bbe928c8d", "name": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:1036)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:1036)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1036` calls `GET /api/v5/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1ab068703c5e82b", "name": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1285)", "shortDescription": {"text": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1285)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1285` calls `POST /auth/signout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38e8192a175f04fb", "name": "Dangling fetch: PATCH /api/profile (app/v5/_client-shell.tsx:1312)", "shortDescription": {"text": "Dangling fetch: PATCH /api/profile (app/v5/_client-shell.tsx:1312)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1312` calls `PATCH /api/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-3b8ad50b541de119", "name": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:1408)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:1408)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1408` calls `GET /api/v5/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/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-c5acbde6d5ce7d47", "name": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (app/v5/_client-shell.tsx:1412)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (app/v5/_client-shell.tsx:1412)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1412` calls `POST /api/admin/workspaces/${tenantId}/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1c01329b313e091", "name": "Dangling fetch: GET /api/v5/my-agents (app/v5/_client-shell.tsx:1645)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/my-agents (app/v5/_client-shell.tsx:1645)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1645` calls `GET /api/v5/my-agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/my-agents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3beb123b0c1ab71", "name": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1894)", "shortDescription": {"text": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1894)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1894` calls `POST /auth/signout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98e1e1516d2352b3", "name": "Dangling fetch: POST /api/admin/view-mode (app/v5/_client-shell.tsx:1951)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/view-mode (app/v5/_client-shell.tsx:1951)"}, "fullDescription": {"text": "`app/v5/_client-shell.tsx:1951` calls `POST /api/admin/view-mode` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/view-mode`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b1514bb26ea4e5a", "name": "Dangling fetch: GET /api/v5/integrations/feed (app/v5/settings/integrations/page.tsx:143)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/integrations/feed (app/v5/settings/integrations/page.tsx:143)"}, "fullDescription": {"text": "`app/v5/settings/integrations/page.tsx:143` calls `GET /api/v5/integrations/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/integrations/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f8a27da98c91dab", "name": "Dangling fetch: GET /api/v5/notifications (app/v5/settings/notifications/page.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/notifications (app/v5/settings/notifications/page.tsx:40)"}, "fullDescription": {"text": "`app/v5/settings/notifications/page.tsx:40` calls `GET /api/v5/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e830968df6f51fd8", "name": "Dangling fetch: POST /api/v5/notifications (app/v5/settings/notifications/page.tsx:57)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/notifications (app/v5/settings/notifications/page.tsx:57)"}, "fullDescription": {"text": "`app/v5/settings/notifications/page.tsx:57` calls `POST /api/v5/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7d26d39b1354b7c", "name": "Dangling fetch: GET /api/admin/feature-flags (app/v5/settings/flags/page.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/feature-flags (app/v5/settings/flags/page.tsx:43)"}, "fullDescription": {"text": "`app/v5/settings/flags/page.tsx:43` calls `GET /api/admin/feature-flags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/feature-flags`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1540bddcdf007e9e", "name": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:63)"}, "fullDescription": {"text": "`app/v5/settings/flags/page.tsx:63` calls `POST /api/admin/feature-flags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/feature-flags`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abad8d0bc8ea89bf", "name": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:170)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:170)"}, "fullDescription": {"text": "`app/v5/settings/flags/page.tsx:170` calls `POST /api/admin/feature-flags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/feature-flags`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e1d1ceba98132c7", "name": "Dangling fetch: GET /api/v5/crons/status (app/v5/settings/crons/page.tsx:160)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/crons/status (app/v5/settings/crons/page.tsx:160)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:160` calls `GET /api/v5/crons/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/crons/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-62bf04a4defb4dd0", "name": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:274)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:274)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:274` calls `POST /api/admin/crons/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90f070e2a1a2a392", "name": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:279)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:279)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:279` calls `POST /api/admin/crons/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/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-dbe87ae12b0282bc", "name": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:348)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:348)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:348` calls `POST /api/admin/crons/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9cfc0c52f597a02", "name": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:354)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:354)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:354` calls `POST /api/admin/crons/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/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-76344b499a9e4799", "name": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:374)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:374)"}, "fullDescription": {"text": "`app/v5/settings/crons/page.tsx:374` calls `POST /api/admin/crons/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-914a3e4bf60dc0b3", "name": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:243)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:243)"}, "fullDescription": {"text": "`app/v5/intent-signals/page.tsx:243` calls `POST /api/admin/crons/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/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-6867498bc41ea94f", "name": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:357)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:357)"}, "fullDescription": {"text": "`app/v5/intent-signals/page.tsx:357` calls `POST /api/admin/crons/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/crons/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-3c9b69820f342219", "name": "Dangling fetch: POST /api/v5/intent-signals/save (app/v5/intent-signals/page.tsx:370)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/intent-signals/save (app/v5/intent-signals/page.tsx:370)"}, "fullDescription": {"text": "`app/v5/intent-signals/page.tsx:370` calls `POST /api/v5/intent-signals/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/intent-signals/save`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f75a65932a7f4576", "name": "Dangling fetch: GET /api/v5/arc-employees/kpis (app/v5/employees/_hub-client.tsx:94)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/arc-employees/kpis (app/v5/employees/_hub-client.tsx:94)"}, "fullDescription": {"text": "`app/v5/employees/_hub-client.tsx:94` calls `GET /api/v5/arc-employees/kpis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/arc-employees/kpis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b4464431f09e6d5", "name": "Dangling fetch: GET /api/v5/workspace-assistants (app/v5/employees/_hub-client.tsx:98)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/workspace-assistants (app/v5/employees/_hub-client.tsx:98)"}, "fullDescription": {"text": "`app/v5/employees/_hub-client.tsx:98` calls `GET /api/v5/workspace-assistants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/workspace-assistants`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33120ac02c54cd22", "name": "Dangling fetch: GET /api/v9/workspaces/${target.tenantId}/manager (app/v5/employees/_hub-client.tsx:436)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${target.tenantId}/manager (app/v5/employees/_hub-client.tsx:436)"}, "fullDescription": {"text": "`app/v5/employees/_hub-client.tsx:436` calls `GET /api/v9/workspaces/${target.tenantId}/manager` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8132cfdb23dd91a9", "name": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/proposals/${p.id} (app/v5/employees/_hub-client.tsx:4", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/proposals/${p.id} (app/v5/employees/_hub-client.tsx:457)"}, "fullDescription": {"text": "`app/v5/employees/_hub-client.tsx:457` calls `POST /api/v9/workspaces/${target.tenantId}/manager/proposals/${p.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/proposals/<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-965fbbb1819295cc", "name": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/chat-uploads (app/v5/employees/_hub-client.tsx:565)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/chat-uploads (app/v5/employees/_hub-client.tsx:565)"}, "fullDescription": {"text": "`app/v5/employees/_hub-client.tsx:565` calls `POST /api/v9/workspaces/${target.tenantId}/manager/chat-uploads` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/chat-uploads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12cdb8150a4e00fb", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/integrations/stackit/test (app/v5/employees/[slug]/_orderin", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/integrations/stackit/test (app/v5/employees/[slug]/_ordering-settings.tsx:60)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_ordering-settings.tsx:60` calls `POST /api/v5/custom-employees/${personaSlug}/integrations/stackit/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/integrations/stackit/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-88c55faf7c45446a", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/settings (app/v5/employees/[slug]/_ordering-settings.tsx:9", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/settings (app/v5/employees/[slug]/_ordering-settings.tsx:90)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_ordering-settings.tsx:90` calls `PATCH /api/v5/custom-employees/${personaSlug}/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/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-581605437176d1d8", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:27)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:27)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_view-as-toggle.tsx:27` calls `GET /api/v5/custom-employees/${slug}/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be995318d5b1f086", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:41)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:41)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_view-as-toggle.tsx:41` calls `POST /api/v5/custom-employees/${slug}/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-610783c0a60de749", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${parentId}/spawn-submittal (app/v5/employees/[slug]/_", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${parentId}/spawn-submittal (app/v5/employees/[slug]/_job-picker.tsx:76)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_job-picker.tsx:76` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${parentId}/spawn-submittal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/spawn-submittal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6ac057692140f2c", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/action-inbox (app/v5/employees/[slug]/_today-landing.tsx:176", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/action-inbox (app/v5/employees/[slug]/_today-landing.tsx:176)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_today-landing.tsx:176` calls `GET /api/v5/custom-employees/${personaSlug}/action-inbox` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/action-inbox`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d73317e7108ad1ea", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_today-landing.tsx:269)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_today-landing.tsx:269)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_today-landing.tsx:269` calls `POST /api/v5/custom-employees/${personaSlug}/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/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-da00d79867dbc00f", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_today-landing", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_today-landing.tsx:285)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_today-landing.tsx:285` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78a78685c1c561e3", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_blocks.tsx:290)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_blocks.tsx:290)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_blocks.tsx:290` calls `POST /api/v5/custom-employees/${personaSlug}/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/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-155587e0e149b157", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_blocks.tsx:31", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_blocks.tsx:310)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_blocks.tsx:310` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b657b3ad4540871", "name": "Dangling fetch: POST /api/v9/upload (app/v5/employees/[slug]/_blocks.tsx:1137)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/upload (app/v5/employees/[slug]/_blocks.tsx:1137)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_blocks.tsx:1137` calls `POST /api/v9/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8a261b529ee46ab", "name": "Dangling fetch: PATCH /api/v5/workspace/settings (app/v5/employees/[slug]/_blocks.tsx:1154)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/workspace/settings (app/v5/employees/[slug]/_blocks.tsx:1154)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_blocks.tsx:1154` calls `PATCH /api/v5/workspace/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/workspace/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-25cb28941a253371", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/bulk (app/v5/employees/[slug]/_blocks.tsx:1386)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/bulk (app/v5/employees/[slug]/_blocks.tsx:1386)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/_blocks.tsx:1386` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/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-65d4de5e1796f7cd", "name": "Dangling fetch: POST /api/v5/allie/targets/import (app/v5/employees/[slug]/press-desk/_shell.tsx:204)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/allie/targets/import (app/v5/employees/[slug]/press-desk/_shell.tsx:204)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/press-desk/_shell.tsx:204` calls `POST /api/v5/allie/targets/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/allie/targets/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-e7da8361cb8495ed", "name": "Dangling fetch: GET /api/v5/allie/analytics (app/v5/employees/[slug]/press-desk/_shell.tsx:632)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/allie/analytics (app/v5/employees/[slug]/press-desk/_shell.tsx:632)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/press-desk/_shell.tsx:632` calls `GET /api/v5/allie/analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/allie/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-f708db6eedb6094f", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/oversight/${a.assignment_id} (app/v5/employees/[slug]/oversight/_c", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/oversight/${a.assignment_id} (app/v5/employees/[slug]/oversight/_client.tsx:59)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/oversight/_client.tsx:59` calls `POST /api/v5/custom-employees/${slug}/oversight/${a.assignment_id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/oversight/<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-1a84a17140d6e7d8", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/oversight (app/v5/employees/[slug]/oversight/_client.tsx:219)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/oversight (app/v5/employees/[slug]/oversight/_client.tsx:219)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/oversight/_client.tsx:219` calls `GET /api/v5/custom-employees/${slug}/oversight` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/oversight`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ac5d87c74bf8e39", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/brian-escalation (app/v5/employees/[slug]/oversight/_brian-escalat", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/brian-escalation (app/v5/employees/[slug]/oversight/_brian-escalation.tsx:60)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/oversight/_brian-escalation.tsx:60` calls `POST /api/v5/custom-employees/${slug}/brian-escalation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/brian-escalation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98cb961ccb5a4896", "name": "Dangling fetch: POST /api/v5/allie/connection (app/v5/employees/[slug]/team/_press_desk_view.tsx:133)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/allie/connection (app/v5/employees/[slug]/team/_press_desk_view.tsx:133)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_press_desk_view.tsx:133` calls `POST /api/v5/allie/connection` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/allie/connection`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a09c593786ce59f", "name": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_press_desk_view.tsx:316)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_press_desk_view.tsx:316)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_press_desk_view.tsx:316` calls `POST /api/settings/team/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/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-83d473542bf3693e", "name": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_press_desk_view.tsx:549)", "shortDescription": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_press_desk_view.tsx:549)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_press_desk_view.tsx:549` calls `PATCH /api/settings/team/member/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/member/<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-69cb98c4bfe581e7", "name": "Dangling fetch: DELETE /api/settings/team/invite/${token} (app/v5/employees/[slug]/team/_press_desk_view.tsx:577)", "shortDescription": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (app/v5/employees/[slug]/team/_press_desk_view.tsx:577)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_press_desk_view.tsx:577` calls `DELETE /api/settings/team/invite/${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<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-16e63f46dc31465b", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/sales-reps (app/v5/employees/[slug]/team/_mack-sales-team.tsx:176)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/sales-reps (app/v5/employees/[slug]/team/_mack-sales-team.tsx:176)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_mack-sales-team.tsx:176` calls `POST /api/v5/custom-employees/${slug}/sales-reps` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/sales-reps`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07ef468cfeb726ac", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/sales-reps/${id} (app/v5/employees/[slug]/team/_mack-sales-team.t", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/sales-reps/${id} (app/v5/employees/[slug]/team/_mack-sales-team.tsx:196)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_mack-sales-team.tsx:196` calls `PATCH /api/v5/custom-employees/${slug}/sales-reps/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/sales-reps/<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-10ca3afc069b8cd6", "name": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/sales-reps/${rep.id} (app/v5/employees/[slug]/team/_mack-sales-t", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/sales-reps/${rep.id} (app/v5/employees/[slug]/team/_mack-sales-team.tsx:217)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_mack-sales-team.tsx:217` calls `DELETE /api/v5/custom-employees/${slug}/sales-reps/${rep.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/sales-reps/<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-9a4346fd28f2aed9", "name": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_view.tsx:82)", "shortDescription": {"text": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_view.tsx:82)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_view.tsx:82` calls `POST /api/settings/team/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/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-d8936ad2a3e934a3", "name": "Dangling fetch: DELETE /api/settings/team/invite/${inviteId} (app/v5/employees/[slug]/team/_view.tsx:130)", "shortDescription": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${inviteId} (app/v5/employees/[slug]/team/_view.tsx:130)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_view.tsx:130` calls `DELETE /api/settings/team/invite/${inviteId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/invite/<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-f18889e0ff94d589", "name": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_view.tsx:660)", "shortDescription": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_view.tsx:660)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/team/_view.tsx:660` calls `PATCH /api/settings/team/member/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/settings/team/member/<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-ec5a208dd8c67e42", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/intake-questions (app/v5/employees/[slug]/new-project/_clie", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/intake-questions (app/v5/employees/[slug]/new-project/_client.tsx:194)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/new-project/_client.tsx:194` calls `POST /api/v5/custom-employees/${personaSlug}/intake-questions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/intake-questions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cff4317c39d8256", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/new-project/_client.tsx:246)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/new-project/_client.tsx:246)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/new-project/_client.tsx:246` calls `POST /api/v5/custom-employees/${personaSlug}/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/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-29e8a1d0e19b15af", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/new-project/_c", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/new-project/_client.tsx:263)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/new-project/_client.tsx:263` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d79428e40cfce62f", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:86)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:86)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/revisions/_client.tsx:86` calls `GET /api/v5/custom-employees/${slug}/revisions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/revisions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-935a018f7d0f7a97", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:107)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:107)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/revisions/_client.tsx:107` calls `POST /api/v5/custom-employees/${slug}/revisions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/revisions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6c4a2ba35348ea9", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/anomalies (app/v5/employees/[slug]/anomalies/_client.tsx:85)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/anomalies (app/v5/employees/[slug]/anomalies/_client.tsx:85)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/anomalies/_client.tsx:85` calls `GET /api/v5/custom-employees/${slug}/anomalies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<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-26ca676c2390f734", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/anomalies/${id}/clear (app/v5/employees/[slug]/anomalies/_client.t", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/anomalies/${id}/clear (app/v5/employees/[slug]/anomalies/_client.tsx:110)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/anomalies/_client.tsx:110` calls `POST /api/v5/custom-employees/${slug}/anomalies/${id}/clear` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/anomalies/<p>/clear`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02e44046a7f64c6b", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/ai-spend (app/v5/employees/[slug]/assistant/_client.tsx:226)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/ai-spend (app/v5/employees/[slug]/assistant/_client.tsx:226)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:226` calls `GET /api/v5/custom-employees/${personaSlug}/ai-spend` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/ai-spend`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db51f9d9cab12aba", "name": "Dangling fetch: GET /api/v9/ai-budget/global-status (app/v5/employees/[slug]/assistant/_client.tsx:227)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/ai-budget/global-status (app/v5/employees/[slug]/assistant/_client.tsx:227)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:227` calls `GET /api/v9/ai-budget/global-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/ai-budget/global-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-c2b29d88634e143c", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/manager/messages?session_id=${sessionId} (app/v5/employees/[slug]/ass", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/manager/messages?session_id=${sessionId} (app/v5/employees/[slug]/assistant/_client.tsx:304)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:304` calls `GET /api/v9/workspaces/${tenantId}/manager/messages?session_id=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da47f8b160491461", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/assistant-context (app/v5/employees/[slug]/assistant/_client", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/assistant-context (app/v5/employees/[slug]/assistant/_client.tsx:326)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:326` calls `GET /api/v5/custom-employees/${personaSlug}/assistant-context` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/assistant-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-78e7c169fc212259", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/task-plans?limit=5 (app/v5/employees/[slug]/assistant/_client.tsx:344", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/task-plans?limit=5 (app/v5/employees/[slug]/assistant/_client.tsx:344)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:344` calls `GET /api/v9/workspaces/${tenantId}/task-plans?limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/task-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-aacac82b32d1ec53", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:369)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:369` calls `POST /api/v9/workspaces/${tenantId}/task-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: `/v9/workspaces/<p>/task-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-8f46dc094471726b", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:377)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:377)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:377` calls `POST /api/v9/workspaces/${tenantId}/manager/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f72a80034f9b7960", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:392)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:392` calls `POST /api/v9/workspaces/${tenantId}/task-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: `/v9/workspaces/<p>/task-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-747ba4d6d0f53af2", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:406)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:406` calls `POST /api/v9/workspaces/${tenantId}/task-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: `/v9/workspaces/<p>/task-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-a7268b937731b08a", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:420)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:420` calls `POST /api/v9/workspaces/${tenantId}/task-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: `/v9/workspaces/<p>/task-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-fd50e389e688c573", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-url (app/v5/employees/[slug]/assistant/_client.tsx:46", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-url (app/v5/employees/[slug]/assistant/_client.tsx:463)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:463` calls `POST /api/v9/workspaces/${tenantId}/manager/upload-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/upload-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-715f2aeae92504a9", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-confirm (app/v5/employees/[slug]/assistant/_client.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-confirm (app/v5/employees/[slug]/assistant/_client.tsx:508)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:508` calls `POST /api/v9/workspaces/${tenantId}/manager/upload-confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/upload-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-87963da788af31b5", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:690)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:690)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:690` calls `POST /api/v9/workspaces/${tenantId}/manager/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cee7e64fe687f15", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/workspace-search?q=${encodeURIComponent(q)} (app/v5/employee", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/workspace-search?q=${encodeURIComponent(q)} (app/v5/employees/[slug]/assistant/_client.tsx:735)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/assistant/_client.tsx:735` calls `GET /api/v5/custom-employees/${personaSlug}/workspace-search?q=${encodeURIComponent(q)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/workspace-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-ebabf4881b5fcbfd", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:86)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:86)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/review-queue/_client.tsx:86` calls `GET /api/v5/custom-employees/${slug}/review-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/review-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-9a6d35616e3f2f73", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:119", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:119)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/review-queue/_client.tsx:119` calls `POST /api/v5/custom-employees/${slug}/review-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/review-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-1971201c97f74200", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer-queue (app/v5/employees/[slug]/engineer/_queue-clie", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer-queue (app/v5/employees/[slug]/engineer/_queue-client.tsx:230)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/engineer/_queue-client.tsx:230` calls `GET /api/v5/custom-employees/${personaSlug}/engineer-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/engineer-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-c03ba9ecdc45e0ca", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/engineer/_", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/engineer/_queue-client.tsx:253)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/engineer/_queue-client.tsx:253` calls `GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8bce08f113d968d", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/structure-edits (app/v5/employees/[slug]", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/structure-edits (app/v5/employees/[slug]/engineer/_queue-client.tsx:298)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/engineer/_queue-client.tsx:298` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/structure-edits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structure-edits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86df1197db145105", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/signoff (app/v5/employees/[slug]/enginee", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/signoff (app/v5/employees/[slug]/engineer/_queue-client.tsx:379)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/engineer/_queue-client.tsx:379` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/signoff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/signoff`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73589a52592ebc6e", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/engineer-decision (app/v5/employees/[slu", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/engineer-decision (app/v5/employees/[slug]/engineer/_queue-client.tsx:402)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/engineer/_queue-client.tsx:402` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/engineer-decision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/engineer-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-ebc40bf9a6e329c2", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_quote-in", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_quote-intake-tagger.tsx:48)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_quote-intake-tagger.tsx:48` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-ac4ea743ad712cda", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/jobs/[id]/", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:103)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:103` calls `GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85af5af0658b00ba", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structure-edits (app/v5/employees/[slug]/jobs", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structure-edits (app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:125)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:125` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structure-edits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/structure-edits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4920efc725da99f1", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_editor.t", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_editor.tsx:96)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_editor.tsx:96` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-d79c33c2c28c36f0", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_send-to-engine", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:46)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:46` calls `GET /api/v5/custom-employees/${personaSlug}/engineers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/engineers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76b310d2ec5d6d89", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/send-to-engineer (app/v5/employees/[slug]/job", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/send-to-engineer (app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:82)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:82` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/send-to-engineer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/send-to-engineer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2404fb31f1b82125", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/line-items-sync (app/v5/employees/[slug]/jobs", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/line-items-sync (app/v5/employees/[slug]/jobs/[id]/_structure-quote-card.tsx:165)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-quote-card.tsx:165` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/line-items-sync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/line-items-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-0476f45a552a170a", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_revision", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:40)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:40` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-3ddbd1753f7e5ad0", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:80)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:80` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/revision-upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f09d54d7c71b83d5", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/job", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:110)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:110` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/voice-transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7316fc00470dd09b", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:130)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:130` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/revision-upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32e26db963286518", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs?limit=50 (app/v5/employees/[slug]/jobs/[id]/_contractor", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs?limit=50 (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:158)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:158` calls `GET /api/v5/custom-employees/${personaSlug}/jobs?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: `/v5/custom-employees/<p>/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-c064b71d8334cb8c", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structur", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-63225feb32954115", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structur", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:312)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:312` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-77cb1589fd8ba6e6", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structur", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:347)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:347` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-a5a9882100bf32f0", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structur", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:369)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:369` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-f0d8bb6381d85812", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:20)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:20` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-b223353108de4363", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157` calls `PATCH /api/v5/custom-employees/${personaSlug}/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: `/v5/custom-employees/<p>/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-490d24d5ce15b5aa", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/_act", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:200)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:200` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-742eb02c2d290545", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/quote-tokens (app/v5/employees/[slug]/jobs/[i", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/quote-tokens (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:240)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:240` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/quote-tokens` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/quote-tokens`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb3bcada2ac90ed6", "name": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:33", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:331)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:331` calls `GET /api/v5/custom-employees/${personaSlug}/engineers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/engineers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25f27bc54eff700c", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/assign-to-engineer (app/v5/employees/[slug]/j", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/assign-to-engineer (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:354)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:354` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/assign-to-engineer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/assign-to-engineer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1af88d6558b4785", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/${promoteEndpoint} (app/v5/employees/[slug]/j", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/${promoteEndpoint} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:554)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/_actions.tsx:554` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/${promoteEndpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<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-e6dc5a0780c76efb", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/locate-structures (app/v5/employees/[slug]/jobs/[id]", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/locate-structures (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:440)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:440` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/locate-structures` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/locate-structures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6dda88f9dea1f47b", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (app/v5/employees/[slug]/jobs/[", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:462)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:462` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/generate-screenshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e039f6dc7efffcc1", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:481)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:481` calls `POST /api/v5/custom-employees/${slug}/review-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/review-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-9c47268f5278a96d", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/regen-structure (app/v5/employees/[slug]/jobs/[id]/r", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/regen-structure (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:548)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:548` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/regen-structure` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/regen-structure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-458195cc35e94247", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/annotations (app/v5/employees/[slug]/jobs/[id]/revie", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/annotations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:579)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:579` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/annotations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/annotations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-182bbeaf2a21c41d", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:633)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:633` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1171cba46c9efce0", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[i", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:651)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:651` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-explanations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ece717f5105d178", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[id", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658` calls `GET /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-explanations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad5f44e57eef73e1", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/review/_client.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:678)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:678` calls `POST /api/v5/custom-employees/${slug}/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: `/v5/custom-employees/<p>/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-3b6cf6b53c96adeb", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files/upload-url (app/v5/employees/[slug]/jobs/[id]/", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files/upload-url (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:710)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:710` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files/upload-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files/upload-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9619e53769824fe3", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/review/_cli", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:722)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:722` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25354d38e3af6c74", "name": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-state (app/v5/employees/[slug]/jobs/[id]/review", "shortDescription": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-state (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:112)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:112` calls `GET /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-state` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-state`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cd6379a5198da2d", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:175)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:175` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f164f4e492498ee", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-command (app/v5/employees/[slug]/jobs/[id]/rev", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-command (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:202)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:202` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-command` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-command`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94ba1e91dd208df0", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-speak (app/v5/employees/[slug]/jobs/[id]/revie", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-speak (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:229)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:229` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-speak` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-speak`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8cffc65f6e0db91", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-apply (app/v5/employees/[slug]/jobs/[id]/revie", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-apply (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:260)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:260` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/voice-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-dfbb9aac76d0f4c5", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_cli", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:83)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:83` calls `POST /api/v5/custom-employees/${slug}/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: `/v5/custom-employees/<p>/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-3752a0b71f406af5", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_cli", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:101)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:101` calls `POST /api/v5/custom-employees/${slug}/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: `/v5/custom-employees/<p>/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-bdd0a278c5625f03", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:53)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:53` calls `POST /api/v5/custom-employees/${slug}/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: `/v5/custom-employees/<p>/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-1beb23f1148e2928", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:86)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:86` calls `POST /api/v5/custom-employees/${slug}/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: `/v5/custom-employees/<p>/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-903e3899590ab44c", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/compare (app/v5/employees/[slug]/jobs/[id]/compare/_", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/compare (app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:90)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:90` calls `POST /api/v5/custom-employees/${slug}/jobs/${jobId}/compare` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/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-1468d038d1bbbb63", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:90)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:90)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:90` calls `POST /api/v5/custom-employees/${slug}/knowledge/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27120110ddb1c4be", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:155)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:155)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:155` calls `POST /api/v5/custom-employees/${slug}/knowledge/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62b6b3bb8a3b895b", "name": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge (app/v5/employees/[slug]/knowledge/_view.tsx:189)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge (app/v5/employees/[slug]/knowledge/_view.tsx:189)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:189` calls `POST /api/v5/custom-employees/${slug}/knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a90003164e07805e", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:224)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:224` calls `PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/<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-83b99bc1a036285e", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:241)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:241` calls `PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/<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-21e26cd0c8af5459", "name": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:258)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:258` calls `PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/<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-d59a11d77c835a96", "name": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:277)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/knowledge/_view.tsx:277` calls `DELETE /api/v5/custom-employees/${slug}/knowledge/${doc.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/knowledge/<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-1006d00122d70d7e", "name": "Dangling fetch: GET /api/v5/mack/training/list?status=${next} (app/v5/employees/[slug]/training/_view.tsx:79)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/mack/training/list?status=${next} (app/v5/employees/[slug]/training/_view.tsx:79)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/training/_view.tsx:79` calls `GET /api/v5/mack/training/list?status=${next}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/mack/training/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd916b4d2dce72d8", "name": "Dangling fetch: POST /api/v5/mack/training/action (app/v5/employees/[slug]/training/_view.tsx:94)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/mack/training/action (app/v5/employees/[slug]/training/_view.tsx:94)"}, "fullDescription": {"text": "`app/v5/employees/[slug]/training/_view.tsx:94` calls `POST /api/v5/mack/training/action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/mack/training/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-77e756db932d9c0c", "name": "Dangling fetch: GET /api/v5/outreach/linkedin/status (app/v5/outreach/_view.tsx:154)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/outreach/linkedin/status (app/v5/outreach/_view.tsx:154)"}, "fullDescription": {"text": "`app/v5/outreach/_view.tsx:154` calls `GET /api/v5/outreach/linkedin/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/outreach/linkedin/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-10a6bd48bcfa068c", "name": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_admin-view.tsx:96)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_admin-view.tsx:96)"}, "fullDescription": {"text": "`app/v5/connect/_admin-view.tsx:96` calls `GET /api/v5/connect/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/connect/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-da4db4844df75716", "name": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_client-view.tsx:88)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_client-view.tsx:88)"}, "fullDescription": {"text": "`app/v5/connect/_client-view.tsx:88` calls `GET /api/v5/connect/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/connect/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-ec684fe1dc96ee59", "name": "Dangling fetch: POST /api/integrations/ams/nowcerts/credentials (app/v5/connect/ams/_nowcerts-form.tsx:38)", "shortDescription": {"text": "Dangling fetch: POST /api/integrations/ams/nowcerts/credentials (app/v5/connect/ams/_nowcerts-form.tsx:38)"}, "fullDescription": {"text": "`app/v5/connect/ams/_nowcerts-form.tsx:38` calls `POST /api/integrations/ams/nowcerts/credentials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/integrations/ams/nowcerts/credentials`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93a79b803e92deba", "name": "Dangling fetch: GET /api/admin/partners/${row.id} (app/v5/partners/partners-admin-client.tsx:139)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/partners/${row.id} (app/v5/partners/partners-admin-client.tsx:139)"}, "fullDescription": {"text": "`app/v5/partners/partners-admin-client.tsx:139` calls `GET /api/admin/partners/${row.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/partners/<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-390f166528507e4b", "name": "Dangling fetch: GET /api/v5/analytics/feed (app/v5/analytics/page.tsx:77)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/analytics/feed (app/v5/analytics/page.tsx:77)"}, "fullDescription": {"text": "`app/v5/analytics/page.tsx:77` calls `GET /api/v5/analytics/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/analytics/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7ac647eb2256a49", "name": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:261)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:261)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:261` calls `POST /api/v5/leads/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/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-d07bb67cf39ffaa8", "name": "Dangling fetch: PATCH /api/v5/leads/${id} (app/v5/leads/_page-legacy.tsx:368)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/leads/${id} (app/v5/leads/_page-legacy.tsx:368)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:368` calls `PATCH /api/v5/leads/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-f113544b70a71e46", "name": "Dangling fetch: POST /api/v5/leads/export (app/v5/leads/_page-legacy.tsx:467)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/leads/export (app/v5/leads/_page-legacy.tsx:467)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:467` calls `POST /api/v5/leads/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/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-7be589cb2a394a68", "name": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:674)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:674)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:674` calls `POST /api/v5/leads/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/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-b67cd5a521eb2d96", "name": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:691)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:691)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:691` calls `POST /api/v5/leads/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/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-bf8022470554a760", "name": "Dangling fetch: GET /api/v5/leads/${lead.id} (app/v5/leads/_page-legacy.tsx:934)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/leads/${lead.id} (app/v5/leads/_page-legacy.tsx:934)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:934` calls `GET /api/v5/leads/${lead.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-10388a8de3cb1c14", "name": "Dangling fetch: POST /api/v5/contacts/${lead.id}/send-video (app/v5/leads/_page-legacy.tsx:961)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/contacts/${lead.id}/send-video (app/v5/leads/_page-legacy.tsx:961)"}, "fullDescription": {"text": "`app/v5/leads/_page-legacy.tsx:961` calls `POST /api/v5/contacts/${lead.id}/send-video` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/contacts/<p>/send-video`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b36381a6a4af173", "name": "Dangling fetch: GET /api/v5/insights (app/v5/insights/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/insights (app/v5/insights/page.tsx:67)"}, "fullDescription": {"text": "`app/v5/insights/page.tsx:67` calls `GET /api/v5/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/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-408fe22b70167886", "name": "Dangling fetch: GET /api/v5/voice (app/v5/voice/page.tsx:78)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/voice (app/v5/voice/page.tsx:78)"}, "fullDescription": {"text": "`app/v5/voice/page.tsx:78` calls `GET /api/v5/voice` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/voice`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb14391ea2f55054", "name": "Dangling fetch: PATCH /api/v5/voice (app/v5/voice/page.tsx:100)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/voice (app/v5/voice/page.tsx:100)"}, "fullDescription": {"text": "`app/v5/voice/page.tsx:100` calls `PATCH /api/v5/voice` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/voice`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-108802cdfd0e0af2", "name": "Dangling fetch: GET /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:154)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:154)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/caden-drawer.tsx:154` calls `GET /api/v5/voice/caden` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/voice/caden`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c18a5eec6a538e89", "name": "Dangling fetch: POST /api/v5/voice/caden/prompt (app/v5/employees-admin/[slug]/caden-drawer.tsx:273)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/voice/caden/prompt (app/v5/employees-admin/[slug]/caden-drawer.tsx:273)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/caden-drawer.tsx:273` calls `POST /api/v5/voice/caden/prompt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/voice/caden/prompt`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c71394ef89bd794c", "name": "Dangling fetch: PATCH /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:364)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:364)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/caden-drawer.tsx:364` calls `PATCH /api/v5/voice/caden` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/voice/caden`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92ced8024e5a710d", "name": "Dangling fetch: POST /api/admin/council/approve (app/v5/employees-admin/[slug]/caden-drawer.tsx:615)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/employees-admin/[slug]/caden-drawer.tsx:615)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/caden-drawer.tsx:615` calls `POST /api/admin/council/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/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-3886f47443a0cf83", "name": "Dangling fetch: POST /api/admin/voice-prompt/apply (app/v5/employees-admin/[slug]/caden-drawer.tsx:627)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/voice-prompt/apply (app/v5/employees-admin/[slug]/caden-drawer.tsx:627)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/caden-drawer.tsx:627` calls `POST /api/admin/voice-prompt/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/voice-prompt/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-614f762a8d1bfed3", "name": "Dangling fetch: POST /api/employees/personas/upsert (app/v5/employees-admin/[slug]/edit-client.tsx:45)", "shortDescription": {"text": "Dangling fetch: POST /api/employees/personas/upsert (app/v5/employees-admin/[slug]/edit-client.tsx:45)"}, "fullDescription": {"text": "`app/v5/employees-admin/[slug]/edit-client.tsx:45` calls `POST /api/employees/personas/upsert` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/employees/personas/upsert`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1bbf5b168fb35d8", "name": "Dangling fetch: GET /api/v9/admin/hot-leads (app/v5/admin/hot-leads/_client.tsx:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/hot-leads (app/v5/admin/hot-leads/_client.tsx:23)"}, "fullDescription": {"text": "`app/v5/admin/hot-leads/_client.tsx:23` calls `GET /api/v9/admin/hot-leads` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/hot-leads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98740b2f68c337a2", "name": "Dangling fetch: GET /api/v5/admin/usage?window=${w} (app/v5/admin/usage/_view.tsx:80)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/admin/usage?window=${w} (app/v5/admin/usage/_view.tsx:80)"}, "fullDescription": {"text": "`app/v5/admin/usage/_view.tsx:80` calls `GET /api/v5/admin/usage?window=${w}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/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-2a0f519c1b628c5f", "name": "Dangling fetch: GET /api/admin/workspaces/${tenantId} (app/v5/admin/workspaces/[tenantId]/page.tsx:62)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId} (app/v5/admin/workspaces/[tenantId]/page.tsx:62)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:62` calls `GET /api/admin/workspaces/${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<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-5b7b265d2a317357", "name": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/members (app/v5/admin/workspaces/[tenantId]/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/members (app/v5/admin/workspaces/[tenantId]/page.tsx:63)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:63` calls `GET /api/admin/workspaces/${tenantId}/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<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-fdfb408f74aee480", "name": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (app/v5/admin/workspaces/[tenantId]/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (app/v5/admin/workspaces/[tenantId]/page.tsx:64)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:64` calls `GET /api/admin/workspaces/${tenantId}/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f63f80d5e972731", "name": "Dangling fetch: PATCH /api/admin/workspaces/${tenantId}/edit (app/v5/admin/workspaces/[tenantId]/page.tsx:87)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/workspaces/${tenantId}/edit (app/v5/admin/workspaces/[tenantId]/page.tsx:87)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:87` calls `PATCH /api/admin/workspaces/${tenantId}/edit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/edit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98c71dcaffa9f382", "name": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/resend-invite (app/v5/admin/workspaces/[tenantId]/page.tsx:101)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/resend-invite (app/v5/admin/workspaces/[tenantId]/page.tsx:101)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:101` calls `POST /api/admin/workspaces/${tenantId}/resend-invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/resend-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-1357bf1d1f32b601", "name": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/add-member (app/v5/admin/workspaces/[tenantId]/page.tsx:122)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/add-member (app/v5/admin/workspaces/[tenantId]/page.tsx:122)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:122` calls `POST /api/admin/workspaces/${tenantId}/add-member` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/add-member`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fd70fd31094818e", "name": "Dangling fetch: DELETE /api/admin/workspaces/${tenantId}/delete (app/v5/admin/workspaces/[tenantId]/page.tsx:139)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/workspaces/${tenantId}/delete (app/v5/admin/workspaces/[tenantId]/page.tsx:139)"}, "fullDescription": {"text": "`app/v5/admin/workspaces/[tenantId]/page.tsx:139` calls `DELETE /api/admin/workspaces/${tenantId}/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fdf2839b2512a76", "name": "Dangling fetch: POST /api/admin/feature-flags (app/v5/admin/audits/auto-send-toggle.tsx:39)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/admin/audits/auto-send-toggle.tsx:39)"}, "fullDescription": {"text": "`app/v5/admin/audits/auto-send-toggle.tsx:39` calls `POST /api/admin/feature-flags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/feature-flags`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb294c6d8d7cb389", "name": "Dangling fetch: POST /api/admin/scoping-checkout (app/v5/admin/audits/audit-table-client.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/scoping-checkout (app/v5/admin/audits/audit-table-client.tsx:59)"}, "fullDescription": {"text": "`app/v5/admin/audits/audit-table-client.tsx:59` calls `POST /api/admin/scoping-checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/scoping-checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06f2ee30161a42e2", "name": "Dangling fetch: PATCH /api/admin/audit/${props.auditId}/save (app/v5/admin/audits/[id]/review-client.tsx:55)", "shortDescription": {"text": "Dangling fetch: PATCH /api/admin/audit/${props.auditId}/save (app/v5/admin/audits/[id]/review-client.tsx:55)"}, "fullDescription": {"text": "`app/v5/admin/audits/[id]/review-client.tsx:55` calls `PATCH /api/admin/audit/${props.auditId}/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/audit/<p>/save`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30d4231edbc7e317", "name": "Dangling fetch: POST /api/admin/audit/${props.auditId}/regenerate (app/v5/admin/audits/[id]/review-client.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/audit/${props.auditId}/regenerate (app/v5/admin/audits/[id]/review-client.tsx:91)"}, "fullDescription": {"text": "`app/v5/admin/audits/[id]/review-client.tsx:91` calls `POST /api/admin/audit/${props.auditId}/regenerate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/audit/<p>/regenerate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e7643818ced5733", "name": "Dangling fetch: POST /api/admin/audit/${props.auditId}/approve (app/v5/admin/audits/[id]/review-client.tsx:121)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/audit/${props.auditId}/approve (app/v5/admin/audits/[id]/review-client.tsx:121)"}, "fullDescription": {"text": "`app/v5/admin/audits/[id]/review-client.tsx:121` calls `POST /api/admin/audit/${props.auditId}/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/audit/<p>/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-5f4698f7ccf49461", "name": "Dangling fetch: POST /api/v5/admin/custom-employees (app/v5/admin/custom-employees/new/_form.tsx:70)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees (app/v5/admin/custom-employees/new/_form.tsx:70)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/new/_form.tsx:70` calls `POST /api/v5/admin/custom-employees` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb89603e02544469", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/build-from-pdf (app/v5/admin/custom-employees/build-from-pdf/page.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/build-from-pdf (app/v5/admin/custom-employees/build-from-pdf/page.tsx:33)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/build-from-pdf/page.tsx:33` calls `POST /api/v5/admin/custom-employees/build-from-pdf` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/build-from-pdf`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd733dfeaf2258f3", "name": "Dangling fetch: POST /api/v9/employee-drafts (app/v5/admin/custom-employees/new-with-ai/_client.tsx:148)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/employee-drafts (app/v5/admin/custom-employees/new-with-ai/_client.tsx:148)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/new-with-ai/_client.tsx:148` calls `POST /api/v9/employee-drafts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employee-drafts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b484cefb5cfcdead", "name": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/chat (app/v5/admin/custom-employees/new-with-ai/_client.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/chat (app/v5/admin/custom-employees/new-with-ai/_client.tsx:365)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/new-with-ai/_client.tsx:365` calls `POST /api/v9/employee-drafts/${draftRow.id}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employee-drafts/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31953938bc79d370", "name": "Dangling fetch: PATCH /api/v9/employee-drafts/${draftRow.id} (app/v5/admin/custom-employees/new-with-ai/_client.tsx:386)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/employee-drafts/${draftRow.id} (app/v5/admin/custom-employees/new-with-ai/_client.tsx:386)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/new-with-ai/_client.tsx:386` calls `PATCH /api/v9/employee-drafts/${draftRow.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employee-drafts/<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-661144dc6069fa54", "name": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/create (app/v5/admin/custom-employees/new-with-ai/_client.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/create (app/v5/admin/custom-employees/new-with-ai/_client.tsx:410)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/new-with-ai/_client.tsx:410` calls `POST /api/v9/employee-drafts/${draftRow.id}/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employee-drafts/<p>/create`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ac2221f73193eb9", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog/import (app/v5/admin/custom-employees/[slug]/", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog/import (app/v5/admin/custom-employees/[slug]/_managers.tsx:22)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:22` calls `POST /api/v5/admin/custom-employees/${personaSlug}/catalog/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/catalog/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-e2d8ce9821d1e0be", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog (app/v5/admin/custom-employees/[slug]/_manage", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog (app/v5/admin/custom-employees/[slug]/_managers.tsx:64)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:64` calls `POST /api/v5/admin/custom-employees/${personaSlug}/catalog` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/catalog`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56bb5bad8a8913ca", "name": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]/", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:77)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:77` calls `PATCH /api/v5/admin/custom-employees/${personaSlug}/catalog/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/catalog/<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-3c56518a89964ed1", "name": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:87)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:87` calls `DELETE /api/v5/admin/custom-employees/${personaSlug}/catalog/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/catalog/<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-ba72f9a64f6bf04d", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/rules (app/v5/admin/custom-employees/[slug]/_managers", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/rules (app/v5/admin/custom-employees/[slug]/_managers.tsx:145)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:145` calls `POST /api/v5/admin/custom-employees/${personaSlug}/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/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-ee412603f927c5f9", "name": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/rules/${id} (app/v5/admin/custom-employees/[slug]/_m", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/rules/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:153)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:153` calls `PATCH /api/v5/admin/custom-employees/${personaSlug}/rules/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/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-b0a5e713d07b3de3", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/knowledge (app/v5/admin/custom-employees/[slug]/_mana", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/knowledge (app/v5/admin/custom-employees/[slug]/_managers.tsx:207)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:207` calls `POST /api/v5/admin/custom-employees/${personaSlug}/knowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/knowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fad5179a03375276", "name": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/knowledge/${id} (app/v5/admin/custom-employees/[slug", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/knowledge/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:216)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/_managers.tsx:216` calls `PATCH /api/v5/admin/custom-employees/${personaSlug}/knowledge/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/knowledge/<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-ac5e35165bc52647", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees/[", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:28)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:28` calls `POST /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/integrations/stackit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b766da92d1ab743", "name": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:46)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:46` calls `DELETE /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/integrations/stackit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18b0ac0495c71042", "name": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employees", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25` calls `PATCH /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/standard-sheets/<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-1bb58f33c3fd69a8", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${sheet.id}/upload-url (app/v5/admin/", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${sheet.id}/upload-url (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:36)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:36` calls `POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${sheet.id}/upload-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/standard-sheets/<p>/upload-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-822f8c9d9c816be3", "name": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets (app/v5/admin/custom-employees/[slug]", "shortDescription": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:61)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:61` calls `POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/standard-sheets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70060e6e01056231", "name": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employee", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:76)"}, "fullDescription": {"text": "`app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:76` calls `DELETE /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/admin/custom-employees/<p>/standard-sheets/<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-12ac8c5404b66ef8", "name": "Dangling fetch: GET /api/v9/admin/outbound-copies (app/v5/admin/copy-monitor/_client.tsx:20)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/outbound-copies (app/v5/admin/copy-monitor/_client.tsx:20)"}, "fullDescription": {"text": "`app/v5/admin/copy-monitor/_client.tsx:20` calls `GET /api/v9/admin/outbound-copies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/outbound-copies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5500bb8109b9a507", "name": "Dangling fetch: GET /api/v9/admin/tenant-quality (app/v5/admin/tenant-quality/_client.tsx:35)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/tenant-quality (app/v5/admin/tenant-quality/_client.tsx:35)"}, "fullDescription": {"text": "`app/v5/admin/tenant-quality/_client.tsx:35` calls `GET /api/v9/admin/tenant-quality` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/tenant-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-741d8e360e764386", "name": "Dangling fetch: GET /api/v9/admin/copy-test-results (app/v5/admin/copy-test-results/_client.tsx:26)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/copy-test-results (app/v5/admin/copy-test-results/_client.tsx:26)"}, "fullDescription": {"text": "`app/v5/admin/copy-test-results/_client.tsx:26` calls `GET /api/v9/admin/copy-test-results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/copy-test-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-825c9996d527eff4", "name": "Dangling fetch: GET /api/v5/agents/feed (app/v5/agents/_page-legacy.tsx:196)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/agents/feed (app/v5/agents/_page-legacy.tsx:196)"}, "fullDescription": {"text": "`app/v5/agents/_page-legacy.tsx:196` calls `GET /api/v5/agents/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/agents/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff0274b630921062", "name": "Dangling fetch: POST /api/agents/${draft.id}/chat (app/v5/agents/_page-legacy.tsx:379)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/${draft.id}/chat (app/v5/agents/_page-legacy.tsx:379)"}, "fullDescription": {"text": "`app/v5/agents/_page-legacy.tsx:379` calls `POST /api/agents/${draft.id}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-100548dd15ef99c7", "name": "Dangling fetch: PATCH /api/agents/${draft.id} (app/v5/agents/_page-legacy.tsx:405)", "shortDescription": {"text": "Dangling fetch: PATCH /api/agents/${draft.id} (app/v5/agents/_page-legacy.tsx:405)"}, "fullDescription": {"text": "`app/v5/agents/_page-legacy.tsx:405` calls `PATCH /api/agents/${draft.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/<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-7a2df557d3cc7836", "name": "Dangling fetch: GET /api/v5/content?status=${tab} (app/v5/content/page.tsx:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/content?status=${tab} (app/v5/content/page.tsx:55)"}, "fullDescription": {"text": "`app/v5/content/page.tsx:55` calls `GET /api/v5/content?status=${tab}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/content`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c35b06fb7a5f09f7", "name": "Dangling fetch: GET /api/v5/council (app/v5/content/page.tsx:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/council (app/v5/content/page.tsx:61)"}, "fullDescription": {"text": "`app/v5/content/page.tsx:61` calls `GET /api/v5/council` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/council`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13391dbb99477192", "name": "Dangling fetch: POST /api/v5/content (app/v5/content/page.tsx:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/content (app/v5/content/page.tsx:79)"}, "fullDescription": {"text": "`app/v5/content/page.tsx:79` calls `POST /api/v5/content` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/content`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f1754b6b3de589c", "name": "Dangling fetch: GET /api/v5/campaigns/feed (app/v5/campaigns/_page-legacy.tsx:41)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/campaigns/feed (app/v5/campaigns/_page-legacy.tsx:41)"}, "fullDescription": {"text": "`app/v5/campaigns/_page-legacy.tsx:41` calls `GET /api/v5/campaigns/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4036af137b2f9d0f", "name": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/pause (app/v5/campaigns/_page-legacy.tsx:154)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/pause (app/v5/campaigns/_page-legacy.tsx:154)"}, "fullDescription": {"text": "`app/v5/campaigns/_page-legacy.tsx:154` calls `POST /api/v5/campaigns/${campaign.id}/pause` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/<p>/pause`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de0b03938543021e", "name": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/activate (app/v5/campaigns/_page-legacy.tsx:165)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/activate (app/v5/campaigns/_page-legacy.tsx:165)"}, "fullDescription": {"text": "`app/v5/campaigns/_page-legacy.tsx:165` calls `POST /api/v5/campaigns/${campaign.id}/activate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/<p>/activate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-480b10d727de45b0", "name": "Dangling fetch: PATCH /api/v5/campaigns/${campaign.id}/steps/${s.idx} (app/v5/campaigns/_page-legacy.tsx:183)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/campaigns/${campaign.id}/steps/${s.idx} (app/v5/campaigns/_page-legacy.tsx:183)"}, "fullDescription": {"text": "`app/v5/campaigns/_page-legacy.tsx:183` calls `PATCH /api/v5/campaigns/${campaign.id}/steps/${s.idx}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/campaigns/<p>/steps/<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-571808df53c2e0e0", "name": "Dangling fetch: GET /api/billing/tenant-plan (app/v5/upgrade/page.tsx:153)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/tenant-plan (app/v5/upgrade/page.tsx:153)"}, "fullDescription": {"text": "`app/v5/upgrade/page.tsx:153` calls `GET /api/billing/tenant-plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/tenant-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-c551cf5f45bb6ff6", "name": "Dangling fetch: POST /api/billing/change-plan (app/v5/upgrade/page.tsx:506)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/change-plan (app/v5/upgrade/page.tsx:506)"}, "fullDescription": {"text": "`app/v5/upgrade/page.tsx:506` calls `POST /api/billing/change-plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/change-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-d6aab4886b9df5b5", "name": "Dangling fetch: GET /api/v5/senders/feed (app/v5/senders/_view.tsx:78)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/senders/feed (app/v5/senders/_view.tsx:78)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:78` calls `GET /api/v5/senders/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f987fb466a1ac294", "name": "Dangling fetch: POST /api/v5/senders/sync (app/v5/senders/_view.tsx:129)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/senders/sync (app/v5/senders/_view.tsx:129)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:129` calls `POST /api/v5/senders/sync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/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-084f8cbbd8d46530", "name": "Dangling fetch: DELETE /api/v5/senders/${m.id} (app/v5/senders/_view.tsx:225)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v5/senders/${m.id} (app/v5/senders/_view.tsx:225)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:225` calls `DELETE /api/v5/senders/${m.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/<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-886b23ac2c48b2c6", "name": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:461)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:461)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:461` calls `PATCH /api/v5/senders/mailbox/${mailbox.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/mailbox/<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-42d6a75d9e9e1fae", "name": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:473)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:473)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:473` calls `PATCH /api/v5/senders/mailbox/${mailbox.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/mailbox/<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-353a257e44710f64", "name": "Dangling fetch: POST /api/admin/dns-check (app/v5/senders/_view.tsx:485)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/dns-check (app/v5/senders/_view.tsx:485)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:485` calls `POST /api/admin/dns-check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/dns-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-b77cc15687760d76", "name": "Dangling fetch: PATCH /api/v5/senders/sms/${num.id} (app/v5/senders/_view.tsx:556)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/senders/sms/${num.id} (app/v5/senders/_view.tsx:556)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:556` calls `PATCH /api/v5/senders/sms/${num.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/senders/sms/<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-c9c0681cd174bece", "name": "Dangling fetch: POST /api/v5/senders/sms/${num.id}/sync (app/v5/senders/_view.tsx:569)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/senders/sms/${num.id}/sync (app/v5/senders/_view.tsx:569)"}, "fullDescription": {"text": "`app/v5/senders/_view.tsx:569` calls `POST /api/v5/senders/sms/${num.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: `/v5/senders/sms/<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-a5058843de366ca9", "name": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:91)"}, "fullDescription": {"text": "`app/v5/council/page.tsx:91` calls `POST /api/admin/council/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/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-3d4516dc0cdde98f", "name": "Dangling fetch: GET /api/v5/council/feed (app/v5/council/page.tsx:115)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/council/feed (app/v5/council/page.tsx:115)"}, "fullDescription": {"text": "`app/v5/council/page.tsx:115` calls `GET /api/v5/council/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/council/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7f674497fa3cc65", "name": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:197)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:197)"}, "fullDescription": {"text": "`app/v5/council/page.tsx:197` calls `POST /api/admin/council/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/council/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-4aabd420361a0d73", "name": "Dangling fetch: POST /api/v5/council/toggle (app/v5/council/page.tsx:543)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/council/toggle (app/v5/council/page.tsx:543)"}, "fullDescription": {"text": "`app/v5/council/page.tsx:543` calls `POST /api/v5/council/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/council/toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3d106c8e62bd99d", "name": "Dangling fetch: GET /api/v5/inbox/feed (app/v5/inbox/_page-legacy.tsx:430)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/inbox/feed (app/v5/inbox/_page-legacy.tsx:430)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:430` calls `GET /api/v5/inbox/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39b3ad48d3e9d470", "name": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:534)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:534)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:534` calls `POST /api/inbox/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f31114b75b6a3c44", "name": "Dangling fetch: GET /api/v5/inbox/thread/${encodeURIComponent(target.id)} (app/v5/inbox/_page-legacy.tsx:571)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${encodeURIComponent(target.id)} (app/v5/inbox/_page-legacy.tsx:571)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:571` calls `GET /api/v5/inbox/thread/${encodeURIComponent(target.id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/inbox/thread/<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-cf6dd797de361c8a", "name": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:643)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:643)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:643` calls `POST /api/admin/sms-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/sms-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16357e69057f611c", "name": "Dangling fetch: POST /api/inbox/snooze (app/v5/inbox/_page-legacy.tsx:724)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/snooze (app/v5/inbox/_page-legacy.tsx:724)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:724` calls `POST /api/inbox/snooze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/snooze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8b7fda14f543e5e", "name": "Dangling fetch: POST /api/inbox/mute-ai (app/v5/inbox/_page-legacy.tsx:749)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/mute-ai (app/v5/inbox/_page-legacy.tsx:749)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:749` calls `POST /api/inbox/mute-ai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/mute-ai`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60201cf4e210527c", "name": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:1636)", "shortDescription": {"text": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:1636)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:1636` calls `POST /api/inbox/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/inbox/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd778dbe4bc0cbc2", "name": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:1668)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:1668)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:1668` calls `POST /api/admin/sms-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/sms-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2de6f4f0c3811409", "name": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2118)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2118)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:2118` calls `PATCH /api/v5/leads/${encodeURIComponent(contactId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-53a65853f72f0169", "name": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2138)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2138)"}, "fullDescription": {"text": "`app/v5/inbox/_page-legacy.tsx:2138` calls `PATCH /api/v5/leads/${encodeURIComponent(contactId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/leads/<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-52e52439b7ca0300", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/workers/outbound.ts:91)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/workers/outbound.ts:91)"}, "fullDescription": {"text": "`app/workers/outbound.ts:91` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-1a53d20b3537a496", "name": "Dangling fetch: POST /api/admin/apollo-sync-now (app/admin/funnel/apollo-sync-button.tsx:12)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/apollo-sync-now (app/admin/funnel/apollo-sync-button.tsx:12)"}, "fullDescription": {"text": "`app/admin/funnel/apollo-sync-button.tsx:12` calls `POST /api/admin/apollo-sync-now` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/apollo-sync-now`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-946e1677bd56dcb7", "name": "Dangling fetch: POST /auth/signout (app/v9/_shell.tsx:100)", "shortDescription": {"text": "Dangling fetch: POST /auth/signout (app/v9/_shell.tsx:100)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:100` calls `POST /auth/signout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af98b5507ae97872", "name": "Dangling fetch: GET /api/v9/notifications (app/v9/_shell.tsx:121)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/notifications (app/v9/_shell.tsx:121)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:121` calls `GET /api/v9/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bbbaa8ca856e6d2a", "name": "Dangling fetch: GET /api/v9/me (app/v9/_shell.tsx:139)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/me (app/v9/_shell.tsx:139)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:139` calls `GET /api/v9/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf657c9b77d3b343", "name": "Dangling fetch: POST /api/v9/notifications/read-all (app/v9/_shell.tsx:183)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/notifications/read-all (app/v9/_shell.tsx:183)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:183` calls `POST /api/v9/notifications/read-all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/notifications/read-all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0d44f52bb4242c7", "name": "Dangling fetch: POST /api/v9/notifications/${n.id}/read (app/v9/_shell.tsx:199)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/notifications/${n.id}/read (app/v9/_shell.tsx:199)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:199` calls `POST /api/v9/notifications/${n.id}/read` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/notifications/<p>/read`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04b1adcccd649cc4", "name": "Dangling fetch: GET /api/v9/search?q=${encodeURIComponent(query)} (app/v9/_shell.tsx:960)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/search?q=${encodeURIComponent(query)} (app/v9/_shell.tsx:960)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:960` calls `GET /api/v9/search?q=${encodeURIComponent(query)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-1937fa400bd47d8e", "name": "Dangling fetch: GET /api/v9/workspaces?limit=12 (app/v9/_shell.tsx:1169)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces?limit=12 (app/v9/_shell.tsx:1169)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:1169` calls `GET /api/v9/workspaces?limit=12` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-4ed83b3b4688ed00", "name": "Dangling fetch: POST /api/tenants/switch (app/v9/_shell.tsx:1197)", "shortDescription": {"text": "Dangling fetch: POST /api/tenants/switch (app/v9/_shell.tsx:1197)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:1197` calls `POST /api/tenants/switch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenants/switch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4dee2b3e39b8dad", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/_shell.tsx:1217)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/_shell.tsx:1217)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:1217` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-052c05e1b85548ec", "name": "Dangling fetch: POST /api/admin/view-mode (app/v9/_shell.tsx:1222)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/view-mode (app/v9/_shell.tsx:1222)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:1222` calls `POST /api/admin/view-mode` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/view-mode`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77f11b5ca2b5907b", "name": "Dangling fetch: POST /api/auth/signout (app/v9/_shell.tsx:1327)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/signout (app/v9/_shell.tsx:1327)"}, "fullDescription": {"text": "`app/v9/_shell.tsx:1327` calls `POST /api/auth/signout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ce47bd64109c01c", "name": "Dangling fetch: GET /api/v9/settings/workspace (app/v9/settings/page.tsx:130)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/workspace (app/v9/settings/page.tsx:130)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:130` calls `GET /api/v9/settings/workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/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-01f878c1a30d1423", "name": "Dangling fetch: PATCH /api/v9/settings/workspace (app/v9/settings/page.tsx:138)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/settings/workspace (app/v9/settings/page.tsx:138)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:138` calls `PATCH /api/v9/settings/workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/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-c873b1f6b6e7f747", "name": "Dangling fetch: GET /api/v9/settings/billing (app/v9/settings/page.tsx:181)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/billing (app/v9/settings/page.tsx:181)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:181` calls `GET /api/v9/settings/billing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/billing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f667f1a5abfcd19", "name": "Dangling fetch: GET /api/v9/settings/integrations (app/v9/settings/page.tsx:244)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/integrations (app/v9/settings/page.tsx:244)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:244` calls `GET /api/v9/settings/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15792142a9878498", "name": "Dangling fetch: GET /api/v9/settings/notifications (app/v9/settings/page.tsx:285)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/notifications (app/v9/settings/page.tsx:285)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:285` calls `GET /api/v9/settings/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70731b728332bbee", "name": "Dangling fetch: PATCH /api/v9/settings/notifications (app/v9/settings/page.tsx:296)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/settings/notifications (app/v9/settings/page.tsx:296)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:296` calls `PATCH /api/v9/settings/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2907d363e614b548", "name": "Dangling fetch: GET /api/v9/settings/api-keys (app/v9/settings/page.tsx:379)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/api-keys (app/v9/settings/page.tsx:379)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:379` calls `GET /api/v9/settings/api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/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-b4cca5c8096a47f5", "name": "Dangling fetch: POST /api/v9/settings/api-keys (app/v9/settings/page.tsx:389)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/settings/api-keys (app/v9/settings/page.tsx:389)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:389` calls `POST /api/v9/settings/api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/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-702c73ab30d427fd", "name": "Dangling fetch: DELETE /api/v9/settings/api-keys?id=${id} (app/v9/settings/page.tsx:407)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/settings/api-keys?id=${id} (app/v9/settings/page.tsx:407)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:407` calls `DELETE /api/v9/settings/api-keys?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/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-54c0fb354614dcd4", "name": "Dangling fetch: GET /api/v9/settings/team (app/v9/settings/page.tsx:481)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/settings/team (app/v9/settings/page.tsx:481)"}, "fullDescription": {"text": "`app/v9/settings/page.tsx:481` calls `GET /api/v9/settings/team` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/settings/team`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f1c38014a1d977a", "name": "Dangling fetch: GET /api/v9/employees (app/v9/employees/page.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/employees (app/v9/employees/page.tsx:47)"}, "fullDescription": {"text": "`app/v9/employees/page.tsx:47` calls `GET /api/v9/employees` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employees`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8295a4a0d5720980", "name": "Dangling fetch: POST /api/v9/employees/${emp.id}/builder (app/v9/employees/page.tsx:155)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/employees/${emp.id}/builder (app/v9/employees/page.tsx:155)"}, "fullDescription": {"text": "`app/v9/employees/page.tsx:155` calls `POST /api/v9/employees/${emp.id}/builder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employees/<p>/builder`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d97069f673720fe", "name": "Dangling fetch: PATCH /api/v9/employees/${emp.id} (app/v9/employees/page.tsx:173)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/employees/${emp.id} (app/v9/employees/page.tsx:173)"}, "fullDescription": {"text": "`app/v9/employees/page.tsx:173` calls `PATCH /api/v9/employees/${emp.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/employees/<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-3824b13d32ee0315", "name": "Dangling fetch: GET /api/v9/ops/briefings (app/v9/ops/page.tsx:66)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/ops/briefings (app/v9/ops/page.tsx:66)"}, "fullDescription": {"text": "`app/v9/ops/page.tsx:66` calls `GET /api/v9/ops/briefings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/ops/briefings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d749aad3a9337b6", "name": "Dangling fetch: POST /api/v9/ops/chat (app/v9/ops/page.tsx:83)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/ops/chat (app/v9/ops/page.tsx:83)"}, "fullDescription": {"text": "`app/v9/ops/page.tsx:83` calls `POST /api/v9/ops/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/ops/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-caf6cd2962383c47", "name": "Dangling fetch: POST /api/v9/leads/bulk (app/v9/leads/page.tsx:93)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/leads/bulk (app/v9/leads/page.tsx:93)"}, "fullDescription": {"text": "`app/v9/leads/page.tsx:93` calls `POST /api/v9/leads/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/leads/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-a234588330f716d5", "name": "Dangling fetch: GET /api/v9/workspaces (app/v9/leads/new/page.tsx:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces (app/v9/leads/new/page.tsx:48)"}, "fullDescription": {"text": "`app/v9/leads/new/page.tsx:48` calls `GET /api/v9/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-849718d18a21ed61", "name": "Dangling fetch: POST /api/v9/leads (app/v9/leads/new/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/leads (app/v9/leads/new/page.tsx:63)"}, "fullDescription": {"text": "`app/v9/leads/new/page.tsx:63` calls `POST /api/v9/leads` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/leads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f2a0431deae71ae", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:349)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:349)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:349` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a300612bed1580c3", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:359)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:359)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:359` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcc35fdb3d422771", "name": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/activity (app/v9/workspaces/page.tsx:814)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/activity (app/v9/workspaces/page.tsx:814)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:814` calls `GET /api/v9/workspaces/${ws.id}/activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2046aacf62a9f98", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:829)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:829)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:829` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac875290abbd192c", "name": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/page.tsx:843)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/page.tsx:843)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:843` calls `GET /api/v9/workspaces/${ws.id}/mute-ai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/mute-ai`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0462957ea1c4dd38", "name": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:858)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:858)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:858` calls `POST /api/v9/workspaces/${ws.id}/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e239352e088444e7", "name": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:873)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:873)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:873` calls `DELETE /api/v9/workspaces/${ws.id}/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5dfe40d8a786e721", "name": "Dangling fetch: POST /api/v9/workspaces/custom-draft (app/v9/workspaces/page.tsx:1145)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/custom-draft (app/v9/workspaces/page.tsx:1145)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:1145` calls `POST /api/v9/workspaces/custom-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/custom-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28095778ba0cca31", "name": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/page.tsx:1163)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/page.tsx:1163)"}, "fullDescription": {"text": "`app/v9/workspaces/page.tsx:1163` calls `POST /api/v9/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-de93535038949433", "name": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/new/page.tsx:38)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/new/page.tsx:38)"}, "fullDescription": {"text": "`app/v9/workspaces/new/page.tsx:38` calls `POST /api/v9/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-56b2aa57deeecd2d", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/_admin-shell.tsx:44)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/_admin-shell.tsx:44)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/_admin-shell.tsx:44` calls `GET /api/v9/workspaces/${id}/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-2b6efc9b41bf9599", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/_admin-shell.tsx:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/_admin-shell.tsx:52)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/_admin-shell.tsx:52` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b8f30795cc486cb", "name": "Dangling fetch: GET /api/v9/workspaces?ids=${id}&include_deleted=1 (app/v9/workspaces/[id]/page.tsx:78)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces?ids=${id}&include_deleted=1 (app/v9/workspaces/[id]/page.tsx:78)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:78` calls `GET /api/v9/workspaces?ids=${id}&include_deleted=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-4d47b1255cab9c52", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/page.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/page.tsx:91)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:91` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41cb4f9697057057", "name": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/[id]/page.tsx:108)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/[id]/page.tsx:108)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:108` calls `GET /api/v9/workspaces/${ws.id}/mute-ai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/mute-ai`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9da518fde02169dd", "name": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:128)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:128)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:128` calls `POST /api/v9/workspaces/${ws.id}/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d72b964c87732f5", "name": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:144)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:144)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:144` calls `DELETE /api/v9/workspaces/${ws.id}/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/delete`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3771d923c8d3a0f0", "name": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/smoke-test (app/v9/workspaces/[id]/page.tsx:242)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/smoke-test (app/v9/workspaces/[id]/page.tsx:242)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:242` calls `POST /api/v9/workspaces/${ws.id}/smoke-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/smoke-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-39d63d13489ddb01", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context (app/v9/workspaces/[id]/page.tsx:351)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context (app/v9/workspaces/[id]/page.tsx:351)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:351` calls `GET /api/v9/workspaces/${tenantId}/export-context` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/export-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-9d30ff091c2977d0", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context?upload=1 (app/v9/workspaces/[id]/page.tsx:371)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context?upload=1 (app/v9/workspaces/[id]/page.tsx:371)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:371` calls `GET /api/v9/workspaces/${tenantId}/export-context?upload=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/export-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-7b1e7313753860f6", "name": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/workspaces/[id]/page.tsx:413)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/workspaces/[id]/page.tsx:413)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:413` calls `POST /api/v9/admin/billing/tenant-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing/tenant-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-238f736567c4ddd4", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/page.tsx:704)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/page.tsx:704)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:704` calls `GET /api/v9/workspaces/${id}/activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ee00e8ee0b2b04b", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/page.tsx:787)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/page.tsx:787)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:787` calls `GET /api/v9/workspaces/${id}/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<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-cc8c8b3f2ebe3663", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/readiness (app/v9/workspaces/[id]/page.tsx:869)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/readiness (app/v9/workspaces/[id]/page.tsx:869)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:869` calls `GET /api/v9/workspaces/${tenantId}/readiness` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/readiness`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1483d13cb1f7fa25", "name": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/billing-mtd (app/v9/workspaces/[id]/page.tsx:962)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/billing-mtd (app/v9/workspaces/[id]/page.tsx:962)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/page.tsx:962` calls `GET /api/v9/workspaces/${tenantId}/billing-mtd` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/billing-mtd`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c888aa6cce8f9ae1", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/integrations (app/v9/workspaces/[id]/integrations/page.tsx:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/integrations (app/v9/workspaces/[id]/integrations/page.tsx:42)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/integrations/page.tsx:42` calls `GET /api/v9/workspaces/${id}/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edcee0b44dd70bca", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:82)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:82)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/settings/page.tsx:82` calls `GET /api/v9/workspaces/${id}/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-3a5397f508b7b73d", "name": "Dangling fetch: PATCH /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:114)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:114)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/settings/page.tsx:114` calls `PATCH /api/v9/workspaces/${id}/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-2bfd48443451c1bf", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/usage/page.tsx:60)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/usage/page.tsx:60)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/usage/page.tsx:60` calls `GET /api/v9/workspaces/${id}/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<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-0b1eff5f2c3ed561", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/manager (app/v9/workspaces/[id]/manager/page.tsx:110)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager (app/v9/workspaces/[id]/manager/page.tsx:110)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:110` calls `GET /api/v9/workspaces/${id}/manager` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f1ec899276e5c15", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/actions (app/v9/workspaces/[id]/manager/page.tsx:111)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/actions (app/v9/workspaces/[id]/manager/page.tsx:111)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:111` calls `GET /api/v9/workspaces/${id}/manager/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/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-e9eefaf73a05b0d4", "name": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/autonomous-mode (app/v9/workspaces/[id]/manager/page.tsx:128)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/autonomous-mode (app/v9/workspaces/[id]/manager/page.tsx:128)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:128` calls `POST /api/v9/workspaces/${id}/manager/autonomous-mode` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/autonomous-mode`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-856bdfd48f272fa4", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/messages?session_id=${sessionId} (app/v9/workspaces/[id]/manager/pa", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/messages?session_id=${sessionId} (app/v9/workspaces/[id]/manager/page.tsx:144)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:144` calls `GET /api/v9/workspaces/${id}/manager/messages?session_id=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35b82af2b748fc36", "name": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat-uploads (app/v9/workspaces/[id]/manager/page.tsx:199)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat-uploads (app/v9/workspaces/[id]/manager/page.tsx:199)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:199` calls `POST /api/v9/workspaces/${id}/manager/chat-uploads` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/chat-uploads`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47a7c635b5b97a48", "name": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat (app/v9/workspaces/[id]/manager/page.tsx:232)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat (app/v9/workspaces/[id]/manager/page.tsx:232)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:232` calls `POST /api/v9/workspaces/${id}/manager/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ce67151d221d517", "name": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/proposals/${pid} (app/v9/workspaces/[id]/manager/page.tsx:255)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/proposals/${pid} (app/v9/workspaces/[id]/manager/page.tsx:255)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/manager/page.tsx:255` calls `POST /api/v9/workspaces/${id}/manager/proposals/${pid}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/manager/proposals/<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-319514664776e4f6", "name": "Dangling fetch: POST /api/admin/workspaces/${tenant.id}/invites (app/v9/workspaces/[id]/invite/_client.tsx:98)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenant.id}/invites (app/v9/workspaces/[id]/invite/_client.tsx:98)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/invite/_client.tsx:98` calls `POST /api/admin/workspaces/${tenant.id}/invites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspaces/<p>/invites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44b15ba53ae2164b", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/personas (app/v9/workspaces/[id]/ai-employees/page.tsx:68)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/personas (app/v9/workspaces/[id]/ai-employees/page.tsx:68)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/ai-employees/page.tsx:68` calls `GET /api/v9/workspaces/${id}/personas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/personas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c3a62c8f78842ec", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/ai-employees/page.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/ai-employees/page.tsx:71)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/ai-employees/page.tsx:71` calls `GET /api/v9/workspaces/${id}/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-6dfa605c4d7c1271", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=200 (app/v9/workspaces/[id]/activity/page.tsx:57)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=200 (app/v9/workspaces/[id]/activity/page.tsx:57)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/activity/page.tsx:57` calls `GET /api/v9/workspaces/${id}/admin-activity?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: `/v9/workspaces/<p>/admin-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b6395d80985623a", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/activity/page.tsx:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/activity/page.tsx:58)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/activity/page.tsx:58` calls `GET /api/v9/workspaces/${id}/activity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75ede06ee043928e", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=500 (app/v9/workspaces/[id]/audits/page.tsx:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=500 (app/v9/workspaces/[id]/audits/page.tsx:42)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/audits/page.tsx:42` calls `GET /api/v9/workspaces/${id}/admin-activity?limit=500` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/admin-activity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4d5018bbdc928c4", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/audit-log?${p} (app/v9/workspaces/[id]/audit-log/page.tsx:39)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/audit-log?${p} (app/v9/workspaces/[id]/audit-log/page.tsx:39)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/audit-log/page.tsx:39` calls `GET /api/v9/workspaces/${id}/audit-log?${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-54851168ce020abd", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/billing (app/v9/workspaces/[id]/billing/page.tsx:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/billing (app/v9/workspaces/[id]/billing/page.tsx:54)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/billing/page.tsx:54` calls `GET /api/v9/workspaces/${id}/billing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/billing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3631d395d60d05b2", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:47)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/members/page.tsx:47` calls `GET /api/v9/workspaces/${id}/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<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-887f09cfd860ace7", "name": "Dangling fetch: PATCH /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:64)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/members/page.tsx:64` calls `PATCH /api/v9/workspaces/${id}/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<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-f43b78893d39ff23", "name": "Dangling fetch: DELETE /api/v9/workspaces/${id}/members?user_id=${userId} (app/v9/workspaces/[id]/members/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${id}/members?user_id=${userId} (app/v9/workspaces/[id]/members/page.tsx:81)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/members/page.tsx:81` calls `DELETE /api/v9/workspaces/${id}/members?user_id=${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<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-7d8251f752a5e613", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/jobs?limit=300 (app/v9/workspaces/[id]/jobs/page.tsx:51)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/jobs?limit=300 (app/v9/workspaces/[id]/jobs/page.tsx:51)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/jobs/page.tsx:51` calls `GET /api/v9/workspaces/${id}/jobs?limit=300` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/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-621748a8aa7c9098", "name": "Dangling fetch: GET /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:43)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/pricing/page.tsx:43` calls `GET /api/v9/workspaces/${id}/pricing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/pricing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dab74587b1e7600f", "name": "Dangling fetch: PATCH /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:66)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:66)"}, "fullDescription": {"text": "`app/v9/workspaces/[id]/pricing/page.tsx:66` calls `PATCH /api/v9/workspaces/${id}/pricing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/pricing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c161994aad116f18", "name": "Dangling fetch: GET /api/v9/workspace-templates (app/v9/workspaces/new-from-call/page.tsx:120)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/workspace-templates (app/v9/workspaces/new-from-call/page.tsx:120)"}, "fullDescription": {"text": "`app/v9/workspaces/new-from-call/page.tsx:120` calls `GET /api/v9/workspace-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-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-b85e6c248161ef4d", "name": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/preview-plan (app/v9/workspaces/new-from-call/page.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/preview-plan (app/v9/workspaces/new-from-call/page.tsx:161)"}, "fullDescription": {"text": "`app/v9/workspaces/new-from-call/page.tsx:161` calls `POST /api/v9/workspace-templates/${templateSlug}/preview-plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-templates/<p>/preview-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-e89c027d16b4d3c8", "name": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/apply (app/v9/workspaces/new-from-call/page.tsx:231)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/apply (app/v9/workspaces/new-from-call/page.tsx:231)"}, "fullDescription": {"text": "`app/v9/workspaces/new-from-call/page.tsx:231` calls `POST /api/v9/workspace-templates/${templateSlug}/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-templates/<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-613a35e11c773091", "name": "Dangling fetch: POST /api/v9/workspace-drafts (app/v9/workspaces/new-with-ai/_client.tsx:213)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspace-drafts (app/v9/workspaces/new-with-ai/_client.tsx:213)"}, "fullDescription": {"text": "`app/v9/workspaces/new-with-ai/_client.tsx:213` calls `POST /api/v9/workspace-drafts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-drafts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34b1fc978d02d7b0", "name": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/chat (app/v9/workspaces/new-with-ai/_client.tsx:423)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/chat (app/v9/workspaces/new-with-ai/_client.tsx:423)"}, "fullDescription": {"text": "`app/v9/workspaces/new-with-ai/_client.tsx:423` calls `POST /api/v9/workspace-drafts/${draftRow.id}/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-drafts/<p>/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2222119318cdfe9", "name": "Dangling fetch: PATCH /api/v9/workspace-drafts/${draftRow.id} (app/v9/workspaces/new-with-ai/_client.tsx:444)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/workspace-drafts/${draftRow.id} (app/v9/workspaces/new-with-ai/_client.tsx:444)"}, "fullDescription": {"text": "`app/v9/workspaces/new-with-ai/_client.tsx:444` calls `PATCH /api/v9/workspace-drafts/${draftRow.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-drafts/<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-ce735abe7a1d6baf", "name": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/create (app/v9/workspaces/new-with-ai/_client.tsx:491)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/create (app/v9/workspaces/new-with-ai/_client.tsx:491)"}, "fullDescription": {"text": "`app/v9/workspaces/new-with-ai/_client.tsx:491` calls `POST /api/v9/workspace-drafts/${draftRow.id}/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspace-drafts/<p>/create`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28ad8109aae613c3", "name": "Dangling fetch: POST /api/v9/workspaces/draft-from-prompt (app/v9/workspaces/new-from-prompt/page.tsx:23)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/draft-from-prompt (app/v9/workspaces/new-from-prompt/page.tsx:23)"}, "fullDescription": {"text": "`app/v9/workspaces/new-from-prompt/page.tsx:23` calls `POST /api/v9/workspaces/draft-from-prompt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/draft-from-prompt`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae7cdd5c7159037f", "name": "Dangling fetch: GET /api/v9/insights (app/v9/today/page.tsx:35)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/insights (app/v9/today/page.tsx:35)"}, "fullDescription": {"text": "`app/v9/today/page.tsx:35` calls `GET /api/v9/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-389e6794669aa587", "name": "Dangling fetch: GET /api/v9/pipeline (app/v9/today/page.tsx:36)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/today/page.tsx:36)"}, "fullDescription": {"text": "`app/v9/today/page.tsx:36` calls `GET /api/v9/pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdd6eb197ded10cd", "name": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:75)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:75)"}, "fullDescription": {"text": "`app/v9/audits/_page-legacy.tsx:75` calls `GET /api/v9/audits/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits/<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-39dafa1445012f91", "name": "Dangling fetch: POST /api/v9/audits/${id}/action (app/v9/audits/_page-legacy.tsx:86)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/audits/${id}/action (app/v9/audits/_page-legacy.tsx:86)"}, "fullDescription": {"text": "`app/v9/audits/_page-legacy.tsx:86` calls `POST /api/v9/audits/${id}/action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits/<p>/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-f197d047c00e5306", "name": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:94)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:94)"}, "fullDescription": {"text": "`app/v9/audits/_page-legacy.tsx:94` calls `GET /api/v9/audits/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits/<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-39649a84759f2dd3", "name": "Dangling fetch: POST /api/v9/audits (app/v9/audits/new/page.tsx:44)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/audits (app/v9/audits/new/page.tsx:44)"}, "fullDescription": {"text": "`app/v9/audits/new/page.tsx:44` calls `POST /api/v9/audits` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/audits`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21c6fd5c16cacd00", "name": "Dangling fetch: POST /api/v9/admin/mack/bulk-approve-clear (app/v9/rebuild/review/_bulk-approve.tsx:22)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/mack/bulk-approve-clear (app/v9/rebuild/review/_bulk-approve.tsx:22)"}, "fullDescription": {"text": "`app/v9/rebuild/review/_bulk-approve.tsx:22` calls `POST /api/v9/admin/mack/bulk-approve-clear` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack/bulk-approve-clear`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc74c5a530eb28e9", "name": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (app/v9/rebuild/review/[jobId]/_", "shortDescription": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (app/v9/rebuild/review/[jobId]/_client.tsx:54)"}, "fullDescription": {"text": "`app/v9/rebuild/review/[jobId]/_client.tsx:54` calls `POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/custom-employees/<p>/jobs/<p>/review-field`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a4532790669743d", "name": "Dangling fetch: GET /api/v9/insights (app/v9/insights/page.tsx:49)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/insights (app/v9/insights/page.tsx:49)"}, "fullDescription": {"text": "`app/v9/insights/page.tsx:49` calls `GET /api/v9/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/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-bceafb75e55aade9", "name": "Dangling fetch: GET /api/v5/refer (app/v9/app/refer/page.tsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/v5/refer (app/v9/app/refer/page.tsx:91)"}, "fullDescription": {"text": "`app/v9/app/refer/page.tsx:91` calls `GET /api/v5/refer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/refer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d437d346aa761b07", "name": "Dangling fetch: POST /api/v5/refer (app/v9/app/refer/page.tsx:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v5/refer (app/v9/app/refer/page.tsx:106)"}, "fullDescription": {"text": "`app/v9/app/refer/page.tsx:106` calls `POST /api/v5/refer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v5/refer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-260e65fbe18feab4", "name": "Dangling fetch: GET /api/v9/admin/mack/stackit/test (app/v9/admin/mack/stackit-setup/page.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/mack/stackit/test (app/v9/admin/mack/stackit-setup/page.tsx:43)"}, "fullDescription": {"text": "`app/v9/admin/mack/stackit-setup/page.tsx:43` calls `GET /api/v9/admin/mack/stackit/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack/stackit/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-ee831b2737e80340", "name": "Dangling fetch: GET /api/v9/admin/mack/outlook/test (app/v9/admin/mack/outlook-setup/page.tsx:45)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/mack/outlook/test (app/v9/admin/mack/outlook-setup/page.tsx:45)"}, "fullDescription": {"text": "`app/v9/admin/mack/outlook-setup/page.tsx:45` calls `GET /api/v9/admin/mack/outlook/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack/outlook/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-ccfc28ba413f7113", "name": "Dangling fetch: POST /api/v9/admin/mack/e2e-verify (app/v9/admin/mack/e2e-verify/page.tsx:40)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/mack/e2e-verify (app/v9/admin/mack/e2e-verify/page.tsx:40)"}, "fullDescription": {"text": "`app/v9/admin/mack/e2e-verify/page.tsx:40` calls `POST /api/v9/admin/mack/e2e-verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack/e2e-verify`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1249c615a8fa5abc", "name": "Dangling fetch: GET /api/v9/admin/mack-eval (app/v9/admin/mack-eval/page.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/mack-eval (app/v9/admin/mack-eval/page.tsx:52)"}, "fullDescription": {"text": "`app/v9/admin/mack-eval/page.tsx:52` calls `GET /api/v9/admin/mack-eval` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack-eval`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8d8e0baa66f3023", "name": "Dangling fetch: GET /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:38)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:38)"}, "fullDescription": {"text": "`app/v9/admin/operations/page.tsx:38` calls `GET /api/v9/admin/self-heal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/self-heal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11739a291e44f36b", "name": "Dangling fetch: POST /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:58)"}, "fullDescription": {"text": "`app/v9/admin/operations/page.tsx:58` calls `POST /api/v9/admin/self-heal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/self-heal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4959f12b93bc03c", "name": "Dangling fetch: POST /api/v9/admin/self-heal/actions (app/v9/admin/operations/page.tsx:141)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/self-heal/actions (app/v9/admin/operations/page.tsx:141)"}, "fullDescription": {"text": "`app/v9/admin/operations/page.tsx:141` calls `POST /api/v9/admin/self-heal/actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/self-heal/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-8c43c38ed2e0d448", "name": "Dangling fetch: GET /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:73)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:73)"}, "fullDescription": {"text": "`app/v9/admin/health-gauntlet/page.tsx:73` calls `GET /api/admin/workspace-creation-gauntlet` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspace-creation-gauntlet`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6158c56d22e03621", "name": "Dangling fetch: POST /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:93)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:93)"}, "fullDescription": {"text": "`app/v9/admin/health-gauntlet/page.tsx:93` calls `POST /api/admin/workspace-creation-gauntlet` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/workspace-creation-gauntlet`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e351080827231a85", "name": "Dangling fetch: GET /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:31)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:31)"}, "fullDescription": {"text": "`app/v9/admin/platform-admins/page.tsx:31` calls `GET /api/v9/admin/platform-admins` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/platform-admins`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-438e0b02563993b1", "name": "Dangling fetch: POST /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:48)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:48)"}, "fullDescription": {"text": "`app/v9/admin/platform-admins/page.tsx:48` calls `POST /api/v9/admin/platform-admins` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/platform-admins`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a77827a74e519f98", "name": "Dangling fetch: DELETE /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:62)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:62)"}, "fullDescription": {"text": "`app/v9/admin/platform-admins/page.tsx:62` calls `DELETE /api/v9/admin/platform-admins` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/platform-admins`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-daa62c5e0c7b7646", "name": "Dangling fetch: GET /api/v9/admin/finance (app/v9/admin/finance/page.tsx:133)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/finance (app/v9/admin/finance/page.tsx:133)"}, "fullDescription": {"text": "`app/v9/admin/finance/page.tsx:133` calls `GET /api/v9/admin/finance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/finance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2639cfcc070eb3a7", "name": "Dangling fetch: GET /api/v9/admin/billing (app/v9/admin/billing/page.tsx:97)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/billing (app/v9/admin/billing/page.tsx:97)"}, "fullDescription": {"text": "`app/v9/admin/billing/page.tsx:97` calls `GET /api/v9/admin/billing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-885f92176cdfcee8", "name": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:119)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:119)"}, "fullDescription": {"text": "`app/v9/admin/billing/page.tsx:119` calls `POST /api/v9/admin/billing/tenant-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing/tenant-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-573e19faded561c9", "name": "Dangling fetch: POST /api/v9/admin/billing/generate-draft (app/v9/admin/billing/page.tsx:144)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/billing/generate-draft (app/v9/admin/billing/page.tsx:144)"}, "fullDescription": {"text": "`app/v9/admin/billing/page.tsx:144` calls `POST /api/v9/admin/billing/generate-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing/generate-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f6da08c66552c66", "name": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:264)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:264)"}, "fullDescription": {"text": "`app/v9/admin/billing/page.tsx:264` calls `POST /api/v9/admin/billing/tenant-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing/tenant-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-7e0e356b28c7b649", "name": "Dangling fetch: POST /api/v9/admin/billing/test-subscription (app/v9/admin/billing/test-subscriptions/page.tsx:28)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/billing/test-subscription (app/v9/admin/billing/test-subscriptions/page.tsx:28)"}, "fullDescription": {"text": "`app/v9/admin/billing/test-subscriptions/page.tsx:28` calls `POST /api/v9/admin/billing/test-subscription` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/billing/test-subscription`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-935e4885939bcc33", "name": "Dangling fetch: GET /api/v9/admin/subscriptions (app/v9/admin/billing/test-subscriptions/page.tsx:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/subscriptions (app/v9/admin/billing/test-subscriptions/page.tsx:54)"}, "fullDescription": {"text": "`app/v9/admin/billing/test-subscriptions/page.tsx:54` calls `GET /api/v9/admin/subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/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-9e01dfe9caee51e7", "name": "Dangling fetch: GET /api/v9/admin/mack-health (app/v9/admin/mack-health/page.tsx:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/mack-health (app/v9/admin/mack-health/page.tsx:61)"}, "fullDescription": {"text": "`app/v9/admin/mack-health/page.tsx:61` calls `GET /api/v9/admin/mack-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack-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-e8d30bf91e1f9e92", "name": "Dangling fetch: GET /api/v9/admin/ai-spend?range=${range}&tenant=${encodeURIComponent(tenant)} (app/v9/admin/ai-spend/pa", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/ai-spend?range=${range}&tenant=${encodeURIComponent(tenant)} (app/v9/admin/ai-spend/page.tsx:99)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:99` calls `GET /api/v9/admin/ai-spend?range=${range}&tenant=${encodeURIComponent(tenant)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-spend`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9bd5c3d1796c6ca9", "name": "Dangling fetch: GET /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:100)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:100)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:100` calls `GET /api/v9/admin/ai-budget/global` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-budget/global`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d31af227151877a", "name": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:122)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:122)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:122` calls `PATCH /api/v9/admin/ai-budget/global` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-budget/global`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5063daac48d03e05", "name": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:137)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:137)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:137` calls `PATCH /api/v9/admin/ai-budget/global` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-budget/global`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a32edecf56e6a06", "name": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:162)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:162)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:162` calls `PATCH /api/v9/admin/ai-budget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-budget`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a21d345f41213b5", "name": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:177)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:177)"}, "fullDescription": {"text": "`app/v9/admin/ai-spend/page.tsx:177` calls `PATCH /api/v9/admin/ai-budget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/ai-budget`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82c7a67f704635b0", "name": "Dangling fetch: GET /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:99)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:99)"}, "fullDescription": {"text": "`app/v9/admin/mack-opus-benchmark/page.tsx:99` calls `GET /api/v9/admin/mack-benchmark/sonnet-vs-opus` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack-benchmark/sonnet-vs-opus`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a20b44baea3acfa3", "name": "Dangling fetch: POST /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:127)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:127)"}, "fullDescription": {"text": "`app/v9/admin/mack-opus-benchmark/page.tsx:127` calls `POST /api/v9/admin/mack-benchmark/sonnet-vs-opus` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack-benchmark/sonnet-vs-opus`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9d9b0095aae36bd", "name": "Dangling fetch: POST /api/v9/admin/mack-benchmark/enable-opus (app/v9/admin/mack-opus-benchmark/page.tsx:153)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/mack-benchmark/enable-opus (app/v9/admin/mack-opus-benchmark/page.tsx:153)"}, "fullDescription": {"text": "`app/v9/admin/mack-opus-benchmark/page.tsx:153` calls `POST /api/v9/admin/mack-benchmark/enable-opus` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/mack-benchmark/enable-opus`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-00fad82757603d00", "name": "Dangling fetch: GET /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:53)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:53)"}, "fullDescription": {"text": "`app/v9/admin/cron-health/page.tsx:53` calls `GET /api/v9/admin/cron-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/cron-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-7491f4bd05062bc9", "name": "Dangling fetch: POST /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:64)"}, "fullDescription": {"text": "`app/v9/admin/cron-health/page.tsx:64` calls `POST /api/v9/admin/cron-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/cron-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-1d12874bc503336c", "name": "Dangling fetch: GET /api/v9/admin/portfolio (app/v9/admin/portfolio/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/portfolio (app/v9/admin/portfolio/page.tsx:63)"}, "fullDescription": {"text": "`app/v9/admin/portfolio/page.tsx:63` calls `GET /api/v9/admin/portfolio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/portfolio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d80401cb71521336", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/page.tsx:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/page.tsx:79)"}, "fullDescription": {"text": "`app/v9/admin/portfolio/page.tsx:79` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b86048c89de84350", "name": "Dangling fetch: GET /api/v9/admin/workspace/${params.tenantId} (app/v9/admin/portfolio/[tenantId]/page.tsx:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/workspace/${params.tenantId} (app/v9/admin/portfolio/[tenantId]/page.tsx:46)"}, "fullDescription": {"text": "`app/v9/admin/portfolio/[tenantId]/page.tsx:46` calls `GET /api/v9/admin/workspace/${params.tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/workspace/<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-73de1c41dd5dcd9a", "name": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/[tenantId]/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/[tenantId]/page.tsx:63)"}, "fullDescription": {"text": "`app/v9/admin/portfolio/[tenantId]/page.tsx:63` calls `POST /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-201f55663729dfd0", "name": "Dangling fetch: GET /api/v9/admin/workspace-health (app/v9/admin/workspace-health/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/admin/workspace-health (app/v9/admin/workspace-health/page.tsx:81)"}, "fullDescription": {"text": "`app/v9/admin/workspace-health/page.tsx:81` calls `GET /api/v9/admin/workspace-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/admin/workspace-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-0191ee3a6bf7dcd6", "name": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/health-action (app/v9/admin/workspace-health/page.tsx:107)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/health-action (app/v9/admin/workspace-health/page.tsx:107)"}, "fullDescription": {"text": "`app/v9/admin/workspace-health/page.tsx:107` calls `POST /api/v9/workspaces/${tenantId}/health-action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/workspaces/<p>/health-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-345439987c877ad6", "name": "Dangling fetch: GET /api/admin/mack-blind-benchmark/recent (app/v9/admin/mack-benchmark/page.tsx:125)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/mack-blind-benchmark/recent (app/v9/admin/mack-benchmark/page.tsx:125)"}, "fullDescription": {"text": "`app/v9/admin/mack-benchmark/page.tsx:125` calls `GET /api/admin/mack-blind-benchmark/recent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/mack-blind-benchmark/recent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a0df833df4a7eee", "name": "Dangling fetch: GET /api/admin/mack-blind-benchmark/${activeRunId} (app/v9/admin/mack-benchmark/page.tsx:144)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/mack-blind-benchmark/${activeRunId} (app/v9/admin/mack-benchmark/page.tsx:144)"}, "fullDescription": {"text": "`app/v9/admin/mack-benchmark/page.tsx:144` calls `GET /api/admin/mack-blind-benchmark/${activeRunId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/mack-blind-benchmark/<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-dda2cb039d40d79f", "name": "Dangling fetch: POST /api/admin/mack-blind-benchmark (app/v9/admin/mack-benchmark/page.tsx:166)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/mack-blind-benchmark (app/v9/admin/mack-benchmark/page.tsx:166)"}, "fullDescription": {"text": "`app/v9/admin/mack-benchmark/page.tsx:166` calls `POST /api/admin/mack-blind-benchmark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/mack-blind-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-60db6928fcee41f6", "name": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:67)"}, "fullDescription": {"text": "`app/v9/pipeline/page.tsx:67` calls `GET /api/v9/pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1711b5a00df405ee", "name": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:79)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:79)"}, "fullDescription": {"text": "`app/v9/pipeline/page.tsx:79` calls `GET /api/v9/pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/pipeline`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7452a2cb03017d18", "name": "Dangling fetch: POST /api/v9/pipeline/action (app/v9/pipeline/page.tsx:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/pipeline/action (app/v9/pipeline/page.tsx:88)"}, "fullDescription": {"text": "`app/v9/pipeline/page.tsx:88` calls `POST /api/v9/pipeline/action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/pipeline/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-4cc9802564f21a8e", "name": "Dangling fetch: GET /api/v9/attribution (app/v9/attribution/page.tsx:76)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/attribution (app/v9/attribution/page.tsx:76)"}, "fullDescription": {"text": "`app/v9/attribution/page.tsx:76` calls `GET /api/v9/attribution` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/attribution`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e0996ef2c86fe4e", "name": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:137)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:137)"}, "fullDescription": {"text": "`app/v9/inbox/page.tsx:137` calls `GET /api/v9/inbox/thread/${activeId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/inbox/thread/<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-4a359e79acdc2b04", "name": "Dangling fetch: POST /api/v9/inbox/ai-draft (app/v9/inbox/page.tsx:156)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/inbox/ai-draft (app/v9/inbox/page.tsx:156)"}, "fullDescription": {"text": "`app/v9/inbox/page.tsx:156` calls `POST /api/v9/inbox/ai-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/inbox/ai-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4170d76ea1246854", "name": "Dangling fetch: POST /api/v9/inbox/send (app/v9/inbox/page.tsx:176)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/inbox/send (app/v9/inbox/page.tsx:176)"}, "fullDescription": {"text": "`app/v9/inbox/page.tsx:176` calls `POST /api/v9/inbox/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/inbox/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9b436299ebb8c51", "name": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:199)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:199)"}, "fullDescription": {"text": "`app/v9/inbox/page.tsx:199` calls `GET /api/v9/inbox/thread/${activeId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/inbox/thread/<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-daeafcbb40405c1b", "name": "Dangling fetch: GET /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:77)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:77)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:77` calls `GET /api/v9/founder-tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f610a01f416408de", "name": "Dangling fetch: POST /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:89)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:89)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:89` calls `POST /api/v9/founder-tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d17f5a4a3669e88", "name": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:128)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:128)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:128` calls `PATCH /api/v9/founder-tasks?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-96a27ce7f4d25dba", "name": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:139)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:139)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:139` calls `PATCH /api/v9/founder-tasks?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc1d3ab67a52068b", "name": "Dangling fetch: DELETE /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:152)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:152)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:152` calls `DELETE /api/v9/founder-tasks?id=${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8a9244914f67a61", "name": "Dangling fetch: POST /api/v9/founder-tasks/run-agent?id=${encodeURIComponent(taskId)}${qs} (app/v9/_components/home-task", "shortDescription": {"text": "Dangling fetch: POST /api/v9/founder-tasks/run-agent?id=${encodeURIComponent(taskId)}${qs} (app/v9/_components/home-task-center.tsx:165)"}, "fullDescription": {"text": "`app/v9/_components/home-task-center.tsx:165` calls `POST /api/v9/founder-tasks/run-agent?id=${encodeURIComponent(taskId)}${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/founder-tasks/run-agent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a82c16e97a68e4d0", "name": "Dangling fetch: POST /api/v9/upload (app/v9/_components/upload-button.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/v9/upload (app/v9/_components/upload-button.tsx:63)"}, "fullDescription": {"text": "`app/v9/_components/upload-button.tsx:63` calls `POST /api/v9/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f07d7278422a8b2", "name": "Dangling fetch: DELETE /api/v9/view-as (app/v9/_components/view-as-banner.tsx:40)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v9/view-as (app/v9/_components/view-as-banner.tsx:40)"}, "fullDescription": {"text": "`app/v9/_components/view-as-banner.tsx:40` calls `DELETE /api/v9/view-as` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/view-as`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a6418fa5f284f8f", "name": "Dangling fetch: POST /api/admin/log-error (app/(app)/error.tsx:13)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/log-error (app/(app)/error.tsx:13)"}, "fullDescription": {"text": "`app/(app)/error.tsx:13` calls `POST /api/admin/log-error` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/log-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-489b56d8fe820244", "name": "Dangling fetch: POST /api/billing/start-trial (app/(app)/billing/start-trial/page.tsx:32)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/start-trial (app/(app)/billing/start-trial/page.tsx:32)"}, "fullDescription": {"text": "`app/(app)/billing/start-trial/page.tsx:32` calls `POST /api/billing/start-trial` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/start-trial`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce0d38c5f8d6b3a7", "name": "Dangling fetch: POST /api/billing/finalize-trial (app/(app)/billing/start-trial/page.tsx:86)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/finalize-trial (app/(app)/billing/start-trial/page.tsx:86)"}, "fullDescription": {"text": "`app/(app)/billing/start-trial/page.tsx:86` calls `POST /api/billing/finalize-trial` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/finalize-trial`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a896279185fcafb9", "name": "Dangling fetch: POST /api/agents/quick-draft (app/(app)/agents/new/quick-start.tsx:39)", "shortDescription": {"text": "Dangling fetch: POST /api/agents/quick-draft (app/(app)/agents/new/quick-start.tsx:39)"}, "fullDescription": {"text": "`app/(app)/agents/new/quick-start.tsx:39` calls `POST /api/agents/quick-draft` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/quick-draft`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4bd5d4832b001aa4", "name": "Dangling fetch: POST /api/q/${token}/${action} (app/q/[token]/_actions.tsx:14)", "shortDescription": {"text": "Dangling fetch: POST /api/q/${token}/${action} (app/q/[token]/_actions.tsx:14)"}, "fullDescription": {"text": "`app/q/[token]/_actions.tsx:14` calls `POST /api/q/${token}/${action}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/q/<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-1e71ceed7aae5893", "name": "Dangling fetch: POST /api/admin/log-error (app/(marketing)/error.tsx:13)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/log-error (app/(marketing)/error.tsx:13)"}, "fullDescription": {"text": "`app/(marketing)/error.tsx:13` calls `POST /api/admin/log-error` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/log-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-298978fb21af965a", "name": "Dangling fetch: POST /api/audit/book (app/(marketing)/audit/audit-form.tsx:178)", "shortDescription": {"text": "Dangling fetch: POST /api/audit/book (app/(marketing)/audit/audit-form.tsx:178)"}, "fullDescription": {"text": "`app/(marketing)/audit/audit-form.tsx:178` calls `POST /api/audit/book` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audit/book`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de3c46659b537b2f", "name": "Dangling fetch: GET /api/book-call/availability (app/(marketing)/audit/book/[id]/slot-picker.tsx:54)", "shortDescription": {"text": "Dangling fetch: GET /api/book-call/availability (app/(marketing)/audit/book/[id]/slot-picker.tsx:54)"}, "fullDescription": {"text": "`app/(marketing)/audit/book/[id]/slot-picker.tsx:54` calls `GET /api/book-call/availability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call/availability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecae4a701b4e6467", "name": "Dangling fetch: POST /api/book-call (app/(marketing)/audit/book/[id]/slot-picker.tsx:85)", "shortDescription": {"text": "Dangling fetch: POST /api/book-call (app/(marketing)/audit/book/[id]/slot-picker.tsx:85)"}, "fullDescription": {"text": "`app/(marketing)/audit/book/[id]/slot-picker.tsx:85` calls `POST /api/book-call` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/book-call`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-571bf734cd7c1015", "name": "Dangling fetch: POST /api/try-arc/chat (app/(marketing)/try-arc/try-arc-chat.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/try-arc/chat (app/(marketing)/try-arc/try-arc-chat.tsx:59)"}, "fullDescription": {"text": "`app/(marketing)/try-arc/try-arc-chat.tsx:59` calls `POST /api/try-arc/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/try-arc/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44e017574473604a", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/alerts-email.ts:98)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/alerts-email.ts:98)"}, "fullDescription": {"text": "`lib/alerts-email.ts:98` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-f6c0a2178dd08a2d", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/alerts-email.ts:223)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/alerts-email.ts:223)"}, "fullDescription": {"text": "`lib/alerts-email.ts:223` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1efb79cc9564884", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/alerts.ts:317)", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/alerts.ts:317)"}, "fullDescription": {"text": "`lib/alerts.ts:317` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93f0476c7d17e619", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/invoices.ts:89)", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/invoices.ts:89)"}, "fullDescription": {"text": "`lib/integrations/invoices.ts:89` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-425bdf86fad47ad4", "name": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/reviews.ts:59)", "shortDescription": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/reviews.ts:59)"}, "fullDescription": {"text": "`lib/integrations/reviews.ts:59` calls `POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json` 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.twilio.com/2010-04-01/accounts/<p>/messages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d4eac124581b0c1", "name": "Dangling fetch: PATCH https://www.googleapis.com/calendar/v3/calendars/primary/events/${encodeURIComponent(a.event_id)}?", "shortDescription": {"text": "Dangling fetch: PATCH https://www.googleapis.com/calendar/v3/calendars/primary/events/${encodeURIComponent(a.event_id)}?sendUpdates=all (lib/integrations/calendar.ts:414)"}, "fullDescription": {"text": "`lib/integrations/calendar.ts:414` calls `PATCH https://www.googleapis.com/calendar/v3/calendars/primary/events/${encodeURIComponent(a.event_id)}?sendUpdates=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/calendars/primary/events/<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-e9b6b940b41735c3", "name": "Dangling fetch: POST https://auth.servicetitan.io/connect/token (lib/integrations/servicetitan.ts:17)", "shortDescription": {"text": "Dangling fetch: POST https://auth.servicetitan.io/connect/token (lib/integrations/servicetitan.ts:17)"}, "fullDescription": {"text": "`lib/integrations/servicetitan.ts:17` calls `POST https://auth.servicetitan.io/connect/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.servicetitan.io/connect/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-918d38eb1ef7cde3", "name": "Dangling fetch: POST https://api.openai.com/v1/files (lib/mack/strategies/vision-focused.ts:119)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/files (lib/mack/strategies/vision-focused.ts:119)"}, "fullDescription": {"text": "`lib/mack/strategies/vision-focused.ts:119` calls `POST https://api.openai.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09cccb23a4aab38b", "name": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/mack/strategies/vision-focused.ts:133)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/mack/strategies/vision-focused.ts:133)"}, "fullDescription": {"text": "`lib/mack/strategies/vision-focused.ts:133` calls `POST https://api.openai.com/v1/responses` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/responses`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7412ebbe12cdd06b", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (lib/enrichment/researcher.ts:119)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (lib/enrichment/researcher.ts:119)"}, "fullDescription": {"text": "`lib/enrichment/researcher.ts:119` calls `POST https://api.anthropic.com/v1/messages` 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.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28ce9ad59de172a7", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/send-composed.ts:117)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/send-composed.ts:117)"}, "fullDescription": {"text": "`lib/email/send-composed.ts:117` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-de1afe8602a8c8fd", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/send-composed.ts:143)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/send-composed.ts:143)"}, "fullDescription": {"text": "`lib/email/send-composed.ts:143` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-42cfa373ad334aeb", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/invite.ts:164)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/invite.ts:164)"}, "fullDescription": {"text": "`lib/email/invite.ts:164` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-5e1a5d3dc2871153", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/invite.ts:194)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/invite.ts:194)"}, "fullDescription": {"text": "`lib/email/invite.ts:194` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-483afd165373e634", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:140)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:140)"}, "fullDescription": {"text": "`lib/email/team-invite.ts:140` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-5e0bebfb54ddc396", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:173)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:173)"}, "fullDescription": {"text": "`lib/email/team-invite.ts:173` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cc82dfe460d2f37", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:209)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:209)"}, "fullDescription": {"text": "`lib/email/team-invite.ts:209` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-2b3f3539a490f63a", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:239)", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:239)"}, "fullDescription": {"text": "`lib/email/team-invite.ts:239` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce7ecf7d33ff5aac", "name": "Dangling fetch: GET https://serpapi.com/search.json?engine=google&q=${encodeURIComponent(query)}&api_key=${key}&num=5 (l", "shortDescription": {"text": "Dangling fetch: GET https://serpapi.com/search.json?engine=google&q=${encodeURIComponent(query)}&api_key=${key}&num=5 (lib/founder-task-agent/runner.ts:259)"}, "fullDescription": {"text": "`lib/founder-task-agent/runner.ts:259` calls `GET https://serpapi.com/search.json?engine=google&q=${encodeURIComponent(query)}&api_key=${key}&num=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/serpapi.com/search.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e25a04471233efa", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/cover-email.ts:80)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/cover-email.ts:80)"}, "fullDescription": {"text": "`lib/custom-employees/cover-email.ts:80` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee6cd931888bea2f", "name": "Dangling fetch: POST https://api.openai.com/v1/files (lib/custom-employees/ensemble-plan-parser.ts:516)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/files (lib/custom-employees/ensemble-plan-parser.ts:516)"}, "fullDescription": {"text": "`lib/custom-employees/ensemble-plan-parser.ts:516` calls `POST https://api.openai.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e002885f65388eb", "name": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/custom-employees/ensemble-plan-parser.ts:550)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/custom-employees/ensemble-plan-parser.ts:550)"}, "fullDescription": {"text": "`lib/custom-employees/ensemble-plan-parser.ts:550` calls `POST https://api.openai.com/v1/responses` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/responses`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b026fd1a17b6a5b", "name": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/notify.ts:68)", "shortDescription": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/notify.ts:68)"}, "fullDescription": {"text": "`lib/custom-employees/notify.ts:68` calls `POST https://api.postmarkapp.com/email` 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.postmarkapp.com/email`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74e96d7762f44695", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/processor.ts:965)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/processor.ts:965)"}, "fullDescription": {"text": "`lib/custom-employees/processor.ts:965` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6c994fa7d5818e4", "name": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/send-cover-email.ts:46)", "shortDescription": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/send-cover-email.ts:46)"}, "fullDescription": {"text": "`lib/custom-employees/send-cover-email.ts:46` calls `POST https://api.postmarkapp.com/email` 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.postmarkapp.com/email`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88bfa3ec370259f4", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/intent/classifier.ts:57)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/intent/classifier.ts:57)"}, "fullDescription": {"text": "`lib/intent/classifier.ts:57` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6626124971560eb6", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/cold-mailbox/poll.ts:48)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/cold-mailbox/poll.ts:48)"}, "fullDescription": {"text": "`lib/cold-mailbox/poll.ts:48` calls `POST https://oauth2.googleapis.com/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:/oauth2.googleapis.com/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-3f99bc6ab4475720", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:134)", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:134)"}, "fullDescription": {"text": "`lib/cold-mailbox/poll.ts:134` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/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-c7b73d9abaf12d10", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:162)", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:162)"}, "fullDescription": {"text": "`lib/cold-mailbox/poll.ts:162` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/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-f6cc245ba6632ba5", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${messageId}?format=full (lib/cold-mailbox/p", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${messageId}?format=full (lib/cold-mailbox/poll.ts:193)"}, "fullDescription": {"text": "`lib/cold-mailbox/poll.ts:193` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${messageId}?format=full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-64bb05c6375c4153", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 5", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 50)} (lib/voice-profile/extract-business.ts:160)"}, "fullDescription": {"text": "`lib/voice-profile/extract-business.ts:160` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(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: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61b9f5e7b8e727c3", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subjec", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date (lib/voice-profile/extract-business.ts:174)"}, "fullDescription": {"text": "`lib/voice-profile/extract-business.ts:174` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-a89eb5baf781be2c", "name": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${m.id}/attachments?$select=id,name,size,contentType (l", "shortDescription": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${m.id}/attachments?$select=id,name,size,contentType (lib/voice-profile/harvest-historical-plans.ts:149)"}, "fullDescription": {"text": "`lib/voice-profile/harvest-historical-plans.ts:149` calls `GET https://graph.microsoft.com/v1.0/me/messages/${m.id}/attachments?$select=id,name,size,contentType` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/graph.microsoft.com/v1.0/me/messages/<p>/attachments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa116bd60f9536df", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/voice-profile/harvest", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/voice-profile/harvest-historical-plans.ts:194)"}, "fullDescription": {"text": "`lib/voice-profile/harvest-historical-plans.ts:194` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-7d383418931bdc2d", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 5", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 50)} (lib/voice-profile/extract.ts:173)"}, "fullDescription": {"text": "`lib/voice-profile/extract.ts:173` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(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: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f486b00cf57d3d53", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subjec", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date (lib/voice-profile/extract.ts:189)"}, "fullDescription": {"text": "`lib/voice-profile/extract.ts:189` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-b77743c8e266b549", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/agents/builder.ts:572)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/agents/builder.ts:572)"}, "fullDescription": {"text": "`lib/agents/builder.ts:572` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0aff04ebf0e391ef", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/onboarding/extract-br", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/onboarding/extract-brand-voice.ts:120)"}, "fullDescription": {"text": "`lib/onboarding/extract-brand-voice.ts:120` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<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-6356db83ca33659d", "name": "Dangling fetch: GET /api/v9/sidebar-badges?seen=${seenToQuery(seenMap)} (lib/v9/tab-seen.ts:14)", "shortDescription": {"text": "Dangling fetch: GET /api/v9/sidebar-badges?seen=${seenToQuery(seenMap)} (lib/v9/tab-seen.ts:14)"}, "fullDescription": {"text": "`lib/v9/tab-seen.ts:14` calls `GET /api/v9/sidebar-badges?seen=${seenToQuery(seenMap)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v9/sidebar-badges`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb2c62d43772fbf8", "name": "Dangling fetch: POST https://api.tavily.com/search (lib/council/tools/web-search.ts:68)", "shortDescription": {"text": "Dangling fetch: POST https://api.tavily.com/search (lib/council/tools/web-search.ts:68)"}, "fullDescription": {"text": "`lib/council/tools/web-search.ts:68` calls `POST https://api.tavily.com/search` 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.tavily.com/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-71047fe20f8e9234", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/preview-ai/provision.ts:182)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/preview-ai/provision.ts:182)"}, "fullDescription": {"text": "`lib/preview-ai/provision.ts:182` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23043c2f2ca64290", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/llm/with-fallback.ts:66)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/llm/with-fallback.ts:66)"}, "fullDescription": {"text": "`lib/llm/with-fallback.ts:66` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e0d7df16d582fad", "name": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey} (lib/llm/model-registry-check.", "shortDescription": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey} (lib/llm/model-registry-check.ts:61)"}, "fullDescription": {"text": "`lib/llm/model-registry-check.ts:61` calls `GET https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-543c6734ce42f3a5", "name": "Dangling fetch: GET https://api.openai.com/v1/models (lib/llm/model-registry-check.ts:87)", "shortDescription": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (lib/llm/model-registry-check.ts:87)"}, "fullDescription": {"text": "`lib/llm/model-registry-check.ts:87` calls `GET https://api.openai.com/v1/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5eb2a79c2fd47175", "name": "Unused endpoint: POST /join-meeting", "shortDescription": {"text": "Unused endpoint: POST /join-meeting"}, "fullDescription": {"text": "`services/meeting-bot/src/server.ts` declares `POST /join-meeting` 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-3d022f2c44144995", "name": "Unused endpoint: POST /leave-meeting", "shortDescription": {"text": "Unused endpoint: POST /leave-meeting"}, "fullDescription": {"text": "`services/meeting-bot/src/server.ts` declares `POST /leave-meeting` 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/19443"}, "properties": {"repository": "shawnhaman9-ctrl/ARCAGENT", "repoUrl": "https://github.com/shawnhaman9-ctrl/ARCAGENT", "branch": "main"}, "results": [{"ruleId": "scanner-94715b138c709472", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/geometric-validator.test.ts:312"}, "properties": {"repobilityId": "857825c99186417f", "scanner": "scanner-primary", "fingerprint": "94715b138c709472", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-855c4f94fb17b507", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 __tests__/mack-confidence-rescore.test.ts:427"}, "properties": {"repobilityId": "0eb44d2e7fd6fb48", "scanner": "scanner-primary", "fingerprint": "855c4f94fb17b507", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-feeba397b912b3f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/mack-rescore-backfill.ts:82"}, "properties": {"repobilityId": "1aea287861355bab", "scanner": "scanner-primary", "fingerprint": "feeba397b912b3f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28ec9659883af676", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/benchmark-sonnet-vs-opus.ts:293"}, "properties": {"repobilityId": "812acacb148afdef", "scanner": "scanner-primary", "fingerprint": "28ec9659883af676", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1153550859cbbf4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerCompletionScreen.tsx:160"}, "properties": {"repobilityId": "86d3d5c1b5d97925", "scanner": "scanner-primary", "fingerprint": "e1153550859cbbf4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2012a12cd13e8dd6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/StructureCard.tsx:165"}, "properties": {"repobilityId": "ed5ea2566feb8a72", "scanner": "scanner-primary", "fingerprint": "2012a12cd13e8dd6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fd2bd127937d2baa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesCompletionScreen.tsx:426"}, "properties": {"repobilityId": "a63d21ff20364434", "scanner": "scanner-primary", "fingerprint": "fd2bd127937d2baa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f5e092cd1931c8e1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/EngineerReviewWizard.tsx:349"}, "properties": {"repobilityId": "9c9525602cf5c074", "scanner": "scanner-primary", "fingerprint": "f5e092cd1931c8e1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6875210a02d9eb3c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/mack/SalesReviewWizard.tsx:875"}, "properties": {"repobilityId": "eb483c39355a8abc", "scanner": "scanner-primary", "fingerprint": "6875210a02d9eb3c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1fdd7a2212569dfb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/floating-intake-button.tsx:278"}, "properties": {"repobilityId": "7f7ee0528d050565", "scanner": "scanner-primary", "fingerprint": "1fdd7a2212569dfb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-138026b626fb4d02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-template-editor.tsx:186"}, "properties": {"repobilityId": "2fff8f2b52445775", "scanner": "scanner-primary", "fingerprint": "138026b626fb4d02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc93ab2971c16aff", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/leads-kanban.tsx:148"}, "properties": {"repobilityId": "c5869627d876c044", "scanner": "scanner-primary", "fingerprint": "cc93ab2971c16aff", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-20f5e55050f46264", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-morning-briefing.tsx:97"}, "properties": {"repobilityId": "2c3738264ebdbba6", "scanner": "scanner-primary", "fingerprint": "20f5e55050f46264", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-289ac0e24ae0eff0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/employee-tune-drawer.tsx:253"}, "properties": {"repobilityId": "380e35a85ce2d2c5", "scanner": "scanner-primary", "fingerprint": "289ac0e24ae0eff0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e19436d88bd159e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/client-morning-briefing.tsx:167"}, "properties": {"repobilityId": "41a56a01382fec7d", "scanner": "scanner-primary", "fingerprint": "7e19436d88bd159e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6c107b70c1da001", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/v5/admin-home.tsx:799"}, "properties": {"repobilityId": "558744d7eaad5cda", "scanner": "scanner-primary", "fingerprint": "e6c107b70c1da001", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3151cee277cfbfb5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/health-pulse.tsx:106"}, "properties": {"repobilityId": "36aa7d0277ad6e62", "scanner": "scanner-primary", "fingerprint": "3151cee277cfbfb5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1571f8e864e1a56c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox.tsx:184"}, "properties": {"repobilityId": "44abc3473ed72397", "scanner": "scanner-primary", "fingerprint": "1571f8e864e1a56c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5f9ec5452e4c419b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/sidebar.tsx:306"}, "properties": {"repobilityId": "2e749c16e168a588", "scanner": "scanner-primary", "fingerprint": "5f9ec5452e4c419b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48ff998eb6e1b121", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/run-inspect-drawer.tsx:91"}, "properties": {"repobilityId": "58ee76bca5d7fe99", "scanner": "scanner-primary", "fingerprint": "48ff998eb6e1b121", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-84291eadf5b02de4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/unified-inbox-v2.tsx:499"}, "properties": {"repobilityId": "bcb9b773d96b4ae6", "scanner": "scanner-primary", "fingerprint": "84291eadf5b02de4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b03b98fe6ba4317", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/command-palette.tsx:485"}, "properties": {"repobilityId": "4f8facf3d8a13220", "scanner": "scanner-primary", "fingerprint": "0b03b98fe6ba4317", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-00b4c29f59315527", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/app/theme-toggle.tsx:103"}, "properties": {"repobilityId": "9514263837a9f556", "scanner": "scanner-primary", "fingerprint": "00b4c29f59315527", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-40f05b12f9fbc769", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home-chat-starter.tsx:100"}, "properties": {"repobilityId": "cc9349fdb2cff906", "scanner": "scanner-primary", "fingerprint": "40f05b12f9fbc769", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c235c9a7164655de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/api-keys-panel.tsx:79"}, "properties": {"repobilityId": "2deb2fdf45de0304", "scanner": "scanner-primary", "fingerprint": "c235c9a7164655de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6925d4d0b551972", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/workspace-menu.tsx:29"}, "properties": {"repobilityId": "fd3359a820cc0750", "scanner": "scanner-primary", "fingerprint": "e6925d4d0b551972", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ab21dee208b20132", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/team-settings-client.tsx:154"}, "properties": {"repobilityId": "ac6bc6b7b8233a2f", "scanner": "scanner-primary", "fingerprint": "ab21dee208b20132", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d775ec95f3890bc0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/activation-milestones-widget.tsx:106"}, "properties": {"repobilityId": "c59b8aa344b31694", "scanner": "scanner-primary", "fingerprint": "d775ec95f3890bc0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-93c8889346e82de7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/activity-feed.tsx:231"}, "properties": {"repobilityId": "6d045e9d9d2deb31", "scanner": "scanner-primary", "fingerprint": "93c8889346e82de7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5df6d9adccf66a4a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/recent-failures-list.tsx:26"}, "properties": {"repobilityId": "34b35d9ef8e143a1", "scanner": "scanner-primary", "fingerprint": "5df6d9adccf66a4a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a097a68a91b74392", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/mobile-nav.tsx:194"}, "properties": {"repobilityId": "559b8f30ecfa98c9", "scanner": "scanner-primary", "fingerprint": "a097a68a91b74392", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bab48047b64c272f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenant-switcher.tsx:83"}, "properties": {"repobilityId": "3a4afcc2f2192ed5", "scanner": "scanner-primary", "fingerprint": "bab48047b64c272f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6cc63e8ee8c05935", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/meetings-list.tsx:44"}, "properties": {"repobilityId": "4ddf5d7540fe7220", "scanner": "scanner-primary", "fingerprint": "6cc63e8ee8c05935", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4278a4c041e76ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/breadcrumbs.tsx:52"}, "properties": {"repobilityId": "da411bd37433b337", "scanner": "scanner-primary", "fingerprint": "d4278a4c041e76ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48598984769da236", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/settings/alert-recipients-manager.tsx:67"}, "properties": {"repobilityId": "770b824714e3c8a1", "scanner": "scanner-primary", "fingerprint": "48598984769da236", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d722d211fd57bed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tenants/admin-new-workspace-flow.tsx:127"}, "properties": {"repobilityId": "be7918f837a2c0d8", "scanner": "scanner-primary", "fingerprint": "6d722d211fd57bed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-37977f77af424641", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/templates/template-preview-drawer.tsx:100"}, "properties": {"repobilityId": "cd0618a2539d2008", "scanner": "scanner-primary", "fingerprint": "37977f77af424641", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a8ae5f79725787e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/emails/emails-settings-ui.tsx:108"}, "properties": {"repobilityId": "7023bbd82841f014", "scanner": "scanner-primary", "fingerprint": "4a8ae5f79725787e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7197012cbc554b99", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/tasks-list.tsx:223"}, "properties": {"repobilityId": "de5bbdebecbeaf39", "scanner": "scanner-primary", "fingerprint": "7197012cbc554b99", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc29ca680f307454", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/tasks/lindy-tasks-pane.tsx:611"}, "properties": {"repobilityId": "e67e7352df0fab19", "scanner": "scanner-primary", "fingerprint": "dc29ca680f307454", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cb3eae2616ce1bc3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/audit-tile.tsx:240"}, "properties": {"repobilityId": "85362cc04e8ced9a", "scanner": "scanner-primary", "fingerprint": "cb3eae2616ce1bc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-80ea00af1948c420", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/admin-command-center.tsx:633"}, "properties": {"repobilityId": "0cb3c5ab53bbb874", "scanner": "scanner-primary", "fingerprint": "80ea00af1948c420", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fcef69d5412af78e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/home/command-center-widgets.tsx:119"}, "properties": {"repobilityId": "befa29a838a52a55", "scanner": "scanner-primary", "fingerprint": "fcef69d5412af78e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e8ca9ae08eed19be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/at-risk-panel.tsx:88"}, "properties": {"repobilityId": "c22be31ebdf1d3ba", "scanner": "scanner-primary", "fingerprint": "e8ca9ae08eed19be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bec20f5e183ca6d1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/tenant-health-card.tsx:105"}, "properties": {"repobilityId": "0e9104b50b8f6fe6", "scanner": "scanner-primary", "fingerprint": "bec20f5e183ca6d1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0f8a8aae363d7bfb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/admin/onboarding-smoke-runner.tsx:122"}, "properties": {"repobilityId": "58bdda83e308ed31", "scanner": "scanner-primary", "fingerprint": "0f8a8aae363d7bfb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-acb346e4550e6962", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-form.tsx:272"}, "properties": {"repobilityId": "0eb6f30b4597182e", "scanner": "scanner-primary", "fingerprint": "acb346e4550e6962", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ab838a953c75013", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-manage-table.tsx:100"}, "properties": {"repobilityId": "e2cd372921b72d6a", "scanner": "scanner-primary", "fingerprint": "9ab838a953c75013", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-92b10de8dc9d9ba1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/runs-panel.tsx:139"}, "properties": {"repobilityId": "478175eb34606837", "scanner": "scanner-primary", "fingerprint": "92b10de8dc9d9ba1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fccccf2d054b6600", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/action-picker.tsx:223"}, "properties": {"repobilityId": "92797e0bf4356f7b", "scanner": "scanner-primary", "fingerprint": "fccccf2d054b6600", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ec2e93bdae61b623", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-canvas.tsx:268"}, "properties": {"repobilityId": "d9d087f7d825e330", "scanner": "scanner-primary", "fingerprint": "ec2e93bdae61b623", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d706006f61ce19c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/trigger-config-rail.tsx:304"}, "properties": {"repobilityId": "8281cd7f6667ddd3", "scanner": "scanner-primary", "fingerprint": "d706006f61ce19c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5cba9fad0127f5df", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/triggers-summary-rail.tsx:164"}, "properties": {"repobilityId": "f9688d80af36b7f2", "scanner": "scanner-primary", "fingerprint": "5cba9fad0127f5df", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c26c56b784c521a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/cold-email-bulk.tsx:162"}, "properties": {"repobilityId": "d721b73149c29427", "scanner": "scanner-primary", "fingerprint": "7c26c56b784c521a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-282c8a7a44a23eab", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/test-run-drawer.tsx:130"}, "properties": {"repobilityId": "1a2dcad7c0eeef9b", "scanner": "scanner-primary", "fingerprint": "282c8a7a44a23eab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10cdecc6179ef2eb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-tabs.tsx:85"}, "properties": {"repobilityId": "69a98ad0ff92f100", "scanner": "scanner-primary", "fingerprint": "10cdecc6179ef2eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0751028b8e87872f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/chat-interface.tsx:124"}, "properties": {"repobilityId": "464ab53f610b6565", "scanner": "scanner-primary", "fingerprint": "0751028b8e87872f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3545c131e8db009d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agents-grid.tsx:180"}, "properties": {"repobilityId": "a77942fe0612ece2", "scanner": "scanner-primary", "fingerprint": "3545c131e8db009d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a633196374582a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/logic-panel.tsx:464"}, "properties": {"repobilityId": "2b96d4c58bfcbe28", "scanner": "scanner-primary", "fingerprint": "3a633196374582a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8405b315c9a22aed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/agents/agent-top-bar.tsx:84"}, "properties": {"repobilityId": "4fc0e06bc9970b25", "scanner": "scanner-primary", "fingerprint": "8405b315c9a22aed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c63bda233bde2779", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/approvals/approvals-inbox.tsx:169"}, "properties": {"repobilityId": "2f9dbdfc77c8c242", "scanner": "scanner-primary", "fingerprint": "c63bda233bde2779", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a9a6831583a9c22", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaigns-list.tsx:74"}, "properties": {"repobilityId": "83b78ebff8be44d3", "scanner": "scanner-primary", "fingerprint": "3a9a6831583a9c22", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fd5adbeac17cd810", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/campaigns/campaign-builder.tsx:258"}, "properties": {"repobilityId": "3f94cc330a28d23a", "scanner": "scanner-primary", "fingerprint": "fd5adbeac17cd810", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2192a7c52c847f88", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 components/app/workflows/editor.tsx:161"}, "properties": {"repobilityId": "eb9092badb09f355", "scanner": "scanner-primary", "fingerprint": "2192a7c52c847f88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-f0a08e6fce2104cc", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 components/app/workflows/editor.tsx:162"}, "properties": {"repobilityId": "3b6b41a8ec1bb19d", "scanner": "scanner-primary", "fingerprint": "f0a08e6fce2104cc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-6ee52bb11ae4e0d9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/workflows/editor.tsx:330"}, "properties": {"repobilityId": "99965ed0b2cf8a70", "scanner": "scanner-primary", "fingerprint": "6ee52bb11ae4e0d9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-995ba8ae6df10f3c", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 components/app/workflows/editor.tsx:49"}, "properties": {"repobilityId": "13f789dfed3d0642", "scanner": "scanner-primary", "fingerprint": "995ba8ae6df10f3c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-88baef26587a2d92", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/council/approvals-client.tsx:100"}, "properties": {"repobilityId": "20dcaa329eb2e32d", "scanner": "scanner-primary", "fingerprint": "88baef26587a2d92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-caaa9870d88581c3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/inbox-v3.tsx:583"}, "properties": {"repobilityId": "87c07829a648e758", "scanner": "scanner-primary", "fingerprint": "caaa9870d88581c3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d1a2ef9525f161d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/inbox/conversations-pane.tsx:425"}, "properties": {"repobilityId": "9639193148a78b7e", "scanner": "scanner-primary", "fingerprint": "1d1a2ef9525f161d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8eb3f866a786da80", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/ghl-card.tsx:83"}, "properties": {"repobilityId": "2997d46ef4fcb53e", "scanner": "scanner-primary", "fingerprint": "8eb3f866a786da80", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b13d4c0ccdec59f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/app/connections/connections-ui.tsx:330"}, "properties": {"repobilityId": "612d00a86c208d40", "scanner": "scanner-primary", "fingerprint": "2b13d4c0ccdec59f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-90815fc0b78f9526", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/funnel-page.tsx:1519"}, "properties": {"repobilityId": "6c6fc8571724b07a", "scanner": "scanner-primary", "fingerprint": "90815fc0b78f9526", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-34ef2d578755ee01", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-roofing.tsx:778"}, "properties": {"repobilityId": "b94f9fafa427ee19", "scanner": "scanner-primary", "fingerprint": "34ef2d578755ee01", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d4e32620e2bff4bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-roofing.tsx:737"}, "properties": {"repobilityId": "09a38d157d2cc5af", "scanner": "scanner-primary", "fingerprint": "d4e32620e2bff4bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e407d3651f68363", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-roofing.tsx:1302"}, "properties": {"repobilityId": "32fed8b139fe97b5", "scanner": "scanner-primary", "fingerprint": "3e407d3651f68363", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-32f9898db8a53e44", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-medspa.tsx:692"}, "properties": {"repobilityId": "2c4a2cbf93a72ca5", "scanner": "scanner-primary", "fingerprint": "32f9898db8a53e44", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d2a98e99f11b3ce6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v5-ai-employees.tsx:725"}, "properties": {"repobilityId": "b9dc5d2b21b2b62f", "scanner": "scanner-primary", "fingerprint": "d2a98e99f11b3ce6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7175bc8cc63f6717", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v5-ai-employees.tsx:1098"}, "properties": {"repobilityId": "35f88e9fc34c81fa", "scanner": "scanner-primary", "fingerprint": "7175bc8cc63f6717", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6e17d7083f2f4ede", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4.tsx:737"}, "properties": {"repobilityId": "fcf9dea42694d773", "scanner": "scanner-primary", "fingerprint": "6e17d7083f2f4ede", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-138af110b2490442", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4.tsx:1302"}, "properties": {"repobilityId": "909480b0a5d79e26", "scanner": "scanner-primary", "fingerprint": "138af110b2490442", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5f2fe49d68c5b30e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketing/booking-widget.tsx:301"}, "properties": {"repobilityId": "33cd5d2306265e7c", "scanner": "scanner-primary", "fingerprint": "5f2fe49d68c5b30e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9051fb641a78941e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/marketing/landing-v4-medspa.tsx:737"}, "properties": {"repobilityId": "7b4f0f8ed8842b57", "scanner": "scanner-primary", "fingerprint": "9051fb641a78941e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5dd355c8142fc218", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/landing-v4-medspa.tsx:1302"}, "properties": {"repobilityId": "05981749651f5539", "scanner": "scanner-primary", "fingerprint": "5dd355c8142fc218", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2c7c50354de129cb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/mobile-nav.tsx:198"}, "properties": {"repobilityId": "b914da95871889eb", "scanner": "scanner-primary", "fingerprint": "2c7c50354de129cb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-48cf70c494281593", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/marketing/blog/blog-post.tsx:169"}, "properties": {"repobilityId": "ae621bb80665f760", "scanner": "scanner-primary", "fingerprint": "48cf70c494281593", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e9efbbe631e03d00", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/status-grid.tsx:69"}, "properties": {"repobilityId": "76640139f132f2e5", "scanner": "scanner-primary", "fingerprint": "e9efbbe631e03d00", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fdbefd7b8af96f69", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/cold-email-health-console.tsx:127"}, "properties": {"repobilityId": "55957663afabddd2", "scanner": "scanner-primary", "fingerprint": "fdbefd7b8af96f69", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ec69f0b14f4031ea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/agent-trust-console.tsx:183"}, "properties": {"repobilityId": "428a2838d8910ec7", "scanner": "scanner-primary", "fingerprint": "ec69f0b14f4031ea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0262cfe36e322d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/sms-pool-manager.tsx:111"}, "properties": {"repobilityId": "36fc9c9dc955ea69", "scanner": "scanner-primary", "fingerprint": "e0262cfe36e322d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b92a075328f1d429", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/meeting-console.tsx:231"}, "properties": {"repobilityId": "cfed696f9e4180ef", "scanner": "scanner-primary", "fingerprint": "b92a075328f1d429", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-03f5e9491fad9c99", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/leads-console.tsx:600"}, "properties": {"repobilityId": "181def68efca61fb", "scanner": "scanner-primary", "fingerprint": "03f5e9491fad9c99", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a65c3e29b829ef6b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/team-console.tsx:262"}, "properties": {"repobilityId": "448d91b125e080f3", "scanner": "scanner-primary", "fingerprint": "a65c3e29b829ef6b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70c41430d970eb24", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:63"}, "properties": {"repobilityId": "6f16eb9b82a2dcd6", "scanner": "scanner-primary", "fingerprint": "70c41430d970eb24", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0868a84d569f00dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/p/[slug]/page.tsx:148"}, "properties": {"repobilityId": "bbc6b853e2d55a5b", "scanner": "scanner-primary", "fingerprint": "0868a84d569f00dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9e77dfa7326c37a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/auth/callback/route.ts:249"}, "properties": {"repobilityId": "a0c539e0d39cd788", "scanner": "scanner-primary", "fingerprint": "9e77dfa7326c37a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc7f9d3355a19f08", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/auth/confirm/[token]/route.ts:75"}, "properties": {"repobilityId": "23597b90118856a6", "scanner": "scanner-primary", "fingerprint": "cc7f9d3355a19f08", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d0641b85630fc13", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/employees/hire-workspace/route.ts:136"}, "properties": {"repobilityId": "f177b8fcd62b58b2", "scanner": "scanner-primary", "fingerprint": "9d0641b85630fc13", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-918c30f66ff48b6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/employees/provision/route.ts:234"}, "properties": {"repobilityId": "57fb5e29a9e02196", "scanner": "scanner-primary", "fingerprint": "918c30f66ff48b6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c02ba9b3f9d9d155", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/meetings/recall-webhook/route.ts:95"}, "properties": {"repobilityId": "1d817fd251bb7f01", "scanner": "scanner-primary", "fingerprint": "c02ba9b3f9d9d155", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f28f417711df45c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/signup/route.ts:126"}, "properties": {"repobilityId": "857f0dd4b41b76ad", "scanner": "scanner-primary", "fingerprint": "f28f417711df45c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-74ecb7cecc999fcf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/resend-confirmation/route.ts:56"}, "properties": {"repobilityId": "af62939335a77689", "scanner": "scanner-primary", "fingerprint": "74ecb7cecc999fcf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b82e9ce574ab0735", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/activity/route.ts:134"}, "properties": {"repobilityId": "c42637ce80587a25", "scanner": "scanner-primary", "fingerprint": "b82e9ce574ab0735", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-29f85255b71c4609", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/v5/custom-employees/[slug]/knowledge/upload/route.ts:170"}, "properties": {"repobilityId": "a1cd9d9be98662d6", "scanner": "scanner-primary", "fingerprint": "29f85255b71c4609", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f508cd1678577a5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v5/agents/feed/route.ts:92"}, "properties": {"repobilityId": "2cbc060ea264923f", "scanner": "scanner-primary", "fingerprint": "3f508cd1678577a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-96d50a1779b442aa", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v5/senders/feed/route.ts:158"}, "properties": {"repobilityId": "cc90b59fc39250c1", "scanner": "scanner-primary", "fingerprint": "96d50a1779b442aa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-146f013a3b2e83e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/inbound/vapi/route.ts:122"}, "properties": {"repobilityId": "ec3ad2f26fae2731", "scanner": "scanner-primary", "fingerprint": "146f013a3b2e83e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed9038a837c66135", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/oauth/connect/route.ts:128"}, "properties": {"repobilityId": "c8bd97f926f69774", "scanner": "scanner-primary", "fingerprint": "ed9038a837c66135", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b4f8e80a6366714d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/oauth/callback/[provider]/route.ts:181"}, "properties": {"repobilityId": "1702637dbaaa84cc", "scanner": "scanner-primary", "fingerprint": "b4f8e80a6366714d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f29291c1645da6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/marketing/chat/route.ts:211"}, "properties": {"repobilityId": "5166600b4f4ef2f6", "scanner": "scanner-primary", "fingerprint": "1f29291c1645da6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8081540a3dba7ad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/change-persona/route.ts:122"}, "properties": {"repobilityId": "03c6fbf999c7a0e9", "scanner": "scanner-primary", "fingerprint": "d8081540a3dba7ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53ed86512c97d2d6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/mark-training/route.ts:30"}, "properties": {"repobilityId": "7a5d0d322a60ea6b", "scanner": "scanner-primary", "fingerprint": "53ed86512c97d2d6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b98565d7be69fdfc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/agents/[id]/approve/route.ts:96"}, "properties": {"repobilityId": "3d32988bd0a67acf", "scanner": "scanner-primary", "fingerprint": "b98565d7be69fdfc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f532efb047cd731", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/mack-reextract-lite/route.ts:255"}, "properties": {"repobilityId": "c8ead29e304166e8", "scanner": "scanner-primary", "fingerprint": "0f532efb047cd731", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-abab56b68a79cfc6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/admin/kill-switches/route.ts:104"}, "properties": {"repobilityId": "34f2631f8ac8f24f", "scanner": "scanner-primary", "fingerprint": "abab56b68a79cfc6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c999f901491d6a28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/twilio/inbound-sms/route.ts:93"}, "properties": {"repobilityId": "d2c6b3bd885b6b9a", "scanner": "scanner-primary", "fingerprint": "c999f901491d6a28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e7d16d9d29c94aef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/onboarding/hire/complete/route.ts:109"}, "properties": {"repobilityId": "d02cf1ef33ce4fb5", "scanner": "scanner-primary", "fingerprint": "e7d16d9d29c94aef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd2c5191ff255588", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/v9/admin/billing/test-subscription/route.ts:66"}, "properties": {"repobilityId": "f681b264103c18af", "scanner": "scanner-primary", "fingerprint": "bd2c5191ff255588", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5bfa70e6f361e90b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/v9/founder-tasks/route.ts:48"}, "properties": {"repobilityId": "dcf4ee26905eb351", "scanner": "scanner-primary", "fingerprint": "5bfa70e6f361e90b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cfb99194ce79998b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-email-sequences/route.ts:914"}, "properties": {"repobilityId": "eb7a10aad6d31a64", "scanner": "scanner-primary", "fingerprint": "cfb99194ce79998b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1951684ad1510d0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-mailbox-warmup-ramp/route.ts:62"}, "properties": {"repobilityId": "6908377f9bf8826d", "scanner": "scanner-primary", "fingerprint": "1951684ad1510d0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23ebb555ee7762fc", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/cron/warm-sms-on-email-reply/route.ts:250"}, "properties": {"repobilityId": "804353e24c04a892", "scanner": "scanner-primary", "fingerprint": "23ebb555ee7762fc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8ce547775e784e4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/gmail-inbox-poll/route.ts:414"}, "properties": {"repobilityId": "efef11ea1dcd0c87", "scanner": "scanner-primary", "fingerprint": "8ce547775e784e4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-31a13e628bdc1f62", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/cold-sms-sequences/route.ts:648"}, "properties": {"repobilityId": "68b283e47b9e2365", "scanner": "scanner-primary", "fingerprint": "31a13e628bdc1f62", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6aad2e7a02e15e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/booking-intent-followup/route.ts:62"}, "properties": {"repobilityId": "9cb5b33f1a324c5a", "scanner": "scanner-primary", "fingerprint": "b6aad2e7a02e15e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c480095379f0b5c7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/mack-reextract-lite/route.ts:109"}, "properties": {"repobilityId": "3bfce11b979cd681", "scanner": "scanner-primary", "fingerprint": "c480095379f0b5c7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad8c155e18c9e107", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/voice-cold-call/route.ts:172"}, "properties": {"repobilityId": "355a672969f97dbf", "scanner": "scanner-primary", "fingerprint": "ad8c155e18c9e107", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5986b93ba27504c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/tenant-knowledge/upload/route.ts:64"}, "properties": {"repobilityId": "26ed62a30eb68c1d", "scanner": "scanner-primary", "fingerprint": "f5986b93ba27504c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3b00e2a39f2130fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/twilio/status/route.ts:83"}, "properties": {"repobilityId": "5ae4ea9e84e26832", "scanner": "scanner-primary", "fingerprint": "3b00e2a39f2130fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9ed40d7353c260c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/gmail/pubsub/route.ts:161"}, "properties": {"repobilityId": "027ca2c21882fe10", "scanner": "scanner-primary", "fingerprint": "e9ed40d7353c260c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da07000a0dd0e121", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/vapi/route.ts:261"}, "properties": {"repobilityId": "ef411374fdb7cd94", "scanner": "scanner-primary", "fingerprint": "da07000a0dd0e121", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1d4bd5588fd898f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/snooze/route.ts:27"}, "properties": {"repobilityId": "02b80739e8c7324f", "scanner": "scanner-primary", "fingerprint": "a1d4bd5588fd898f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-64f095342626bc98", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/inbox/mute-ai/route.ts:24"}, "properties": {"repobilityId": "1c3d40fc34c61435", "scanner": "scanner-primary", "fingerprint": "64f095342626bc98", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d4823cde6ba0d175", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/_client-shell.tsx:1147"}, "properties": {"repobilityId": "eda9dbff11cfd963", "scanner": "scanner-primary", "fingerprint": "d4823cde6ba0d175", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e1d347b947ce5e62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/integrations/page.tsx:333"}, "properties": {"repobilityId": "a27cce9e115fbbf1", "scanner": "scanner-primary", "fingerprint": "e1d347b947ce5e62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb370b19b6b243f4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/notifications/page.tsx:89"}, "properties": {"repobilityId": "511a00b7e236aa2c", "scanner": "scanner-primary", "fingerprint": "eb370b19b6b243f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0604c4f31e7b29b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/team/page.tsx:96"}, "properties": {"repobilityId": "d5f047157d52226a", "scanner": "scanner-primary", "fingerprint": "0604c4f31e7b29b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e01756c4cb0cc66", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/settings/crons/page.tsx:247"}, "properties": {"repobilityId": "a6e5f12cf1a0f4f9", "scanner": "scanner-primary", "fingerprint": "0e01756c4cb0cc66", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be6e722b17d345b9", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/settings/crons/page.tsx:402"}, "properties": {"repobilityId": "1a3e4f8167a7142e", "scanner": "scanner-primary", "fingerprint": "be6e722b17d345b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-2446956034b4be23", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/intent-signals/page.tsx:457"}, "properties": {"repobilityId": "fc1bcdd343713463", "scanner": "scanner-primary", "fingerprint": "2446956034b4be23", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c6a5e15185e09df6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:245"}, "properties": {"repobilityId": "f835b7ec46058388", "scanner": "scanner-primary", "fingerprint": "c6a5e15185e09df6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8cd50633e5060bda", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:168"}, "properties": {"repobilityId": "8cf3b97ebc30003c", "scanner": "scanner-primary", "fingerprint": "8cd50633e5060bda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-647632699e6c502b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_view-as-toggle.tsx:98"}, "properties": {"repobilityId": "d2bc174840588413", "scanner": "scanner-primary", "fingerprint": "647632699e6c502b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10894192696fb367", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/page.tsx:344"}, "properties": {"repobilityId": "c0947227c2be4a30", "scanner": "scanner-primary", "fingerprint": "10894192696fb367", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aa0fcd9143885372", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v5/employees/[slug]/page.tsx:1076"}, "properties": {"repobilityId": "c77a667b5e54947b", "scanner": "scanner-primary", "fingerprint": "aa0fcd9143885372", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0495b811681a9fa9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_job-picker.tsx:138"}, "properties": {"repobilityId": "36bf8b57ff5dd6d3", "scanner": "scanner-primary", "fingerprint": "0495b811681a9fa9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99c712b828fff195", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/_today-landing.tsx:489"}, "properties": {"repobilityId": "39a420f3c7a1192c", "scanner": "scanner-primary", "fingerprint": "99c712b828fff195", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b0fb91d7a262c1fd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/analytics/page.tsx:177"}, "properties": {"repobilityId": "10a9e6fd0c5f95bf", "scanner": "scanner-primary", "fingerprint": "b0fb91d7a262c1fd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d9db4fbbaaada74", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/press-desk/_shell.tsx:408"}, "properties": {"repobilityId": "e35551b30a82c2ea", "scanner": "scanner-primary", "fingerprint": "6d9db4fbbaaada74", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2897abd67f63f472", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/oversight/_client.tsx:279"}, "properties": {"repobilityId": "31867e950b80f3fc", "scanner": "scanner-primary", "fingerprint": "2897abd67f63f472", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b88b684206ccf64a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:526"}, "properties": {"repobilityId": "4756a30f30644fc8", "scanner": "scanner-primary", "fingerprint": "b88b684206ccf64a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a150d25aedb993b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/team/_view.tsx:529"}, "properties": {"repobilityId": "1d520d096472e0f9", "scanner": "scanner-primary", "fingerprint": "4a150d25aedb993b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a387624115fe2537", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:389"}, "properties": {"repobilityId": "eac52e7574b4ed0a", "scanner": "scanner-primary", "fingerprint": "a387624115fe2537", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75ce833ac5c638e7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/revisions/_client.tsx:173"}, "properties": {"repobilityId": "b4356e63772b927a", "scanner": "scanner-primary", "fingerprint": "75ce833ac5c638e7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-325ddfd04241610a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/sales/page.tsx:167"}, "properties": {"repobilityId": "e8e0b14b6017916b", "scanner": "scanner-primary", "fingerprint": "325ddfd04241610a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-56c2acbfdd171826", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/engineer/_queue-client.tsx:667"}, "properties": {"repobilityId": "89f46e2ca3397bf0", "scanner": "scanner-primary", "fingerprint": "56c2acbfdd171826", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f6647e7097fadde", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:322"}, "properties": {"repobilityId": "0eedc25eba3d0b42", "scanner": "scanner-primary", "fingerprint": "4f6647e7097fadde", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-78f3f6ecc99777e4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/_revision-history.tsx:86"}, "properties": {"repobilityId": "3bfe0fe18ff6516c", "scanner": "scanner-primary", "fingerprint": "78f3f6ecc99777e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aa962575f52c4dc4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:904"}, "properties": {"repobilityId": "171d84d5c8ec4a62", "scanner": "scanner-primary", "fingerprint": "aa962575f52c4dc4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57b41c95ce3a54a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:117"}, "properties": {"repobilityId": "34f229bde84a7d24", "scanner": "scanner-primary", "fingerprint": "57b41c95ce3a54a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-66fc93be41e8727f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:77"}, "properties": {"repobilityId": "d4dcd75e4ca4d80f", "scanner": "scanner-primary", "fingerprint": "66fc93be41e8727f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f8f2c064afef83a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:341"}, "properties": {"repobilityId": "5baad59aafad9d92", "scanner": "scanner-primary", "fingerprint": "4f8f2c064afef83a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c6926b08f8389ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:431"}, "properties": {"repobilityId": "781340664e84e89f", "scanner": "scanner-primary", "fingerprint": "0c6926b08f8389ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a5a99d9a6ac21301", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees/[slug]/training/_view.tsx:429"}, "properties": {"repobilityId": "67981ff6be74719d", "scanner": "scanner-primary", "fingerprint": "a5a99d9a6ac21301", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4ab5bc8ff6cac4e3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/connect/_client-view.tsx:268"}, "properties": {"repobilityId": "320196fe89b438f0", "scanner": "scanner-primary", "fingerprint": "4ab5bc8ff6cac4e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5184a448452645b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/v5/connect/_client-view.tsx:298"}, "properties": {"repobilityId": "00c1d44764089a53", "scanner": "scanner-primary", "fingerprint": "5184a448452645b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55412dd4a48aea8d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/leads/_page-legacy.tsx:613"}, "properties": {"repobilityId": "dcdb1b0e09ddbc32", "scanner": "scanner-primary", "fingerprint": "55412dd4a48aea8d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fb79eaeff707e411", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/insights/page.tsx:393"}, "properties": {"repobilityId": "708fb131c278f464", "scanner": "scanner-primary", "fingerprint": "fb79eaeff707e411", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e81eff641b0e8d49", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/voice/page.tsx:218"}, "properties": {"repobilityId": "4189757e23f76224", "scanner": "scanner-primary", "fingerprint": "e81eff641b0e8d49", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d4a9ef9d2113d8d7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/page.tsx:128"}, "properties": {"repobilityId": "299f568090aef874", "scanner": "scanner-primary", "fingerprint": "d4a9ef9d2113d8d7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d298f131840a48c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:571"}, "properties": {"repobilityId": "111df03fff14601a", "scanner": "scanner-primary", "fingerprint": "3d298f131840a48c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bdc24ce18af4e1dc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/hot-leads/_client.tsx:100"}, "properties": {"repobilityId": "890b98dc38881a06", "scanner": "scanner-primary", "fingerprint": "bdc24ce18af4e1dc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-79a971c2a6d7fcc7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/custom-employees/[slug]/_managers.tsx:106"}, "properties": {"repobilityId": "234674ae40a750d4", "scanner": "scanner-primary", "fingerprint": "79a971c2a6d7fcc7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e453cd252f360053", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/copy-monitor/_client.tsx:47"}, "properties": {"repobilityId": "994f93880b7d784a", "scanner": "scanner-primary", "fingerprint": "e453cd252f360053", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0174435e867e241a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/admin/tenant-quality/_client.tsx:92"}, "properties": {"repobilityId": "4907ea8293013a26", "scanner": "scanner-primary", "fingerprint": "0174435e867e241a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-71f27b7588e023f0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/agents/_page-legacy.tsx:281"}, "properties": {"repobilityId": "541ed61de2058754", "scanner": "scanner-primary", "fingerprint": "71f27b7588e023f0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e4b4de360dbad8dc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/upgrade/page.tsx:322"}, "properties": {"repobilityId": "1830ddcf18845c73", "scanner": "scanner-primary", "fingerprint": "e4b4de360dbad8dc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b7cfccc9fb81934", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/senders/_view.tsx:241"}, "properties": {"repobilityId": "60cf4ccd624c635a", "scanner": "scanner-primary", "fingerprint": "9b7cfccc9fb81934", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fbc5615f4395d62a", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/senders/_view.tsx:180"}, "properties": {"repobilityId": "ea2c9abf9712f816", "scanner": "scanner-primary", "fingerprint": "fbc5615f4395d62a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-fa72e2a9d06b8567", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 app/v5/council/page.tsx:347"}, "properties": {"repobilityId": "1b67d98f5a242aa3", "scanner": "scanner-primary", "fingerprint": "fa72e2a9d06b8567", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-6748a2369a72e0d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v5/inbox/_page-legacy.tsx:1257"}, "properties": {"repobilityId": "7f5838d0644b8ded", "scanner": "scanner-primary", "fingerprint": "6748a2369a72e0d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0745c2ae903767ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/cold-mailbox-connect/page.tsx:75"}, "properties": {"repobilityId": "811db2f2e32b9cbe", "scanner": "scanner-primary", "fingerprint": "0745c2ae903767ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f4ccae6cfd01f51", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/v9/employees/page.tsx:199"}, "properties": {"repobilityId": "1a99b53a86d0c5b0", "scanner": "scanner-primary", "fingerprint": "8f4ccae6cfd01f51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-faafe3fb8b55b090", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/v9/leads/page.tsx:396"}, "properties": {"repobilityId": "33b54288e5d2cdd9", "scanner": "scanner-primary", "fingerprint": "faafe3fb8b55b090", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3439c2fd4c8143df", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/page.tsx:925"}, "properties": {"repobilityId": "04421ca00c4d1586", "scanner": "scanner-primary", "fingerprint": "3439c2fd4c8143df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c887f8de2c68bc2e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/activity/page.tsx:471"}, "properties": {"repobilityId": "8886e960aa688e32", "scanner": "scanner-primary", "fingerprint": "c887f8de2c68bc2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-87a7e48509697dba", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 app/v9/workspaces/[id]/jobs/page.tsx:331"}, "properties": {"repobilityId": "505038cca77dcde9", "scanner": "scanner-primary", "fingerprint": "87a7e48509697dba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-32e9321d81816f49", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/v9/audits/_page-legacy.tsx:381"}, "properties": {"repobilityId": "f3f9b7fc407af5dc", "scanner": "scanner-primary", "fingerprint": "32e9321d81816f49", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eceda7462ed9e3d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/v9/app/refer/page.tsx:257"}, "properties": {"repobilityId": "6fe97dae2c5f9dbe", "scanner": "scanner-primary", "fingerprint": "eceda7462ed9e3d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f70a8883c127fd2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/dashboard/dashboard-impl.tsx:368"}, "properties": {"repobilityId": "9f556ef729a7595e", "scanner": "scanner-primary", "fingerprint": "f70a8883c127fd2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d1d8921d38685551", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/qa/onboarding-smoke/page.tsx:82"}, "properties": {"repobilityId": "9c482828423ab788", "scanner": "scanner-primary", "fingerprint": "d1d8921d38685551", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac747c07c72e3fe9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/(app)/admin/onboarding/page.tsx:237"}, "properties": {"repobilityId": "897879ed07ef59d7", "scanner": "scanner-primary", "fingerprint": "ac747c07c72e3fe9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-829f4803c43d83d4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/layout.tsx:100"}, "properties": {"repobilityId": "81c43d9c5d5e6d61", "scanner": "scanner-primary", "fingerprint": "829f4803c43d83d4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f6da8376b918363e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/case-studies/page.tsx:414"}, "properties": {"repobilityId": "60a6013d204e51cd", "scanner": "scanner-primary", "fingerprint": "f6da8376b918363e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-adf928285614c463", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/audit/page.tsx:214"}, "properties": {"repobilityId": "ad92e010a12d8b79", "scanner": "scanner-primary", "fingerprint": "adf928285614c463", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4c43cf68be1f875f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(marketing)/insurance/page.tsx:118"}, "properties": {"repobilityId": "11a9f79dc2bba2b9", "scanner": "scanner-primary", "fingerprint": "4c43cf68be1f875f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eb039c29d251d9f6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/book/page.tsx:40"}, "properties": {"repobilityId": "e62c1d8c9603c28b", "scanner": "scanner-primary", "fingerprint": "eb039c29d251d9f6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-226c6e01b19ea7f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/anthropic-logged.ts:173"}, "properties": {"repobilityId": "780ec2f9190aede3", "scanner": "scanner-primary", "fingerprint": "226c6e01b19ea7f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d953603029ef6d26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/agent-runner.ts:325"}, "properties": {"repobilityId": "a90a30b9fa56a3d5", "scanner": "scanner-primary", "fingerprint": "d953603029ef6d26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63335170487ecc37", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/integrations/vapi.ts:9"}, "properties": {"repobilityId": "05743d6dbf5472fd", "scanner": "scanner-primary", "fingerprint": "63335170487ecc37", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7496f6cbd4860aa8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/mack/schedule-multi-source.ts:120"}, "properties": {"repobilityId": "9cc49550725c1ae1", "scanner": "scanner-primary", "fingerprint": "7496f6cbd4860aa8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd2d3180f39b1006", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/notifications/founder-alerts.ts:135"}, "properties": {"repobilityId": "983432bff51cd3d5", "scanner": "scanner-primary", "fingerprint": "bd2d3180f39b1006", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22176cc71e8fd4c4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ams/adapters/ezlynx.ts:60"}, "properties": {"repobilityId": "8b538769ce2df5b4", "scanner": "scanner-primary", "fingerprint": "22176cc71e8fd4c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-803f06c406d888e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/email/invite.ts:207"}, "properties": {"repobilityId": "d5480b5c6197f913", "scanner": "scanner-primary", "fingerprint": "803f06c406d888e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbd4159b9dc6d53a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/press-desk/booking-sms.ts:98"}, "properties": {"repobilityId": "76aef03a76dc4284", "scanner": "scanner-primary", "fingerprint": "cbd4159b9dc6d53a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94e0d9f6a314f865", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/plan-table-parser.ts:212"}, "properties": {"repobilityId": "99ac3926be997f6b", "scanner": "scanner-primary", "fingerprint": "94e0d9f6a314f865", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca89ae11a5d58bad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/extraction-review.ts:148"}, "properties": {"repobilityId": "3f8c8a982426a7ac", "scanner": "scanner-primary", "fingerprint": "ca89ae11a5d58bad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc5b23ea717e01a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-locator.ts:223"}, "properties": {"repobilityId": "53a63dadd03bac28", "scanner": "scanner-primary", "fingerprint": "cc5b23ea717e01a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f40ad3de49581c72", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/self-grade.ts:181"}, "properties": {"repobilityId": "e215483ba046108a", "scanner": "scanner-primary", "fingerprint": "f40ad3de49581c72", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73abd0daac7bba99", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/processor.ts:434"}, "properties": {"repobilityId": "4ab68640ca10170e", "scanner": "scanner-primary", "fingerprint": "73abd0daac7bba99", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45524ecacb091140", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-enumerator.ts:137"}, "properties": {"repobilityId": "efedb9baf0ba1050", "scanner": "scanner-primary", "fingerprint": "45524ecacb091140", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00f6440fe6d89008", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/custom-employees/structure-screenshot-renderer.ts:191"}, "properties": {"repobilityId": "4764306d6d0a8909", "scanner": "scanner-primary", "fingerprint": "00f6440fe6d89008", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b65c3c64742dd8f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/billing/subscription.ts:89"}, "properties": {"repobilityId": "96833f91d4397214", "scanner": "scanner-primary", "fingerprint": "4b65c3c64742dd8f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-70b6d2173a3408ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/billing/webhook-handler.ts:89"}, "properties": {"repobilityId": "de39a646ad8640ba", "scanner": "scanner-primary", "fingerprint": "70b6d2173a3408ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e9ca15848f2c463", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/agents/builder.ts:725"}, "properties": {"repobilityId": "0a14c5a079c6eaf9", "scanner": "scanner-primary", "fingerprint": "1e9ca15848f2c463", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d453b29dbb84f721", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/onboarding/extract-brand-voice.ts:222"}, "properties": {"repobilityId": "faa0ca39ca37cf4d", "scanner": "scanner-primary", "fingerprint": "d453b29dbb84f721", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37baa3a09f444109", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/cron/settings.ts:12"}, "properties": {"repobilityId": "eabbf510d64b1677", "scanner": "scanner-primary", "fingerprint": "37baa3a09f444109", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-006485cf149b4a55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/managers/tools.ts:2017"}, "properties": {"repobilityId": "5a8d2328df2fa91a", "scanner": "scanner-primary", "fingerprint": "006485cf149b4a55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-212c6dbe7441ed56", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 lib/seo/schema.ts:11"}, "properties": {"repobilityId": "f0f8b5fd0153b183", "scanner": "scanner-primary", "fingerprint": "212c6dbe7441ed56", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e982c4e6d95456e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/transcriber.ts:85"}, "properties": {"repobilityId": "917ccded778b7cfb", "scanner": "scanner-primary", "fingerprint": "e982c4e6d95456e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4e55107406c1c2f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/meet-bot.ts:87"}, "properties": {"repobilityId": "720bb99a82f7476c", "scanner": "scanner-primary", "fingerprint": "4e55107406c1c2f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f5975b5db074c69", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/meeting-bot/src/server.ts:225"}, "properties": {"repobilityId": "a20e9c2f8bb0e750", "scanner": "scanner-primary", "fingerprint": "9f5975b5db074c69", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cfe43f7b22dfcab1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/council/src/agents/runAgent.ts:34"}, "properties": {"repobilityId": "1a6244d731ce68be", "scanner": "scanner-primary", "fingerprint": "cfe43f7b22dfcab1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-daf9182378990303", "level": "warning", "message": {"text": "Privileged port 587 in use"}, "properties": {"repobilityId": "a87a96c3b2e62c08", "scanner": "scanner-primary", "fingerprint": "daf9182378990303", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/email/send-composed.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d5ce71921300afa9", "level": "warning", "message": {"text": "Dockerfile runs as root: services/meeting-bot/Dockerfile"}, "properties": {"repobilityId": "c403ada681a3c67a", "scanner": "scanner-primary", "fingerprint": "d5ce71921300afa9", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-65e6a039ed2f26ae", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "properties": {"repobilityId": "e77af6c5a38a620d", "scanner": "scanner-primary", "fingerprint": "65e6a039ed2f26ae", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/meeting-bot/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-78430569d36ac14f", "level": "warning", "message": {"text": "Dockerfile runs as root: services/council/Dockerfile"}, "properties": {"repobilityId": "b9f2608eeace2513", "scanner": "scanner-primary", "fingerprint": "78430569d36ac14f", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-0146f17e15ef97b1", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "e08a41d784ff71ed", "scanner": "scanner-primary", "fingerprint": "0146f17e15ef97b1", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/council/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-88bbe0d2c258f107", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/check-tsc-baseline.mjs:23"}, "properties": {"repobilityId": "8766018cca58680f", "scanner": "scanner-primary", "fingerprint": "88bbe0d2c258f107", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check-tsc-baseline.mjs"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-60c023cd07abc729", "level": "error", "message": {"text": "Possible secret in scripts/_smoke-export-context.mjs"}, "properties": {"repobilityId": "1d8697ba2b431b43", "scanner": "scanner-primary", "fingerprint": "60c023cd07abc729", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_smoke-export-context.mjs"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-5c8771d4af8046a0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/mack-rescore-backfill.mjs:12"}, "properties": {"repobilityId": "e676800eb859625e", "scanner": "scanner-primary", "fingerprint": "5c8771d4af8046a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mack-rescore-backfill.mjs"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-5b633d30a77727bb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/apply-migrations.mjs:31"}, "properties": {"repobilityId": "53c3aa5333b1b565", "scanner": "scanner-primary", "fingerprint": "5b633d30a77727bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/apply-migrations.mjs"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-ac6c0fcccd6410bc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/funnel-page.tsx:1519"}, "properties": {"repobilityId": "daaa895cd05a2f3b", "scanner": "scanner-primary", "fingerprint": "ac6c0fcccd6410bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/funnel-page.tsx"}, "region": {"startLine": 1519}}}]}, {"ruleId": "scanner-32f7a90835cfa93d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-roofing.tsx:778"}, "properties": {"repobilityId": "9448c4794efdc6e7", "scanner": "scanner-primary", "fingerprint": "32f7a90835cfa93d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v5-roofing.tsx"}, "region": {"startLine": 778}}}]}, {"ruleId": "scanner-eb50f0ed4fe54839", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-roofing.tsx:1302"}, "properties": {"repobilityId": "0ac82aaf5ed65e64", "scanner": "scanner-primary", "fingerprint": "eb50f0ed4fe54839", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v4-roofing.tsx"}, "region": {"startLine": 1302}}}]}, {"ruleId": "scanner-dfc8774e34d43d3a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-medspa.tsx:692"}, "properties": {"repobilityId": "b0dab8dbfbc921fa", "scanner": "scanner-primary", "fingerprint": "dfc8774e34d43d3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v5-medspa.tsx"}, "region": {"startLine": 692}}}]}, {"ruleId": "scanner-3a5e778746a1dd20", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v5-ai-employees.tsx:1098"}, "properties": {"repobilityId": "d11de1ef9ac1fb1b", "scanner": "scanner-primary", "fingerprint": "3a5e778746a1dd20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v5-ai-employees.tsx"}, "region": {"startLine": 1098}}}]}, {"ruleId": "scanner-79470c2478d3e68b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4.tsx:1302"}, "properties": {"repobilityId": "a61d1d86acbd51a7", "scanner": "scanner-primary", "fingerprint": "79470c2478d3e68b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v4.tsx"}, "region": {"startLine": 1302}}}]}, {"ruleId": "scanner-1f3aad35407523fc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/landing-v4-medspa.tsx:1302"}, "properties": {"repobilityId": "780f46a9e1939c87", "scanner": "scanner-primary", "fingerprint": "1f3aad35407523fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/landing-v4-medspa.tsx"}, "region": {"startLine": 1302}}}]}, {"ruleId": "scanner-c9621f4f6f75980b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/mobile-nav.tsx:198"}, "properties": {"repobilityId": "c7f402b820b384d2", "scanner": "scanner-primary", "fingerprint": "c9621f4f6f75980b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/mobile-nav.tsx"}, "region": {"startLine": 198}}}]}, {"ruleId": "scanner-22163d70f10dd5f3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/marketing/blog/blog-post.tsx:169"}, "properties": {"repobilityId": "b7e3621520db0b7e", "scanner": "scanner-primary", "fingerprint": "22163d70f10dd5f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/marketing/blog/blog-post.tsx"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-5e6b78bc13377766", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:63"}, "properties": {"repobilityId": "69d4743587f721a0", "scanner": "scanner-primary", "fingerprint": "5e6b78bc13377766", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/layout.tsx"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-a53b161f1dd95ae0", "level": "error", "message": {"text": "Possible secret in app/api/admin/env-probe/route.ts"}, "properties": {"repobilityId": "1d1638c10d4d6039", "scanner": "scanner-primary", "fingerprint": "a53b161f1dd95ae0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/admin/env-probe/route.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-a53b161f1dd95ae0", "level": "error", "message": {"text": "Possible secret in app/api/admin/env-probe/route.ts"}, "properties": {"repobilityId": "1d1638c10d4d6039", "scanner": "scanner-primary", "fingerprint": "a53b161f1dd95ae0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/admin/env-probe/route.ts"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-13eb4580f4ee1523", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/v5/employees/[slug]/page.tsx:1076"}, "properties": {"repobilityId": "6630a6ddb8ba8442", "scanner": "scanner-primary", "fingerprint": "13eb4580f4ee1523", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/v5/employees/[slug]/page.tsx"}, "region": {"startLine": 1076}}}]}, {"ruleId": "scanner-0f1aa821d3ef4296", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in app/v9/ops/page.tsx:62"}, "properties": {"repobilityId": "1092333af00fbd14", "scanner": "scanner-primary", "fingerprint": "0f1aa821d3ef4296", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/v9/ops/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-c9c26321c8e0b877", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/v9/audits/_page-legacy.tsx:381"}, "properties": {"repobilityId": "2e21d8a287f18388", "scanner": "scanner-primary", "fingerprint": "c9c26321c8e0b877", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/v9/audits/_page-legacy.tsx"}, "region": {"startLine": 381}}}]}, {"ruleId": "scanner-825bc54c82b07878", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/layout.tsx:100"}, "properties": {"repobilityId": "76d209867c860de3", "scanner": "scanner-primary", "fingerprint": "825bc54c82b07878", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(marketing)/layout.tsx"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-34ef6fbc9148ee8c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/case-studies/page.tsx:414"}, "properties": {"repobilityId": "4756a8269e8b9c00", "scanner": "scanner-primary", "fingerprint": "34ef6fbc9148ee8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(marketing)/case-studies/page.tsx"}, "region": {"startLine": 414}}}]}, {"ruleId": "scanner-c78a11036c535d79", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/audit/page.tsx:214"}, "properties": {"repobilityId": "14ed3be953b1f648", "scanner": "scanner-primary", "fingerprint": "c78a11036c535d79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(marketing)/audit/page.tsx"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-42946250df7ea071", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(marketing)/insurance/page.tsx:118"}, "properties": {"repobilityId": "f13eb7746f0a34a8", "scanner": "scanner-primary", "fingerprint": "42946250df7ea071", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(marketing)/insurance/page.tsx"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-317a25b66be70a33", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/book/page.tsx:40"}, "properties": {"repobilityId": "c1d9e0d00efbb872", "scanner": "scanner-primary", "fingerprint": "317a25b66be70a33", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/book/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-7f3004f7872f7b90", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in services/meeting-bot/src/transcriber.ts:10"}, "properties": {"repobilityId": "fe9535b140273034", "scanner": "scanner-primary", "fingerprint": "7f3004f7872f7b90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/meeting-bot/src/transcriber.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-c9694f2d3f810a2a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "42eb3945085356a7", "scanner": "scanner-primary", "fingerprint": "c9694f2d3f810a2a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-nightly.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8772e445ad1bf7d", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-0252b23fe84c9c16", "level": "note", "message": {"text": "Very large file: components/mack/EngineerReviewWizard.tsx (1137 lines)"}, "properties": {"repobilityId": "1bcfbaa0540e7033", "scanner": "scanner-primary", "fingerprint": "0252b23fe84c9c16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d28dd0962bcf3128", "level": "note", "message": {"text": "Very large file: components/mack/SalesReviewWizard.tsx (1379 lines)"}, "properties": {"repobilityId": "b50ba576e9ea7fe9", "scanner": "scanner-primary", "fingerprint": "d28dd0962bcf3128", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1bcc78f77fde12aa", "level": "note", "message": {"text": "Very large file: components/v5/admin-home-v2.tsx (1829 lines)"}, "properties": {"repobilityId": "8c948501bb79fef1", "scanner": "scanner-primary", "fingerprint": "1bcc78f77fde12aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-91ee8566129262b6", "level": "note", "message": {"text": "Very large file: components/app/tasks/lindy-tasks-pane.tsx (1486 lines)"}, "properties": {"repobilityId": "45ebb6d284515804", "scanner": "scanner-primary", "fingerprint": "91ee8566129262b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0e5979cc6b191e8f", "level": "note", "message": {"text": "Very large file: components/app/inbox/inbox-v3.tsx (1270 lines)"}, "properties": {"repobilityId": "c98a73fdc7727778", "scanner": "scanner-primary", "fingerprint": "0e5979cc6b191e8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-05dff144a58d378b", "level": "note", "message": {"text": "Very large file: components/marketing/funnel-page.tsx (2022 lines)"}, "properties": {"repobilityId": "b5ae60f4f587a438", "scanner": "scanner-primary", "fingerprint": "05dff144a58d378b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5add8e10124df062", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v5-roofing.tsx (980 lines)"}, "properties": {"repobilityId": "511c6a26b3a7d773", "scanner": "scanner-primary", "fingerprint": "5add8e10124df062", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-121b0b7162b65262", "level": "note", "message": {"text": "Very large file: components/marketing/homepage-2026.tsx (1453 lines)"}, "properties": {"repobilityId": "80959667be741433", "scanner": "scanner-primary", "fingerprint": "121b0b7162b65262", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1b49db394e1c5630", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v4-roofing.tsx (1331 lines)"}, "properties": {"repobilityId": "745738a283e5a396", "scanner": "scanner-primary", "fingerprint": "1b49db394e1c5630", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5b727d11a93bbbd", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v5-medspa.tsx (894 lines)"}, "properties": {"repobilityId": "b89fe547877941a6", "scanner": "scanner-primary", "fingerprint": "d5b727d11a93bbbd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-84375c94686b8349", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v5-ai-employees.tsx (1433 lines)"}, "properties": {"repobilityId": "6da2b64e33c677c6", "scanner": "scanner-primary", "fingerprint": "84375c94686b8349", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3426083412b9eb7e", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v4.tsx (1330 lines)"}, "properties": {"repobilityId": "4d9c4a57291c2926", "scanner": "scanner-primary", "fingerprint": "3426083412b9eb7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-31893fa1a3c8acb4", "level": "note", "message": {"text": "Very large file: components/marketing/landing-v4-medspa.tsx (1331 lines)"}, "properties": {"repobilityId": "b46c074882a870b6", "scanner": "scanner-primary", "fingerprint": "31893fa1a3c8acb4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7170955b83fbd8ce", "level": "note", "message": {"text": "Very large file: components/admin/leads-console.tsx (1911 lines)"}, "properties": {"repobilityId": "7dc4a1e81be4ed65", "scanner": "scanner-primary", "fingerprint": "7170955b83fbd8ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-62630bb1d35c53c5", "level": "note", "message": {"text": "Very large file: components/admin/cold-email-console.tsx (1392 lines)"}, "properties": {"repobilityId": "f4bda710b4c834ea", "scanner": "scanner-primary", "fingerprint": "62630bb1d35c53c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c450b88229a9ec2c", "level": "note", "message": {"text": "Very large file: components/onboarding/wizard.tsx (1273 lines)"}, "properties": {"repobilityId": "0497b32d3cd26b0a", "scanner": "scanner-primary", "fingerprint": "c450b88229a9ec2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61863c08331a0f3d", "level": "note", "message": {"text": "Very large file: app/v5/_client-shell.tsx (2572 lines)"}, "properties": {"repobilityId": "5255070ec81d676b", "scanner": "scanner-primary", "fingerprint": "61863c08331a0f3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-751947042fdb2818", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/page.tsx (1148 lines)"}, "properties": {"repobilityId": "d133010f5856a787", "scanner": "scanner-primary", "fingerprint": "751947042fdb2818", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5c275100aad44d42", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/_blocks.tsx (1646 lines)"}, "properties": {"repobilityId": "b5e5a4ec529cc348", "scanner": "scanner-primary", "fingerprint": "5c275100aad44d42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-40b3ba4ba15d8f9b", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/assistant/_client.tsx (2127 lines)"}, "properties": {"repobilityId": "9951f0964b649faf", "scanner": "scanner-primary", "fingerprint": "40b3ba4ba15d8f9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f5c52dac6361ea0", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/engineer/_queue-client.tsx (1208 lines)"}, "properties": {"repobilityId": "a678bdd0f9939ab8", "scanner": "scanner-primary", "fingerprint": "2f5c52dac6361ea0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5879774be10f9982", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/jobs/[id]/page.tsx (2318 lines)"}, "properties": {"repobilityId": "4cd370389033df13", "scanner": "scanner-primary", "fingerprint": "5879774be10f9982", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-58a0818c1356b339", "level": "note", "message": {"text": "Very large file: app/v5/employees/[slug]/jobs/[id]/review/_client.tsx (1815 lines)"}, "properties": {"repobilityId": "8d8aed434b5a8555", "scanner": "scanner-primary", "fingerprint": "58a0818c1356b339", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-82d98fa70074cefc", "level": "note", "message": {"text": "Very large file: app/v5/leads/_page-legacy.tsx (1476 lines)"}, "properties": {"repobilityId": "f6259b3bf431f545", "scanner": "scanner-primary", "fingerprint": "82d98fa70074cefc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d236887a5a6e10b7", "level": "note", "message": {"text": "Very large file: app/v5/agents/_page-legacy.tsx (961 lines)"}, "properties": {"repobilityId": "f8cdf0bf8776388b", "scanner": "scanner-primary", "fingerprint": "d236887a5a6e10b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ba6977c541628d4e", "level": "note", "message": {"text": "Very large file: app/v5/inbox/_page-legacy.tsx (2350 lines)"}, "properties": {"repobilityId": "506af27e75f030f7", "scanner": "scanner-primary", "fingerprint": "ba6977c541628d4e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89cb2d84b7083633", "level": "note", "message": {"text": "Very large file: app/v9/_shell.tsx (1394 lines)"}, "properties": {"repobilityId": "cbecaacbb9b10997", "scanner": "scanner-primary", "fingerprint": "89cb2d84b7083633", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca8a57b4d4285420", "level": "note", "message": {"text": "Very large file: app/v9/workspaces/new-with-ai/_client.tsx (1287 lines)"}, "properties": {"repobilityId": "be7a6595595b4439", "scanner": "scanner-primary", "fingerprint": "ca8a57b4d4285420", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-449a833a8e27764d", "level": "note", "message": {"text": "Very large file: lib/custom-employees/engineer-submittal-pdf.ts (896 lines)"}, "properties": {"repobilityId": "0d7b857bc1fa54b1", "scanner": "scanner-primary", "fingerprint": "449a833a8e27764d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a70a8a68bc233e96", "level": "note", "message": {"text": "Very large file: lib/custom-employees/processor.ts (3254 lines)"}, "properties": {"repobilityId": "49c3a360cc2b7981", "scanner": "scanner-primary", "fingerprint": "a70a8a68bc233e96", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3bdf13739686ad21", "level": "note", "message": {"text": "Very large file: lib/custom-employees/structure-screenshot-renderer.ts (1211 lines)"}, "properties": {"repobilityId": "d526ec23d3c156bc", "scanner": "scanner-primary", "fingerprint": "3bdf13739686ad21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-31f349877be24b01", "level": "note", "message": {"text": "Very large file: lib/custom-employees/mack-submittal-pdf.ts (1199 lines)"}, "properties": {"repobilityId": "376e919a272c4ebc", "scanner": "scanner-primary", "fingerprint": "31f349877be24b01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-920f8a54b31e8126", "level": "note", "message": {"text": "Very large file: lib/audit/prompt.ts (1090 lines)"}, "properties": {"repobilityId": "ff24d6a11c2c38a2", "scanner": "scanner-primary", "fingerprint": "920f8a54b31e8126", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ce7da907f5c9eac", "level": "note", "message": {"text": "Very large file: lib/managers/tools.ts (2393 lines)"}, "properties": {"repobilityId": "74cdfe03a29baa5e", "scanner": "scanner-primary", "fingerprint": "9ce7da907f5c9eac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "c68fde54472036e1", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ae5321b88c1a4e7a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: services/meeting-bot/package.json"}, "properties": {"repobilityId": "4aa21409eeee8929", "scanner": "scanner-primary", "fingerprint": "ae5321b88c1a4e7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/meeting-bot/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "04460b0fd0bf780b", "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": "0e2e4bb41dbde7e0", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "acba675d1a32ead7", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "de6f75f9f64c3dd9", "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": "f77944b2b5ad75d0", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1841860aa84d8652", "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": "193fc316c73aa07b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e87c5c4113c0057a", "level": "none", "message": {"text": "Commented-code block (6 lines) in next.config.js:35"}, "properties": {"repobilityId": "29dcdc71a4b5386d", "scanner": "scanner-primary", "fingerprint": "e87c5c4113c0057a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12de56efd58b3a5e", "level": "none", "message": {"text": "Commented-code block (6 lines) in middleware.ts:30"}, "properties": {"repobilityId": "c14428318230e91c", "scanner": "scanner-primary", "fingerprint": "12de56efd58b3a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2deb927414af0bff", "level": "none", "message": {"text": "Commented-code block (5 lines) in __tests__/sms-send-window.test.ts:8"}, "properties": {"repobilityId": "9e4b8a763d665d98", "scanner": "scanner-primary", "fingerprint": "2deb927414af0bff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0438ed0574b5a4c", "level": "none", "message": {"text": "Commented-code block (6 lines) in __tests__/geometric-validator.test.ts:317"}, "properties": {"repobilityId": "6d1cb509bbb599a9", "scanner": "scanner-primary", "fingerprint": "a0438ed0574b5a4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54e605668b088257", "level": "none", "message": {"text": "Commented-code block (5 lines) in __tests__/mack-role-isolation.test.ts:161"}, "properties": {"repobilityId": "70f6f43fd9f3b9a1", "scanner": "scanner-primary", "fingerprint": "54e605668b088257", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0239804eca64d117", "level": "none", "message": {"text": "Commented-code block (5 lines) in __tests__/mack-confidence-rescore.test.ts:304"}, "properties": {"repobilityId": "4cff6c8cd7de7ccf", "scanner": "scanner-primary", "fingerprint": "0239804eca64d117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca95b8da8684300f", "level": "note", "message": {"text": "Legacy-named symbol `sprint_v1` in scripts/create-stripe-sprint-products.mjs:108"}, "properties": {"repobilityId": "8bc40b8b9a9253a2", "scanner": "scanner-primary", "fingerprint": "ca95b8da8684300f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ed60bdebe12d1eb6", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/route-link-crawl.mjs:215"}, "properties": {"repobilityId": "c0d274368ed53752", "scanner": "scanner-primary", "fingerprint": "ed60bdebe12d1eb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbf1abcfe6d771d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-cv52037-revision-smoke-test.mjs:77"}, "properties": {"repobilityId": "5fbf1a16b2702c52", "scanner": "scanner-primary", "fingerprint": "dbf1abcfe6d771d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bf89b8284c73f3dc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/run-mack-blind-benchmark.mjs:40"}, "properties": {"repobilityId": "9b241042894b7ea1", "scanner": "scanner-primary", "fingerprint": "bf89b8284c73f3dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4caa1fb22815bfd0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/check-realtime-gate.mjs:69"}, "properties": {"repobilityId": "b849df9399c25059", "scanner": "scanner-primary", "fingerprint": "4caa1fb22815bfd0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2fc7a1d7b7c490a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/mack-blind-test.mjs:25"}, "properties": {"repobilityId": "f50e5f04f3145ea7", "scanner": "scanner-primary", "fingerprint": "2fc7a1d7b7c490a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b51ee76f627a736", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/mack-blind-test.mjs:293"}, "properties": {"repobilityId": "01f53ccbd455b335", "scanner": "scanner-primary", "fingerprint": "0b51ee76f627a736", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbb2d46545d5d396", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/extract-mack-template.mjs:22"}, "properties": {"repobilityId": "40d3bf6f3cf2df75", "scanner": "scanner-primary", "fingerprint": "dbb2d46545d5d396", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7044145979c299c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/r172-test-discover.mjs:95"}, "properties": {"repobilityId": "178fc12b8f7b670e", "scanner": "scanner-primary", "fingerprint": "7044145979c299c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4984c9bab8dba612", "level": "none", "message": {"text": "Commented-code block (14 lines) in scripts/preflight.mjs:119"}, "properties": {"repobilityId": "6bb208d292aee41a", "scanner": "scanner-primary", "fingerprint": "4984c9bab8dba612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-688b27441ee6571d", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerCompletionScreen.tsx:5"}, "properties": {"repobilityId": "6e7b9aa74610fa27", "scanner": "scanner-primary", "fingerprint": "688b27441ee6571d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f08e1525858588d1", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesCompletionScreen.tsx:5"}, "properties": {"repobilityId": "7229964d081ae959", "scanner": "scanner-primary", "fingerprint": "f08e1525858588d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8c9b35898f9a18c6", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/EngineerReviewWizard.tsx:7"}, "properties": {"repobilityId": "99221f61466f88b9", "scanner": "scanner-primary", "fingerprint": "8c9b35898f9a18c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a425009880ac442e", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/SalesReviewWizard.tsx:4"}, "properties": {"repobilityId": "12cdf4b9c19ed443", "scanner": "scanner-primary", "fingerprint": "a425009880ac442e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2dc52f45bdca21fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/mack/SalesReviewWizard.tsx:444"}, "properties": {"repobilityId": "32afc23d82a163ae", "scanner": "scanner-primary", "fingerprint": "2dc52f45bdca21fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68b529d488bb2a9a", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in components/mack/LegacyReviewList.tsx:8"}, "properties": {"repobilityId": "31a972139cb11e83", "scanner": "scanner-primary", "fingerprint": "68b529d488bb2a9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-daeb8b66d12009e7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/floating-intake-button.tsx:70"}, "properties": {"repobilityId": "787dce5c5930f3c3", "scanner": "scanner-primary", "fingerprint": "daeb8b66d12009e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6597eecc6af305f4", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/v5/admin-home-v2.tsx:351"}, "properties": {"repobilityId": "fdabaabbebd4681d", "scanner": "scanner-primary", "fingerprint": "6597eecc6af305f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55eb752e5592375e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/admin-home-v2.tsx:285"}, "properties": {"repobilityId": "526b949444bf8285", "scanner": "scanner-primary", "fingerprint": "55eb752e5592375e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0c186438f8536c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/v5/audits-v2.tsx:100"}, "properties": {"repobilityId": "e8d55b56a3202c5d", "scanner": "scanner-primary", "fingerprint": "a0c186438f8536c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96eb1e044ba2508e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/audits-v2.tsx:96"}, "properties": {"repobilityId": "b596c552db246c57", "scanner": "scanner-primary", "fingerprint": "96eb1e044ba2508e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-04e078d9273d5939", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/v5/pdf-viewer-inner.tsx:21"}, "properties": {"repobilityId": "177a7b854c294b8f", "scanner": "scanner-primary", "fingerprint": "04e078d9273d5939", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c33f70ac212c7c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/v5/employee-builder-wizard.tsx:143"}, "properties": {"repobilityId": "74663992c2c868a7", "scanner": "scanner-primary", "fingerprint": "5c33f70ac212c7c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fc1cd4f41b3e7bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/v5/admin-home.tsx:260"}, "properties": {"repobilityId": "03925ca69cee1485", "scanner": "scanner-primary", "fingerprint": "1fc1cd4f41b3e7bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c619d2628d4abb9", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/app/sidebar.tsx:104"}, "properties": {"repobilityId": "85ebbe7e922479db", "scanner": "scanner-primary", "fingerprint": "4c619d2628d4abb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61144b3dfd16b2d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/exit-ghost-floating.tsx:51"}, "properties": {"repobilityId": "be075a5593bc9571", "scanner": "scanner-primary", "fingerprint": "61144b3dfd16b2d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c64844a82a09268", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/home-chat-starter.tsx:45"}, "properties": {"repobilityId": "e573e976c725879d", "scanner": "scanner-primary", "fingerprint": "4c64844a82a09268", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-617a52095a1639ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/api-keys-panel.tsx:62"}, "properties": {"repobilityId": "c9bbc7d4b0fa0fbe", "scanner": "scanner-primary", "fingerprint": "617a52095a1639ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-373b33c92916f914", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/app/activity-feed.tsx:66"}, "properties": {"repobilityId": "d1a2b7b072e6f03c", "scanner": "scanner-primary", "fingerprint": "373b33c92916f914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6295ce262d675fba", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/app/mobile-nav.tsx:30"}, "properties": {"repobilityId": "d7cc3924cfbb92d8", "scanner": "scanner-primary", "fingerprint": "6295ce262d675fba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b524e4c95533fe4b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/settings/alert-recipients-manager.tsx:47"}, "properties": {"repobilityId": "cd33cd5eee5d4c48", "scanner": "scanner-primary", "fingerprint": "b524e4c95533fe4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-343d788d9f0fd99b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/triggers/triggers-ui.tsx:21"}, "properties": {"repobilityId": "2cc12c4ba46ee946", "scanner": "scanner-primary", "fingerprint": "343d788d9f0fd99b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c2f2b67206a4e15", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tenants/agent-toggle.tsx:22"}, "properties": {"repobilityId": "e23aadd5742aa8ee", "scanner": "scanner-primary", "fingerprint": "0c2f2b67206a4e15", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdefad13388b8e3d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/emails/emails-settings-ui.tsx:64"}, "properties": {"repobilityId": "8eedf24e96715fd6", "scanner": "scanner-primary", "fingerprint": "cdefad13388b8e3d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cfa3c534b3fedc8e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/tasks/inbox-clear-button.tsx:68"}, "properties": {"repobilityId": "dc5df203c7080650", "scanner": "scanner-primary", "fingerprint": "cfa3c534b3fedc8e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79e8ce89a599ef6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/coupons-manager.tsx:71"}, "properties": {"repobilityId": "19b878b246b21261", "scanner": "scanner-primary", "fingerprint": "79e8ce89a599ef6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fe01048f1c55e52", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/admin/cleanup-orphans-button.tsx:21"}, "properties": {"repobilityId": "54f51419ce77bade", "scanner": "scanner-primary", "fingerprint": "7fe01048f1c55e52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1fb0058e5e60a3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/knowledge-panel.tsx:67"}, "properties": {"repobilityId": "a9f894ab41af03a4", "scanner": "scanner-primary", "fingerprint": "d1fb0058e5e60a3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e5a105e89fac261", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/agent-form.tsx:128"}, "properties": {"repobilityId": "2336de6e71bb2358", "scanner": "scanner-primary", "fingerprint": "8e5a105e89fac261", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b74bad106e8b5b58", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/action-picker.tsx:71"}, "properties": {"repobilityId": "5f99ddefe00a3b91", "scanner": "scanner-primary", "fingerprint": "b74bad106e8b5b58", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-06d5f9ba0463ce04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/triggers-panel.tsx:117"}, "properties": {"repobilityId": "c4b50491a36f2672", "scanner": "scanner-primary", "fingerprint": "06d5f9ba0463ce04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbcc2076bddd790f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/brand-voice-panel.tsx:18"}, "properties": {"repobilityId": "d23c4a1e1b24143d", "scanner": "scanner-primary", "fingerprint": "bbcc2076bddd790f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d63f87d29e884939", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/chat-interface.tsx:53"}, "properties": {"repobilityId": "73474f5f0de99852", "scanner": "scanner-primary", "fingerprint": "d63f87d29e884939", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6e10b4ef7d2fcd5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/new-agent-button.tsx:28"}, "properties": {"repobilityId": "79f65a2a23bd4f91", "scanner": "scanner-primary", "fingerprint": "d6e10b4ef7d2fcd5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5f9b11d397c7765f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/agents/logic-panel.tsx:157"}, "properties": {"repobilityId": "6d4ed132cd6bc206", "scanner": "scanner-primary", "fingerprint": "5f9b11d397c7765f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00d5cd56e2e70bea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/developer/api-keys-panel.tsx:53"}, "properties": {"repobilityId": "d4716a2b06fcb304", "scanner": "scanner-primary", "fingerprint": "00d5cd56e2e70bea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c7a968b63ff0e6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/campaigns/campaign-builder.tsx:65"}, "properties": {"repobilityId": "b48ee289f42c76a9", "scanner": "scanner-primary", "fingerprint": "0c7a968b63ff0e6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a96a13851cb4e3b5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/workflows/editor.tsx:120"}, "properties": {"repobilityId": "def9236600840643", "scanner": "scanner-primary", "fingerprint": "a96a13851cb4e3b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-005243cca5b5bffc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/ghl-card.tsx:47"}, "properties": {"repobilityId": "cf6ab2852301d115", "scanner": "scanner-primary", "fingerprint": "005243cca5b5bffc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-103432e334051464", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/imap-modal.tsx:18"}, "properties": {"repobilityId": "8df8eca8b5165867", "scanner": "scanner-primary", "fingerprint": "103432e334051464", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-84e5c5f6f336b656", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/app/connections/connections-ui.tsx:257"}, "properties": {"repobilityId": "cd9cfed40ede5ec3", "scanner": "scanner-primary", "fingerprint": "84e5c5f6f336b656", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb9adb27847b8d8d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/app/connections/connections-ui.tsx:285"}, "properties": {"repobilityId": "f5ac26ec412029aa", "scanner": "scanner-primary", "fingerprint": "fb9adb27847b8d8d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce8d8a07d3517885", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/marketing/funnel-page.tsx:64"}, "properties": {"repobilityId": "55970cfb58f4baa1", "scanner": "scanner-primary", "fingerprint": "ce8d8a07d3517885", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10bb00a8b02bbe5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/marketing/live-chat-widget.tsx:4"}, "properties": {"repobilityId": "2f4c5a15fa5ce06a", "scanner": "scanner-primary", "fingerprint": "10bb00a8b02bbe5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e316788e35a0c29", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-roofing.tsx:542"}, "properties": {"repobilityId": "4388cf91051ca32c", "scanner": "scanner-primary", "fingerprint": "5e316788e35a0c29", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70c964b9407a61de", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketing/homepage-2026.tsx:498"}, "properties": {"repobilityId": "7b4bcf2212df596f", "scanner": "scanner-primary", "fingerprint": "70c964b9407a61de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31d51fa1e919f06f", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4-roofing.tsx:595"}, "properties": {"repobilityId": "abea96373b33fa79", "scanner": "scanner-primary", "fingerprint": "31d51fa1e919f06f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1391efd4ded02585", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-roofing.tsx:666"}, "properties": {"repobilityId": "4f69cc3a6c7caa60", "scanner": "scanner-primary", "fingerprint": "1391efd4ded02585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a349bb16619f5065", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-medspa.tsx:470"}, "properties": {"repobilityId": "266ac78a85c19983", "scanner": "scanner-primary", "fingerprint": "a349bb16619f5065", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e34dae2b4a1b0bce", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketing/landing-v5-ai-employees.tsx:583"}, "properties": {"repobilityId": "ba011a1ff0902b3d", "scanner": "scanner-primary", "fingerprint": "e34dae2b4a1b0bce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d3546a4dd05cb61", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v5-ai-employees.tsx:654"}, "properties": {"repobilityId": "3414d0dfed829571", "scanner": "scanner-primary", "fingerprint": "6d3546a4dd05cb61", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f325113df0aeb3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4.tsx:595"}, "properties": {"repobilityId": "708a736e94eb8893", "scanner": "scanner-primary", "fingerprint": "1f325113df0aeb3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-938a09db213de64e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4.tsx:666"}, "properties": {"repobilityId": "0f4ccdc03bb252eb", "scanner": "scanner-primary", "fingerprint": "938a09db213de64e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97f04d177ab9b04a", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/marketing/testimonials.tsx:3"}, "properties": {"repobilityId": "77ebce32c4aa4efa", "scanner": "scanner-primary", "fingerprint": "97f04d177ab9b04a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d974bb73e76e3d37", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/booking-widget.tsx:63"}, "properties": {"repobilityId": "2f7a4560cfbcf8ac", "scanner": "scanner-primary", "fingerprint": "d974bb73e76e3d37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85fd4d7b7bf4ab53", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketing/landing-v4-medspa.tsx:595"}, "properties": {"repobilityId": "f18c33a23acc438c", "scanner": "scanner-primary", "fingerprint": "85fd4d7b7bf4ab53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec83b74a617b19ab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/landing-v4-medspa.tsx:666"}, "properties": {"repobilityId": "6a5c3795afa105fc", "scanner": "scanner-primary", "fingerprint": "ec83b74a617b19ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d48497f829a7353c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/marketing/book-call-modal.tsx:124"}, "properties": {"repobilityId": "96e36b939fba749e", "scanner": "scanner-primary", "fingerprint": "d48497f829a7353c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-add025e5d29ad63b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/billing-admin-console.tsx:57"}, "properties": {"repobilityId": "7d5bc2ffb1517942", "scanner": "scanner-primary", "fingerprint": "add025e5d29ad63b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-861cf9a51919fa2d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/invites-panel.tsx:29"}, "properties": {"repobilityId": "bc30ca921889a80f", "scanner": "scanner-primary", "fingerprint": "861cf9a51919fa2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b0d26f20f6a3a70", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-trust-console.tsx:281"}, "properties": {"repobilityId": "edccdd4c2a687256", "scanner": "scanner-primary", "fingerprint": "0b0d26f20f6a3a70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f10aff2c4afcead", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/meeting-console.tsx:86"}, "properties": {"repobilityId": "3d4a7fe8a69aaaf2", "scanner": "scanner-primary", "fingerprint": "7f10aff2c4afcead", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f07f0abb17810895", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/agent-activity-console.tsx:70"}, "properties": {"repobilityId": "fed04bee10dddb43", "scanner": "scanner-primary", "fingerprint": "f07f0abb17810895", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef69b9d5c364ace0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/leads-console.tsx:340"}, "properties": {"repobilityId": "09dc1edaf8c1f23d", "scanner": "scanner-primary", "fingerprint": "ef69b9d5c364ace0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f5e133d89becb8d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/conversion-funnel-console.tsx:27"}, "properties": {"repobilityId": "5874ffe604bcee16", "scanner": "scanner-primary", "fingerprint": "f5e133d89becb8d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3426aedd6089fc1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/team-console.tsx:129"}, "properties": {"repobilityId": "378991feecb0ab8a", "scanner": "scanner-primary", "fingerprint": "3426aedd6089fc1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4126fbe658d062c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/cold-email-console.tsx:208"}, "properties": {"repobilityId": "70a97515856eb8c7", "scanner": "scanner-primary", "fingerprint": "4126fbe658d062c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35cf6a98f5c14d98", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/onboarding/wizard.tsx:16"}, "properties": {"repobilityId": "5106e2d1addc83a6", "scanner": "scanner-primary", "fingerprint": "35cf6a98f5c14d98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54b2e9597584408a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/wizard.tsx:689"}, "properties": {"repobilityId": "cd19bcb58421334b", "scanner": "scanner-primary", "fingerprint": "54b2e9597584408a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-307211258839e884", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/onboarding/hire/hire-wizard.tsx:239"}, "properties": {"repobilityId": "1c228f8917c6ff87", "scanner": "scanner-primary", "fingerprint": "307211258839e884", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-335b5838210e640a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/layout.tsx:32"}, "properties": {"repobilityId": "b26d6460b23040c6", "scanner": "scanner-primary", "fingerprint": "335b5838210e640a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1539707565dea9a3", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/error.tsx:46"}, "properties": {"repobilityId": "f2df8769b18559aa", "scanner": "scanner-primary", "fingerprint": "1539707565dea9a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45430ccc650960d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/p/[slug]/_chat.tsx:10"}, "properties": {"repobilityId": "54a519b3aaf5d229", "scanner": "scanner-primary", "fingerprint": "45430ccc650960d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b40091b378af64a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/auth/callback/route.ts:44"}, "properties": {"repobilityId": "b91b4aef1a77c885", "scanner": "scanner-primary", "fingerprint": "4b40091b378af64a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae8a5d2564e8148a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/admin/[token]/page.tsx:23"}, "properties": {"repobilityId": "6ae90a71b9987384", "scanner": "scanner-primary", "fingerprint": "ae8a5d2564e8148a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-345d7d1a787d2ba6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/invite/[token]/page.tsx:64"}, "properties": {"repobilityId": "814187bd3f58dda4", "scanner": "scanner-primary", "fingerprint": "345d7d1a787d2ba6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b66970d54b31b71b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/invite/[token]/page.tsx:24"}, "properties": {"repobilityId": "17fd685ccf036d26", "scanner": "scanner-primary", "fingerprint": "b66970d54b31b71b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d641a5112c7a813", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/marketing-chat/route.ts:10"}, "properties": {"repobilityId": "c7d6195c5ccb1a0d", "scanner": "scanner-primary", "fingerprint": "9d641a5112c7a813", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9af40c5cc7daef88", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/employees/provision/route.ts:79"}, "properties": {"repobilityId": "527df2cea6b58ea7", "scanner": "scanner-primary", "fingerprint": "9af40c5cc7daef88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9033ab1d49c13b64", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/demo/lead/route.ts:80"}, "properties": {"repobilityId": "2cf418a1f1b38b59", "scanner": "scanner-primary", "fingerprint": "9033ab1d49c13b64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-621ce216b42eae7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/demo/lead-update/route.ts:54"}, "properties": {"repobilityId": "95b20370a8137d37", "scanner": "scanner-primary", "fingerprint": "621ce216b42eae7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-136767ad76453cee", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/meetings/recall-webhook/route.ts:44"}, "properties": {"repobilityId": "fcfdbddd64b70cbb", "scanner": "scanner-primary", "fingerprint": "136767ad76453cee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dad7b5d2f3cd6983", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/meetings/transcript-webhook/route.ts:30"}, "properties": {"repobilityId": "b8966b8f6250001d", "scanner": "scanner-primary", "fingerprint": "dad7b5d2f3cd6983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9765825ac125beb", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/triggers/microsoft/notification/route.ts:29"}, "properties": {"repobilityId": "1ae3ba847051d8a7", "scanner": "scanner-primary", "fingerprint": "f9765825ac125beb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78daa94861d113c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/auth/signup/route.ts:69"}, "properties": {"repobilityId": "ed655f9a90c866e9", "scanner": "scanner-primary", "fingerprint": "78daa94861d113c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c84350894f37d95", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/invite/[token]/route.ts:25"}, "properties": {"repobilityId": "437099a768c7a8a6", "scanner": "scanner-primary", "fingerprint": "2c84350894f37d95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d41b4e6936982ef", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/invite/[token]/redeem/route.ts:27"}, "properties": {"repobilityId": "230e5ad4636f20d3", "scanner": "scanner-primary", "fingerprint": "0d41b4e6936982ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-338dd4551165f477", "level": "none", "message": {"text": "Commented-code block (14 lines) in app/api/tenants/switch/route.ts:29"}, "properties": {"repobilityId": "0a93f41266717b99", "scanner": "scanner-primary", "fingerprint": "338dd4551165f477", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da1d1c78d6edcfbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/tenants/switch-and-go/route.ts:23"}, "properties": {"repobilityId": "2b52ce2251aa613c", "scanner": "scanner-primary", "fingerprint": "da1d1c78d6edcfbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b755adea7264eaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/employees/picker/route.ts:31"}, "properties": {"repobilityId": "c43e08eefae8648b", "scanner": "scanner-primary", "fingerprint": "4b755adea7264eaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4176339bf3772d5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/mack/training/action/route.ts:109"}, "properties": {"repobilityId": "749ce521fc5be178", "scanner": "scanner-primary", "fingerprint": "4176339bf3772d5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d30c7a73a4a5ef20", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/leads/bulk/route.ts:123"}, "properties": {"repobilityId": "03233fcdbdc9ceca", "scanner": "scanner-primary", "fingerprint": "d30c7a73a4a5ef20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f50e07f2cee20519", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/leads/feed/route.ts:113"}, "properties": {"repobilityId": "aff5fef3f13cbea1", "scanner": "scanner-primary", "fingerprint": "f50e07f2cee20519", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0fe9321c18f30c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/action-inbox/route.ts:174"}, "properties": {"repobilityId": "9825e6acdb948414", "scanner": "scanner-primary", "fingerprint": "b0fe9321c18f30c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e53bdaa4d7dff72", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/engineers/route.ts:50"}, "properties": {"repobilityId": "48f70f7588d96149", "scanner": "scanner-primary", "fingerprint": "8e53bdaa4d7dff72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3298625c1dfb66a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/custom-employees/[slug]/stackit-credentials/route.ts:18"}, "properties": {"repobilityId": "eb5ea378792b6827", "scanner": "scanner-primary", "fingerprint": "d3298625c1dfb66a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2b3432d23657e2f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/v5/custom-employees/[slug]/review-queue/route.ts:45"}, "properties": {"repobilityId": "9bf5235f48ce5249", "scanner": "scanner-primary", "fingerprint": "f2b3432d23657e2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b6dfc659b46f662", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/route.ts:305"}, "properties": {"repobilityId": "04a30748d9f643ed", "scanner": "scanner-primary", "fingerprint": "7b6dfc659b46f662", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9eba21d502c890b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/revision-upload/route.ts:183"}, "properties": {"repobilityId": "f89937db7da35b6d", "scanner": "scanner-primary", "fingerprint": "9eba21d502c890b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7af6a21dd8f95c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structures/route.ts:55"}, "properties": {"repobilityId": "f2564b35bbe44185", "scanner": "scanner-primary", "fingerprint": "a7af6a21dd8f95c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b4694b8d47e7250", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/structure-edits/route.ts:28"}, "properties": {"repobilityId": "978acc68e7fc23ca", "scanner": "scanner-primary", "fingerprint": "2b4694b8d47e7250", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7f66245b645eaf6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/engineer-dimension-override/route.ts:75"}, "properties": {"repobilityId": "9c454ca583d8503d", "scanner": "scanner-primary", "fingerprint": "b7f66245b645eaf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2b11a4fabf1a7bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v5/custom-employees/[slug]/jobs/[id]/assign-to-engineer/route.ts:135"}, "properties": {"repobilityId": "0ed9b5bce82b0b39", "scanner": "scanner-primary", "fingerprint": "d2b11a4fabf1a7bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f89221182de093eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/home/feed/route.ts:45"}, "properties": {"repobilityId": "271453e0c72f3a1f", "scanner": "scanner-primary", "fingerprint": "f89221182de093eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e98feca717bb052", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/home/outbound-overview/route.ts:57"}, "properties": {"repobilityId": "2bfc35318322fba7", "scanner": "scanner-primary", "fingerprint": "4e98feca717bb052", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a61e9691e8011039", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v5/senders/feed/route.ts:56"}, "properties": {"repobilityId": "5ee7157464fa044d", "scanner": "scanner-primary", "fingerprint": "a61e9691e8011039", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4906c99e62f2c669", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v5/senders/sms/[id]/sync/route.ts:51"}, "properties": {"repobilityId": "6bb554472e86b381", "scanner": "scanner-primary", "fingerprint": "4906c99e62f2c669", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d484ef3efba4f186", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v5/inbox/thread/[id]/route.ts:70"}, "properties": {"repobilityId": "6c7bd26851706941", "scanner": "scanner-primary", "fingerprint": "d484ef3efba4f186", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e47527d90aae8e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/v5/inbox/feed/route.ts:65"}, "properties": {"repobilityId": "55e61cbd9cbadba2", "scanner": "scanner-primary", "fingerprint": "2e47527d90aae8e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c467d88ec8e02f56", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/form/[slug]/route.ts:30"}, "properties": {"repobilityId": "de43bf01a73a1fdc", "scanner": "scanner-primary", "fingerprint": "c467d88ec8e02f56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be2848a3d0c4cf96", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/review/route.ts:15"}, "properties": {"repobilityId": "00cbc0ec922e866e", "scanner": "scanner-primary", "fingerprint": "be2848a3d0c4cf96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82efaf148b153b6d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/webhook/[agentId]/route.ts:6"}, "properties": {"repobilityId": "96d5bb987519d990", "scanner": "scanner-primary", "fingerprint": "82efaf148b153b6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee0ab075069c2d37", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/chat/route.ts:20"}, "properties": {"repobilityId": "67eae47c694a211b", "scanner": "scanner-primary", "fingerprint": "ee0ab075069c2d37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-340893a9533f149b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/inbound/meta/webhook/route.ts:108"}, "properties": {"repobilityId": "70f66e80c1892033", "scanner": "scanner-primary", "fingerprint": "340893a9533f149b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f64164f17523ce1", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/job-completed/route.ts:23"}, "properties": {"repobilityId": "412eaa66a798e8aa", "scanner": "scanner-primary", "fingerprint": "3f64164f17523ce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-892da6f1dbe71df5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/twilio/sms-test/route.ts:5"}, "properties": {"repobilityId": "3cbe5562029366c4", "scanner": "scanner-primary", "fingerprint": "892da6f1dbe71df5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce27a9b06dd17de1", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbound/vapi/route.ts:6"}, "properties": {"repobilityId": "212ae7793828d653", "scanner": "scanner-primary", "fingerprint": "ce27a9b06dd17de1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ffce52feef73226", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/inbound/vapi/route.ts:206"}, "properties": {"repobilityId": "733a540ed9b89a8a", "scanner": "scanner-primary", "fingerprint": "6ffce52feef73226", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-473cf4bcc60bc01e", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/audit/generate/route.ts:152"}, "properties": {"repobilityId": "524e000664057828", "scanner": "scanner-primary", "fingerprint": "473cf4bcc60bc01e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16b0477600ebf5b3", "level": "note", "message": {"text": "Legacy-named symbol `custom_ai_v1` in app/api/audit/book/route.ts:250"}, "properties": {"repobilityId": "d2db2ae412fc55a7", "scanner": "scanner-primary", "fingerprint": "16b0477600ebf5b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-28e2935e15d3bb05", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/audit/book/route.ts:246"}, "properties": {"repobilityId": "42f67b48015a8898", "scanner": "scanner-primary", "fingerprint": "28e2935e15d3bb05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca6bf21758af2a2a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/voice/provision-assistant/route.ts:161"}, "properties": {"repobilityId": "0a591216d2ca79ce", "scanner": "scanner-primary", "fingerprint": "ca6bf21758af2a2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-689346211593f5d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/voice/provision-assistant/route.ts:352"}, "properties": {"repobilityId": "51372e254cf769b1", "scanner": "scanner-primary", "fingerprint": "689346211593f5d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e33fa7b4dc4fda20", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/oauth/connect/route.ts:17"}, "properties": {"repobilityId": "7051fd3f3d127852", "scanner": "scanner-primary", "fingerprint": "e33fa7b4dc4fda20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74d33e13515d33a1", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/oauth/callback/[provider]/route.ts:112"}, "properties": {"repobilityId": "31bf2d5f98bc65f3", "scanner": "scanner-primary", "fingerprint": "74d33e13515d33a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cac540ee296eb0d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/oauth/callback/[provider]/route.ts:246"}, "properties": {"repobilityId": "ba5f64fb9710e676", "scanner": "scanner-primary", "fingerprint": "cac540ee296eb0d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f15f5d3d5229da70", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/api/marketing/chat/route.ts:11"}, "properties": {"repobilityId": "bda9e33a34dcd3e0", "scanner": "scanner-primary", "fingerprint": "f15f5d3d5229da70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e32365b82462167", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/marketing/chat/route.ts:111"}, "properties": {"repobilityId": "84c31f6973e04e52", "scanner": "scanner-primary", "fingerprint": "6e32365b82462167", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc17a9d7c0799355", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/preview/[slug]/chat/route.ts:38"}, "properties": {"repobilityId": "2ce3cbd4f2f2313a", "scanner": "scanner-primary", "fingerprint": "bc17a9d7c0799355", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1ee33d37fb5ec9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/billing/tenant-plan/route.ts:15"}, "properties": {"repobilityId": "30eac142eb30ce11", "scanner": "scanner-primary", "fingerprint": "a1ee33d37fb5ec9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9659019ec60af1d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/billing/start-trial-no-card/route.ts:63"}, "properties": {"repobilityId": "593d312475912704", "scanner": "scanner-primary", "fingerprint": "9659019ec60af1d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7234cfa82b5d789", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/billing/start-trial/route.ts:33"}, "properties": {"repobilityId": "f93e3de46dcefce0", "scanner": "scanner-primary", "fingerprint": "c7234cfa82b5d789", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb55a4feacca82e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/billing/finalize-trial/route.ts:141"}, "properties": {"repobilityId": "b318363b2449fa52", "scanner": "scanner-primary", "fingerprint": "fb55a4feacca82e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3793fdff37c57e08", "level": "note", "message": {"text": "Legacy-named symbol `d_old` in app/api/admin/maildoso-sync/route.ts:101"}, "properties": {"repobilityId": "eee06c7472545d2b", "scanner": "scanner-primary", "fingerprint": "3793fdff37c57e08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ac636048f428a92a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/prospects/bulk/route.ts:124"}, "properties": {"repobilityId": "f2d4f93c38b6fd14", "scanner": "scanner-primary", "fingerprint": "ac636048f428a92a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-991899cc25358876", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/smoke-test/route.ts:54"}, "properties": {"repobilityId": "05e8e0af1902653b", "scanner": "scanner-primary", "fingerprint": "991899cc25358876", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6791b757d26b8fb6", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/workspaces/[tenantId]/delete/route.ts:57"}, "properties": {"repobilityId": "44c875ab8d5b6bef", "scanner": "scanner-primary", "fingerprint": "6791b757d26b8fb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e91531d094613a8f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/workspaces/[tenantId]/invites/route.ts:18"}, "properties": {"repobilityId": "aca61b0549a7d219", "scanner": "scanner-primary", "fingerprint": "e91531d094613a8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37bb179cd05dd8fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/view-mode/route.ts:36"}, "properties": {"repobilityId": "6df2e6d96073b989", "scanner": "scanner-primary", "fingerprint": "37bb179cd05dd8fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54939106e3b7dc7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/sms-draft/route.ts:68"}, "properties": {"repobilityId": "e9e7d3de1399ed32", "scanner": "scanner-primary", "fingerprint": "54939106e3b7dc7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-204a8b5aeb89f8f6", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/api/admin/health/pulse/route.ts:32"}, "properties": {"repobilityId": "01518cb4989dc4a4", "scanner": "scanner-primary", "fingerprint": "204a8b5aeb89f8f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b8f9ebeff761491", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/today/route.ts:61"}, "properties": {"repobilityId": "2596ee21382b32b4", "scanner": "scanner-primary", "fingerprint": "8b8f9ebeff761491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65f74de4d4aa9e47", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/seed-templates/route.ts:21"}, "properties": {"repobilityId": "064c1d1cecaec0c7", "scanner": "scanner-primary", "fingerprint": "65f74de4d4aa9e47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-658fd5cbf16b5b64", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/diag-google-token/route.ts:32"}, "properties": {"repobilityId": "8e9a0d105a35bef2", "scanner": "scanner-primary", "fingerprint": "658fd5cbf16b5b64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b0d59803e69fe8c7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/stability-check/route.ts:38"}, "properties": {"repobilityId": "ff25579a2ee39e4c", "scanner": "scanner-primary", "fingerprint": "b0d59803e69fe8c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f63ea3eb0949156a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/cold-mailbox/bootstrap-history/route.ts:49"}, "properties": {"repobilityId": "bed962227cba1092", "scanner": "scanner-primary", "fingerprint": "f63ea3eb0949156a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-afea5abd4129f638", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/status/route.ts:29"}, "properties": {"repobilityId": "d1feb5f996f9c97e", "scanner": "scanner-primary", "fingerprint": "afea5abd4129f638", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fc46c4244f3fde5", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/admin/agents/[id]/change-persona/route.ts:81"}, "properties": {"repobilityId": "69a5dd4961f39370", "scanner": "scanner-primary", "fingerprint": "7fc46c4244f3fde5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d798e2d78ccc8c3f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/agents/[id]/approve/route.ts:19"}, "properties": {"repobilityId": "650a10a466d28968", "scanner": "scanner-primary", "fingerprint": "d798e2d78ccc8c3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8978981f95d20bbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/voice-readiness/route.ts:265"}, "properties": {"repobilityId": "6b13bd74c95c8f8d", "scanner": "scanner-primary", "fingerprint": "8978981f95d20bbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a221d5a7bafdb49b", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/admin/import-prospects/route.ts:13"}, "properties": {"repobilityId": "5f650eeef248c6dc", "scanner": "scanner-primary", "fingerprint": "a221d5a7bafdb49b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70f3d139bbd05c0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/mack-blind-test/route.ts:198"}, "properties": {"repobilityId": "b45a55037927d1bd", "scanner": "scanner-primary", "fingerprint": "70f3d139bbd05c0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7db5147de3e6d71", "level": "note", "message": {"text": "Legacy-named symbol `plant_routing_v2` in app/api/admin/mack-mine-knowledge/route.ts:18"}, "properties": {"repobilityId": "1125bfba63f23436", "scanner": "scanner-primary", "fingerprint": "c7db5147de3e6d71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a6686cb1ef044da3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/mack-reextract-lite/route.ts:291"}, "properties": {"repobilityId": "910364375bd9051e", "scanner": "scanner-primary", "fingerprint": "a6686cb1ef044da3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7c14e0a97dd79ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/mack-reextract-lite/route.ts:108"}, "properties": {"repobilityId": "506e14fdb0887b82", "scanner": "scanner-primary", "fingerprint": "c7c14e0a97dd79ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a75e82ffa6137345", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/crons/run/route.ts:78"}, "properties": {"repobilityId": "0f7d44221b284ba4", "scanner": "scanner-primary", "fingerprint": "a75e82ffa6137345", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-704f945395d3be40", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/booking-diagnose/route.ts:92"}, "properties": {"repobilityId": "6574a2911954d1de", "scanner": "scanner-primary", "fingerprint": "704f945395d3be40", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8390b2d7903f40ac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/council/approve/route.ts:114"}, "properties": {"repobilityId": "219159d4e3d9c4cf", "scanner": "scanner-primary", "fingerprint": "8390b2d7903f40ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b13b06ae004c99db", "level": "note", "message": {"text": "Legacy-named symbol `CV52037_v1` in app/api/admin/mack-drawing-ingest/route.ts:19"}, "properties": {"repobilityId": "9296f3a86b247986", "scanner": "scanner-primary", "fingerprint": "b13b06ae004c99db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-68dc7fd2b4cdda68", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/kill-switches/route.ts:1"}, "properties": {"repobilityId": "d3ab4a8152c2c7cd", "scanner": "scanner-primary", "fingerprint": "68dc7fd2b4cdda68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42da445961d08c60", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/cold-email/sequences/enroll/route.ts:56"}, "properties": {"repobilityId": "13a8153799cf5bcd", "scanner": "scanner-primary", "fingerprint": "42da445961d08c60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9707ea4d41feaea4", "level": "note", "message": {"text": "Legacy-named symbol `dupeLegacy` in app/api/twilio/inbound-sms/route.ts:147"}, "properties": {"repobilityId": "6d4265c584c57491", "scanner": "scanner-primary", "fingerprint": "9707ea4d41feaea4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ff5b619160f4f2c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/twilio/inbound-sms/route.ts:42"}, "properties": {"repobilityId": "33896d001e6dc001", "scanner": "scanner-primary", "fingerprint": "ff5b619160f4f2c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0efc14c0cd4c79be", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/agents/[id]/test-run/route.ts:6"}, "properties": {"repobilityId": "a32f4cd95c7bb5c9", "scanner": "scanner-primary", "fingerprint": "0efc14c0cd4c79be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9837b9cc69c4ecb4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/approvals/[id]/approve/route.ts:12"}, "properties": {"repobilityId": "e47fbc7ea3a3284d", "scanner": "scanner-primary", "fingerprint": "9837b9cc69c4ecb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a84072578e03289", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/onboarding/complete/route.ts:65"}, "properties": {"repobilityId": "73325542c477e2c0", "scanner": "scanner-primary", "fingerprint": "6a84072578e03289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99e0b79f764435cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v9/employees/route.ts:31"}, "properties": {"repobilityId": "903fd1fff6cdd021", "scanner": "scanner-primary", "fingerprint": "99e0b79f764435cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cc12f12900d9ed5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/employees/[id]/builder/route.ts:51"}, "properties": {"repobilityId": "265fd6bbf8994208", "scanner": "scanner-primary", "fingerprint": "1cc12f12900d9ed5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7cd707f324aef77c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/notifications/route.ts:105"}, "properties": {"repobilityId": "17018cf488a3c678", "scanner": "scanner-primary", "fingerprint": "7cd707f324aef77c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e82a423349158d49", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/workspaces/route.ts:36"}, "properties": {"repobilityId": "faa82223ecc688ac", "scanner": "scanner-primary", "fingerprint": "e82a423349158d49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31b32cbc3751a5e8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/workspaces/custom-draft/route.ts:10"}, "properties": {"repobilityId": "52bc97db5dc4093c", "scanner": "scanner-primary", "fingerprint": "31b32cbc3751a5e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f49674f650d9bb72", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/workspaces/[id]/manager/chat/route.ts:17"}, "properties": {"repobilityId": "65042661d5172d31", "scanner": "scanner-primary", "fingerprint": "f49674f650d9bb72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b170649d91502743", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v9/workspaces/[id]/personas/route.ts:29"}, "properties": {"repobilityId": "f58552cd5e878890", "scanner": "scanner-primary", "fingerprint": "b170649d91502743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f5c4eed0d57c0dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/v9/workspaces/[id]/members/route.ts:74"}, "properties": {"repobilityId": "760495e9dbe57724", "scanner": "scanner-primary", "fingerprint": "6f5c4eed0d57c0dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10b77dfea834e923", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v9/workspace-drafts/[id]/create/route.ts:154"}, "properties": {"repobilityId": "9d0395a3d6c103ef", "scanner": "scanner-primary", "fingerprint": "10b77dfea834e923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d888ab991eee516", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/v9/audits/route.ts:45"}, "properties": {"repobilityId": "2dedbb8882331ace", "scanner": "scanner-primary", "fingerprint": "1d888ab991eee516", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766d2c3ed9e96a10", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/audits/[id]/action/route.ts:89"}, "properties": {"repobilityId": "2a34004e4d24395a", "scanner": "scanner-primary", "fingerprint": "766d2c3ed9e96a10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b1f8ea1202afa19", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/v9/home/onboarding/route.ts:24"}, "properties": {"repobilityId": "fb7c5c107a71baa5", "scanner": "scanner-primary", "fingerprint": "1b1f8ea1202afa19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b77964bf66359cb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/home/urgent/route.ts:67"}, "properties": {"repobilityId": "89ca6167ba99ba46", "scanner": "scanner-primary", "fingerprint": "b77964bf66359cb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-112cb0f5fa31530f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v9/admin/finance/route.ts:128"}, "properties": {"repobilityId": "54b97c9f01bf6718", "scanner": "scanner-primary", "fingerprint": "112cb0f5fa31530f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf282ba97afc4f68", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v9/inbox/threads/route.ts:94"}, "properties": {"repobilityId": "d3c8fc036632ac0e", "scanner": "scanner-primary", "fingerprint": "bf282ba97afc4f68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6073d4c320fa703c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/v9/inbox/ai-draft/route.ts:48"}, "properties": {"repobilityId": "e59cf4c1ee7ca9f3", "scanner": "scanner-primary", "fingerprint": "6073d4c320fa703c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a488487b6506bc9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/route.ts:6"}, "properties": {"repobilityId": "5306f8f1d8ac8a2a", "scanner": "scanner-primary", "fingerprint": "5a488487b6506bc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7465c932bed1fba", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/cold-email-sequences/route.ts:66"}, "properties": {"repobilityId": "801af3a3473d97ef", "scanner": "scanner-primary", "fingerprint": "b7465c932bed1fba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e776622b8b515b15", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/cron/learn-cold-angles/route.ts:100"}, "properties": {"repobilityId": "9e0a9b35de0eb07e", "scanner": "scanner-primary", "fingerprint": "e776622b8b515b15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73c580c91fc484b1", "level": "note", "message": {"text": "Legacy-named symbol `d_old` in app/api/cron/cold-mailbox-promote/route.ts:55"}, "properties": {"repobilityId": "3980cba3cbcc459b", "scanner": "scanner-primary", "fingerprint": "73c580c91fc484b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-de009238dfa3f759", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/cold-mailbox-promote/route.ts:42"}, "properties": {"repobilityId": "8aa9fb281d6da767", "scanner": "scanner-primary", "fingerprint": "de009238dfa3f759", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b35bd9dcdb8a2ae9", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/ooo-pitch-reply/route.ts:205"}, "properties": {"repobilityId": "60b9be8e21710981", "scanner": "scanner-primary", "fingerprint": "b35bd9dcdb8a2ae9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163019f953211a3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/custom-employee-jobs/route.ts:15"}, "properties": {"repobilityId": "7c911d42843e98ed", "scanner": "scanner-primary", "fingerprint": "163019f953211a3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12c4e466f47c1c02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/daily-brief/route.ts:110"}, "properties": {"repobilityId": "b51624e06b49b42c", "scanner": "scanner-primary", "fingerprint": "12c4e466f47c1c02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e8eb3db6e3a294a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/audit-deliver/route.ts:119"}, "properties": {"repobilityId": "6fbec95302c5a5b6", "scanner": "scanner-primary", "fingerprint": "3e8eb3db6e3a294a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90fcb0c8b357069a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/hot-lead-concierge/route.ts:238"}, "properties": {"repobilityId": "89c97d0265a155e3", "scanner": "scanner-primary", "fingerprint": "90fcb0c8b357069a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac775d27b55e2cf6", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/cold-mailbox-warmup-ramp/route.ts:71"}, "properties": {"repobilityId": "46aa2d7a9b7f4211", "scanner": "scanner-primary", "fingerprint": "ac775d27b55e2cf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fb00212c3234320", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/handoff-watchdog/route.ts:159"}, "properties": {"repobilityId": "a5f061db42e01b4a", "scanner": "scanner-primary", "fingerprint": "5fb00212c3234320", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86dea605e981e374", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/prospect-nurture/route.ts:66"}, "properties": {"repobilityId": "03e90622a82032fb", "scanner": "scanner-primary", "fingerprint": "86dea605e981e374", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-451f426cd4c17404", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/prospect-nurture/route.ts:357"}, "properties": {"repobilityId": "587639142c73e195", "scanner": "scanner-primary", "fingerprint": "451f426cd4c17404", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1bbdd942cd84dfad", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/outlook-inbox-poll/route.ts:38"}, "properties": {"repobilityId": "ca99e62aab25e0ee", "scanner": "scanner-primary", "fingerprint": "1bbdd942cd84dfad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd0bf37020d8096b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/meeting-auto-join/route.ts:88"}, "properties": {"repobilityId": "be36eb2366befbae", "scanner": "scanner-primary", "fingerprint": "dd0bf37020d8096b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70836528802b17a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/mack-blind-suite/route.ts:156"}, "properties": {"repobilityId": "b90d5e8e30894404", "scanner": "scanner-primary", "fingerprint": "70836528802b17a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-610fb43b2dd8c3d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/gmail-inbox-poll/route.ts:42"}, "properties": {"repobilityId": "3ba1e9cb686fb89f", "scanner": "scanner-primary", "fingerprint": "610fb43b2dd8c3d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a614905e6512375e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/gmail-inbox-poll/route.ts:260"}, "properties": {"repobilityId": "d41b2cdab7cd1d74", "scanner": "scanner-primary", "fingerprint": "a614905e6512375e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0a3f9987ba3a967", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/weekly-brief/route.ts:135"}, "properties": {"repobilityId": "1beb11dcc89e3c1f", "scanner": "scanner-primary", "fingerprint": "a0a3f9987ba3a967", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6c911d6e21355f42", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/cold-sms-sequences/route.ts:79"}, "properties": {"repobilityId": "e4b2c93d21f4c73e", "scanner": "scanner-primary", "fingerprint": "6c911d6e21355f42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2e03485c7d80cec", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/audit-followup/route.ts:170"}, "properties": {"repobilityId": "8e6345feed7692af", "scanner": "scanner-primary", "fingerprint": "a2e03485c7d80cec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3acc7e86e46defe8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/monthly-report/route.ts:1"}, "properties": {"repobilityId": "39d051b1e9f76d17", "scanner": "scanner-primary", "fingerprint": "3acc7e86e46defe8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29e5a5dbc815f17d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/email-verify/route.ts:40"}, "properties": {"repobilityId": "1d1ed7b50bdd15a5", "scanner": "scanner-primary", "fingerprint": "29e5a5dbc815f17d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-612f1f42e2a589f8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/mack-reextract-lite/route.ts:73"}, "properties": {"repobilityId": "d2fbc69580c5564c", "scanner": "scanner-primary", "fingerprint": "612f1f42e2a589f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb40f7df8cba90ad", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/voice-cold-call/route.ts:227"}, "properties": {"repobilityId": "3a372d67cd37c058", "scanner": "scanner-primary", "fingerprint": "eb40f7df8cba90ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a0f8eb9640ee7af", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/meeting-recording-poll/route.ts:37"}, "properties": {"repobilityId": "ecd6aa784c4f4681", "scanner": "scanner-primary", "fingerprint": "8a0f8eb9640ee7af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad9f06c0ac5bc137", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/council/[agent]/route.ts:68"}, "properties": {"repobilityId": "8697c215cb123062", "scanner": "scanner-primary", "fingerprint": "ad9f06c0ac5bc137", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5072d96679447d2d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/blog-publish/route.ts:71"}, "properties": {"repobilityId": "362280fdd7cb00ca", "scanner": "scanner-primary", "fingerprint": "5072d96679447d2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b449609628efb00e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/billing-jobs/route.ts:54"}, "properties": {"repobilityId": "757901658108df39", "scanner": "scanner-primary", "fingerprint": "b449609628efb00e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e313da0d8dbbca8c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/enrich-prospects-from-website/route.ts:43"}, "properties": {"repobilityId": "fda2d18aaca672eb", "scanner": "scanner-primary", "fingerprint": "e313da0d8dbbca8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fcb02a7641ec599", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/cold-email-learn-daily/route.ts:131"}, "properties": {"repobilityId": "f25236483e33600d", "scanner": "scanner-primary", "fingerprint": "5fcb02a7641ec599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13b0d3351302f748", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/sms-number-circuit-breaker/route.ts:24"}, "properties": {"repobilityId": "14bcb54db38a604b", "scanner": "scanner-primary", "fingerprint": "13b0d3351302f748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98f95b2858d544ce", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/calendar-sync/route.ts:148"}, "properties": {"repobilityId": "5061cc789cd2b60c", "scanner": "scanner-primary", "fingerprint": "98f95b2858d544ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66dd475cc2e1c492", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/cron/apollo-insurance-enrich/route.ts:46"}, "properties": {"repobilityId": "b58547468c6cf4ef", "scanner": "scanner-primary", "fingerprint": "66dd475cc2e1c492", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-04e9ae542ef34ca4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/agent-triggers/schedule/route.ts:17"}, "properties": {"repobilityId": "0b3fb92b395999c6", "scanner": "scanner-primary", "fingerprint": "04e9ae542ef34ca4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43c7f3d9ec3c0350", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/agent-triggers/twilio-sms/route.ts:4"}, "properties": {"repobilityId": "2e9b3b098bf12e6f", "scanner": "scanner-primary", "fingerprint": "43c7f3d9ec3c0350", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0215c50dbe30fdb8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/vapi/call/route.ts:32"}, "properties": {"repobilityId": "31b3421480bccb38", "scanner": "scanner-primary", "fingerprint": "0215c50dbe30fdb8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd4d22bc3084a03a", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/book-call/route.ts:130"}, "properties": {"repobilityId": "a6ec98377e895e67", "scanner": "scanner-primary", "fingerprint": "cd4d22bc3084a03a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee39e8eb086a6eda", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/route.ts:248"}, "properties": {"repobilityId": "f1b708a34fdcf007", "scanner": "scanner-primary", "fingerprint": "ee39e8eb086a6eda", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f93a5c376581c177", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/book-call/availability/route.ts:260"}, "properties": {"repobilityId": "b655869d36e92881", "scanner": "scanner-primary", "fingerprint": "f93a5c376581c177", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ac3f398c0a6c0fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/track/open/route.ts:71"}, "properties": {"repobilityId": "949a47c7b528dd66", "scanner": "scanner-primary", "fingerprint": "3ac3f398c0a6c0fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6aab701da7e7356", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/webhooks/twilio/status/route.ts:25"}, "properties": {"repobilityId": "bdcbff5fdc51ccac", "scanner": "scanner-primary", "fingerprint": "c6aab701da7e7356", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df81919038839f11", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/webhooks/gmail/pubsub/route.ts:37"}, "properties": {"repobilityId": "80407ef27dc26035", "scanner": "scanner-primary", "fingerprint": "df81919038839f11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-927e43a0d1139017", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/webhooks/vapi/route.ts:58"}, "properties": {"repobilityId": "d16b3ab6b45ba12f", "scanner": "scanner-primary", "fingerprint": "927e43a0d1139017", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c26ef966f4e9c719", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/inbox/conversations/route.ts:45"}, "properties": {"repobilityId": "54e02f523768883e", "scanner": "scanner-primary", "fingerprint": "c26ef966f4e9c719", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-203965fc990b25c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/connections/smoke-test/route.ts:69"}, "properties": {"repobilityId": "1184675963599408", "scanner": "scanner-primary", "fingerprint": "203965fc990b25c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9210be609371f689", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cancel-survey/route.ts:47"}, "properties": {"repobilityId": "839f628e1b2d1be3", "scanner": "scanner-primary", "fingerprint": "9210be609371f689", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80105a9dfd82b9ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/signup/page.tsx:18"}, "properties": {"repobilityId": "7e02b39a9865cf5e", "scanner": "scanner-primary", "fingerprint": "80105a9dfd82b9ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7f1795643c2574b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/c/[id]/route.ts:63"}, "properties": {"repobilityId": "728e9e73dc4e4f43", "scanner": "scanner-primary", "fingerprint": "a7f1795643c2574b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fce83eb0c0cd04fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/page.tsx:26"}, "properties": {"repobilityId": "5b178d08793bf49f", "scanner": "scanner-primary", "fingerprint": "fce83eb0c0cd04fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-137717d540797198", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/layout.tsx:46"}, "properties": {"repobilityId": "e82b92f01b356095", "scanner": "scanner-primary", "fingerprint": "137717d540797198", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-524b8e17a694724f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/_client-shell.tsx:62"}, "properties": {"repobilityId": "ac3c1e1a51c6fdc2", "scanner": "scanner-primary", "fingerprint": "524b8e17a694724f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efff917dc3b72b2e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/_client-shell.tsx:488"}, "properties": {"repobilityId": "1bd1e0a9966271f8", "scanner": "scanner-primary", "fingerprint": "efff917dc3b72b2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-20698210f81e6303", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/settings/layout.tsx:50"}, "properties": {"repobilityId": "1f5df3e17e3a0cff", "scanner": "scanner-primary", "fingerprint": "20698210f81e6303", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51be7e6de13597b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/settings/crons/page.tsx:160"}, "properties": {"repobilityId": "17c412e6875ffdb4", "scanner": "scanner-primary", "fingerprint": "51be7e6de13597b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5278bab20e8d767a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/v5/employees/page.tsx:51"}, "properties": {"repobilityId": "7c4ba4df5ceef6b0", "scanner": "scanner-primary", "fingerprint": "5278bab20e8d767a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b2badd2fab1a59c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/v5/employees/_hub-client.tsx:132"}, "properties": {"repobilityId": "59087261108c2a8e", "scanner": "scanner-primary", "fingerprint": "3b2badd2fab1a59c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45b6aa6b38e30b70", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/_hub-client.tsx:412"}, "properties": {"repobilityId": "ef7013415338b970", "scanner": "scanner-primary", "fingerprint": "45b6aa6b38e30b70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d31f59c597aa2292", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/_drag-drop-upload.tsx:59"}, "properties": {"repobilityId": "bea0733b8f492a3b", "scanner": "scanner-primary", "fingerprint": "d31f59c597aa2292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19443a7682502c81", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_drag-drop-upload.tsx:123"}, "properties": {"repobilityId": "92081abc81346f65", "scanner": "scanner-primary", "fingerprint": "19443a7682502c81", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96160f69124221ab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_ordering-settings.tsx:90"}, "properties": {"repobilityId": "3725b8b4c4557150", "scanner": "scanner-primary", "fingerprint": "96160f69124221ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c825171ef35a7cb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/employees/[slug]/page.tsx:198"}, "properties": {"repobilityId": "cdb75a4d236165a9", "scanner": "scanner-primary", "fingerprint": "c825171ef35a7cb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed94af530b353ec9", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/v5/employees/[slug]/_today-landing.tsx:53"}, "properties": {"repobilityId": "71e9283abe49c489", "scanner": "scanner-primary", "fingerprint": "ed94af530b353ec9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bef4f0546e40a478", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/_today-landing.tsx:226"}, "properties": {"repobilityId": "37354d5adfd78dce", "scanner": "scanner-primary", "fingerprint": "bef4f0546e40a478", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-66311529c7d805c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/employees/[slug]/_blocks.tsx:876"}, "properties": {"repobilityId": "dc56fe9d20a7fd70", "scanner": "scanner-primary", "fingerprint": "66311529c7d805c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2600ad7a5be4d28a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/team/_press_desk_view.tsx:277"}, "properties": {"repobilityId": "46591f1ebecf1972", "scanner": "scanner-primary", "fingerprint": "2600ad7a5be4d28a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d673e5914f94260", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/team/_press_desk_view.tsx:316"}, "properties": {"repobilityId": "9814bb29e34bbbb7", "scanner": "scanner-primary", "fingerprint": "8d673e5914f94260", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dd479484240121d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/new-project/_client.tsx:129"}, "properties": {"repobilityId": "f32929e5c9389ffd", "scanner": "scanner-primary", "fingerprint": "dd479484240121d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1585e5f9352ac649", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/anomalies/_client.tsx:110"}, "properties": {"repobilityId": "8bdb03a38b98b0af", "scanner": "scanner-primary", "fingerprint": "1585e5f9352ac649", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce6fd074e9e7bac2", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/v5/employees/[slug]/assistant/_client.tsx:36"}, "properties": {"repobilityId": "8304909b8dbde37a", "scanner": "scanner-primary", "fingerprint": "ce6fd074e9e7bac2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a2e0f1c8849cfbc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/assistant/_client.tsx:304"}, "properties": {"repobilityId": "f4db18ac72b72730", "scanner": "scanner-primary", "fingerprint": "1a2e0f1c8849cfbc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e93fea2836d9160", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/page.tsx:50"}, "properties": {"repobilityId": "c04cf8b4068178fe", "scanner": "scanner-primary", "fingerprint": "6e93fea2836d9160", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75df19771fd9280b", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/engineer/_queue-client.tsx:27"}, "properties": {"repobilityId": "6985a9d94bb7b567", "scanner": "scanner-primary", "fingerprint": "75df19771fd9280b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7aaba5c6046a26b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/_tabs.tsx:72"}, "properties": {"repobilityId": "cd998a1ea2755192", "scanner": "scanner-primary", "fingerprint": "7aaba5c6046a26b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6575390842fa4de3", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in app/v5/employees/[slug]/jobs/[id]/page.tsx:42"}, "properties": {"repobilityId": "ef6c816638f1cfdf", "scanner": "scanner-primary", "fingerprint": "6575390842fa4de3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa75d915533f31e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/page.tsx:128"}, "properties": {"repobilityId": "8e758d6e4cef1542", "scanner": "scanner-primary", "fingerprint": "aa75d915533f31e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8846e69470c4abbc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285"}, "properties": {"repobilityId": "c9d6a250f9aaa446", "scanner": "scanner-primary", "fingerprint": "8846e69470c4abbc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4e1d3b686e85e83", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157"}, "properties": {"repobilityId": "d5323798d365d79a", "scanner": "scanner-primary", "fingerprint": "e4e1d3b686e85e83", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-75db2abf8d903f5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/page.tsx:121"}, "properties": {"repobilityId": "1a1ba87797a69e52", "scanner": "scanner-primary", "fingerprint": "75db2abf8d903f5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cadc5b1802e4de1", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:67"}, "properties": {"repobilityId": "1cc6250403dda80c", "scanner": "scanner-primary", "fingerprint": "7cadc5b1802e4de1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb07ab194cc8e5be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658"}, "properties": {"repobilityId": "ccdb3d653b2fcad7", "scanner": "scanner-primary", "fingerprint": "eb07ab194cc8e5be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-917ffb26d9ff6971", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees/[slug]/knowledge/_view.tsx:189"}, "properties": {"repobilityId": "3d839565d70bf8e4", "scanner": "scanner-primary", "fingerprint": "917ffb26d9ff6971", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acabe1101da9ef57", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/v5/connect/_admin-view.tsx:68"}, "properties": {"repobilityId": "e5a4ac98af9c80cf", "scanner": "scanner-primary", "fingerprint": "acabe1101da9ef57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7970fe9d001a1b41", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_admin-view.tsx:96"}, "properties": {"repobilityId": "f12ecfc1db7fbb16", "scanner": "scanner-primary", "fingerprint": "7970fe9d001a1b41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aa5dafa83ab4fc47", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/connect/_client-view.tsx:27"}, "properties": {"repobilityId": "fb857d0443689db9", "scanner": "scanner-primary", "fingerprint": "aa5dafa83ab4fc47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-856f433074960b11", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/connect/_client-view.tsx:88"}, "properties": {"repobilityId": "e2033d54772e5e40", "scanner": "scanner-primary", "fingerprint": "856f433074960b11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e8b18e06e7ecd98b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/leads/_page-legacy.tsx:210"}, "properties": {"repobilityId": "44eceb020ad1068e", "scanner": "scanner-primary", "fingerprint": "e8b18e06e7ecd98b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d233ef50b6d5e07", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/leads/_page-legacy.tsx:167"}, "properties": {"repobilityId": "2808506b9744d2f6", "scanner": "scanner-primary", "fingerprint": "9d233ef50b6d5e07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-672f4f049a250fcf", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/dashboard/page.tsx:42"}, "properties": {"repobilityId": "831ccde6c0f4283c", "scanner": "scanner-primary", "fingerprint": "672f4f049a250fcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31daaa578c47543c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/voice/page.tsx:100"}, "properties": {"repobilityId": "ee97c6094e1ca902", "scanner": "scanner-primary", "fingerprint": "31daaa578c47543c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d67f09448ce1a030", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/employees-admin/[slug]/caden-drawer.tsx:364"}, "properties": {"repobilityId": "4f5ee3de943a8edd", "scanner": "scanner-primary", "fingerprint": "d67f09448ce1a030", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-132bb8f9bfc7dd6a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v5/employees-admin/[slug]/page.tsx:12"}, "properties": {"repobilityId": "f5e9994074d1a8ee", "scanner": "scanner-primary", "fingerprint": "132bb8f9bfc7dd6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d21d44734d45b6aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v5/admin/audits/audit-table-client.tsx:231"}, "properties": {"repobilityId": "93b8a16237621d99", "scanner": "scanner-primary", "fingerprint": "d21d44734d45b6aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-278199feebca1823", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/v5/admin/audits/[id]/review-client.tsx:66"}, "properties": {"repobilityId": "8c02928e87893343", "scanner": "scanner-primary", "fingerprint": "278199feebca1823", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8f1285ba432df16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/_managers.tsx:22"}, "properties": {"repobilityId": "9682b9354e42c97a", "scanner": "scanner-primary", "fingerprint": "f8f1285ba432df16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a9e35673f924e6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:46"}, "properties": {"repobilityId": "9a21f213ccbfc283", "scanner": "scanner-primary", "fingerprint": "2a9e35673f924e6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fd6407fe468682c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25"}, "properties": {"repobilityId": "3390aa7860f4096a", "scanner": "scanner-primary", "fingerprint": "1fd6407fe468682c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0e86bc2e1807a3b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/agents/_page-legacy.tsx:196"}, "properties": {"repobilityId": "89a2677ea4e81a0e", "scanner": "scanner-primary", "fingerprint": "0e86bc2e1807a3b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f1879717ff47380", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/content/page.tsx:61"}, "properties": {"repobilityId": "af25b47672661a41", "scanner": "scanner-primary", "fingerprint": "8f1879717ff47380", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31f75e2a6b09f8d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/campaigns/_page-legacy.tsx:41"}, "properties": {"repobilityId": "22a4415ddfa18e5b", "scanner": "scanner-primary", "fingerprint": "31f75e2a6b09f8d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6b1f19a6b16917e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/upgrade/page.tsx:153"}, "properties": {"repobilityId": "6adee5bed1e70a35", "scanner": "scanner-primary", "fingerprint": "c6b1f19a6b16917e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b4044820e432801e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/senders/_view.tsx:461"}, "properties": {"repobilityId": "cef0f8692490ad5b", "scanner": "scanner-primary", "fingerprint": "b4044820e432801e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7e79c7a3d4c0c96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/council/page.tsx:115"}, "properties": {"repobilityId": "8758d0a27417437d", "scanner": "scanner-primary", "fingerprint": "a7e79c7a3d4c0c96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2d01cd3f8a92057", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/v5/inbox/_page-legacy.tsx:234"}, "properties": {"repobilityId": "bc73e59d413f45f9", "scanner": "scanner-primary", "fingerprint": "a2d01cd3f8a92057", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36b613a75bf7618d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v5/inbox/_page-legacy.tsx:430"}, "properties": {"repobilityId": "87202e3b9369a997", "scanner": "scanner-primary", "fingerprint": "36b613a75bf7618d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7df72215dbd95f0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/retry.ts:23"}, "properties": {"repobilityId": "c1ad4c7fb5e13f83", "scanner": "scanner-primary", "fingerprint": "f7df72215dbd95f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f128f1b0b2638dae", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/workers/outbound.ts:73"}, "properties": {"repobilityId": "fd2253b7fde8d0ba", "scanner": "scanner-primary", "fingerprint": "f128f1b0b2638dae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7561e0abe3a7c76", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/workers/outbound.ts:91"}, "properties": {"repobilityId": "becc788318bac41c", "scanner": "scanner-primary", "fingerprint": "e7561e0abe3a7c76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bc6ea3421e5ff89", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/funnel/page.tsx:28"}, "properties": {"repobilityId": "3822344002aef000", "scanner": "scanner-primary", "fingerprint": "0bc6ea3421e5ff89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fc3586b8e9c1002", "level": "none", "message": {"text": "Commented-code block (18 lines) in app/v9/_shell.tsx:31"}, "properties": {"repobilityId": "ef8946aaebd23984", "scanner": "scanner-primary", "fingerprint": "1fc3586b8e9c1002", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdc35701fa63f10a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/v9/layout.tsx:34"}, "properties": {"repobilityId": "c36376169e301dcc", "scanner": "scanner-primary", "fingerprint": "bdc35701fa63f10a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0706fd3785ff042a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/settings/page.tsx:181"}, "properties": {"repobilityId": "809499c2311aebee", "scanner": "scanner-primary", "fingerprint": "0706fd3785ff042a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9c67c09883ed4b7f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/page.tsx:349"}, "properties": {"repobilityId": "4b1ff5c7d88ca48b", "scanner": "scanner-primary", "fingerprint": "9c67c09883ed4b7f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-659d0d1d5c7f5aab", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v9/workspaces/[id]/_admin-shell.tsx:14"}, "properties": {"repobilityId": "ffaaf33af4250a9e", "scanner": "scanner-primary", "fingerprint": "659d0d1d5c7f5aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31b42fba9aa6f351", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v9/workspaces/[id]/page.tsx:96"}, "properties": {"repobilityId": "a0cae25279ddadb5", "scanner": "scanner-primary", "fingerprint": "31b42fba9aa6f351", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2d0b8bb0bfd5315", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/page.tsx:108"}, "properties": {"repobilityId": "cb1364e52f1b160b", "scanner": "scanner-primary", "fingerprint": "b2d0b8bb0bfd5315", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3564ed5a85f2932d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/settings/page.tsx:114"}, "properties": {"repobilityId": "f833606a3a893262", "scanner": "scanner-primary", "fingerprint": "3564ed5a85f2932d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37ee1e2f7195fba6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/manager/page.tsx:144"}, "properties": {"repobilityId": "e7b8794d062f7638", "scanner": "scanner-primary", "fingerprint": "37ee1e2f7195fba6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cff06822419310fc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/audit-log/page.tsx:39"}, "properties": {"repobilityId": "7cfb264cc6f65a53", "scanner": "scanner-primary", "fingerprint": "cff06822419310fc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca5f265d1084f6b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/[id]/pricing/page.tsx:66"}, "properties": {"repobilityId": "6745b8286cabfd20", "scanner": "scanner-primary", "fingerprint": "ca5f265d1084f6b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-734cdc2978974f5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-from-call/page.tsx:231"}, "properties": {"repobilityId": "4304453f569e51f1", "scanner": "scanner-primary", "fingerprint": "734cdc2978974f5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f8f29b080f995cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/workspaces/new-with-ai/_client.tsx:491"}, "properties": {"repobilityId": "f1135e540f0cfff6", "scanner": "scanner-primary", "fingerprint": "9f8f29b080f995cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0e3ce9ca9c2e4ff", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/v9/audits/_page-legacy.tsx:295"}, "properties": {"repobilityId": "aba0078f88ec5c20", "scanner": "scanner-primary", "fingerprint": "f0e3ce9ca9c2e4ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85e2591b0c1a6d42", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/billing/page.tsx:119"}, "properties": {"repobilityId": "ded199d83635cf99", "scanner": "scanner-primary", "fingerprint": "85e2591b0c1a6d42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1601061acbc5c65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/portfolio/[tenantId]/page.tsx:63"}, "properties": {"repobilityId": "a5f4fd51248cc333", "scanner": "scanner-primary", "fingerprint": "c1601061acbc5c65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-389a9d3f4121c28f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/admin/mack-benchmark/page.tsx:144"}, "properties": {"repobilityId": "4f5fff2047cb913b", "scanner": "scanner-primary", "fingerprint": "389a9d3f4121c28f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4da9551dbe7c716", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/inbox/page.tsx:117"}, "properties": {"repobilityId": "5ac00a9b5f4a059d", "scanner": "scanner-primary", "fingerprint": "e4da9551dbe7c716", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6224d896b70a377f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-task-center.tsx:89"}, "properties": {"repobilityId": "3d911bfcd64a4509", "scanner": "scanner-primary", "fingerprint": "6224d896b70a377f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c37187f10dfda6aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/v9/_components/home-workspace-signals.tsx:40"}, "properties": {"repobilityId": "e74045418c5c36c2", "scanner": "scanner-primary", "fingerprint": "c37187f10dfda6aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d041249759a52d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/(app)/layout.tsx:59"}, "properties": {"repobilityId": "0bee5c4afa4d19cb", "scanner": "scanner-primary", "fingerprint": "5d041249759a52d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-010cce56d87d4337", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(app)/billing/start-trial/page.tsx:86"}, "properties": {"repobilityId": "ef0e20cffa474d69", "scanner": "scanner-primary", "fingerprint": "010cce56d87d4337", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f42de07350e077b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/q/[token]/_actions.tsx:14"}, "properties": {"repobilityId": "fde407cc245e400f", "scanner": "scanner-primary", "fingerprint": "9f42de07350e077b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2e3cafdf94092ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/v/[shortId]/route.ts:107"}, "properties": {"repobilityId": "11ee2eedd2728eee", "scanner": "scanner-primary", "fingerprint": "a2e3cafdf94092ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b2581faaa0a137b", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/reports/monthly/[token]/page.tsx:1"}, "properties": {"repobilityId": "6792a6abc49a931e", "scanner": "scanner-primary", "fingerprint": "0b2581faaa0a137b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f0bdc642cc425ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/(marketing)/layout.tsx:6"}, "properties": {"repobilityId": "cd36b084f54dd499", "scanner": "scanner-primary", "fingerprint": "8f0bdc642cc425ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fde42ad9542ae94c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/(marketing)/case-studies/page.tsx:123"}, "properties": {"repobilityId": "da2a3ce8301a4bb3", "scanner": "scanner-primary", "fingerprint": "fde42ad9542ae94c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f3d3c6d4761db09", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/(marketing)/demo/page.tsx:3"}, "properties": {"repobilityId": "2d12e24666dc44cd", "scanner": "scanner-primary", "fingerprint": "4f3d3c6d4761db09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99c296a834b42415", "level": "note", "message": {"text": "Legacy-named symbol `custom_ai_v1` in app/(marketing)/audit/audit-form.tsx:211"}, "properties": {"repobilityId": "6b7e0a196afe687d", "scanner": "scanner-primary", "fingerprint": "99c296a834b42415", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-40ebaf9d872b3102", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/(marketing)/audit/book/[id]/slot-picker.tsx:54"}, "properties": {"repobilityId": "3324b12ec3a2e0e6", "scanner": "scanner-primary", "fingerprint": "40ebaf9d872b3102", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2846323735a130e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/google-oidc.ts:22"}, "properties": {"repobilityId": "a2dbf8c7482a2d56", "scanner": "scanner-primary", "fingerprint": "2846323735a130e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1950e5a7072708d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/kill-switch.ts:1"}, "properties": {"repobilityId": "0b6f10fe4bf6590c", "scanner": "scanner-primary", "fingerprint": "1950e5a7072708d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c56982b0b09bf34b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/heartbeat.ts:43"}, "properties": {"repobilityId": "b059d65621ebcd65", "scanner": "scanner-primary", "fingerprint": "c56982b0b09bf34b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b6c5cdafe54c354", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/alerts.ts:82"}, "properties": {"repobilityId": "a9c768278494eda0", "scanner": "scanner-primary", "fingerprint": "5b6c5cdafe54c354", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7de8b870fa1fb4b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/alerts.ts:317"}, "properties": {"repobilityId": "1808f870c6aa0c92", "scanner": "scanner-primary", "fingerprint": "a7de8b870fa1fb4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3592d741716d1552", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/anthropic-logged.ts:56"}, "properties": {"repobilityId": "90e16c06c2b6cca0", "scanner": "scanner-primary", "fingerprint": "3592d741716d1552", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-898239c9d2d50c42", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/tenant.ts:144"}, "properties": {"repobilityId": "6a833866a1b209d4", "scanner": "scanner-primary", "fingerprint": "898239c9d2d50c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eb3b85dfb3397d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rate-limit.ts:1"}, "properties": {"repobilityId": "6c95f569d443fb5a", "scanner": "scanner-primary", "fingerprint": "3eb3b85dfb3397d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dda22bd1b08c1aec", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/postgrest-filter.ts:7"}, "properties": {"repobilityId": "c4b378d5b4a57fe9", "scanner": "scanner-primary", "fingerprint": "dda22bd1b08c1aec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f4e6d1a246f4e3c", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/agent-runner.ts:255"}, "properties": {"repobilityId": "a1c56d951a13bd6d", "scanner": "scanner-primary", "fingerprint": "4f4e6d1a246f4e3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d6b29064cb6ae60", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/resilient-fetch.ts:4"}, "properties": {"repobilityId": "8f67d5e12a3d7779", "scanner": "scanner-primary", "fingerprint": "5d6b29064cb6ae60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a89065d953af57c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/twilio.ts:67"}, "properties": {"repobilityId": "0e52c2eda498853f", "scanner": "scanner-primary", "fingerprint": "a89065d953af57c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dcf0d5827aafe9d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/twilio.ts:28"}, "properties": {"repobilityId": "8b681abb5b92f027", "scanner": "scanner-primary", "fingerprint": "4dcf0d5827aafe9d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cac470591820f7e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/jobnimbus.ts:3"}, "properties": {"repobilityId": "4c219e47e4c3a208", "scanner": "scanner-primary", "fingerprint": "cac470591820f7e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e969ecb00b51fe30", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/jobnimbus.ts:13"}, "properties": {"repobilityId": "b1bd4430448f8474", "scanner": "scanner-primary", "fingerprint": "e969ecb00b51fe30", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61869f3f94180bb7", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/gmail.ts:161"}, "properties": {"repobilityId": "2c800e991146ada3", "scanner": "scanner-primary", "fingerprint": "61869f3f94180bb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e42797e08148b06", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/gmail.ts:11"}, "properties": {"repobilityId": "e6395ef72c6376b1", "scanner": "scanner-primary", "fingerprint": "6e42797e08148b06", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5fdb7152175129cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/calendar.ts:130"}, "properties": {"repobilityId": "a94a12910e001029", "scanner": "scanner-primary", "fingerprint": "5fdb7152175129cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82daf2611bca7a6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/calendar.ts:25"}, "properties": {"repobilityId": "6adc7937a114bcfe", "scanner": "scanner-primary", "fingerprint": "82daf2611bca7a6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b430cbe31f831b92", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/stackit.ts:359"}, "properties": {"repobilityId": "9f7657b5236b3c63", "scanner": "scanner-primary", "fingerprint": "b430cbe31f831b92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b63f1c3a76d9206a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/vapi.ts:3"}, "properties": {"repobilityId": "6f512848dab9c6d0", "scanner": "scanner-primary", "fingerprint": "b63f1c3a76d9206a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0aec7484f73f998c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/vapi.ts:20"}, "properties": {"repobilityId": "d4635061998d6183", "scanner": "scanner-primary", "fingerprint": "0aec7484f73f998c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d9bb506385fbbb6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/acculynx.ts:3"}, "properties": {"repobilityId": "258d0c3442fb81b6", "scanner": "scanner-primary", "fingerprint": "d9bb506385fbbb6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e588aa462b1f67b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/acculynx.ts:13"}, "properties": {"repobilityId": "b881a54d0ec6f3b4", "scanner": "scanner-primary", "fingerprint": "e588aa462b1f67b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b3e51aa6bc39885", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/slack.ts:20"}, "properties": {"repobilityId": "a4836c5e0be3779b", "scanner": "scanner-primary", "fingerprint": "5b3e51aa6bc39885", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49fab48edea5eadb", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/outlook.ts:190"}, "properties": {"repobilityId": "c8f79bdd47ee5ddf", "scanner": "scanner-primary", "fingerprint": "49fab48edea5eadb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-857890e3c0b86f99", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/outlook.ts:34"}, "properties": {"repobilityId": "ac721b6da95ead20", "scanner": "scanner-primary", "fingerprint": "857890e3c0b86f99", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1c2f0d36e4fa99dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/integrations/servicetitan.ts:3"}, "properties": {"repobilityId": "6dd868cec7027009", "scanner": "scanner-primary", "fingerprint": "1c2f0d36e4fa99dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9f88c1069b125a7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/integrations/servicetitan.ts:17"}, "properties": {"repobilityId": "ebb0db12f6cbefbb", "scanner": "scanner-primary", "fingerprint": "e9f88c1069b125a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3789c47192baef1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/integrations/google/token.ts:34"}, "properties": {"repobilityId": "430c0eaa4a0a8deb", "scanner": "scanner-primary", "fingerprint": "3789c47192baef1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07f53cbe6ae356d7", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/employees/client-metrics.ts:85"}, "properties": {"repobilityId": "2c970d32a6f5fc01", "scanner": "scanner-primary", "fingerprint": "07f53cbe6ae356d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38d5070f2060771d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/outreach/humanize.ts:116"}, "properties": {"repobilityId": "65d63fec78616cfc", "scanner": "scanner-primary", "fingerprint": "38d5070f2060771d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d001ba5689ca111f", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/safeguards/alerts.ts:78"}, "properties": {"repobilityId": "debb5f6a6126fe3f", "scanner": "scanner-primary", "fingerprint": "d001ba5689ca111f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2a13815d3e9fb79", "level": "note", "message": {"text": "Legacy-named symbol `timestamp_too_old` in lib/meetings/hmac.ts:66"}, "properties": {"repobilityId": "b40be71a5c920794", "scanner": "scanner-primary", "fingerprint": "a2a13815d3e9fb79", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a8f2de9bafebb663", "level": "note", "message": {"text": "Legacy-named symbol `timestamp_too_old` in lib/meetings/recall.ts:203"}, "properties": {"repobilityId": "edcfaf1175764785", "scanner": "scanner-primary", "fingerprint": "a8f2de9bafebb663", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7cb900f9cdcd0d58", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/meetings/recall.ts:115"}, "properties": {"repobilityId": "9c83fe00b2352831", "scanner": "scanner-primary", "fingerprint": "7cb900f9cdcd0d58", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6845b06b9c8c27f", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/mack/evidence-card.ts:108"}, "properties": {"repobilityId": "4866d54769da4acd", "scanner": "scanner-primary", "fingerprint": "c6845b06b9c8c27f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1b6b25031990af2", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/mack/load-job-structures-db.ts:180"}, "properties": {"repobilityId": "8b65afa3d63838d1", "scanner": "scanner-primary", "fingerprint": "e1b6b25031990af2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bf2e7a2f72e0fe3", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/mack/confidence-rescore.ts:724"}, "properties": {"repobilityId": "1f606ffb9d596966", "scanner": "scanner-primary", "fingerprint": "0bf2e7a2f72e0fe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-906ab1caa44a3433", "level": "note", "message": {"text": "Legacy-named symbol `mack_sales_review_v2` in lib/mack/auto-approve.ts:5"}, "properties": {"repobilityId": "d5a63c11639ba832", "scanner": "scanner-primary", "fingerprint": "906ab1caa44a3433", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b4c01b7c4a6b807c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/mack/strategies/vision-focused.ts:119"}, "properties": {"repobilityId": "f995a1cdacab5a5f", "scanner": "scanner-primary", "fingerprint": "b4c01b7c4a6b807c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-132a3ae961ab9d65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ams/adapters/nowcerts.ts:218"}, "properties": {"repobilityId": "dd382ba18caf2bc4", "scanner": "scanner-primary", "fingerprint": "132a3ae961ab9d65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-47a0529e00ebca05", "level": "none", "message": {"text": "Commented-code block (13 lines) in lib/email/warmup-filter.ts:196"}, "properties": {"repobilityId": "6a96e554b4b5c5ea", "scanner": "scanner-primary", "fingerprint": "47a0529e00ebca05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99980a9f0a8db954", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/qa/onboarding-smoke.ts:402"}, "properties": {"repobilityId": "8203611f9e52c6d0", "scanner": "scanner-primary", "fingerprint": "99980a9f0a8db954", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47210c369c1349e6", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/dashboard/analytics.ts:609"}, "properties": {"repobilityId": "d98d9f6b27670769", "scanner": "scanner-primary", "fingerprint": "47210c369c1349e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82e5db8e13eb69bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/dashboard/admin-morning-briefing.ts:172"}, "properties": {"repobilityId": "6a16246b62652a63", "scanner": "scanner-primary", "fingerprint": "82e5db8e13eb69bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11e84dddbd0c9157", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/agent/handle-sms-reply.ts:435"}, "properties": {"repobilityId": "56243b0732847fd7", "scanner": "scanner-primary", "fingerprint": "11e84dddbd0c9157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9668b09e6d2b1e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-prompts.ts:376"}, "properties": {"repobilityId": "6ae5c23c32291b9b", "scanner": "scanner-primary", "fingerprint": "d9668b09e6d2b1e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c860e0fb547fc75e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-quote-pdf.ts:166"}, "properties": {"repobilityId": "8d6645c3983ea331", "scanner": "scanner-primary", "fingerprint": "c860e0fb547fc75e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5f957f002c39bee", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/plan-summary-auditor.ts:140"}, "properties": {"repobilityId": "e491ad85ccd91218", "scanner": "scanner-primary", "fingerprint": "f5f957f002c39bee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-416199c182a02aab", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-submittal-pdf.ts:71"}, "properties": {"repobilityId": "284964d18b42ed67", "scanner": "scanner-primary", "fingerprint": "416199c182a02aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a0c227cc0a385de", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/engineer-submittal-pdf.ts:824"}, "properties": {"repobilityId": "0509095ab878e3fe", "scanner": "scanner-primary", "fingerprint": "5a0c227cc0a385de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1666db652a81e2c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/custom-employees/engineer-postprocess.ts:278"}, "properties": {"repobilityId": "4d0e9591a075bdf5", "scanner": "scanner-primary", "fingerprint": "1666db652a81e2c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd5f9e2720db8749", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/artifact-generator.ts:34"}, "properties": {"repobilityId": "75b54558ee47fbe6", "scanner": "scanner-primary", "fingerprint": "dd5f9e2720db8749", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e17270f01acb85c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/contractor-processor.ts:316"}, "properties": {"repobilityId": "18fcf45ccaca72d8", "scanner": "scanner-primary", "fingerprint": "e17270f01acb85c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e8521f219402582", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-production-pdf.ts:192"}, "properties": {"repobilityId": "f271934ab98e8e66", "scanner": "scanner-primary", "fingerprint": "4e8521f219402582", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0860008592175a83", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/custom-employees/mack-blind-benchmark.ts:410"}, "properties": {"repobilityId": "8b6339365fc59c56", "scanner": "scanner-primary", "fingerprint": "0860008592175a83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44eae61e854ed3c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf-v2.ts:83"}, "properties": {"repobilityId": "f5069b1851e22a30", "scanner": "scanner-primary", "fingerprint": "44eae61e854ed3c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8001d98b3ec9ad0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/mack-submittal-pdf-v2.ts:29"}, "properties": {"repobilityId": "adc784bcd25cd02b", "scanner": "scanner-primary", "fingerprint": "8001d98b3ec9ad0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb9c3b699e8ce2e7", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/custom-employees/processor.ts:22"}, "properties": {"repobilityId": "dbd85f87a78ac539", "scanner": "scanner-primary", "fingerprint": "bb9c3b699e8ce2e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9565036b2ffbcacd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/processor.ts:965"}, "properties": {"repobilityId": "0f30b549d4690825", "scanner": "scanner-primary", "fingerprint": "9565036b2ffbcacd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5018825bb672bfd3", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/structure-screenshot-renderer.ts:49"}, "properties": {"repobilityId": "1f219d7e96a27717", "scanner": "scanner-primary", "fingerprint": "5018825bb672bfd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6e60ecb1ee18495", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/per-page-extractor.ts:340"}, "properties": {"repobilityId": "689fafe42992ed78", "scanner": "scanner-primary", "fingerprint": "e6e60ecb1ee18495", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f88e14c7978825b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-opus-benchmark.ts:236"}, "properties": {"repobilityId": "dd42cd1a5db7b116", "scanner": "scanner-primary", "fingerprint": "f88e14c7978825b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbc20deab39f96ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/custom-employees/contractor-pdf-render.ts:16"}, "properties": {"repobilityId": "9520400be9dd1505", "scanner": "scanner-primary", "fingerprint": "bbc20deab39f96ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-32705e10ff03c111", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/custom-employees/mack-purchasing-pdf.ts:130"}, "properties": {"repobilityId": "a4a21d39748bb77a", "scanner": "scanner-primary", "fingerprint": "32705e10ff03c111", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-474eff5becc170ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/custom-employees/mack-submittal-pdf.ts:613"}, "properties": {"repobilityId": "6f363551eea65bca", "scanner": "scanner-primary", "fingerprint": "474eff5becc170ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a48a115f3bafc79b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/conversations/log-event.ts:139"}, "properties": {"repobilityId": "81ec03534d491be8", "scanner": "scanner-primary", "fingerprint": "a48a115f3bafc79b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ca2ce3fa5d956d", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/v5/mack-route-guard.ts:76"}, "properties": {"repobilityId": "9c336cd9ac19bb62", "scanner": "scanner-primary", "fingerprint": "41ca2ce3fa5d956d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba6b1f34145bd4a3", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/design/v2/primitives/HeroSection.tsx:23"}, "properties": {"repobilityId": "f27a03ff3f52b793", "scanner": "scanner-primary", "fingerprint": "ba6b1f34145bd4a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48d34400f947e835", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/audit/prompt.ts:80"}, "properties": {"repobilityId": "f33b6bdf3ef216bd", "scanner": "scanner-primary", "fingerprint": "48d34400f947e835", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c12687ca8c5a3a2", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/oauth/providers.ts:71"}, "properties": {"repobilityId": "12eb1ff2e1bf2220", "scanner": "scanner-primary", "fingerprint": "8c12687ca8c5a3a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5bfcc06f3c8e727", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/oauth/tokens.ts:90"}, "properties": {"repobilityId": "9fb2a377286bc5c4", "scanner": "scanner-primary", "fingerprint": "e5bfcc06f3c8e727", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0912106fb9f1824", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/oauth/crypto.ts:22"}, "properties": {"repobilityId": "b27401760cefabd2", "scanner": "scanner-primary", "fingerprint": "e0912106fb9f1824", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e44a8a14baa86d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/billing/stripe.ts:59"}, "properties": {"repobilityId": "cdd0556325366986", "scanner": "scanner-primary", "fingerprint": "4e44a8a14baa86d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60af62814b594417", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/billing/ai-cost-tracker.ts:63"}, "properties": {"repobilityId": "bed3fde1bb1d11c8", "scanner": "scanner-primary", "fingerprint": "60af62814b594417", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1f990bc49d51926", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/workspace-templates/smoke-test-runner.ts:211"}, "properties": {"repobilityId": "172bca8653535656", "scanner": "scanner-primary", "fingerprint": "a1f990bc49d51926", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e501314814e821a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/cold-mailbox/poll.ts:48"}, "properties": {"repobilityId": "4ebc0b6a97290cd6", "scanner": "scanner-primary", "fingerprint": "3e501314814e821a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18d3839e22316681", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/twilio/sms-sender.ts:28"}, "properties": {"repobilityId": "dda70ac50f524a44", "scanner": "scanner-primary", "fingerprint": "18d3839e22316681", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66c66a601792741b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract-business.ts:148"}, "properties": {"repobilityId": "609d01a60bd2a3db", "scanner": "scanner-primary", "fingerprint": "66c66a601792741b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7cd1f9a237a9529f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/harvest-historical-plans.ts:143"}, "properties": {"repobilityId": "c03c1bcbaa2f4224", "scanner": "scanner-primary", "fingerprint": "7cd1f9a237a9529f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c1e78b0d60bc3c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/voice-profile/extract.ts:157"}, "properties": {"repobilityId": "747cb825affa1d66", "scanner": "scanner-primary", "fingerprint": "2c1e78b0d60bc3c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7beb216a389ca958", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/agents/builder.ts:78"}, "properties": {"repobilityId": "9e2598ab0452b554", "scanner": "scanner-primary", "fingerprint": "7beb216a389ca958", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b2ab0cf22fe65b4", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/onboarding/seed-agents.ts:77"}, "properties": {"repobilityId": "364a496f27f5b07b", "scanner": "scanner-primary", "fingerprint": "4b2ab0cf22fe65b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c728ff76e18536d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/onboarding/extract-brand-voice.ts:106"}, "properties": {"repobilityId": "1dd615296704186c", "scanner": "scanner-primary", "fingerprint": "2c728ff76e18536d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4998004a625d752", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/v9/home-revenue.ts:65"}, "properties": {"repobilityId": "2851d38599da44a0", "scanner": "scanner-primary", "fingerprint": "c4998004a625d752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0441c262560bd310", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/v9/tab-seen.ts:14"}, "properties": {"repobilityId": "e8315f236860178a", "scanner": "scanner-primary", "fingerprint": "0441c262560bd310", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98ea52f765c53ecd", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/supabase/server.ts:22"}, "properties": {"repobilityId": "0e37c6231bf42eb5", "scanner": "scanner-primary", "fingerprint": "98ea52f765c53ecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-239c71218a0dd5d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/supabase/server.ts:61"}, "properties": {"repobilityId": "276487419f36b941", "scanner": "scanner-primary", "fingerprint": "239c71218a0dd5d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-04a9dc39593c017e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/retention/monthly-report.ts:1"}, "properties": {"repobilityId": "861576585da69451", "scanner": "scanner-primary", "fingerprint": "04a9dc39593c017e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8026c4a45a0f0f95", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/retention/learn-tone.ts:1"}, "properties": {"repobilityId": "6c289efb22a54cab", "scanner": "scanner-primary", "fingerprint": "8026c4a45a0f0f95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37fd8d38f0f3b829", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/retention/learn-tone.ts:28"}, "properties": {"repobilityId": "b35e406a9295eeb8", "scanner": "scanner-primary", "fingerprint": "37fd8d38f0f3b829", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fdb343f7de6fb7cf", "level": "none", "message": {"text": "Commented-code block (12 lines) in lib/managers/task-plans.ts:475"}, "properties": {"repobilityId": "8405b7d01ddb23ed", "scanner": "scanner-primary", "fingerprint": "fdb343f7de6fb7cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c459c120c4063f6", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/managers/tools.ts:404"}, "properties": {"repobilityId": "5e8d30649d605762", "scanner": "scanner-primary", "fingerprint": "6c459c120c4063f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b66d222da8ef1c9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/tools.ts:1995"}, "properties": {"repobilityId": "92a29be6d6985723", "scanner": "scanner-primary", "fingerprint": "6b66d222da8ef1c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b8ad970f0fdd75c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/managers/apply-proposal.ts:59"}, "properties": {"repobilityId": "1ebdc5e57e893cf0", "scanner": "scanner-primary", "fingerprint": "2b8ad970f0fdd75c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa445a01a59c8d11", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/managers/runner.ts:30"}, "properties": {"repobilityId": "abf0d4225cee6379", "scanner": "scanner-primary", "fingerprint": "fa445a01a59c8d11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-937a717919ef2fd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/council/admin-views.ts:52"}, "properties": {"repobilityId": "d169c41b6e19dd92", "scanner": "scanner-primary", "fingerprint": "937a717919ef2fd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aac28dafc351a72d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/council/claude.ts:1"}, "properties": {"repobilityId": "defb96ba3edaeb7f", "scanner": "scanner-primary", "fingerprint": "aac28dafc351a72d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fc9123a8bdb18fc", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/council/budget.ts:4"}, "properties": {"repobilityId": "be4f2a9d19ca46fa", "scanner": "scanner-primary", "fingerprint": "2fc9123a8bdb18fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69f8879143f6f80b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/council/tools/web-search.ts:68"}, "properties": {"repobilityId": "a0b7ed1620fcdfd0", "scanner": "scanner-primary", "fingerprint": "69f8879143f6f80b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0df2bd988688d684", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/council/tools/open-github-pr.ts:7"}, "properties": {"repobilityId": "58439285047fcc36", "scanner": "scanner-primary", "fingerprint": "0df2bd988688d684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d1a6d6e969fe863", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/sms/shortlink.ts:66"}, "properties": {"repobilityId": "f5274ad648163e92", "scanner": "scanner-primary", "fingerprint": "6d1a6d6e969fe863", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-949ac61a4b87ecd7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/vapi/client.ts:220"}, "properties": {"repobilityId": "35f908a3b1e6a508", "scanner": "scanner-primary", "fingerprint": "949ac61a4b87ecd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aca74eccf4fa3c0", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in lib/vapi/assistant-config.ts:231"}, "properties": {"repobilityId": "706321399f661c03", "scanner": "scanner-primary", "fingerprint": "7aca74eccf4fa3c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0f35a8f020264d3", "level": "none", "message": {"text": "Commented-code block (15 lines) in lib/vapi/assistant-config.ts:174"}, "properties": {"repobilityId": "29b6b586fded4155", "scanner": "scanner-primary", "fingerprint": "e0f35a8f020264d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-884780b8b993a821", "level": "note", "message": {"text": "Legacy-named symbol `audit_v1` in lib/cold-email/vertical-copy.ts:476"}, "properties": {"repobilityId": "69a014b4e6ee2b1b", "scanner": "scanner-primary", "fingerprint": "884780b8b993a821", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-972818788cfc10bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cold-email/vertical-copy.ts:307"}, "properties": {"repobilityId": "541c683a695b9024", "scanner": "scanner-primary", "fingerprint": "972818788cfc10bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bc3b57ad3d39a9f", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/cold-email/composer.ts:30"}, "properties": {"repobilityId": "11ec301c071e1ba3", "scanner": "scanner-primary", "fingerprint": "6bc3b57ad3d39a9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f199cfd890b770a0", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/cold-email/angle-bank.ts:667"}, "properties": {"repobilityId": "a61083fc4620034a", "scanner": "scanner-primary", "fingerprint": "f199cfd890b770a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bca7973255274628", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/cold-email/dispatcher.ts:34"}, "properties": {"repobilityId": "7f6e326902475b1f", "scanner": "scanner-primary", "fingerprint": "bca7973255274628", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aeddfcfa5c981498", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cold-email/crypto.ts:16"}, "properties": {"repobilityId": "d5b113cf11ced7aa", "scanner": "scanner-primary", "fingerprint": "aeddfcfa5c981498", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a685b41e5ff5e5ea", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/llm/mack-model-routes.ts:103"}, "properties": {"repobilityId": "f35dcde41c4c7f2d", "scanner": "scanner-primary", "fingerprint": "a685b41e5ff5e5ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f29f7091e8531052", "level": "note", "message": {"text": "Legacy-named symbol `timestamp_too_old` in services/meeting-bot/src/hmac.ts:42"}, "properties": {"repobilityId": "c19a95a7afce39a4", "scanner": "scanner-primary", "fingerprint": "f29f7091e8531052", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aee2f57f711ac33a", "level": "note", "message": {"text": "205 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d80e435db9541978", "scanner": "scanner-primary", "fingerprint": "aee2f57f711ac33a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-e7d41a54ab418ec9", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/subscription (components/SubscriptionBanner.tsx:15)"}, "properties": {"repobilityId": "cdaae6192cd41e7a", "scanner": "scanner-primary", "fingerprint": "e7d41a54ab418ec9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28923fea64ca909b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/signoff (components/mack/EngineerCompletionScreen.tsx:108)"}, "properties": {"repobilityId": "755aa098556e3d0c", "scanner": "scanner-primary", "fingerprint": "28923fea64ca909b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ba4b982aa4b0e52", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerCompletionScreen.tsx:133)"}, "properties": {"repobilityId": "58be74c35885a87f", "scanner": "scanner-primary", "fingerprint": "0ba4b982aa4b0e52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7671649cde5172c4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-quote (components/mack/GenerateQuoteButton.tsx:31)"}, "properties": {"repobilityId": "98e2a4f4d7d534be", "scanner": "scanner-primary", "fingerprint": "7671649cde5172c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d38b50cf59b414cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-field (components/mack/ExceptionsReview.tsx:79)"}, "properties": {"repobilityId": "f24d7cbc47a4b20a", "scanner": "scanner-primary", "fingerprint": "d38b50cf59b414cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a47a3b7e5c5b2e8b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:122)"}, "properties": {"repobilityId": "7100c78ee564b3fc", "scanner": "scanner-primary", "fingerprint": "a47a3b7e5c5b2e8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6a928c5271af1679", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/stackit-credentials (components/mack/MackSettingsClient.tsx:144)"}, "properties": {"repobilityId": "fd9fb7759416f6aa", "scanner": "scanner-primary", "fingerprint": "6a928c5271af1679", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b38185e4756a369", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/mack-settings (components/mack/MackSettingsClient.tsx:188)"}, "properties": {"repobilityId": "464b24626cebaccc", "scanner": "scanner-primary", "fingerprint": "3b38185e4756a369", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-088f99767642e6a4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:167)"}, "properties": {"repobilityId": "0bd3021082952a52", "scanner": "scanner-primary", "fingerprint": "088f99767642e6a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25fbd03307d2e29c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:204)"}, "properties": {"repobilityId": "76ab2422b6fdad9d", "scanner": "scanner-primary", "fingerprint": "25fbd03307d2e29c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0074b1cb472c37e4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (components/mack/StructureReviewModal.tsx:307)"}, "properties": {"repobilityId": "f88982d79afe2ae2", "scanner": "scanner-primary", "fingerprint": "0074b1cb472c37e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-093c754ec2a461b2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesCompletionScreen.tsx:259)"}, "properties": {"repobilityId": "331a44cc57b0c606", "scanner": "scanner-primary", "fingerprint": "093c754ec2a461b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-377f6540be7af7bd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/EngineerReviewWizard.tsx:560)"}, "properties": {"repobilityId": "44da8009ab94d8f6", "scanner": "scanner-primary", "fingerprint": "377f6540be7af7bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-33ee73c670f68c85", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-decision (components/mack/EngineerReviewWizard.tsx:654)"}, "properties": {"repobilityId": "5aa1d5d2e8d8f326", "scanner": "scanner-primary", "fingerprint": "33ee73c670f68c85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-915efe7491d0fe2e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (components/mack/GenerateViewsButton.tsx:55)"}, "properties": {"repobilityId": "a304e8b92992e817", "scanner": "scanner-primary", "fingerprint": "915efe7491d0fe2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46bf43e57755e365", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/engineer-dimension-override (components/mack/EngineerDimensionsPanel.tsx:71)"}, "properties": {"repobilityId": "5fcc85eef115a95a", "scanner": "scanner-primary", "fingerprint": "46bf43e57755e365", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fe3588e5e8294a9d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/structure-edits (components/mack/SalesReviewWizard.tsx:520)"}, "properties": {"repobilityId": "ac0001a4bb078c8d", "scanner": "scanner-primary", "fingerprint": "fe3588e5e8294a9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7821b7d0bffa01b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/senders/feed (components/v5/senders-v2.tsx:147)"}, "properties": {"repobilityId": "8d44ed3146bb7675", "scanner": "scanner-primary", "fingerprint": "d7821b7d0bffa01b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37171f4edcfd9d56", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (components/v5/floating-intake-button.tsx:106)"}, "properties": {"repobilityId": "de478cf2b776d318", "scanner": "scanner-primary", "fingerprint": "37171f4edcfd9d56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc517494fcf41f4c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (components/v5/floating-intake-button.tsx:122)"}, "properties": {"repobilityId": "c00b2f706be8cc84", "scanner": "scanner-primary", "fingerprint": "cc517494fcf41f4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22e4cace01a81ffe", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home-v2.tsx:284)"}, "properties": {"repobilityId": "c3d6b66007ae96db", "scanner": "scanner-primary", "fingerprint": "22e4cace01a81ffe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1073947569454e0e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home-v2.tsx:285)"}, "properties": {"repobilityId": "2160c22c4d186009", "scanner": "scanner-primary", "fingerprint": "1073947569454e0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6588456fe816799", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home-v2.tsx:286)"}, "properties": {"repobilityId": "a492938f2b0917b4", "scanner": "scanner-primary", "fingerprint": "d6588456fe816799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f924dd69de56295a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces (components/v5/admin-home-v2.tsx:287)"}, "properties": {"repobilityId": "71cd1a965ee46fb0", "scanner": "scanner-primary", "fingerprint": "f924dd69de56295a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a53db32023a18aec", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspace-ai-activity?days=7&limit=40 (components/v5/admin-home-v2.tsx:288)"}, "properties": {"repobilityId": "38d295f7e9577fb7", "scanner": "scanner-primary", "fingerprint": "a53db32023a18aec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1f38bdb2f505b5d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspace-task-plans?status=active&limit=20 (components/v5/admin-home-v2.tsx:289)"}, "properties": {"repobilityId": "1284af469c6f3f06", "scanner": "scanner-primary", "fingerprint": "1f38bdb2f505b5d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-754f8a00b0793784", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspace-task-plans?status=recent&limit=20 (components/v5/admin-home-v2.tsx:290)"}, "properties": {"repobilityId": "e07889fa49b91641", "scanner": "scanner-primary", "fingerprint": "754f8a00b0793784", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d51f97b26795a5b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/employees/publish?slug=${slug} (components/v5/admin-template-editor.tsx:65)"}, "properties": {"repobilityId": "074f6c20ff1ae8f6", "scanner": "scanner-primary", "fingerprint": "d51f97b26795a5b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0438cc19a8f6885a", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/employees/publish (components/v5/admin-template-editor.tsx:92)"}, "properties": {"repobilityId": "ab41feae4cad81e6", "scanner": "scanner-primary", "fingerprint": "0438cc19a8f6885a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82a84ebd1a57de34", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/leads (components/v5/leads-v2.tsx:144)"}, "properties": {"repobilityId": "292d753fb06966da", "scanner": "scanner-primary", "fingerprint": "82a84ebd1a57de34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0984b9eb0f3a417c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/leads/${activeId} (components/v5/leads-v2.tsx:222)"}, "properties": {"repobilityId": "2c6131c43dbf8172", "scanner": "scanner-primary", "fingerprint": "0984b9eb0f3a417c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd2feebfd319e8e7", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/leads/${id} (components/v5/leads-v2.tsx:961)"}, "properties": {"repobilityId": "dad702d520790746", "scanner": "scanner-primary", "fingerprint": "bd2feebfd319e8e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aaca03e9b47f1976", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/audits?status=${tab} (components/v5/audits-v2.tsx:96)"}, "properties": {"repobilityId": "b572ac461d89a5bf", "scanner": "scanner-primary", "fingerprint": "aaca03e9b47f1976", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b9dc5846840ed16b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/audits/${id}/send (components/v5/audits-v2.tsx:392)"}, "properties": {"repobilityId": "6796a31b2ad6b70b", "scanner": "scanner-primary", "fingerprint": "b9dc5846840ed16b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-993f2bc72309c539", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/audits/${id}/skip (components/v5/audits-v2.tsx:403)"}, "properties": {"repobilityId": "f5e4b57c5bbca473", "scanner": "scanner-primary", "fingerprint": "993f2bc72309c539", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c2ce8a91b4095bd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/inbox/feed (components/v5/inbox-v2.tsx:190)"}, "properties": {"repobilityId": "972388b3fe44e1b6", "scanner": "scanner-primary", "fingerprint": "2c2ce8a91b4095bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e22e219b0c3d414", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${activeId} (components/v5/inbox-v2.tsx:213)"}, "properties": {"repobilityId": "507600bac2703882", "scanner": "scanner-primary", "fingerprint": "4e22e219b0c3d414", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4abff175db049475", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${thread.id}/draft (components/v5/inbox-v2.tsx:645)"}, "properties": {"repobilityId": "f5acb8b1be24da37", "scanner": "scanner-primary", "fingerprint": "4abff175db049475", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7616601f73f186e3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${thread.id}/reply (components/v5/inbox-v2.tsx:674)"}, "properties": {"repobilityId": "5171977acf8d7b98", "scanner": "scanner-primary", "fingerprint": "7616601f73f186e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e3724a4b69df7cb8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/outcome (components/v5/inbox-v2.tsx:1341)"}, "properties": {"repobilityId": "e211cfeda7bcd5ae", "scanner": "scanner-primary", "fingerprint": "e3724a4b69df7cb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-06e96bc7623c52d5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/mute (components/v5/inbox-v2.tsx:1351)"}, "properties": {"repobilityId": "a0f6bc91c102c77d", "scanner": "scanner-primary", "fingerprint": "06e96bc7623c52d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a550726a1e34773", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/inbox/thread/${threadId}/note (components/v5/inbox-v2.tsx:1362)"}, "properties": {"repobilityId": "cde8d8acc417fdc4", "scanner": "scanner-primary", "fingerprint": "2a550726a1e34773", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2080e8caae6e27a6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/employees/overlay (components/v5/employee-tune-drawer.tsx:105)"}, "properties": {"repobilityId": "b9347cfaba683806", "scanner": "scanner-primary", "fingerprint": "2080e8caae6e27a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da2b773eebe7b9cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/storage/sign (components/v5/pdf-viewer-inner.tsx:106)"}, "properties": {"repobilityId": "e0a7b5433800015c", "scanner": "scanner-primary", "fingerprint": "da2b773eebe7b9cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a2e8c43dbd1446d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/employees/builder (components/v5/employee-builder-wizard.tsx:143)"}, "properties": {"repobilityId": "d4d69741e48b1699", "scanner": "scanner-primary", "fingerprint": "4a2e8c43dbd1446d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4163fada0478f203", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/reputation/draft (components/v5/reputation-hub.tsx:162)"}, "properties": {"repobilityId": "c2b4e69bb793e87c", "scanner": "scanner-primary", "fingerprint": "4163fada0478f203", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a42b3f4b0cee60b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/campaigns/feed (components/v5/campaigns-v2.tsx:99)"}, "properties": {"repobilityId": "7a1371ec3a2b4f54", "scanner": "scanner-primary", "fingerprint": "5a42b3f4b0cee60b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-626f889caeeda52c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/campaigns/create (components/v5/campaigns-v2.tsx:381)"}, "properties": {"repobilityId": "df12ed912d2265d3", "scanner": "scanner-primary", "fingerprint": "626f889caeeda52c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d4938c267597edc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/agents/feed (components/v5/agents-v2.tsx:95)"}, "properties": {"repobilityId": "26a9e9b2b68cc712", "scanner": "scanner-primary", "fingerprint": "3d4938c267597edc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-733b210f3fc4a551", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/agents/${id}/${action} (components/v5/agents-v2.tsx:439)"}, "properties": {"repobilityId": "84e749f36ec61569", "scanner": "scanner-primary", "fingerprint": "733b210f3fc4a551", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f1f45fe3c1eabda8", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite (components/v5/team-invite-form.tsx:30)"}, "properties": {"repobilityId": "9b8e8b72c3af9b79", "scanner": "scanner-primary", "fingerprint": "f1f45fe3c1eabda8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1ba145455a0dc882", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/feed (components/v5/admin-home.tsx:145)"}, "properties": {"repobilityId": "927c4f3da7ee8a22", "scanner": "scanner-primary", "fingerprint": "1ba145455a0dc882", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d729aff526c730e1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/v5/admin-home.tsx:146)"}, "properties": {"repobilityId": "06acb0659852021a", "scanner": "scanner-primary", "fingerprint": "d729aff526c730e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-343ae6bfe79dc7e8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/activity?limit=8 (components/v5/admin-home.tsx:147)"}, "properties": {"repobilityId": "1c414d432b1efa04", "scanner": "scanner-primary", "fingerprint": "343ae6bfe79dc7e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-65bd9db6974a9a59", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/pricing/cohort (components/v5/admin-home.tsx:148)"}, "properties": {"repobilityId": "622bcc60f6eebe84", "scanner": "scanner-primary", "fingerprint": "65bd9db6974a9a59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d0ff57c7adab442", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/workspaces/${tenant.id}/settings (components/app/workspace-settings-form.tsx:104)"}, "properties": {"repobilityId": "39df8f48f70aba06", "scanner": "scanner-primary", "fingerprint": "3d0ff57c7adab442", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c63848d61c26ff52", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/health/pulse (components/app/health-pulse.tsx:49)"}, "properties": {"repobilityId": "5eca41b66d284983", "scanner": "scanner-primary", "fingerprint": "c63848d61c26ff52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e02610c47628f36", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/onboarding/queue-count (components/app/sidebar.tsx:409)"}, "properties": {"repobilityId": "6d1680bab01ef3fe", "scanner": "scanner-primary", "fingerprint": "3e02610c47628f36", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b4a3cecf5ca991c", "level": "error", "message": {"text": "Dangling fetch: GET /api/runs/${runId} (components/app/run-inspect-drawer.tsx:69)"}, "properties": {"repobilityId": "a3713e8a35a907c8", "scanner": "scanner-primary", "fingerprint": "8b4a3cecf5ca991c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8fc9f62280c9785", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${a.id}/approve (components/app/unified-inbox-v2.tsx:288)"}, "properties": {"repobilityId": "d3795571e2a46659", "scanner": "scanner-primary", "fingerprint": "e8fc9f62280c9785", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90e0b72ebb09f14e", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${a.id}/reject (components/app/unified-inbox-v2.tsx:306)"}, "properties": {"repobilityId": "8cd589e753506722", "scanner": "scanner-primary", "fingerprint": "90e0b72ebb09f14e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-18d2f01281ff2cee", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/delete (components/app/unified-inbox-v2.tsx:349)"}, "properties": {"repobilityId": "f5f9680e181c84a0", "scanner": "scanner-primary", "fingerprint": "18d2f01281ff2cee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3fdbb2d0b68b236f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants/switch-and-go (components/app/exit-ghost-floating.tsx:51)"}, "properties": {"repobilityId": "671b5659da448d5c", "scanner": "scanner-primary", "fingerprint": "3fdbb2d0b68b236f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5dbeb9b1f84a1816", "level": "error", "message": {"text": "Dangling fetch: POST /api/compose (components/app/compose-drawer.tsx:54)"}, "properties": {"repobilityId": "ae42295b1d2d3d03", "scanner": "scanner-primary", "fingerprint": "5dbeb9b1f84a1816", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b24b782554712304", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/home-chat-starter.tsx:45)"}, "properties": {"repobilityId": "e80911c4961a8c8d", "scanner": "scanner-primary", "fingerprint": "b24b782554712304", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07dbcb261c45db76", "level": "error", "message": {"text": "Dangling fetch: GET /api/tenant-api-keys (components/app/api-keys-panel.tsx:30)"}, "properties": {"repobilityId": "81f2387d37e93d04", "scanner": "scanner-primary", "fingerprint": "07dbcb261c45db76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a8fa59da84d97f17", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-api-keys (components/app/api-keys-panel.tsx:43)"}, "properties": {"repobilityId": "6e84d11e66d2e134", "scanner": "scanner-primary", "fingerprint": "a8fa59da84d97f17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a685a50491b6cf16", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/api-keys-panel.tsx:62)"}, "properties": {"repobilityId": "676db5f1a8fc997f", "scanner": "scanner-primary", "fingerprint": "a685a50491b6cf16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b788afcfb971796", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite (components/app/team-settings-client.tsx:60)"}, "properties": {"repobilityId": "e9227d6c50207a79", "scanner": "scanner-primary", "fingerprint": "4b788afcfb971796", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d156ef48b97422f3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/team-settings-client.tsx:83)"}, "properties": {"repobilityId": "5de7495caed4b22c", "scanner": "scanner-primary", "fingerprint": "d156ef48b97422f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7a97405fc3d2f86", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/team-settings-client.tsx:97)"}, "properties": {"repobilityId": "a97f1d35c2affd03", "scanner": "scanner-primary", "fingerprint": "a7a97405fc3d2f86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1986bfa1d76f41ac", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/settings/business-profile (components/app/business-profile-form.tsx:200)"}, "properties": {"repobilityId": "4c5357dc0bdf5301", "scanner": "scanner-primary", "fingerprint": "1986bfa1d76f41ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38b58093793ea52e", "level": "error", "message": {"text": "Dangling fetch: GET /api/activation-milestones?tenant=${tenantId} (components/app/activation-milestones-widget.tsx:35)"}, "properties": {"repobilityId": "1cf853194f718953", "scanner": "scanner-primary", "fingerprint": "38b58093793ea52e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b0abd51181601d7", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/provision-assistant (components/app/voice-setup-card.tsx:36)"}, "properties": {"repobilityId": "2467c866a3a9c9c8", "scanner": "scanner-primary", "fingerprint": "1b0abd51181601d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5944f645d6edb15", "level": "error", "message": {"text": "Dangling fetch: GET /api/activity (components/app/activity-feed.tsx:79)"}, "properties": {"repobilityId": "3724e244d09d6996", "scanner": "scanner-primary", "fingerprint": "c5944f645d6edb15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fd2f8c3130996f2", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/business-hours (components/app/business-hours-card.tsx:33)"}, "properties": {"repobilityId": "1a24f3b47f547ecc", "scanner": "scanner-primary", "fingerprint": "4fd2f8c3130996f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d98ac0e549fc1a21", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/tenant-switcher.tsx:37)"}, "properties": {"repobilityId": "988b1852e6ccb906", "scanner": "scanner-primary", "fingerprint": "d98ac0e549fc1a21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13b7af6e4b656fd0", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants/switch (components/app/tenant-switcher.tsx:52)"}, "properties": {"repobilityId": "e84e31608732c6e0", "scanner": "scanner-primary", "fingerprint": "13b7af6e4b656fd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68e0d09fb56ebffa", "level": "error", "message": {"text": "Dangling fetch: GET /api/approvals?status=pending (components/app/inbox-hub-tabs.tsx:13)"}, "properties": {"repobilityId": "51ec87e29ced0077", "scanner": "scanner-primary", "fingerprint": "68e0d09fb56ebffa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b76d733deb4c37e", "level": "error", "message": {"text": "Dangling fetch: GET /api/settings/team (components/app/settings/team-panel.tsx:81)"}, "properties": {"repobilityId": "0e0b9717e6a03da8", "scanner": "scanner-primary", "fingerprint": "6b76d733deb4c37e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-75aeb687bcee5378", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite (components/app/settings/team-panel.tsx:97)"}, "properties": {"repobilityId": "e8a5bb0625a9a849", "scanner": "scanner-primary", "fingerprint": "75aeb687bcee5378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e6018ab82e3dffe", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (components/app/settings/team-panel.tsx:157)"}, "properties": {"repobilityId": "4510f26372b678e8", "scanner": "scanner-primary", "fingerprint": "0e6018ab82e3dffe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1c031190ed4f75f", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite/${token}/resend (components/app/settings/team-panel.tsx:168)"}, "properties": {"repobilityId": "2dec552910761b70", "scanner": "scanner-primary", "fingerprint": "b1c031190ed4f75f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c1f584a5a09723a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:185)"}, "properties": {"repobilityId": "0d3f773c0dacebc0", "scanner": "scanner-primary", "fingerprint": "9c1f584a5a09723a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46e339918e27c212", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/settings/team/member/${userId} (components/app/settings/team-panel.tsx:202)"}, "properties": {"repobilityId": "86f79e6c5d738deb", "scanner": "scanner-primary", "fingerprint": "46e339918e27c212", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c495f875a8eb56a8", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/profile (components/app/settings/profile-form.tsx:27)"}, "properties": {"repobilityId": "5690f21bb1559f59", "scanner": "scanner-primary", "fingerprint": "c495f875a8eb56a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d0be06ebe6b4a56", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/alert-recipients (components/app/settings/alert-recipients-manager.tsx:29)"}, "properties": {"repobilityId": "c7118db07c70cb29", "scanner": "scanner-primary", "fingerprint": "9d0be06ebe6b4a56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f2c4409235ce4d4", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:47)"}, "properties": {"repobilityId": "8124596146409301", "scanner": "scanner-primary", "fingerprint": "3f2c4409235ce4d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a35fdde62e29d0c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/alert-recipients/${id} (components/app/settings/alert-recipients-manager.tsx:56)"}, "properties": {"repobilityId": "bffe3a059f0e8eec", "scanner": "scanner-primary", "fingerprint": "1a35fdde62e29d0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f47ed542ddb42bd", "level": "error", "message": {"text": "Dangling fetch: GET /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:71)"}, "properties": {"repobilityId": "b002ac441600cf9b", "scanner": "scanner-primary", "fingerprint": "0f47ed542ddb42bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19c57463ccfa23a7", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/meeting-settings (components/app/meetings/meeting-settings-panel.tsx:88)"}, "properties": {"repobilityId": "23f01ca8c29d3856", "scanner": "scanner-primary", "fingerprint": "19c57463ccfa23a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4152e2ed2f9102a5", "level": "error", "message": {"text": "Dangling fetch: POST /api/triggers (components/app/triggers/triggers-ui.tsx:21)"}, "properties": {"repobilityId": "2ed04162d76aa7bc", "scanner": "scanner-primary", "fingerprint": "4152e2ed2f9102a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4176fb808c5330e5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/triggers?id=${id} (components/app/triggers/triggers-ui.tsx:36)"}, "properties": {"repobilityId": "d2e53dbf964a5dae", "scanner": "scanner-primary", "fingerprint": "4176fb808c5330e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a3c8997ba61dd04", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/tenants/agent-toggle.tsx:22)"}, "properties": {"repobilityId": "cbbea8dead8af07d", "scanner": "scanner-primary", "fingerprint": "7a3c8997ba61dd04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b281979b641bffdb", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants (components/app/tenants/onboarding-wizard.tsx:62)"}, "properties": {"repobilityId": "42a1420dfe31e93b", "scanner": "scanner-primary", "fingerprint": "b281979b641bffdb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fafcd6cc30c226f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants (components/app/tenants/admin-new-workspace-flow.tsx:73)"}, "properties": {"repobilityId": "b1328a0a36db7640", "scanner": "scanner-primary", "fingerprint": "2fafcd6cc30c226f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02f096196dd04221", "level": "error", "message": {"text": "Dangling fetch: POST /api/templates (components/app/templates/template-preview-drawer.tsx:72)"}, "properties": {"repobilityId": "71f7adab49036979", "scanner": "scanner-primary", "fingerprint": "02f096196dd04221", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e28bc16e63255f80", "level": "error", "message": {"text": "Dangling fetch: PUT /api/email-settings?account=${account.id} (components/app/emails/emails-settings-ui.tsx:64)"}, "properties": {"repobilityId": "830220e4107124bf", "scanner": "scanner-primary", "fingerprint": "e28bc16e63255f80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5169d0d0eb68b67", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/inbox-clear-button.tsx:68)"}, "properties": {"repobilityId": "e859660afdc4db51", "scanner": "scanner-primary", "fingerprint": "f5169d0d0eb68b67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f14f3b4c3f698d1", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/tasks/lindy-tasks-pane.tsx:306)"}, "properties": {"repobilityId": "6c6b9dd4fd483998", "scanner": "scanner-primary", "fingerprint": "7f14f3b4c3f698d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60f2dc06d7ccbd04", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-recover (components/app/tasks/lindy-tasks-pane.tsx:334)"}, "properties": {"repobilityId": "a69b33fa44d7b698", "scanner": "scanner-primary", "fingerprint": "60f2dc06d7ccbd04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ebc2e2fd6711f8a4", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/lindy-tasks-pane.tsx:365)"}, "properties": {"repobilityId": "9f01f28c8b6ec778", "scanner": "scanner-primary", "fingerprint": "ebc2e2fd6711f8a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-025883164cc0b498", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-purge (components/app/tasks/inbox-clear-all-permanently.tsx:32)"}, "properties": {"repobilityId": "16f18781cd05913b", "scanner": "scanner-primary", "fingerprint": "025883164cc0b498", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-95f42965fae96c65", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/audit/stats (components/app/home/audit-tile.tsx:86)"}, "properties": {"repobilityId": "e781bf8ab8aa69a9", "scanner": "scanner-primary", "fingerprint": "95f42965fae96c65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2aeaa2b1ee029a9a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/activity (components/app/home/admin-command-center.tsx:135)"}, "properties": {"repobilityId": "13b40aa20384e788", "scanner": "scanner-primary", "fingerprint": "2aeaa2b1ee029a9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60895f17e13776ab", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/feed (components/app/home/admin-command-center.tsx:147)"}, "properties": {"repobilityId": "2c9ed095ccb27acd", "scanner": "scanner-primary", "fingerprint": "60895f17e13776ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e2d493d84e5410df", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/onboarding/recent?limit=5 (components/app/home/admin-command-center.tsx:671)"}, "properties": {"repobilityId": "273bd5e83c74ff42", "scanner": "scanner-primary", "fingerprint": "e2d493d84e5410df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4537b1f7744bd368", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/home/outbound-overview (components/app/home/outbound-overview.tsx:63)"}, "properties": {"repobilityId": "83acb39c22048087", "scanner": "scanner-primary", "fingerprint": "4537b1f7744bd368", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93d36f0a4c62dd3a", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/bookings/disposition (components/app/home/command-center-widgets.tsx:96)"}, "properties": {"repobilityId": "1617c420ed5e47dc", "scanner": "scanner-primary", "fingerprint": "93d36f0a4c62dd3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9dcb46838d40f9e", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/today (components/app/home/command-center-widgets.tsx:153)"}, "properties": {"repobilityId": "3449335eaaa6f521", "scanner": "scanner-primary", "fingerprint": "e9dcb46838d40f9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f60e42b1e3d28cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-toggle.tsx:16)"}, "properties": {"repobilityId": "094bd683e28ac8f5", "scanner": "scanner-primary", "fingerprint": "8f60e42b1e3d28cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb9c13d8a724a333", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/qa/onboarding-smoke (components/app/admin/onboarding-smoke-runner.tsx:57)"}, "properties": {"repobilityId": "6e2642a5561e923c", "scanner": "scanner-primary", "fingerprint": "cb9c13d8a724a333", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5c8acb30002d022", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/qa/persona-drafts (components/app/admin/persona-drafts-runner.tsx:46)"}, "properties": {"repobilityId": "46b73952760caa6a", "scanner": "scanner-primary", "fingerprint": "f5c8acb30002d022", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c7ef5f12af0f759", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/view-as (components/app/admin/view-as-banner.tsx:17)"}, "properties": {"repobilityId": "fd11abfcd3234e24", "scanner": "scanner-primary", "fingerprint": "5c7ef5f12af0f759", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-32bfae745a3dcb9e", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agents/${agentId}/change-persona (components/app/admin/onboarding-row-actions.tsx:58)"}, "properties": {"repobilityId": "95d40f23c1dc24dc", "scanner": "scanner-primary", "fingerprint": "32bfae745a3dcb9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d58be02a9946addd", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/coupons (components/app/admin/coupons-manager.tsx:50)"}, "properties": {"repobilityId": "4384ba0c9f82fa31", "scanner": "scanner-primary", "fingerprint": "d58be02a9946addd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-18bad1d7a9c7975d", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/coupons (components/app/admin/coupons-manager.tsx:71)"}, "properties": {"repobilityId": "df2b6e6ed1127b4e", "scanner": "scanner-primary", "fingerprint": "18bad1d7a9c7975d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-676c38a604340090", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/coupons/${id} (components/app/admin/coupons-manager.tsx:97)"}, "properties": {"repobilityId": "f4a1d1765517b09c", "scanner": "scanner-primary", "fingerprint": "676c38a604340090", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8679b98bd0a65053", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/orphans/cleanup (components/app/admin/cleanup-orphans-button.tsx:21)"}, "properties": {"repobilityId": "6ab9b89a8a6269d2", "scanner": "scanner-primary", "fingerprint": "8679b98bd0a65053", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ac40fa1f7e1cf59", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/tenants/bulk (components/app/admin/tenants-bulk-bar.tsx:30)"}, "properties": {"repobilityId": "1f39bb6c32444f5c", "scanner": "scanner-primary", "fingerprint": "3ac40fa1f7e1cf59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b74505946c4081f5", "level": "error", "message": {"text": "Dangling fetch: GET /api/tenant-knowledge?kind=${k.value} (components/app/agents/knowledge-panel.tsx:67)"}, "properties": {"repobilityId": "e50c56201e31f35c", "scanner": "scanner-primary", "fingerprint": "b74505946c4081f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72bafa63fb133056", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:83)"}, "properties": {"repobilityId": "683d348510c94fc3", "scanner": "scanner-primary", "fingerprint": "72bafa63fb133056", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c4158c58374c07a8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/knowledge-panel.tsx:102)"}, "properties": {"repobilityId": "a8f16df3698d678e", "scanner": "scanner-primary", "fingerprint": "c4158c58374c07a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-84038fa342e1484d", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:126)"}, "properties": {"repobilityId": "7bd3f7aff3f78b42", "scanner": "scanner-primary", "fingerprint": "84038fa342e1484d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3cecf35b21af13bb", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-knowledge/upload (components/app/agents/knowledge-panel.tsx:139)"}, "properties": {"repobilityId": "4f754b386a365426", "scanner": "scanner-primary", "fingerprint": "3cecf35b21af13bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d88bfc938d7a1c1", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/knowledge-panel.tsx:142)"}, "properties": {"repobilityId": "97aa308d461ee1eb", "scanner": "scanner-primary", "fingerprint": "6d88bfc938d7a1c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bef2db415b2427d2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/agents/${initial.id} (components/app/agents/agent-form.tsx:128)"}, "properties": {"repobilityId": "21221b033fa1cc6f", "scanner": "scanner-primary", "fingerprint": "bef2db415b2427d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ece4458e292b400f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${a.id} (components/app/agents/agents-manage-table.tsx:61)"}, "properties": {"repobilityId": "363d321fea47a11a", "scanner": "scanner-primary", "fingerprint": "ece4458e292b400f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3872663f02948780", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/runs-panel.tsx:70)"}, "properties": {"repobilityId": "7fe08672eaefc5aa", "scanner": "scanner-primary", "fingerprint": "3872663f02948780", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac2f3f8ba9ffb017", "level": "error", "message": {"text": "Dangling fetch: GET /api/actions (components/app/agents/action-picker.tsx:71)"}, "properties": {"repobilityId": "28483648c9a02d9f", "scanner": "scanner-primary", "fingerprint": "ac2f3f8ba9ffb017", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-457c10e927f1f257", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-cold-reply (components/app/agents/cold-reply-tester.tsx:33)"}, "properties": {"repobilityId": "c67af9579b360d93", "scanner": "scanner-primary", "fingerprint": "457c10e927f1f257", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b12f64b631e7e0b", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-canvas.tsx:228)"}, "properties": {"repobilityId": "fc99a35b92b98c9a", "scanner": "scanner-primary", "fingerprint": "7b12f64b631e7e0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7dfefd7a9f76faed", "level": "error", "message": {"text": "Dangling fetch: GET /api/agent-triggers?agent_id=${agentId} (components/app/agents/triggers-panel.tsx:117)"}, "properties": {"repobilityId": "e14f14a4926a42e5", "scanner": "scanner-primary", "fingerprint": "7dfefd7a9f76faed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-673b6085cdaee6a5", "level": "error", "message": {"text": "Dangling fetch: GET /api/connected-accounts?provider=google (components/app/agents/triggers-panel.tsx:118)"}, "properties": {"repobilityId": "05d7675c75adfa26", "scanner": "scanner-primary", "fingerprint": "673b6085cdaee6a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f61559267e6a7ece", "level": "error", "message": {"text": "Dangling fetch: GET /api/connected-accounts?provider=microsoft (components/app/agents/triggers-panel.tsx:119)"}, "properties": {"repobilityId": "1e4d294692e8bbc8", "scanner": "scanner-primary", "fingerprint": "f61559267e6a7ece", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da1dd50090363022", "level": "error", "message": {"text": "Dangling fetch: GET /api/connected-accounts?provider=imap (components/app/agents/triggers-panel.tsx:120)"}, "properties": {"repobilityId": "767abe61405986f9", "scanner": "scanner-primary", "fingerprint": "da1dd50090363022", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c80e79a59c3c5d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/gmail/register (components/app/agents/triggers-panel.tsx:394)"}, "properties": {"repobilityId": "96c67e74f3d7151e", "scanner": "scanner-primary", "fingerprint": "5c80e79a59c3c5d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a70aca8878a041d7", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/microsoft/register (components/app/agents/triggers-panel.tsx:418)"}, "properties": {"repobilityId": "dace9a2e8567baec", "scanner": "scanner-primary", "fingerprint": "a70aca8878a041d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35b38d24f4de250e", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/triggers-panel.tsx:456)"}, "properties": {"repobilityId": "1a35a18c25bd9cc2", "scanner": "scanner-primary", "fingerprint": "35b38d24f4de250e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22cd0f1dea03e50a", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/cold-inbox (components/app/agents/triggers-panel.tsx:508)"}, "properties": {"repobilityId": "2753c96741f116a9", "scanner": "scanner-primary", "fingerprint": "22cd0f1dea03e50a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f083e76054c8eb57", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/schedule (components/app/agents/triggers-panel.tsx:562)"}, "properties": {"repobilityId": "b6de560a38d92594", "scanner": "scanner-primary", "fingerprint": "f083e76054c8eb57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3eb459788ad35e02", "level": "error", "message": {"text": "Dangling fetch: GET /api/actions (components/app/agents/step-config-rail.tsx:80)"}, "properties": {"repobilityId": "5b206e6cce7e9d27", "scanner": "scanner-primary", "fingerprint": "3eb459788ad35e02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37eb989121aa8d7a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/step-config-rail.tsx:97)"}, "properties": {"repobilityId": "8645e104935bc307", "scanner": "scanner-primary", "fingerprint": "37eb989121aa8d7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee64190fd34ad928", "level": "error", "message": {"text": "Dangling fetch: POST /api/agent-triggers/twilio-sms (components/app/agents/sms-launch-panel.tsx:38)"}, "properties": {"repobilityId": "4d612100f7cc2a2e", "scanner": "scanner-primary", "fingerprint": "ee64190fd34ad928", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-21eca915dcc55305", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbound/twilio/sms-test (components/app/agents/sms-launch-panel.tsx:53)"}, "properties": {"repobilityId": "220597e7a3b52f02", "scanner": "scanner-primary", "fingerprint": "21eca915dcc55305", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cbe2fc3b69367e71", "level": "error", "message": {"text": "Dangling fetch: POST /api/cold-email/bulk-compose (components/app/agents/cold-email-bulk.tsx:61)"}, "properties": {"repobilityId": "6bcb2f209079296d", "scanner": "scanner-primary", "fingerprint": "cbe2fc3b69367e71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-447c30605af8350e", "level": "error", "message": {"text": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/app/agents/cold-email-bulk.tsx:81)"}, "properties": {"repobilityId": "82a523e19ec6fbc5", "scanner": "scanner-primary", "fingerprint": "447c30605af8350e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da2ab2383e02dda5", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/test-run (components/app/agents/test-run-drawer.tsx:86)"}, "properties": {"repobilityId": "e6bb443e64615a7e", "scanner": "scanner-primary", "fingerprint": "da2ab2383e02dda5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12f81b23c10b0bf3", "level": "error", "message": {"text": "Dangling fetch: GET /api/tenant-knowledge?kind=voice_sample (components/app/agents/brand-voice-panel.tsx:18)"}, "properties": {"repobilityId": "484589c8ee1ac701", "scanner": "scanner-primary", "fingerprint": "12f81b23c10b0bf3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf1a6eb9ae52dee2", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-knowledge (components/app/agents/brand-voice-panel.tsx:29)"}, "properties": {"repobilityId": "7f6c91e38d15828f", "scanner": "scanner-primary", "fingerprint": "cf1a6eb9ae52dee2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6274c62c6d89cc10", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/tenant-knowledge/${id} (components/app/agents/brand-voice-panel.tsx:47)"}, "properties": {"repobilityId": "fffc6ef29836d063", "scanner": "scanner-primary", "fingerprint": "6274c62c6d89cc10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e361ccefcc9ee08", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agentId} (components/app/agents/agent-editor-actions.tsx:41)"}, "properties": {"repobilityId": "f5071f72f0e35eaa", "scanner": "scanner-primary", "fingerprint": "1e361ccefcc9ee08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-20f4f63658ec0ed6", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agents/${agentId}/approve (components/app/agents/agent-editor-actions.tsx:59)"}, "properties": {"repobilityId": "048dc583194e1606", "scanner": "scanner-primary", "fingerprint": "20f4f63658ec0ed6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9f62c0506bd42dbc", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/chat (components/app/agents/chat-interface.tsx:53)"}, "properties": {"repobilityId": "1ed9e1d964079228", "scanner": "scanner-primary", "fingerprint": "9f62c0506bd42dbc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6c0da2f62174de11", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${id} (components/app/agents/agents-grid.tsx:72)"}, "properties": {"repobilityId": "556632f4b92a7c46", "scanner": "scanner-primary", "fingerprint": "6c0da2f62174de11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3ffae316936146f", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${id}/duplicate (components/app/agents/agents-grid.tsx:85)"}, "properties": {"repobilityId": "a945cfefd5188c87", "scanner": "scanner-primary", "fingerprint": "d3ffae316936146f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4b02898d2b9f83b", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/agents/${id} (components/app/agents/agents-grid.tsx:101)"}, "properties": {"repobilityId": "dd1e815020f556f5", "scanner": "scanner-primary", "fingerprint": "a4b02898d2b9f83b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d2184bd225df485", "level": "error", "message": {"text": "Dangling fetch: GET /api/connections/limits (components/app/agents/new-agent-button.tsx:21)"}, "properties": {"repobilityId": "89341bebfa39eda7", "scanner": "scanner-primary", "fingerprint": "0d2184bd225df485", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-856fb40ce96d5cbb", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/plan-limit?category=agents (components/app/agents/new-agent-button.tsx:28)"}, "properties": {"repobilityId": "040bef41fc7456c0", "scanner": "scanner-primary", "fingerprint": "856fb40ce96d5cbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c841c376f8179c6", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/compose-cold (components/app/agents/cold-email-composer.tsx:33)"}, "properties": {"repobilityId": "b6583b6334849c59", "scanner": "scanner-primary", "fingerprint": "2c841c376f8179c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8a570bbf450b58f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${props.agentId} (components/app/agents/review-panel.tsx:149)"}, "properties": {"repobilityId": "c123999f04d5f468", "scanner": "scanner-primary", "fingerprint": "d8a570bbf450b58f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d5c237c256c03b4", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agent-triggers/${t.id} (components/app/agents/review-panel.tsx:174)"}, "properties": {"repobilityId": "257d5fee418526d3", "scanner": "scanner-primary", "fingerprint": "2d5c237c256c03b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6e5cedae1b1dc01", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/agents/${props.agentId}/tools/${encodeURIComponent(toolId)} (components/app/agents/review-panel.tsx:198)"}, "properties": {"repobilityId": "7334dca9912b0068", "scanner": "scanner-primary", "fingerprint": "e6e5cedae1b1dc01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7d096c5a761c462", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agents/${props.agentId}/approve (components/app/agents/review-panel.tsx:219)"}, "properties": {"repobilityId": "7d8296de9aa28454", "scanner": "scanner-primary", "fingerprint": "c7d096c5a761c462", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ae4d88e345495ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agents/${props.agentId}/mark-training (components/app/agents/review-panel.tsx:235)"}, "properties": {"repobilityId": "d408a851de66a84e", "scanner": "scanner-primary", "fingerprint": "8ae4d88e345495ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-967d797a3a2f934b", "level": "error", "message": {"text": "Dangling fetch: GET /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:118)"}, "properties": {"repobilityId": "4fcdb15e8a8bc677", "scanner": "scanner-primary", "fingerprint": "967d797a3a2f934b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da59a5e37416dd07", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${agentId}/logic-rules (components/app/agents/logic-panel.tsx:131)"}, "properties": {"repobilityId": "26338007bf41aa42", "scanner": "scanner-primary", "fingerprint": "da59a5e37416dd07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-157adb869479ca4f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:157)"}, "properties": {"repobilityId": "e087ebff85afb7fe", "scanner": "scanner-primary", "fingerprint": "157adb869479ca4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6a722703656236a8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/agents/${agentId}/logic-rules/${rule.id} (components/app/agents/logic-panel.tsx:171)"}, "properties": {"repobilityId": "fc5f01314439183a", "scanner": "scanner-primary", "fingerprint": "6a722703656236a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c9045497c6777f7", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${agent.id} (components/app/agents/agent-top-bar.tsx:54)"}, "properties": {"repobilityId": "06609231b51d4671", "scanner": "scanner-primary", "fingerprint": "8c9045497c6777f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-284fd40ecd232c5d", "level": "error", "message": {"text": "Dangling fetch: GET /api/approvals?status=${filter} (components/app/approvals/approvals-inbox.tsx:65)"}, "properties": {"repobilityId": "cf54cb76d9d2631e", "scanner": "scanner-primary", "fingerprint": "284fd40ecd232c5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25f28359bb6da429", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${item.id}/approve (components/app/approvals/approvals-inbox.tsx:95)"}, "properties": {"repobilityId": "08efcfd59ceb21b5", "scanner": "scanner-primary", "fingerprint": "25f28359bb6da429", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be80c712b69cf864", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${item.id}/reject (components/app/approvals/approvals-inbox.tsx:113)"}, "properties": {"repobilityId": "62b0a95cb13f6a00", "scanner": "scanner-primary", "fingerprint": "be80c712b69cf864", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-215e25f5c0d60a52", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-api-keys (components/app/developer/api-keys-panel.tsx:28)"}, "properties": {"repobilityId": "23e6c186feaefd84", "scanner": "scanner-primary", "fingerprint": "215e25f5c0d60a52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5653ca3e1e733ff9", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/tenant-api-keys/${id} (components/app/developer/api-keys-panel.tsx:53)"}, "properties": {"repobilityId": "9350b145ce360dda", "scanner": "scanner-primary", "fingerprint": "5653ca3e1e733ff9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc7cba82fbef7077", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/hire/dismiss (components/app/onboarding/setup-ai-teammate-banner.tsx:60)"}, "properties": {"repobilityId": "a2b916db6e99de45", "scanner": "scanner-primary", "fingerprint": "cc7cba82fbef7077", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-32110bc84735c728", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:65)"}, "properties": {"repobilityId": "d3d2dd6db7035883", "scanner": "scanner-primary", "fingerprint": "32110bc84735c728", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3459932d0a77c3c5", "level": "error", "message": {"text": "Dangling fetch: PUT /api/campaigns/${campaign.id}/steps (components/app/campaigns/campaign-builder.tsx:71)"}, "properties": {"repobilityId": "f85bb058e32c44b9", "scanner": "scanner-primary", "fingerprint": "3459932d0a77c3c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b6d4f95799e59a13", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:85)"}, "properties": {"repobilityId": "826a02d7e28a5154", "scanner": "scanner-primary", "fingerprint": "b6d4f95799e59a13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-862c28e9c6f4b8a4", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/campaigns/${campaign.id} (components/app/campaigns/campaign-builder.tsx:92)"}, "properties": {"repobilityId": "6fc980b9cedb3f40", "scanner": "scanner-primary", "fingerprint": "862c28e9c6f4b8a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d200f8f58246de6b", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/workflows/${workflow.id} (components/app/workflows/editor.tsx:120)"}, "properties": {"repobilityId": "06eb8104ec561f6e", "scanner": "scanner-primary", "fingerprint": "d200f8f58246de6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9cdf2dc4dbd6c26", "level": "error", "message": {"text": "Dangling fetch: POST /api/workflows/${workflow.id}/run (components/app/workflows/editor.tsx:130)"}, "properties": {"repobilityId": "9bb2fc351611ede4", "scanner": "scanner-primary", "fingerprint": "c9cdf2dc4dbd6c26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5585d162ac5dfe0e", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenant-phone-routing (components/app/connect-phone/phone-routing-client.tsx:63)"}, "properties": {"repobilityId": "e18be065695d51a3", "scanner": "scanner-primary", "fingerprint": "5585d162ac5dfe0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bd4ddb7b7fa2320", "level": "error", "message": {"text": "Dangling fetch: POST /api/migrate/lindy (components/app/migrate/lindy-migrator.tsx:107)"}, "properties": {"repobilityId": "b096a6501260a85d", "scanner": "scanner-primary", "fingerprint": "5bd4ddb7b7fa2320", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0671e2e3c652647", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/overview-client.tsx:48)"}, "properties": {"repobilityId": "b815e4cdd66d96f5", "scanner": "scanner-primary", "fingerprint": "d0671e2e3c652647", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aed0b7cfcd0be12d", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/pause (components/app/council/overview-client.tsx:69)"}, "properties": {"repobilityId": "f9c38b41c6d26f0b", "scanner": "scanner-primary", "fingerprint": "aed0b7cfcd0be12d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-542c7aae25e8357f", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/approve (components/app/council/approvals-client.tsx:55)"}, "properties": {"repobilityId": "d3f69b23722d5087", "scanner": "scanner-primary", "fingerprint": "542c7aae25e8357f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d869346ffdd117e", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/give-task (components/app/council/give-task-button.tsx:49)"}, "properties": {"repobilityId": "938064ecb2103e16", "scanner": "scanner-primary", "fingerprint": "5d869346ffdd117e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db5eb90891d61947", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/feedback (components/app/council/agent-thread.tsx:180)"}, "properties": {"repobilityId": "778c56b84b4dc93c", "scanner": "scanner-primary", "fingerprint": "db5eb90891d61947", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5dbeb175bb138972", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/run-now (components/app/council/agent-thread.tsx:206)"}, "properties": {"repobilityId": "1a58f9f22d37636f", "scanner": "scanner-primary", "fingerprint": "5dbeb175bb138972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25bf638f264ea673", "level": "error", "message": {"text": "Dangling fetch: GET /api/inbox/feed (components/app/inbox/inbox-v3.tsx:315)"}, "properties": {"repobilityId": "a75babadfe318320", "scanner": "scanner-primary", "fingerprint": "25bf638f264ea673", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-242afae6bfc88982", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:388)"}, "properties": {"repobilityId": "d6bc546a6429fd30", "scanner": "scanner-primary", "fingerprint": "242afae6bfc88982", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7b913fa9fa51ffd", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${p.id}/approve (components/app/inbox/inbox-v3.tsx:401)"}, "properties": {"repobilityId": "45eb78d6a1e11bd1", "scanner": "scanner-primary", "fingerprint": "e7b913fa9fa51ffd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d7d819677610e76", "level": "error", "message": {"text": "Dangling fetch: POST /api/runs/bulk-archive (components/app/inbox/inbox-v3.tsx:476)"}, "properties": {"repobilityId": "e7e9e2904c5f3d71", "scanner": "scanner-primary", "fingerprint": "4d7d819677610e76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d52e9364599707b", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${draftPending.id}/approve (components/app/inbox/inbox-v3.tsx:890)"}, "properties": {"repobilityId": "b8f767d8868f4514", "scanner": "scanner-primary", "fingerprint": "5d52e9364599707b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-128862e6644e3a12", "level": "error", "message": {"text": "Dangling fetch: POST /api/approvals/${draftPending.id}/reject (components/app/inbox/inbox-v3.tsx:913)"}, "properties": {"repobilityId": "82a1074a4b2c5f1b", "scanner": "scanner-primary", "fingerprint": "128862e6644e3a12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e5c91f628afdeeac", "level": "error", "message": {"text": "Dangling fetch: GET /api/inbox/conversations/${id} (components/app/inbox/conversations-pane.tsx:276)"}, "properties": {"repobilityId": "0b09c13f75d62239", "scanner": "scanner-primary", "fingerprint": "e5c91f628afdeeac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c11b47ad1d795d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/send (components/app/inbox/conversations-pane.tsx:336)"}, "properties": {"repobilityId": "ed6da7c007b1e016", "scanner": "scanner-primary", "fingerprint": "1c11b47ad1d795d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d4e09ed96d635b4d", "level": "error", "message": {"text": "Dangling fetch: POST /api/connections/twilio (components/app/connections/twilio-modal.tsx:22)"}, "properties": {"repobilityId": "10c4300a4cbc5f6b", "scanner": "scanner-primary", "fingerprint": "d4e09ed96d635b4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9df1d4d6701b1743", "level": "error", "message": {"text": "Dangling fetch: POST /api/connections/vapi (components/app/connections/vapi-modal.tsx:26)"}, "properties": {"repobilityId": "f81291df8d24e0f9", "scanner": "scanner-primary", "fingerprint": "9df1d4d6701b1743", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22f478eba1ac9b0b", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:29)"}, "properties": {"repobilityId": "01d961270a9c5546", "scanner": "scanner-primary", "fingerprint": "22f478eba1ac9b0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf895f7077be52e7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/ghl/connect?id=${id} (components/app/connections/ghl-card.tsx:47)"}, "properties": {"repobilityId": "b554eb2f3a77bf86", "scanner": "scanner-primary", "fingerprint": "cf895f7077be52e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bb5bbdee96d1641", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/ghl/connect (components/app/connections/ghl-card.tsx:122)"}, "properties": {"repobilityId": "141f20fa6c787801", "scanner": "scanner-primary", "fingerprint": "6bb5bbdee96d1641", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d6411c292a15460", "level": "error", "message": {"text": "Dangling fetch: POST /api/connections/imap (components/app/connections/imap-modal.tsx:18)"}, "properties": {"repobilityId": "617a218599f9da6b", "scanner": "scanner-primary", "fingerprint": "7d6411c292a15460", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4d1c8dcd3291ddb", "level": "error", "message": {"text": "Dangling fetch: GET /api/connections/limits (components/app/connections/connections-ui.tsx:183)"}, "properties": {"repobilityId": "b2f640700b73799f", "scanner": "scanner-primary", "fingerprint": "b4d1c8dcd3291ddb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36c84a28a07483fa", "level": "error", "message": {"text": "Dangling fetch: POST /api/retention/learn-tone (components/app/connections/connections-ui.tsx:203)"}, "properties": {"repobilityId": "f9cf323a619882fb", "scanner": "scanner-primary", "fingerprint": "36c84a28a07483fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0af6be663dc3b90f", "level": "error", "message": {"text": "Dangling fetch: POST /api/marketing/chat (components/marketing/live-chat-widget.tsx:84)"}, "properties": {"repobilityId": "d393fb304ca389e9", "scanner": "scanner-primary", "fingerprint": "0af6be663dc3b90f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7c13ff255be78a0", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:537)"}, "properties": {"repobilityId": "11b576fb8393ae15", "scanner": "scanner-primary", "fingerprint": "a7c13ff255be78a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c3f0cf8782c156a", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:542)"}, "properties": {"repobilityId": "4f71964879654e55", "scanner": "scanner-primary", "fingerprint": "4c3f0cf8782c156a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91dbf5a8751adc58", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-roofing.tsx:585)"}, "properties": {"repobilityId": "b65229acc06501c7", "scanner": "scanner-primary", "fingerprint": "91dbf5a8751adc58", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3858031d8304ad1e", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-roofing.tsx:590)"}, "properties": {"repobilityId": "6b5477e49250e164", "scanner": "scanner-primary", "fingerprint": "3858031d8304ad1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b94b6a3ef149ed2", "level": "error", "message": {"text": "Dangling fetch: POST /api/partners/apply (components/marketing/partners-apply-form.tsx:67)"}, "properties": {"repobilityId": "f97cd0805edf25b2", "scanner": "scanner-primary", "fingerprint": "1b94b6a3ef149ed2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-398ec52a376d2050", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:661)"}, "properties": {"repobilityId": "d5f61f20e28af675", "scanner": "scanner-primary", "fingerprint": "398ec52a376d2050", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-063a7529124c37a7", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:666)"}, "properties": {"repobilityId": "894e19e844fe14d7", "scanner": "scanner-primary", "fingerprint": "063a7529124c37a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5593fc6b471fc34c", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-roofing.tsx:746)"}, "properties": {"repobilityId": "836d99e85c6dd27c", "scanner": "scanner-primary", "fingerprint": "5593fc6b471fc34c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a4f96567aae821c", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-roofing.tsx:751)"}, "properties": {"repobilityId": "590a09243fb3af4a", "scanner": "scanner-primary", "fingerprint": "1a4f96567aae821c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-239f49e4a14a5f47", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:465)"}, "properties": {"repobilityId": "280e3ba0c0e216aa", "scanner": "scanner-primary", "fingerprint": "239f49e4a14a5f47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac37021364c1c0f6", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:470)"}, "properties": {"repobilityId": "6bf87a0a1b7ca709", "scanner": "scanner-primary", "fingerprint": "ac37021364c1c0f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7957df623e79b61", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-medspa.tsx:503)"}, "properties": {"repobilityId": "10b0f9846ac6903a", "scanner": "scanner-primary", "fingerprint": "f7957df623e79b61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e149416d9216bcd", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-medspa.tsx:508)"}, "properties": {"repobilityId": "9d6ee1e3e08c6338", "scanner": "scanner-primary", "fingerprint": "2e149416d9216bcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-762c5ff23520e6ca", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:649)"}, "properties": {"repobilityId": "f8ed3d24e7d05514", "scanner": "scanner-primary", "fingerprint": "762c5ff23520e6ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-18cb8e5c894230a1", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:654)"}, "properties": {"repobilityId": "ad7b912a3982014b", "scanner": "scanner-primary", "fingerprint": "18cb8e5c894230a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-919a658082d2adb3", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v5-ai-employees.tsx:734)"}, "properties": {"repobilityId": "e348d7fa6908b2db", "scanner": "scanner-primary", "fingerprint": "919a658082d2adb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4424e49a2ba6b979", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v5-ai-employees.tsx:739)"}, "properties": {"repobilityId": "bb8be32b22316a9b", "scanner": "scanner-primary", "fingerprint": "4424e49a2ba6b979", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-540088cd9ede7136", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/billing/sprint-checkout (components/marketing/sprint-checkout-button.tsx:97)"}, "properties": {"repobilityId": "0b256d6a7cad3819", "scanner": "scanner-primary", "fingerprint": "540088cd9ede7136", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b2aacdb78c743914", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:661)"}, "properties": {"repobilityId": "5b419164a3d392f1", "scanner": "scanner-primary", "fingerprint": "b2aacdb78c743914", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19ab9ba9c24fb79b", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:666)"}, "properties": {"repobilityId": "ea9c87808ba91d7d", "scanner": "scanner-primary", "fingerprint": "19ab9ba9c24fb79b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b632bfca30fc1a8a", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4.tsx:746)"}, "properties": {"repobilityId": "a46aca9ede4dbb78", "scanner": "scanner-primary", "fingerprint": "b632bfca30fc1a8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c1e1e881b55593cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4.tsx:751)"}, "properties": {"repobilityId": "33655e4218336b9c", "scanner": "scanner-primary", "fingerprint": "c1e1e881b55593cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d4aa024a3ff94098", "level": "error", "message": {"text": "Dangling fetch: GET /api/book-call/availability (components/marketing/booking-widget.tsx:63)"}, "properties": {"repobilityId": "ac6ea811a543f3d3", "scanner": "scanner-primary", "fingerprint": "d4aa024a3ff94098", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-356fe6bb01261dd3", "level": "error", "message": {"text": "Dangling fetch: POST /api/book-call (components/marketing/booking-widget.tsx:98)"}, "properties": {"repobilityId": "662f76afab5b492b", "scanner": "scanner-primary", "fingerprint": "356fe6bb01261dd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7da95814d75d50c", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:661)"}, "properties": {"repobilityId": "2d8450c83e85b3d2", "scanner": "scanner-primary", "fingerprint": "a7da95814d75d50c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b64f27b07f0c5a0", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:666)"}, "properties": {"repobilityId": "de9f3685d55f8170", "scanner": "scanner-primary", "fingerprint": "1b64f27b07f0c5a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8151f1d3d2d9b003", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/lead (components/marketing/landing-v4-medspa.tsx:746)"}, "properties": {"repobilityId": "1d5fd9148aaab8b9", "scanner": "scanner-primary", "fingerprint": "8151f1d3d2d9b003", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91d6ae3806e74172", "level": "error", "message": {"text": "Dangling fetch: POST /api/demo/voice/start (components/marketing/landing-v4-medspa.tsx:751)"}, "properties": {"repobilityId": "9a4802874edf1911", "scanner": "scanner-primary", "fingerprint": "91d6ae3806e74172", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9aa912e45ff7a788", "level": "error", "message": {"text": "Dangling fetch: POST /api/marketing/book-call (components/marketing/book-call-form.tsx:152)"}, "properties": {"repobilityId": "75dcc3cf801be0ce", "scanner": "scanner-primary", "fingerprint": "9aa912e45ff7a788", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-05fe5ba35744ea8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/book-call/availability (components/marketing/book-call-modal.tsx:124)"}, "properties": {"repobilityId": "933c9653310d3501", "scanner": "scanner-primary", "fingerprint": "05fe5ba35744ea8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bda4fd03b0dd6ee4", "level": "error", "message": {"text": "Dangling fetch: POST /api/book-call (components/marketing/book-call-modal.tsx:157)"}, "properties": {"repobilityId": "a262b0efeec08ad5", "scanner": "scanner-primary", "fingerprint": "bda4fd03b0dd6ee4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0546654e90d34f25", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/status (components/admin/status-grid.tsx:16)"}, "properties": {"repobilityId": "360949d1188f4fd0", "scanner": "scanner-primary", "fingerprint": "0546654e90d34f25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-745a0901854b99ac", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email-health (components/admin/cold-email-health-console.tsx:44)"}, "properties": {"repobilityId": "a64a405f6e23033d", "scanner": "scanner-primary", "fingerprint": "745a0901854b99ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e25a6c2c3eb9654", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-card.tsx:59)"}, "properties": {"repobilityId": "ecd3d81afd548f4b", "scanner": "scanner-primary", "fingerprint": "6e25a6c2c3eb9654", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56a2c52cb6a9a877", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/kill-switches (components/admin/kill-switch-card.tsx:71)"}, "properties": {"repobilityId": "219b44686a5260b3", "scanner": "scanner-primary", "fingerprint": "56a2c52cb6a9a877", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-64a21441cfdd934c", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/billing/metrics (components/admin/billing-admin-console.tsx:57)"}, "properties": {"repobilityId": "15b9066a74b9fd70", "scanner": "scanner-primary", "fingerprint": "64a21441cfdd934c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f4e9f2b3cd864ac7", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/billing-admin-console.tsx:58)"}, "properties": {"repobilityId": "920755da16bd5735", "scanner": "scanner-primary", "fingerprint": "f4e9f2b3cd864ac7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a18d82f8c619d9b", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:29)"}, "properties": {"repobilityId": "5b4e20b90406d07e", "scanner": "scanner-primary", "fingerprint": "0a18d82f8c619d9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e580385b72297f49", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (components/admin/invites-panel.tsx:39)"}, "properties": {"repobilityId": "338741c5036fad23", "scanner": "scanner-primary", "fingerprint": "e580385b72297f49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7c405999b181d5e", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/agent-trust/${a.key}?days=${days} (components/admin/agent-trust-console.tsx:110)"}, "properties": {"repobilityId": "7f4a086740241e0a", "scanner": "scanner-primary", "fingerprint": "d7c405999b181d5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-322752ab6569cb20", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-trust-console.tsx:281)"}, "properties": {"repobilityId": "007afeea6c3f8306", "scanner": "scanner-primary", "fingerprint": "322752ab6569cb20", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c56f39b997154515", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/kill-switches (components/admin/kill-switch-inline.tsx:46)"}, "properties": {"repobilityId": "165eabd5482466f6", "scanner": "scanner-primary", "fingerprint": "c56f39b997154515", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7abe19489c95b81f", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-sms-health (components/admin/cold-sms-health-console.tsx:38)"}, "properties": {"repobilityId": "b5d8d65cf2dc1518", "scanner": "scanner-primary", "fingerprint": "7abe19489c95b81f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62420934f804bc7e", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:30)"}, "properties": {"repobilityId": "8392c6f771ccaf06", "scanner": "scanner-primary", "fingerprint": "62420934f804bc7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2405368c77985bac", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/sms-pool/${encodeURIComponent(phone)} (components/admin/sms-pool-manager.tsx:45)"}, "properties": {"repobilityId": "e3123f54541693d6", "scanner": "scanner-primary", "fingerprint": "2405368c77985bac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d2391ae8619edd7", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/sms-pool (components/admin/sms-pool-manager.tsx:143)"}, "properties": {"repobilityId": "8b97223861fdf119", "scanner": "scanner-primary", "fingerprint": "5d2391ae8619edd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d42cc74313f617bb", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/meetings/list?${q.toString()} (components/admin/meeting-console.tsx:86)"}, "properties": {"repobilityId": "131cf1428da731e1", "scanner": "scanner-primary", "fingerprint": "d42cc74313f617bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2bf002784b085d6", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:95)"}, "properties": {"repobilityId": "8fe4134a2162038f", "scanner": "scanner-primary", "fingerprint": "a2bf002784b085d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d5980cf9ad78cff", "level": "error", "message": {"text": "Dangling fetch: PUT /api/admin/meetings/settings?tenant_id=${tenantFilter} (components/admin/meeting-console.tsx:106)"}, "properties": {"repobilityId": "f3820394030e7f37", "scanner": "scanner-primary", "fingerprint": "5d5980cf9ad78cff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-33510642aa7fd9f3", "level": "error", "message": {"text": "Dangling fetch: POST /api/meetings/start (components/admin/meeting-console.tsx:136)"}, "properties": {"repobilityId": "06c6182aa9b36489", "scanner": "scanner-primary", "fingerprint": "33510642aa7fd9f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa49866628f2ec36", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/meetings/${id} (components/admin/meeting-console.tsx:152)"}, "properties": {"repobilityId": "909151980061c8cb", "scanner": "scanner-primary", "fingerprint": "fa49866628f2ec36", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cbea86e5f154fa8", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/agent-activity?${p} (components/admin/agent-activity-console.tsx:52)"}, "properties": {"repobilityId": "0a5b5023e3f473cb", "scanner": "scanner-primary", "fingerprint": "2cbea86e5f154fa8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61a0512f4943e9fd", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/agent-activity (components/admin/agent-activity-console.tsx:70)"}, "properties": {"repobilityId": "a32c6da47514fc04", "scanner": "scanner-primary", "fingerprint": "61a0512f4943e9fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b3127fbe2c919eb", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/integration-health (components/admin/integration-health-banner.tsx:28)"}, "properties": {"repobilityId": "7fe55bf17a6298ea", "scanner": "scanner-primary", "fingerprint": "1b3127fbe2c919eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da500518c5ea20fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/prospects/pipeline (components/admin/leads-console.tsx:242)"}, "properties": {"repobilityId": "8430c9b2eb7c2504", "scanner": "scanner-primary", "fingerprint": "da500518c5ea20fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-713659b2ad52bf9e", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/leads?${params} (components/admin/leads-console.tsx:266)"}, "properties": {"repobilityId": "e233ac3d85557a31", "scanner": "scanner-primary", "fingerprint": "713659b2ad52bf9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94ef7cc779d1982b", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/leads/bulk (components/admin/leads-console.tsx:340)"}, "properties": {"repobilityId": "c692d6dd3a60ffac", "scanner": "scanner-primary", "fingerprint": "94ef7cc779d1982b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c6b2ea62bb03fd3", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/leads/export (components/admin/leads-console.tsx:361)"}, "properties": {"repobilityId": "1dfe33b95b337d7f", "scanner": "scanner-primary", "fingerprint": "2c6b2ea62bb03fd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c87d412e5d9aeb95", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/prospects (components/admin/leads-console.tsx:835)"}, "properties": {"repobilityId": "e00c1c125653f11a", "scanner": "scanner-primary", "fingerprint": "c87d412e5d9aeb95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e14a72abe215a8f3", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/prospects/bulk (components/admin/leads-console.tsx:1130)"}, "properties": {"repobilityId": "8930f00ab3b810a8", "scanner": "scanner-primary", "fingerprint": "e14a72abe215a8f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b2e4dd066eed490", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/prospects/${id}/timeline (components/admin/leads-console.tsx:1376)"}, "properties": {"repobilityId": "2074210f221ebddb", "scanner": "scanner-primary", "fingerprint": "9b2e4dd066eed490", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac9be72b24a92d1b", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/prospects/${id} (components/admin/leads-console.tsx:1391)"}, "properties": {"repobilityId": "9856d4dd0d805418", "scanner": "scanner-primary", "fingerprint": "ac9be72b24a92d1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-896a6496cae65624", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/pause (components/admin/leads-console.tsx:1406)"}, "properties": {"repobilityId": "b9ed1e35a17fcd41", "scanner": "scanner-primary", "fingerprint": "896a6496cae65624", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aed96dd0106c1d32", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/resume (components/admin/leads-console.tsx:1413)"}, "properties": {"repobilityId": "cbfa7fc485f03cb1", "scanner": "scanner-primary", "fingerprint": "aed96dd0106c1d32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1b41c86dea7072e", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/prospects/${id} (components/admin/leads-console.tsx:1430)"}, "properties": {"repobilityId": "eebf57493fb1d448", "scanner": "scanner-primary", "fingerprint": "d1b41c86dea7072e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4dfa19e0d43368a1", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/prospects/${id}/rate (components/admin/leads-console.tsx:1437)"}, "properties": {"repobilityId": "e22c1743575a4e0f", "scanner": "scanner-primary", "fingerprint": "4dfa19e0d43368a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25c99c3325afe697", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/conversion-funnel?window=${win}&channel=${channel} (components/admin/conversion-funnel-console.tsx:27)"}, "properties": {"repobilityId": "fc668f778f49ffb2", "scanner": "scanner-primary", "fingerprint": "25c99c3325afe697", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-042ebcbc3eb4af73", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/team/admins (components/admin/team-console.tsx:68)"}, "properties": {"repobilityId": "32d45f2d4609465c", "scanner": "scanner-primary", "fingerprint": "042ebcbc3eb4af73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e24cbd47d75602c2", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/team/operators (components/admin/team-console.tsx:69)"}, "properties": {"repobilityId": "9bbb8e0444826141", "scanner": "scanner-primary", "fingerprint": "e24cbd47d75602c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6eda18a4c9f6fe3", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/team/invites (components/admin/team-console.tsx:70)"}, "properties": {"repobilityId": "186727a232343bee", "scanner": "scanner-primary", "fingerprint": "e6eda18a4c9f6fe3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e26487b9d8f82e03", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/team/operator-invites (components/admin/team-console.tsx:71)"}, "properties": {"repobilityId": "b20cc5309bc4e441", "scanner": "scanner-primary", "fingerprint": "e26487b9d8f82e03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-33df3f150c7b2e28", "level": "error", "message": {"text": "Dangling fetch: GET /api/tenants (components/admin/team-console.tsx:72)"}, "properties": {"repobilityId": "a66b97a9e15e2efd", "scanner": "scanner-primary", "fingerprint": "33df3f150c7b2e28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8cebc85855e1f2b6", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/team/operators/${op.id}/workspaces (components/admin/team-console.tsx:129)"}, "properties": {"repobilityId": "2c403c16c7bf92d9", "scanner": "scanner-primary", "fingerprint": "8cebc85855e1f2b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-daded136760dbff9", "level": "error", "message": {"text": "Dangling fetch: PUT /api/admin/team/operators/${editing.op.id}/workspaces (components/admin/team-console.tsx:138)"}, "properties": {"repobilityId": "9c876e0d5173aba4", "scanner": "scanner-primary", "fingerprint": "daded136760dbff9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4632e8b5f562a509", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/team/operators/${op.id} (components/admin/team-console.tsx:150)"}, "properties": {"repobilityId": "1578aebe998d59b7", "scanner": "scanner-primary", "fingerprint": "4632e8b5f562a509", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf34de0e65c9c4f4", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/stats${tenantParam} (components/admin/cold-email-console.tsx:208)"}, "properties": {"repobilityId": "d6c709772be808fb", "scanner": "scanner-primary", "fingerprint": "cf34de0e65c9c4f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1111e96d9a3dba8", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/mailboxes${tenantParam} (components/admin/cold-email-console.tsx:218)"}, "properties": {"repobilityId": "3e66735c687a76a0", "scanner": "scanner-primary", "fingerprint": "b1111e96d9a3dba8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a70a3fd8acddaa9e", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/funnel${tenantParam} (components/admin/cold-email-console.tsx:222)"}, "properties": {"repobilityId": "4b326bc16eedef37", "scanner": "scanner-primary", "fingerprint": "a70a3fd8acddaa9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f991f3d608faf37", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/lists${tenantParam} (components/admin/cold-email-console.tsx:226)"}, "properties": {"repobilityId": "414c84ec535dc933", "scanner": "scanner-primary", "fingerprint": "0f991f3d608faf37", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07407f70e3c2d757", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/sequences${tenantParam} (components/admin/cold-email-console.tsx:230)"}, "properties": {"repobilityId": "06f523f24574f86b", "scanner": "scanner-primary", "fingerprint": "07407f70e3c2d757", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0aaed90c7384be4c", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/cold-email/settings?tenant_id=${tenantId} (components/admin/cold-email-console.tsx:235)"}, "properties": {"repobilityId": "49335e2acb7792c9", "scanner": "scanner-primary", "fingerprint": "0aaed90c7384be4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3bc8e496280f1664", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/billing/tenants (components/admin/cold-email-console.tsx:249)"}, "properties": {"repobilityId": "f9bdeb1db4411ea3", "scanner": "scanner-primary", "fingerprint": "3bc8e496280f1664", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d018d4b067e44fe9", "level": "error", "message": {"text": "Dangling fetch: POST /api/cold-email/drafts/approve-batch (components/admin/cold-email-console.tsx:262)"}, "properties": {"repobilityId": "08b9bf3a22be0751", "scanner": "scanner-primary", "fingerprint": "d018d4b067e44fe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-425527c40638ba34", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:599)"}, "properties": {"repobilityId": "ff82532dbce04cba", "scanner": "scanner-primary", "fingerprint": "425527c40638ba34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3f0be28e377400c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:607)"}, "properties": {"repobilityId": "a7798ec20f91846b", "scanner": "scanner-primary", "fingerprint": "f3f0be28e377400c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-23b95e6b1f3e189c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/cold-email/lists (components/admin/cold-email-console.tsx:734)"}, "properties": {"repobilityId": "44c2b9e7ffe7d072", "scanner": "scanner-primary", "fingerprint": "23b95e6b1f3e189c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7e4d312e4302b78", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/cold-email/sequences/enroll (components/admin/cold-email-console.tsx:760)"}, "properties": {"repobilityId": "2e38f788fc399ae1", "scanner": "scanner-primary", "fingerprint": "c7e4d312e4302b78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb38475d2cdf1986", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:769)"}, "properties": {"repobilityId": "e1d5d174afc2b683", "scanner": "scanner-primary", "fingerprint": "eb38475d2cdf1986", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8da842a8a94b20ec", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:774)"}, "properties": {"repobilityId": "5f4849280e5f24e4", "scanner": "scanner-primary", "fingerprint": "8da842a8a94b20ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9dd1bdff9e74897f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/cold-email/settings (components/admin/cold-email-console.tsx:895)"}, "properties": {"repobilityId": "56cc3da9c12c6e41", "scanner": "scanner-primary", "fingerprint": "9dd1bdff9e74897f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-efe94d433d7f4dc5", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/cold-email/mailboxes (components/admin/cold-email-console.tsx:1045)"}, "properties": {"repobilityId": "eea326e21175f9b1", "scanner": "scanner-primary", "fingerprint": "efe94d433d7f4dc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecd756f86b7d58fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/cold-email/lists/upload (components/admin/cold-email-console.tsx:1122)"}, "properties": {"repobilityId": "103935757005ff5b", "scanner": "scanner-primary", "fingerprint": "ecd756f86b7d58fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd42075c95814019", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/cold-email/sequences (components/admin/cold-email-console.tsx:1209)"}, "properties": {"repobilityId": "930a4739b0a17d03", "scanner": "scanner-primary", "fingerprint": "bd42075c95814019", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1954161715e2a1ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/cold-email/mailboxes/bulk-upload (components/admin/cold-email-console.tsx:1308)"}, "properties": {"repobilityId": "34aad0c8c3613e81", "scanner": "scanner-primary", "fingerprint": "1954161715e2a1ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cb1e6b2ad386fc7", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/complete (components/onboarding/wizard.tsx:162)"}, "properties": {"repobilityId": "c3f02bf0ffcefd38", "scanner": "scanner-primary", "fingerprint": "2cb1e6b2ad386fc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c2cc92d0ee106ec0", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/skip (components/onboarding/wizard.tsx:267)"}, "properties": {"repobilityId": "530e015a4b855f56", "scanner": "scanner-primary", "fingerprint": "c2cc92d0ee106ec0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-efe3f1e9dd5a4b62", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/start-trial (components/onboarding/wizard.tsx:475)"}, "properties": {"repobilityId": "b3033b593446b395", "scanner": "scanner-primary", "fingerprint": "efe3f1e9dd5a4b62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-48f252e97c42b1a5", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/change-plan (components/onboarding/wizard.tsx:572)"}, "properties": {"repobilityId": "7a57fd8fd9c5b32d", "scanner": "scanner-primary", "fingerprint": "48f252e97c42b1a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffd7f143e177accb", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/finalize-trial (components/onboarding/wizard.tsx:689)"}, "properties": {"repobilityId": "79064e596e63f1a4", "scanner": "scanner-primary", "fingerprint": "ffd7f143e177accb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f9cc17029b83843b", "level": "error", "message": {"text": "Dangling fetch: POST /api/employees/provision (components/onboarding/wizard.tsx:725)"}, "properties": {"repobilityId": "cd93cd1f086baa5c", "scanner": "scanner-primary", "fingerprint": "f9cc17029b83843b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc6ff3e52a330b4d", "level": "error", "message": {"text": "Dangling fetch: GET /api/onboarding/connected-accounts (components/onboarding/wizard.tsx:796)"}, "properties": {"repobilityId": "a35472022fe61bdc", "scanner": "scanner-primary", "fingerprint": "fc6ff3e52a330b4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4153fa70a0cefeb2", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/business-profile (components/onboarding/wizard.tsx:945)"}, "properties": {"repobilityId": "84ef79bfa3007db8", "scanner": "scanner-primary", "fingerprint": "4153fa70a0cefeb2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c66e6cdc2470fb6", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:154)"}, "properties": {"repobilityId": "a74a51d698188787", "scanner": "scanner-primary", "fingerprint": "1c66e6cdc2470fb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bed0cfad85a74b2a", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/hire (components/onboarding/hire/hire-wizard.tsx:239)"}, "properties": {"repobilityId": "cd7ad0860fd9579f", "scanner": "scanner-primary", "fingerprint": "bed0cfad85a74b2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8646b89934f80b23", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:258)"}, "properties": {"repobilityId": "8c92cb4e51d18269", "scanner": "scanner-primary", "fingerprint": "8646b89934f80b23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd4ca006306728b8", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboarding/hire/complete (components/onboarding/hire/hire-wizard.tsx:268)"}, "properties": {"repobilityId": "05bd1e586faaf9f2", "scanner": "scanner-primary", "fingerprint": "cd4ca006306728b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3ef6d77a184e485", "level": "error", "message": {"text": "Dangling fetch: POST /api/support/report (components/support/ReportProblem.tsx:26)"}, "properties": {"repobilityId": "bb709a333aba68b8", "scanner": "scanner-primary", "fingerprint": "f3ef6d77a184e485", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2c1c53d6da1f0af", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/log-error (app/error.tsx:29)"}, "properties": {"repobilityId": "1d6279295608cbbf", "scanner": "scanner-primary", "fingerprint": "f2c1c53d6da1f0af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-264f491d74236b03", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/log-error (app/global-error.tsx:12)"}, "properties": {"repobilityId": "61c3ea9919e1a0ab", "scanner": "scanner-primary", "fingerprint": "264f491d74236b03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6fa95e3affecbc4", "level": "error", "message": {"text": "Dangling fetch: POST /api/go-live (app/go-live/_form.tsx:23)"}, "properties": {"repobilityId": "0610b07ce743860c", "scanner": "scanner-primary", "fingerprint": "e6fa95e3affecbc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d477d579240421b", "level": "error", "message": {"text": "Dangling fetch: POST /api/public/quote-request/${slug} (app/quote-request/[slug]/_form.tsx:31)"}, "properties": {"repobilityId": "3d885d1fd4c658fe", "scanner": "scanner-primary", "fingerprint": "6d477d579240421b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b42ec49d005aa61e", "level": "error", "message": {"text": "Dangling fetch: POST /api/go-live (app/p/[slug]/_widgets.tsx:38)"}, "properties": {"repobilityId": "db9a76dac65daac6", "scanner": "scanner-primary", "fingerprint": "b42ec49d005aa61e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22d91286fd2b0f08", "level": "error", "message": {"text": "Dangling fetch: POST /api/preview/${slug}/chat (app/p/[slug]/_chat.tsx:33)"}, "properties": {"repobilityId": "a040051c86e0092f", "scanner": "scanner-primary", "fingerprint": "22d91286fd2b0f08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b853f7dbfa04ad6b", "level": "error", "message": {"text": "Dangling fetch: GET /api/invite/admin/${params.token} (app/invite/admin/[token]/page.tsx:23)"}, "properties": {"repobilityId": "0a3d8b1128eb8543", "scanner": "scanner-primary", "fingerprint": "b853f7dbfa04ad6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-088cb284b6861b46", "level": "error", "message": {"text": "Dangling fetch: POST /api/invite/admin/${params.token}/redeem (app/invite/admin/[token]/page.tsx:38)"}, "properties": {"repobilityId": "a5a031c1d324fbf6", "scanner": "scanner-primary", "fingerprint": "088cb284b6861b46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b97823cc10977a87", "level": "error", "message": {"text": "Dangling fetch: POST /api/invite/operator/${token} (app/invite/operator/[token]/page.tsx:36)"}, "properties": {"repobilityId": "33aab12701310690", "scanner": "scanner-primary", "fingerprint": "b97823cc10977a87", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-79303de9dbac7328", "level": "error", "message": {"text": "Dangling fetch: GET /api/invite/${params.token} (app/invite/[token]/page.tsx:24)"}, "properties": {"repobilityId": "f646267b93f7b2aa", "scanner": "scanner-primary", "fingerprint": "79303de9dbac7328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e75c41e81af81ee", "level": "error", "message": {"text": "Dangling fetch: POST /api/invite/${params.token}/redeem (app/invite/[token]/page.tsx:69)"}, "properties": {"repobilityId": "5dbb57d8f203ff53", "scanner": "scanner-primary", "fingerprint": "7e75c41e81af81ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72ecd364137d9cf4", "level": "error", "message": {"text": "Dangling fetch: GET https://api.anthropic.com/v1/models (app/api/health/route.ts:54)"}, "properties": {"repobilityId": "d48315d105a26dd5", "scanner": "scanner-primary", "fingerprint": "72ecd364137d9cf4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5ed1a10e8b768ba5", "level": "error", "message": {"text": "Dangling fetch: POST https://api.instantly.ai/api/v2/leads/update (app/api/unsubscribe/route.ts:64)"}, "properties": {"repobilityId": "0a92d13d930a816e", "scanner": "scanner-primary", "fingerprint": "5ed1a10e8b768ba5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e3106b3e5332c948", "level": "error", "message": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${plan.message_id}/attachments/${plan.attachment_id}/$value (app/api/v5/mack/training/action/route.ts:102)"}, "properties": {"repobilityId": "92f8cb6bda53e596", "scanner": "scanner-primary", "fingerprint": "e3106b3e5332c948", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c2c48e13852b1d8", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/audio/speech (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-speak/route.ts:56)"}, "properties": {"repobilityId": "99c3e3440df2a730", "scanner": "scanner-primary", "fingerprint": "1c2c48e13852b1d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd9b5e4f57e949a4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/audio/transcriptions (app/api/v5/custom-employees/[slug]/jobs/[id]/voice-transcribe/route.ts:91)"}, "properties": {"repobilityId": "82fe526c3713988c", "scanner": "scanner-primary", "fingerprint": "bd9b5e4f57e949a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a70732cd74bb379e", "level": "error", "message": {"text": "Dangling fetch: GET https://www.clarity.ms/export-data/api/v1/project-live-insights?numOfDays=1 (app/api/v5/home/outbound-overview/route.ts:170)"}, "properties": {"repobilityId": "5c5d213d292ef359", "scanner": "scanner-primary", "fingerprint": "a70732cd74bb379e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6175013f21f998c", "level": "error", "message": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${existingAssistantId} (app/api/voice/provision-assistant/route.ts:352)"}, "properties": {"repobilityId": "20877ca6c7a13820", "scanner": "scanner-primary", "fingerprint": "d6175013f21f998c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ed08fbab17b051a", "level": "error", "message": {"text": "Dangling fetch: POST https://api.vapi.ai/assistant (app/api/voice/provision-assistant/route.ts:361)"}, "properties": {"repobilityId": "ca4c19a4b1a8bcd9", "scanner": "scanner-primary", "fingerprint": "8ed08fbab17b051a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b793d0d57b3f0dc", "level": "error", "message": {"text": "Dangling fetch: POST https://api.vapi.ai/phone-number (app/api/voice/provision-assistant/route.ts:394)"}, "properties": {"repobilityId": "7727cb22f6cbf353", "scanner": "scanner-primary", "fingerprint": "8b793d0d57b3f0dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba4f2f431a533d69", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/marketing/chat/route.ts:123)"}, "properties": {"repobilityId": "45ebeac4272593ea", "scanner": "scanner-primary", "fingerprint": "ba4f2f431a533d69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3970334fda7ddea9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/preview/[slug]/chat/route.ts:52)"}, "properties": {"repobilityId": "fa1cd635516f9ec1", "scanner": "scanner-primary", "fingerprint": "3970334fda7ddea9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b23a770383c557c4", "level": "error", "message": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/patch-vapi-assistant/route.ts:169)"}, "properties": {"repobilityId": "7ee112bcac35108c", "scanner": "scanner-primary", "fingerprint": "b23a770383c557c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7675fdef375cc4d6", "level": "error", "message": {"text": "Dangling fetch: DELETE https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers/${twilioSid}.json (app/api/admin/sms-pool/[number]/route.ts:42)"}, "properties": {"repobilityId": "4eae64c1f41002c5", "scanner": "scanner-primary", "fingerprint": "7675fdef375cc4d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f01aecb04848755c", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${twAcct}.json (app/api/admin/smoke-test/route.ts:67)"}, "properties": {"repobilityId": "bd618a815810502f", "scanner": "scanner-primary", "fingerprint": "f01aecb04848755c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b7d2b03403d7920", "level": "error", "message": {"text": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?access_token=${encodeURIComponent(decrypted)} (app/api/admin/diag-google-token/route.ts:32)"}, "properties": {"repobilityId": "8b1ccac9fba47536", "scanner": "scanner-primary", "fingerprint": "6b7d2b03403d7920", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7fae7cd1f68c722b", "level": "error", "message": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/diag-google-token/route.ts:36)"}, "properties": {"repobilityId": "609029cb14bb51af", "scanner": "scanner-primary", "fingerprint": "7fae7cd1f68c722b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-720c58bbda7ab036", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/stability-check/route.ts:38)"}, "properties": {"repobilityId": "8204a02635a18a4a", "scanner": "scanner-primary", "fingerprint": "720c58bbda7ab036", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bebb9d0e9b12d98", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/admin/stability-check/route.ts:46)"}, "properties": {"repobilityId": "efa824b5c620f30b", "scanner": "scanner-primary", "fingerprint": "1bebb9d0e9b12d98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aab93037256e4a69", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant?limit=1 (app/api/admin/stability-check/route.ts:55)"}, "properties": {"repobilityId": "74aed3c151d08879", "scanner": "scanner-primary", "fingerprint": "aab93037256e4a69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ed5958d1c35abcc", "level": "error", "message": {"text": "Dangling fetch: GET https://api.stripe.com/v1/customers?limit=1 (app/api/admin/stability-check/route.ts:60)"}, "properties": {"repobilityId": "03a5e6d418cdd031", "scanner": "scanner-primary", "fingerprint": "0ed5958d1c35abcc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-010ee4f3c215dc89", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant/${aid} (app/api/admin/stability-check/route.ts:116)"}, "properties": {"repobilityId": "d83772629234ea7f", "scanner": "scanner-primary", "fingerprint": "010ee4f3c215dc89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0a8e48a6db03e1b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${encodeURIComponent(sid)}.json (app/api/admin/twilio-status-backfill/route.ts:47)"}, "properties": {"repobilityId": "cc9c6edeb1bf514a", "scanner": "scanner-primary", "fingerprint": "f0a8e48a6db03e1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-826e24eaf7489cb8", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${messageSid}.json (app/api/admin/test-alert/route.ts:28)"}, "properties": {"repobilityId": "1f8ab9d95b6f5cf9", "scanner": "scanner-primary", "fingerprint": "826e24eaf7489cb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3072016f7817da1e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/test-alert/route.ts:91)"}, "properties": {"repobilityId": "67753ddb8cd4e87f", "scanner": "scanner-primary", "fingerprint": "3072016f7817da1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f821e46ea5d3989", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/call?assistantId=${assistantId}&limit=5 (app/api/admin/diagnose-vapi-call/route.ts:25)"}, "properties": {"repobilityId": "e91220451a6577ea", "scanner": "scanner-primary", "fingerprint": "2f821e46ea5d3989", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74786ce640acbef4", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages/${sid}.json (app/api/admin/preview-founder-alert/route.ts:42)"}, "properties": {"repobilityId": "9aa7118b89e6ef43", "scanner": "scanner-primary", "fingerprint": "74786ce640acbef4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb366657dfb5a5f2", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/admin/preview-founder-alert/route.ts:92)"}, "properties": {"repobilityId": "014f86d956951903", "scanner": "scanner-primary", "fingerprint": "cb366657dfb5a5f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91d783440c2312ac", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-mailbox/bootstrap-history/route.ts:49)"}, "properties": {"repobilityId": "63cb0c7770cf2dfe", "scanner": "scanner-primary", "fingerprint": "91d783440c2312ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb5f309d668f3811", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/admin/cold-mailbox/bootstrap-history/route.ts:102)"}, "properties": {"repobilityId": "415183be428ff7da", "scanner": "scanner-primary", "fingerprint": "eb5f309d668f3811", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b81d106d8cd61e1", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${process.env.TWILIO_ACCOUNT_SID}.json (app/api/admin/preflight/route.ts:86)"}, "properties": {"repobilityId": "48eed89a2e43467b", "scanner": "scanner-primary", "fingerprint": "0b81d106d8cd61e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c588f2246c9625d", "level": "error", "message": {"text": "Dangling fetch: GET https://api.postmarkapp.com/server (app/api/admin/preflight/route.ts:110)"}, "properties": {"repobilityId": "e31520768a360e39", "scanner": "scanner-primary", "fingerprint": "2c588f2246c9625d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a14cac1184548c3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/admin/preflight/route.ts:128)"}, "properties": {"repobilityId": "58f7e1401f90abef", "scanner": "scanner-primary", "fingerprint": "8a14cac1184548c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6e1cbff827722c7", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/diagnose-vapi-raw/route.ts:29)"}, "properties": {"repobilityId": "78eca36e17355217", "scanner": "scanner-primary", "fingerprint": "e6e1cbff827722c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bb8bb64ec0d9b72", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:208)"}, "properties": {"repobilityId": "3d209f09c2ecf953", "scanner": "scanner-primary", "fingerprint": "5bb8bb64ec0d9b72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-586075d26958c2c8", "level": "error", "message": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:348)"}, "properties": {"repobilityId": "9bf6d4dc48393a35", "scanner": "scanner-primary", "fingerprint": "586075d26958c2c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f58820dbf8ba07a8", "level": "error", "message": {"text": "Dangling fetch: PATCH https://api.vapi.ai/assistant/${assistantId} (app/api/admin/voice-readiness/route.ts:432)"}, "properties": {"repobilityId": "9e6bcdf6048995dc", "scanner": "scanner-primary", "fingerprint": "f58820dbf8ba07a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0c7e6c484099a3f", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai${path} (app/api/admin/bootstrap-demo/route.ts:133)"}, "properties": {"repobilityId": "4debe3801fb11195", "scanner": "scanner-primary", "fingerprint": "d0c7e6c484099a3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36db086baa932e73", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/booking-diagnose/route.ts:59)"}, "properties": {"repobilityId": "a4f42a6ec5f7a0c9", "scanner": "scanner-primary", "fingerprint": "36db086baa932e73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a36878c68aad46bc", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=${encodeURIComponent(accessToken!)} (app/api/admin/booking-diagnose/route.ts:92)"}, "properties": {"repobilityId": "18bb4115fe4faa67", "scanner": "scanner-primary", "fingerprint": "a36878c68aad46bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e58bfd599eca11f", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,summary,primary,accessRole,timeZone) (app/api/admin/booking-diagnose/route.ts:96)"}, "properties": {"repobilityId": "28f11bd042cef434", "scanner": "scanner-primary", "fingerprint": "6e58bfd599eca11f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a2812d6f6efa60c", "level": "error", "message": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:102)"}, "properties": {"repobilityId": "21b9fa9d2da772ea", "scanner": "scanner-primary", "fingerprint": "4a2812d6f6efa60c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37919d2f1dbc4591", "level": "error", "message": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/admin/booking-diagnose/route.ts:114)"}, "properties": {"repobilityId": "17eec94e81d28014", "scanner": "scanner-primary", "fingerprint": "37919d2f1dbc4591", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-906bd918e5457fd3", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=${new Date().toISOString()}&timeMax=${new Date(Date.now() + 86_400_000).toISOString()}&singleEvents=true&maxResults=5 (app/api/admin/booking-diagnose/route.ts:126)"}, "properties": {"repobilityId": "fb1497d7b687c005", "scanner": "scanner-primary", "fingerprint": "906bd918e5457fd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bfa4dcec1d5ff2d2", "level": "error", "message": {"text": "Dangling fetch: PUT https://api.github.com/repos/${owner}/${repo}/pulls/${prNumber}/merge (app/api/admin/council/approve/route.ts:114)"}, "properties": {"repobilityId": "53a9368e8ca3d8f3", "scanner": "scanner-primary", "fingerprint": "bfa4dcec1d5ff2d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86f1912294a4765b", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/smoke-test-mailbox/route.ts:54)"}, "properties": {"repobilityId": "e8ec47ff1d6c7fa2", "scanner": "scanner-primary", "fingerprint": "86f1912294a4765b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-128fc8c8ab768329", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/admin/cold-email/oauth/callback/route.ts:51)"}, "properties": {"repobilityId": "b9b9d3200e58dd23", "scanner": "scanner-primary", "fingerprint": "128fc8c8ab768329", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4942203fd656afb3", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/oauth2/v3/userinfo (app/api/admin/cold-email/oauth/callback/route.ts:72)"}, "properties": {"repobilityId": "d0618d652a3fa812", "scanner": "scanner-primary", "fingerprint": "4942203fd656afb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc20f41c1cf61c74", "level": "error", "message": {"text": "Dangling fetch: GET https://api.stripe.com/v1/invoices?customer=${s.stripe_customer_id}&limit=10 (app/api/v9/settings/billing/route.ts:46)"}, "properties": {"repobilityId": "9b87e84248fc6f2d", "scanner": "scanner-primary", "fingerprint": "cc20f41c1cf61c74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-241d4b43a6fb9979", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/employees/[id]/builder/route.ts:51)"}, "properties": {"repobilityId": "84f8e7974e379762", "scanner": "scanner-primary", "fingerprint": "241d4b43a6fb9979", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72a3347f2ec2be74", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/workspaces/custom-draft/route.ts:10)"}, "properties": {"repobilityId": "698ef7d764f650e8", "scanner": "scanner-primary", "fingerprint": "72a3347f2ec2be74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6829602d8142d752", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/v9/inbox/ai-draft/route.ts:48)"}, "properties": {"repobilityId": "c9193c470d1df368", "scanner": "scanner-primary", "fingerprint": "6829602d8142d752", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea05a6b8855255d3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/no-show-reengage/route.ts:50)"}, "properties": {"repobilityId": "b37a688d24887411", "scanner": "scanner-primary", "fingerprint": "ea05a6b8855255d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce3898d44b072475", "level": "error", "message": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/try-arc-followup/route.ts:114)"}, "properties": {"repobilityId": "c61830112f3db20a", "scanner": "scanner-primary", "fingerprint": "ce3898d44b072475", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-599103733595710e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/daily-brief/route.ts:110)"}, "properties": {"repobilityId": "924f2fed805e8bf3", "scanner": "scanner-primary", "fingerprint": "599103733595710e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e74eeb79f6bcc2e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (app/api/cron/hot-lead-concierge/route.ts:238)"}, "properties": {"repobilityId": "2eca9b7b40232955", "scanner": "scanner-primary", "fingerprint": "6e74eeb79f6bcc2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7474464fe2da5a6b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/prospect-nurture/route.ts:357)"}, "properties": {"repobilityId": "e09becbc81b8e1b3", "scanner": "scanner-primary", "fingerprint": "7474464fe2da5a6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c622d16aeffbd23b", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/cron/meeting-auto-join/route.ts:88)"}, "properties": {"repobilityId": "4c1cdfa5d603f4ba", "scanner": "scanner-primary", "fingerprint": "c622d16aeffbd23b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3569eb2c49beb1f0", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/cron/gmail-inbox-poll/route.ts:302)"}, "properties": {"repobilityId": "643e836f919bff73", "scanner": "scanner-primary", "fingerprint": "3569eb2c49beb1f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f148be598034ac7", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${msgId}?format=full (app/api/cron/gmail-inbox-poll/route.ts:339)"}, "properties": {"repobilityId": "75835cbd7689a3aa", "scanner": "scanner-primary", "fingerprint": "6f148be598034ac7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0881affc79bc964f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/weekly-brief/route.ts:135)"}, "properties": {"repobilityId": "e50b77fece3e606d", "scanner": "scanner-primary", "fingerprint": "0881affc79bc964f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecb23a43aca99fc4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (app/api/cron/custom-employee-sla/route.ts:104)"}, "properties": {"repobilityId": "ff7c273ea62878e4", "scanner": "scanner-primary", "fingerprint": "ecb23a43aca99fc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f43708d6a4d77bac", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/cron/blog-publish/route.ts:71)"}, "properties": {"repobilityId": "4843800f890efe27", "scanner": "scanner-primary", "fingerprint": "f43708d6a4d77bac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d34eedd374490a51", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (app/api/cron/booking-reminders/route.ts:123)"}, "properties": {"repobilityId": "d5c617916f75f0bc", "scanner": "scanner-primary", "fingerprint": "d34eedd374490a51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dfc548daaa65cfbd", "level": "error", "message": {"text": "Dangling fetch: POST https://api.vapi.ai/call (app/api/vapi/call/route.ts:32)"}, "properties": {"repobilityId": "191218f33c82ec78", "scanner": "scanner-primary", "fingerprint": "dfc548daaa65cfbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1dd4d70ec302e511", "level": "error", "message": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/calendars/primary/events?conferenceDataVersion=1&sendUpdates=all (app/api/book-call/route.ts:248)"}, "properties": {"repobilityId": "4efebca09556d149", "scanner": "scanner-primary", "fingerprint": "1dd4d70ec302e511", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce6823fe5d6c3f0d", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/route.ts:500)"}, "properties": {"repobilityId": "4809554efe53707f", "scanner": "scanner-primary", "fingerprint": "ce6823fe5d6c3f0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e547e7a77036930", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,primary,accessRole)&minAccessRole=owner (app/api/book-call/availability/route.ts:282)"}, "properties": {"repobilityId": "a79d31f52642465e", "scanner": "scanner-primary", "fingerprint": "4e547e7a77036930", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-134ec720c262aad9", "level": "error", "message": {"text": "Dangling fetch: POST https://www.googleapis.com/calendar/v3/freeBusy (app/api/book-call/availability/route.ts:298)"}, "properties": {"repobilityId": "c801914b9063ea57", "scanner": "scanner-primary", "fingerprint": "134ec720c262aad9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ec3abaa2912ae5c", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/api/book-call/availability/route.ts:332)"}, "properties": {"repobilityId": "6b8ffd787d841b85", "scanner": "scanner-primary", "fingerprint": "7ec3abaa2912ae5c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b75717ee6e0bc727", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (app/api/connections/smoke-test/route.ts:58)"}, "properties": {"repobilityId": "bf0866e14b0f269e", "scanner": "scanner-primary", "fingerprint": "b75717ee6e0bc727", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c7092f3f9fe3a5e", "level": "error", "message": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages?$top=1&$select=id,subject (app/api/connections/smoke-test/route.ts:69)"}, "properties": {"repobilityId": "b2058fdb27c92c57", "scanner": "scanner-primary", "fingerprint": "2c7092f3f9fe3a5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b9779480a9e46d6", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${b.account_sid}.json (app/api/connections/twilio/route.ts:68)"}, "properties": {"repobilityId": "5ebee429f78c772f", "scanner": "scanner-primary", "fingerprint": "4b9779480a9e46d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9741540e1c24c340", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twilio.com/2010-04-01/Accounts/${sid}/IncomingPhoneNumbers.json?PageSize=200 (app/api/connections/twilio/numbers/route.ts:45)"}, "properties": {"repobilityId": "1320a1f2a957fa2e", "scanner": "scanner-primary", "fingerprint": "9741540e1c24c340", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-59bbe0d09f21df75", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/route.ts:69)"}, "properties": {"repobilityId": "6805634e78d0844b", "scanner": "scanner-primary", "fingerprint": "59bbe0d09f21df75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6ff98e9dc90cc51", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vapi.ai/assistant (app/api/connections/vapi/assistants/route.ts:46)"}, "properties": {"repobilityId": "b8f9601c03f8b462", "scanner": "scanner-primary", "fingerprint": "c6ff98e9dc90cc51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6bbd8981664ace3", "level": "error", "message": {"text": "Dangling fetch: POST /api/unsubscribe (app/unsubscribe/form.tsx:15)"}, "properties": {"repobilityId": "cc0db7218b62881a", "scanner": "scanner-primary", "fingerprint": "d6bbd8981664ace3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1295cc8a2ea7c381", "level": "error", "message": {"text": "Dangling fetch: POST /api/signup-intent (app/signup/page.tsx:81)"}, "properties": {"repobilityId": "84cc10a3584be360", "scanner": "scanner-primary", "fingerprint": "1295cc8a2ea7c381", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9da9661861c2850c", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/signup (app/signup/page.tsx:99)"}, "properties": {"repobilityId": "71d505ebe00f83de", "scanner": "scanner-primary", "fingerprint": "9da9661861c2850c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1cf60d40f0f6eb3e", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/resend-confirmation (app/signup/page.tsx:161)"}, "properties": {"repobilityId": "1c019d0bd5bea06d", "scanner": "scanner-primary", "fingerprint": "1cf60d40f0f6eb3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e974b13af006dce", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/check-confirmed?email=${encodeURIComponent(email)} (app/signup/page.tsx:198)"}, "properties": {"repobilityId": "cf446d1e89a131de", "scanner": "scanner-primary", "fingerprint": "2e974b13af006dce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7aa9a153a0a3be4b", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/log-error (app/v5/error.tsx:42)"}, "properties": {"repobilityId": "acd3747822c49c10", "scanner": "scanner-primary", "fingerprint": "7aa9a153a0a3be4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-106c38fcf2b2e69a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/role (app/v5/_client-shell.tsx:488)"}, "properties": {"repobilityId": "ac85cb16bb46c470", "scanner": "scanner-primary", "fingerprint": "106c38fcf2b2e69a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0787cb381065e803", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:557)"}, "properties": {"repobilityId": "d866f376846028ea", "scanner": "scanner-primary", "fingerprint": "0787cb381065e803", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-231803c5ae14efce", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/badges (app/v5/_client-shell.tsx:594)"}, "properties": {"repobilityId": "cb40b577d9ee903c", "scanner": "scanner-primary", "fingerprint": "231803c5ae14efce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d945de096549fa99", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer/queue-count (app/v5/_client-shell.tsx:624)"}, "properties": {"repobilityId": "6040a885de2d4991", "scanner": "scanner-primary", "fingerprint": "d945de096549fa99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e61e9730603a6713", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:796)"}, "properties": {"repobilityId": "1aca078cb9694f1a", "scanner": "scanner-primary", "fingerprint": "e61e9730603a6713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-84856da18c41916f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants/switch (app/v5/_client-shell.tsx:820)"}, "properties": {"repobilityId": "221f75a42dfe7671", "scanner": "scanner-primary", "fingerprint": "84856da18c41916f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92dc869bbe928c8d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/me (app/v5/_client-shell.tsx:1036)"}, "properties": {"repobilityId": "2a9e0226852b8eb5", "scanner": "scanner-primary", "fingerprint": "92dc869bbe928c8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a1ab068703c5e82b", "level": "error", "message": {"text": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1285)"}, "properties": {"repobilityId": "39a82784bda17a2a", "scanner": "scanner-primary", "fingerprint": "a1ab068703c5e82b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38e8192a175f04fb", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/profile (app/v5/_client-shell.tsx:1312)"}, "properties": {"repobilityId": "a2aac0f953050fe9", "scanner": "scanner-primary", "fingerprint": "38e8192a175f04fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b8ad50b541de119", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/workspaces (app/v5/_client-shell.tsx:1408)"}, "properties": {"repobilityId": "8b6b2e3712721ca2", "scanner": "scanner-primary", "fingerprint": "3b8ad50b541de119", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5acbde6d5ce7d47", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/invites (app/v5/_client-shell.tsx:1412)"}, "properties": {"repobilityId": "45e8f01b5a5d202d", "scanner": "scanner-primary", "fingerprint": "c5acbde6d5ce7d47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1c01329b313e091", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/my-agents (app/v5/_client-shell.tsx:1645)"}, "properties": {"repobilityId": "90c4a4306f423a7b", "scanner": "scanner-primary", "fingerprint": "b1c01329b313e091", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b3beb123b0c1ab71", "level": "error", "message": {"text": "Dangling fetch: POST /auth/signout (app/v5/_client-shell.tsx:1894)"}, "properties": {"repobilityId": "5ba4fe3d84cf3d2e", "scanner": "scanner-primary", "fingerprint": "b3beb123b0c1ab71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98e1e1516d2352b3", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/view-mode (app/v5/_client-shell.tsx:1951)"}, "properties": {"repobilityId": "0bcc88ef8249849d", "scanner": "scanner-primary", "fingerprint": "98e1e1516d2352b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b1514bb26ea4e5a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/integrations/feed (app/v5/settings/integrations/page.tsx:143)"}, "properties": {"repobilityId": "049dfe3f85c1ad23", "scanner": "scanner-primary", "fingerprint": "3b1514bb26ea4e5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f8a27da98c91dab", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/notifications (app/v5/settings/notifications/page.tsx:40)"}, "properties": {"repobilityId": "6343250c5f0cc7d8", "scanner": "scanner-primary", "fingerprint": "7f8a27da98c91dab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e830968df6f51fd8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/notifications (app/v5/settings/notifications/page.tsx:57)"}, "properties": {"repobilityId": "c6935c2bdba8e742", "scanner": "scanner-primary", "fingerprint": "e830968df6f51fd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7d26d39b1354b7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/feature-flags (app/v5/settings/flags/page.tsx:43)"}, "properties": {"repobilityId": "8f72906f4631adc8", "scanner": "scanner-primary", "fingerprint": "a7d26d39b1354b7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1540bddcdf007e9e", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:63)"}, "properties": {"repobilityId": "5388a6f0fbc4a6e6", "scanner": "scanner-primary", "fingerprint": "1540bddcdf007e9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-abad8d0bc8ea89bf", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/settings/flags/page.tsx:170)"}, "properties": {"repobilityId": "3ed7c11371f9e706", "scanner": "scanner-primary", "fingerprint": "abad8d0bc8ea89bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e1d1ceba98132c7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/crons/status (app/v5/settings/crons/page.tsx:160)"}, "properties": {"repobilityId": "070c10369361e7ff", "scanner": "scanner-primary", "fingerprint": "9e1d1ceba98132c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62bf04a4defb4dd0", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:274)"}, "properties": {"repobilityId": "a3d9d56019a16247", "scanner": "scanner-primary", "fingerprint": "62bf04a4defb4dd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90f070e2a1a2a392", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:279)"}, "properties": {"repobilityId": "b9b98bb703d9d46f", "scanner": "scanner-primary", "fingerprint": "90f070e2a1a2a392", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dbe87ae12b0282bc", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:348)"}, "properties": {"repobilityId": "0f20051c44f41905", "scanner": "scanner-primary", "fingerprint": "dbe87ae12b0282bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9cfc0c52f597a02", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/settings/crons/page.tsx:354)"}, "properties": {"repobilityId": "d68598437a3294b6", "scanner": "scanner-primary", "fingerprint": "e9cfc0c52f597a02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76344b499a9e4799", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/toggle (app/v5/settings/crons/page.tsx:374)"}, "properties": {"repobilityId": "133693b0f8ad571f", "scanner": "scanner-primary", "fingerprint": "76344b499a9e4799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-914a3e4bf60dc0b3", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:243)"}, "properties": {"repobilityId": "e2bd56b6b524e89d", "scanner": "scanner-primary", "fingerprint": "914a3e4bf60dc0b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6867498bc41ea94f", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/crons/run (app/v5/intent-signals/page.tsx:357)"}, "properties": {"repobilityId": "ed1c8d1b8ebefab6", "scanner": "scanner-primary", "fingerprint": "6867498bc41ea94f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c9b69820f342219", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/intent-signals/save (app/v5/intent-signals/page.tsx:370)"}, "properties": {"repobilityId": "f9be89535deb2445", "scanner": "scanner-primary", "fingerprint": "3c9b69820f342219", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f75a65932a7f4576", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/arc-employees/kpis (app/v5/employees/_hub-client.tsx:94)"}, "properties": {"repobilityId": "af4582f294cf528d", "scanner": "scanner-primary", "fingerprint": "f75a65932a7f4576", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b4464431f09e6d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/workspace-assistants (app/v5/employees/_hub-client.tsx:98)"}, "properties": {"repobilityId": "f523aefeaefe1fbf", "scanner": "scanner-primary", "fingerprint": "8b4464431f09e6d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-33120ac02c54cd22", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${target.tenantId}/manager (app/v5/employees/_hub-client.tsx:436)"}, "properties": {"repobilityId": "f25ccc5fd3a3b2c2", "scanner": "scanner-primary", "fingerprint": "33120ac02c54cd22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8132cfdb23dd91a9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/proposals/${p.id} (app/v5/employees/_hub-client.tsx:457)"}, "properties": {"repobilityId": "f76792f64dd28010", "scanner": "scanner-primary", "fingerprint": "8132cfdb23dd91a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-965fbbb1819295cc", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${target.tenantId}/manager/chat-uploads (app/v5/employees/_hub-client.tsx:565)"}, "properties": {"repobilityId": "7ab2e639ff1f3077", "scanner": "scanner-primary", "fingerprint": "965fbbb1819295cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12cdb8150a4e00fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/integrations/stackit/test (app/v5/employees/[slug]/_ordering-settings.tsx:60)"}, "properties": {"repobilityId": "8312ea7a9bc45b8c", "scanner": "scanner-primary", "fingerprint": "12cdb8150a4e00fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-88c55faf7c45446a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/settings (app/v5/employees/[slug]/_ordering-settings.tsx:90)"}, "properties": {"repobilityId": "d34008e289c82a35", "scanner": "scanner-primary", "fingerprint": "88c55faf7c45446a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-581605437176d1d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:27)"}, "properties": {"repobilityId": "8e97c7fa35a94208", "scanner": "scanner-primary", "fingerprint": "581605437176d1d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be995318d5b1f086", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/view-as (app/v5/employees/[slug]/_view-as-toggle.tsx:41)"}, "properties": {"repobilityId": "e4964f83c4a25559", "scanner": "scanner-primary", "fingerprint": "be995318d5b1f086", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-610783c0a60de749", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${parentId}/spawn-submittal (app/v5/employees/[slug]/_job-picker.tsx:76)"}, "properties": {"repobilityId": "fba81b4d9443ae21", "scanner": "scanner-primary", "fingerprint": "610783c0a60de749", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6ac057692140f2c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/action-inbox (app/v5/employees/[slug]/_today-landing.tsx:176)"}, "properties": {"repobilityId": "da6bc13d744d80d5", "scanner": "scanner-primary", "fingerprint": "e6ac057692140f2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d73317e7108ad1ea", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_today-landing.tsx:269)"}, "properties": {"repobilityId": "aa24e8d1118a3d28", "scanner": "scanner-primary", "fingerprint": "d73317e7108ad1ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da00d79867dbc00f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_today-landing.tsx:285)"}, "properties": {"repobilityId": "d449148879606efb", "scanner": "scanner-primary", "fingerprint": "da00d79867dbc00f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78a78685c1c561e3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/_blocks.tsx:290)"}, "properties": {"repobilityId": "ac03a4aacdcb5fa3", "scanner": "scanner-primary", "fingerprint": "78a78685c1c561e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-155587e0e149b157", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/_blocks.tsx:310)"}, "properties": {"repobilityId": "de6e4402676393e4", "scanner": "scanner-primary", "fingerprint": "155587e0e149b157", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b657b3ad4540871", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/upload (app/v5/employees/[slug]/_blocks.tsx:1137)"}, "properties": {"repobilityId": "1f755d949b391716", "scanner": "scanner-primary", "fingerprint": "6b657b3ad4540871", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8a261b529ee46ab", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/workspace/settings (app/v5/employees/[slug]/_blocks.tsx:1154)"}, "properties": {"repobilityId": "f2a0d9ee9fdd25da", "scanner": "scanner-primary", "fingerprint": "e8a261b529ee46ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25cb28941a253371", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/bulk (app/v5/employees/[slug]/_blocks.tsx:1386)"}, "properties": {"repobilityId": "10c004e9c5afd57a", "scanner": "scanner-primary", "fingerprint": "25cb28941a253371", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-65d4de5e1796f7cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/allie/targets/import (app/v5/employees/[slug]/press-desk/_shell.tsx:204)"}, "properties": {"repobilityId": "692ef11e1ce8211c", "scanner": "scanner-primary", "fingerprint": "65d4de5e1796f7cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7da8361cb8495ed", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/allie/analytics (app/v5/employees/[slug]/press-desk/_shell.tsx:632)"}, "properties": {"repobilityId": "9bc111a9271bcfcb", "scanner": "scanner-primary", "fingerprint": "e7da8361cb8495ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f708db6eedb6094f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/oversight/${a.assignment_id} (app/v5/employees/[slug]/oversight/_client.tsx:59)"}, "properties": {"repobilityId": "3dcaa109bfd71003", "scanner": "scanner-primary", "fingerprint": "f708db6eedb6094f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a84a17140d6e7d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/oversight (app/v5/employees/[slug]/oversight/_client.tsx:219)"}, "properties": {"repobilityId": "cdba073bee0a0627", "scanner": "scanner-primary", "fingerprint": "1a84a17140d6e7d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ac5d87c74bf8e39", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/brian-escalation (app/v5/employees/[slug]/oversight/_brian-escalation.tsx:60)"}, "properties": {"repobilityId": "72354d0a8b71c914", "scanner": "scanner-primary", "fingerprint": "0ac5d87c74bf8e39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98cb961ccb5a4896", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/allie/connection (app/v5/employees/[slug]/team/_press_desk_view.tsx:133)"}, "properties": {"repobilityId": "aac0b15a9d163d0c", "scanner": "scanner-primary", "fingerprint": "98cb961ccb5a4896", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a09c593786ce59f", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_press_desk_view.tsx:316)"}, "properties": {"repobilityId": "a14c0711a6484c1f", "scanner": "scanner-primary", "fingerprint": "8a09c593786ce59f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83d473542bf3693e", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_press_desk_view.tsx:549)"}, "properties": {"repobilityId": "0fd37c24331eeaa0", "scanner": "scanner-primary", "fingerprint": "83d473542bf3693e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-69cb98c4bfe581e7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${token} (app/v5/employees/[slug]/team/_press_desk_view.tsx:577)"}, "properties": {"repobilityId": "5ddc9c54cbc8d874", "scanner": "scanner-primary", "fingerprint": "69cb98c4bfe581e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16e63f46dc31465b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/sales-reps (app/v5/employees/[slug]/team/_mack-sales-team.tsx:176)"}, "properties": {"repobilityId": "0cdc97bfdfd733ab", "scanner": "scanner-primary", "fingerprint": "16e63f46dc31465b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07ef468cfeb726ac", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/sales-reps/${id} (app/v5/employees/[slug]/team/_mack-sales-team.tsx:196)"}, "properties": {"repobilityId": "eab0762f29a693a3", "scanner": "scanner-primary", "fingerprint": "07ef468cfeb726ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10ca3afc069b8cd6", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/sales-reps/${rep.id} (app/v5/employees/[slug]/team/_mack-sales-team.tsx:217)"}, "properties": {"repobilityId": "07d612d3afa70d88", "scanner": "scanner-primary", "fingerprint": "10ca3afc069b8cd6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a4346fd28f2aed9", "level": "error", "message": {"text": "Dangling fetch: POST /api/settings/team/invite (app/v5/employees/[slug]/team/_view.tsx:82)"}, "properties": {"repobilityId": "0f347c0b844ad25e", "scanner": "scanner-primary", "fingerprint": "9a4346fd28f2aed9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8936ad2a3e934a3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/settings/team/invite/${inviteId} (app/v5/employees/[slug]/team/_view.tsx:130)"}, "properties": {"repobilityId": "4a3a3115511907f8", "scanner": "scanner-primary", "fingerprint": "d8936ad2a3e934a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f18889e0ff94d589", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/settings/team/member/${userId} (app/v5/employees/[slug]/team/_view.tsx:660)"}, "properties": {"repobilityId": "542294216017bac2", "scanner": "scanner-primary", "fingerprint": "f18889e0ff94d589", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec5a208dd8c67e42", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/intake-questions (app/v5/employees/[slug]/new-project/_client.tsx:194)"}, "properties": {"repobilityId": "6098a5953fcf9523", "scanner": "scanner-primary", "fingerprint": "ec5a208dd8c67e42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8cff4317c39d8256", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs (app/v5/employees/[slug]/new-project/_client.tsx:246)"}, "properties": {"repobilityId": "f004ed4d0e609446", "scanner": "scanner-primary", "fingerprint": "8cff4317c39d8256", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-29e8a1d0e19b15af", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/new-project/_client.tsx:263)"}, "properties": {"repobilityId": "0601876bb05db925", "scanner": "scanner-primary", "fingerprint": "29e8a1d0e19b15af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d79428e40cfce62f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:86)"}, "properties": {"repobilityId": "24839adf248d9c14", "scanner": "scanner-primary", "fingerprint": "d79428e40cfce62f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-935a018f7d0f7a97", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/revisions (app/v5/employees/[slug]/revisions/_client.tsx:107)"}, "properties": {"repobilityId": "cadd08b652deef2a", "scanner": "scanner-primary", "fingerprint": "935a018f7d0f7a97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6c4a2ba35348ea9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/anomalies (app/v5/employees/[slug]/anomalies/_client.tsx:85)"}, "properties": {"repobilityId": "7a51b6600cb36113", "scanner": "scanner-primary", "fingerprint": "a6c4a2ba35348ea9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-26ca676c2390f734", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/anomalies/${id}/clear (app/v5/employees/[slug]/anomalies/_client.tsx:110)"}, "properties": {"repobilityId": "fbbe4c8ee4a98ff1", "scanner": "scanner-primary", "fingerprint": "26ca676c2390f734", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02e44046a7f64c6b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/ai-spend (app/v5/employees/[slug]/assistant/_client.tsx:226)"}, "properties": {"repobilityId": "158bb6ae9754e0f8", "scanner": "scanner-primary", "fingerprint": "02e44046a7f64c6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db51f9d9cab12aba", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/ai-budget/global-status (app/v5/employees/[slug]/assistant/_client.tsx:227)"}, "properties": {"repobilityId": "cf242234f117d8eb", "scanner": "scanner-primary", "fingerprint": "db51f9d9cab12aba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c2b29d88634e143c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/manager/messages?session_id=${sessionId} (app/v5/employees/[slug]/assistant/_client.tsx:304)"}, "properties": {"repobilityId": "70690b9e60194ba3", "scanner": "scanner-primary", "fingerprint": "c2b29d88634e143c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da47f8b160491461", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/assistant-context (app/v5/employees/[slug]/assistant/_client.tsx:326)"}, "properties": {"repobilityId": "5561552892ee376b", "scanner": "scanner-primary", "fingerprint": "da47f8b160491461", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78e7c169fc212259", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/task-plans?limit=5 (app/v5/employees/[slug]/assistant/_client.tsx:344)"}, "properties": {"repobilityId": "2f27299986e0ac77", "scanner": "scanner-primary", "fingerprint": "78e7c169fc212259", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aacac82b32d1ec53", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:369)"}, "properties": {"repobilityId": "fc2c92ef937d3fc7", "scanner": "scanner-primary", "fingerprint": "aacac82b32d1ec53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f46dc094471726b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:377)"}, "properties": {"repobilityId": "bdcaceba77a93cca", "scanner": "scanner-primary", "fingerprint": "8f46dc094471726b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f72a80034f9b7960", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:392)"}, "properties": {"repobilityId": "5f1d28198dd44e75", "scanner": "scanner-primary", "fingerprint": "f72a80034f9b7960", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-747ba4d6d0f53af2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:406)"}, "properties": {"repobilityId": "bf9175b6127c6252", "scanner": "scanner-primary", "fingerprint": "747ba4d6d0f53af2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7268b937731b08a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/task-plans/${planId} (app/v5/employees/[slug]/assistant/_client.tsx:420)"}, "properties": {"repobilityId": "17bc65106e84802e", "scanner": "scanner-primary", "fingerprint": "a7268b937731b08a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd50e389e688c573", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-url (app/v5/employees/[slug]/assistant/_client.tsx:463)"}, "properties": {"repobilityId": "78c183011c49ec86", "scanner": "scanner-primary", "fingerprint": "fd50e389e688c573", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-715f2aeae92504a9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/upload-confirm (app/v5/employees/[slug]/assistant/_client.tsx:508)"}, "properties": {"repobilityId": "3f9dc5dc4d52e5a0", "scanner": "scanner-primary", "fingerprint": "715f2aeae92504a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-87963da788af31b5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/manager/chat (app/v5/employees/[slug]/assistant/_client.tsx:690)"}, "properties": {"repobilityId": "e1724bd5b331ae1a", "scanner": "scanner-primary", "fingerprint": "87963da788af31b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8cee7e64fe687f15", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/workspace-search?q=${encodeURIComponent(q)} (app/v5/employees/[slug]/assistant/_client.tsx:735)"}, "properties": {"repobilityId": "d3a7657e5c1c96cb", "scanner": "scanner-primary", "fingerprint": "8cee7e64fe687f15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ebabf4881b5fcbfd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:86)"}, "properties": {"repobilityId": "46e1d297d0f2e110", "scanner": "scanner-primary", "fingerprint": "ebabf4881b5fcbfd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a6d35616e3f2f73", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/review-queue/_client.tsx:119)"}, "properties": {"repobilityId": "149c8e60413a7196", "scanner": "scanner-primary", "fingerprint": "9a6d35616e3f2f73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1971201c97f74200", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineer-queue (app/v5/employees/[slug]/engineer/_queue-client.tsx:230)"}, "properties": {"repobilityId": "056ce5a95ac0ac02", "scanner": "scanner-primary", "fingerprint": "1971201c97f74200", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c03ba9ecdc45e0ca", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/engineer/_queue-client.tsx:253)"}, "properties": {"repobilityId": "a4f70dc865012f13", "scanner": "scanner-primary", "fingerprint": "c03ba9ecdc45e0ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8bce08f113d968d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/structure-edits (app/v5/employees/[slug]/engineer/_queue-client.tsx:298)"}, "properties": {"repobilityId": "1ef3446ec619d440", "scanner": "scanner-primary", "fingerprint": "c8bce08f113d968d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86df1197db145105", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/signoff (app/v5/employees/[slug]/engineer/_queue-client.tsx:379)"}, "properties": {"repobilityId": "6feb661b77f292bd", "scanner": "scanner-primary", "fingerprint": "86df1197db145105", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73589a52592ebc6e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${selectedId}/engineer-decision (app/v5/employees/[slug]/engineer/_queue-client.tsx:402)"}, "properties": {"repobilityId": "a940f30e08f1c1f2", "scanner": "scanner-primary", "fingerprint": "73589a52592ebc6e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ebc40bf9a6e329c2", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_quote-intake-tagger.tsx:48)"}, "properties": {"repobilityId": "d8459b8c4548b7d1", "scanner": "scanner-primary", "fingerprint": "ebc40bf9a6e329c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac4ea743ad712cda", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structures (app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:103)"}, "properties": {"repobilityId": "ef939418ed89ad61", "scanner": "scanner-primary", "fingerprint": "ac4ea743ad712cda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85af5af0658b00ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/structure-edits (app/v5/employees/[slug]/jobs/[id]/_structure-overlay.tsx:125)"}, "properties": {"repobilityId": "689f29b2fed4e364", "scanner": "scanner-primary", "fingerprint": "85af5af0658b00ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4920efc725da99f1", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_editor.tsx:96)"}, "properties": {"repobilityId": "2a39aa9a3a59fe0e", "scanner": "scanner-primary", "fingerprint": "4920efc725da99f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d79c33c2c28c36f0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:46)"}, "properties": {"repobilityId": "dedfda8cd9912f6b", "scanner": "scanner-primary", "fingerprint": "d79c33c2c28c36f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76b310d2ec5d6d89", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/send-to-engineer (app/v5/employees/[slug]/jobs/[id]/_send-to-engineer-modal.tsx:82)"}, "properties": {"repobilityId": "bdb7356d343c4972", "scanner": "scanner-primary", "fingerprint": "76b310d2ec5d6d89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2404fb31f1b82125", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/line-items-sync (app/v5/employees/[slug]/jobs/[id]/_structure-quote-card.tsx:165)"}, "properties": {"repobilityId": "76a0ffd7965fde48", "scanner": "scanner-primary", "fingerprint": "2404fb31f1b82125", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0476f45a552a170a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:40)"}, "properties": {"repobilityId": "c5bffa2c0724e28e", "scanner": "scanner-primary", "fingerprint": "0476f45a552a170a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ddbd1753f7e5ad0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs/[id]/_revision-box.tsx:80)"}, "properties": {"repobilityId": "f6d1d5c158eb7d44", "scanner": "scanner-primary", "fingerprint": "3ddbd1753f7e5ad0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f09d54d7c71b83d5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:110)"}, "properties": {"repobilityId": "51c0b49a4d5aacc4", "scanner": "scanner-primary", "fingerprint": "f09d54d7c71b83d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7316fc00470dd09b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/revision-upload (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:130)"}, "properties": {"repobilityId": "feabe2b492c7a2dc", "scanner": "scanner-primary", "fingerprint": "7316fc00470dd09b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-32e26db963286518", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/jobs?limit=50 (app/v5/employees/[slug]/jobs/[id]/_contractor-revision-modal.tsx:158)"}, "properties": {"repobilityId": "740c7a89a0b447b9", "scanner": "scanner-primary", "fingerprint": "32e26db963286518", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c064b71d8334cb8c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:285)"}, "properties": {"repobilityId": "f198014dcba318a0", "scanner": "scanner-primary", "fingerprint": "c064b71d8334cb8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63225feb32954115", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:312)"}, "properties": {"repobilityId": "21b39a6d9af69554", "scanner": "scanner-primary", "fingerprint": "63225feb32954115", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77cb1589fd8ba6e6", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:347)"}, "properties": {"repobilityId": "09d616d9b663985b", "scanner": "scanner-primary", "fingerprint": "77cb1589fd8ba6e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a5a9882100bf32f0", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_structure-editor.tsx:369)"}, "properties": {"repobilityId": "d1585c8bdb7285bb", "scanner": "scanner-primary", "fingerprint": "a5a9882100bf32f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0d8bb6381d85812", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:20)"}, "properties": {"repobilityId": "45d26c36c79dc23e", "scanner": "scanner-primary", "fingerprint": "f0d8bb6381d85812", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b223353108de4363", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${personaSlug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:157)"}, "properties": {"repobilityId": "9ffde54b905d2d52", "scanner": "scanner-primary", "fingerprint": "b223353108de4363", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-490d24d5ce15b5aa", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:200)"}, "properties": {"repobilityId": "3a029eac9d06a947", "scanner": "scanner-primary", "fingerprint": "490d24d5ce15b5aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-742eb02c2d290545", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/quote-tokens (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:240)"}, "properties": {"repobilityId": "4942341bc2d231fb", "scanner": "scanner-primary", "fingerprint": "742eb02c2d290545", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb3bcada2ac90ed6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${personaSlug}/engineers (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:331)"}, "properties": {"repobilityId": "0f027ba2522792c0", "scanner": "scanner-primary", "fingerprint": "cb3bcada2ac90ed6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25f27bc54eff700c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/assign-to-engineer (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:354)"}, "properties": {"repobilityId": "d52765473dc5fef3", "scanner": "scanner-primary", "fingerprint": "25f27bc54eff700c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b1af88d6558b4785", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/${promoteEndpoint} (app/v5/employees/[slug]/jobs/[id]/_actions.tsx:554)"}, "properties": {"repobilityId": "b529580eea81d359", "scanner": "scanner-primary", "fingerprint": "b1af88d6558b4785", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6dc5a0780c76efb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/locate-structures (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:440)"}, "properties": {"repobilityId": "9609cfae760b266f", "scanner": "scanner-primary", "fingerprint": "e6dc5a0780c76efb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6dda88f9dea1f47b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/generate-screenshots (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:462)"}, "properties": {"repobilityId": "f5ab103a0c63d221", "scanner": "scanner-primary", "fingerprint": "6dda88f9dea1f47b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e039f6dc7efffcc1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/review-queue (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:481)"}, "properties": {"repobilityId": "d73e93702ed6ff31", "scanner": "scanner-primary", "fingerprint": "e039f6dc7efffcc1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c47268f5278a96d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/regen-structure (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:548)"}, "properties": {"repobilityId": "a1078bf517ddaca4", "scanner": "scanner-primary", "fingerprint": "9c47268f5278a96d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-458195cc35e94247", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/annotations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:579)"}, "properties": {"repobilityId": "85e9c0ca66b7c60e", "scanner": "scanner-primary", "fingerprint": "458195cc35e94247", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-182bbeaf2a21c41d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:633)"}, "properties": {"repobilityId": "c660003c4149cd08", "scanner": "scanner-primary", "fingerprint": "182bbeaf2a21c41d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1171cba46c9efce0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:651)"}, "properties": {"repobilityId": "c1601de4314bff1a", "scanner": "scanner-primary", "fingerprint": "1171cba46c9efce0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ece717f5105d178", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/review-explanations (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:658)"}, "properties": {"repobilityId": "0d4e6e5304522f14", "scanner": "scanner-primary", "fingerprint": "0ece717f5105d178", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ad5f44e57eef73e1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:678)"}, "properties": {"repobilityId": "3b40a6726f4e42a0", "scanner": "scanner-primary", "fingerprint": "ad5f44e57eef73e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b6cf6b53c96adeb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files/upload-url (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:710)"}, "properties": {"repobilityId": "5668b4f3088f23c5", "scanner": "scanner-primary", "fingerprint": "3b6cf6b53c96adeb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9619e53769824fe3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/files (app/v5/employees/[slug]/jobs/[id]/review/_client.tsx:722)"}, "properties": {"repobilityId": "1098d1b4ff0c7a64", "scanner": "scanner-primary", "fingerprint": "9619e53769824fe3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25354d38e3af6c74", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-state (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:112)"}, "properties": {"repobilityId": "6fabafe4a61814df", "scanner": "scanner-primary", "fingerprint": "25354d38e3af6c74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cd6379a5198da2d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-transcribe (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:175)"}, "properties": {"repobilityId": "5c1a3c6d63b4c313", "scanner": "scanner-primary", "fingerprint": "2cd6379a5198da2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f164f4e492498ee", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-command (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:202)"}, "properties": {"repobilityId": "b1e082d0a60ef5dc", "scanner": "scanner-primary", "fingerprint": "7f164f4e492498ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94ba1e91dd208df0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-speak (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:229)"}, "properties": {"repobilityId": "19704035a10721f2", "scanner": "scanner-primary", "fingerprint": "94ba1e91dd208df0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8cffc65f6e0db91", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/voice-apply (app/v5/employees/[slug]/jobs/[id]/review-voice/_client.tsx:260)"}, "properties": {"repobilityId": "d2188f42c6c71916", "scanner": "scanner-primary", "fingerprint": "d8cffc65f6e0db91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dfbb9aac76d0f4c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:83)"}, "properties": {"repobilityId": "d37c3553b1b0e028", "scanner": "scanner-primary", "fingerprint": "dfbb9aac76d0f4c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3752a0b71f406af5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/quote-review/_client.tsx:101)"}, "properties": {"repobilityId": "c8689f0e79f874ed", "scanner": "scanner-primary", "fingerprint": "3752a0b71f406af5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bdd0a278c5625f03", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:53)"}, "properties": {"repobilityId": "d062ed679bf9b07d", "scanner": "scanner-primary", "fingerprint": "bdd0a278c5625f03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1beb23f1148e2928", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId} (app/v5/employees/[slug]/jobs/[id]/order-list-review/_client.tsx:86)"}, "properties": {"repobilityId": "2b293240fa62df74", "scanner": "scanner-primary", "fingerprint": "1beb23f1148e2928", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-903e3899590ab44c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/jobs/${jobId}/compare (app/v5/employees/[slug]/jobs/[id]/compare/_view.tsx:90)"}, "properties": {"repobilityId": "9ffbb5c2029ac92d", "scanner": "scanner-primary", "fingerprint": "903e3899590ab44c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1468d038d1bbbb63", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:90)"}, "properties": {"repobilityId": "07f72479eefea1f6", "scanner": "scanner-primary", "fingerprint": "1468d038d1bbbb63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27120110ddb1c4be", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge/upload (app/v5/employees/[slug]/knowledge/_view.tsx:155)"}, "properties": {"repobilityId": "f83b658cfa5d3285", "scanner": "scanner-primary", "fingerprint": "27120110ddb1c4be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62b6b3bb8a3b895b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${slug}/knowledge (app/v5/employees/[slug]/knowledge/_view.tsx:189)"}, "properties": {"repobilityId": "fbe34f0b10d728eb", "scanner": "scanner-primary", "fingerprint": "62b6b3bb8a3b895b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a90003164e07805e", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:224)"}, "properties": {"repobilityId": "a8c2d38a33eb0508", "scanner": "scanner-primary", "fingerprint": "a90003164e07805e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83b99bc1a036285e", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:241)"}, "properties": {"repobilityId": "ed94e048d8fe2a31", "scanner": "scanner-primary", "fingerprint": "83b99bc1a036285e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-21e26cd0c8af5459", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:258)"}, "properties": {"repobilityId": "bb09bfdf5576bd29", "scanner": "scanner-primary", "fingerprint": "21e26cd0c8af5459", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d59a11d77c835a96", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/custom-employees/${slug}/knowledge/${doc.id} (app/v5/employees/[slug]/knowledge/_view.tsx:277)"}, "properties": {"repobilityId": "48e207840ab7e97f", "scanner": "scanner-primary", "fingerprint": "d59a11d77c835a96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1006d00122d70d7e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/mack/training/list?status=${next} (app/v5/employees/[slug]/training/_view.tsx:79)"}, "properties": {"repobilityId": "7bc53352e9874744", "scanner": "scanner-primary", "fingerprint": "1006d00122d70d7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd916b4d2dce72d8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/mack/training/action (app/v5/employees/[slug]/training/_view.tsx:94)"}, "properties": {"repobilityId": "3ec477c3fe788138", "scanner": "scanner-primary", "fingerprint": "dd916b4d2dce72d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77e756db932d9c0c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/outreach/linkedin/status (app/v5/outreach/_view.tsx:154)"}, "properties": {"repobilityId": "7f57244c07baeec9", "scanner": "scanner-primary", "fingerprint": "77e756db932d9c0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10a6bd48bcfa068c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_admin-view.tsx:96)"}, "properties": {"repobilityId": "e76a5d80f3fcaaf3", "scanner": "scanner-primary", "fingerprint": "10a6bd48bcfa068c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da4db4844df75716", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/connect/status (app/v5/connect/_client-view.tsx:88)"}, "properties": {"repobilityId": "4adadf1e7b27e95c", "scanner": "scanner-primary", "fingerprint": "da4db4844df75716", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec684fe1dc96ee59", "level": "error", "message": {"text": "Dangling fetch: POST /api/integrations/ams/nowcerts/credentials (app/v5/connect/ams/_nowcerts-form.tsx:38)"}, "properties": {"repobilityId": "ca4cd4f5a3e84d12", "scanner": "scanner-primary", "fingerprint": "ec684fe1dc96ee59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93a79b803e92deba", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/partners/${row.id} (app/v5/partners/partners-admin-client.tsx:139)"}, "properties": {"repobilityId": "b61e57d442b0f4ba", "scanner": "scanner-primary", "fingerprint": "93a79b803e92deba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-390f166528507e4b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/analytics/feed (app/v5/analytics/page.tsx:77)"}, "properties": {"repobilityId": "011feff686a93792", "scanner": "scanner-primary", "fingerprint": "390f166528507e4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7ac647eb2256a49", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:261)"}, "properties": {"repobilityId": "d5fb04488f88ff9f", "scanner": "scanner-primary", "fingerprint": "e7ac647eb2256a49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d07bb67cf39ffaa8", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/leads/${id} (app/v5/leads/_page-legacy.tsx:368)"}, "properties": {"repobilityId": "d7a07f714e73ec4b", "scanner": "scanner-primary", "fingerprint": "d07bb67cf39ffaa8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f113544b70a71e46", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/leads/export (app/v5/leads/_page-legacy.tsx:467)"}, "properties": {"repobilityId": "c2b82638e2bf988e", "scanner": "scanner-primary", "fingerprint": "f113544b70a71e46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7be589cb2a394a68", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:674)"}, "properties": {"repobilityId": "b8c96ef9cceb5542", "scanner": "scanner-primary", "fingerprint": "7be589cb2a394a68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b67cd5a521eb2d96", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/leads/bulk (app/v5/leads/_page-legacy.tsx:691)"}, "properties": {"repobilityId": "a6e2ca3f8b4cfb55", "scanner": "scanner-primary", "fingerprint": "b67cd5a521eb2d96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf8022470554a760", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/leads/${lead.id} (app/v5/leads/_page-legacy.tsx:934)"}, "properties": {"repobilityId": "b42f25cc3412038d", "scanner": "scanner-primary", "fingerprint": "bf8022470554a760", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10388a8de3cb1c14", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/contacts/${lead.id}/send-video (app/v5/leads/_page-legacy.tsx:961)"}, "properties": {"repobilityId": "f2b288db6155d0c2", "scanner": "scanner-primary", "fingerprint": "10388a8de3cb1c14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b36381a6a4af173", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/insights (app/v5/insights/page.tsx:67)"}, "properties": {"repobilityId": "2cb254ea0108adf0", "scanner": "scanner-primary", "fingerprint": "8b36381a6a4af173", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-408fe22b70167886", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/voice (app/v5/voice/page.tsx:78)"}, "properties": {"repobilityId": "709fdefa24d05804", "scanner": "scanner-primary", "fingerprint": "408fe22b70167886", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb14391ea2f55054", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/voice (app/v5/voice/page.tsx:100)"}, "properties": {"repobilityId": "5575b42102484b2c", "scanner": "scanner-primary", "fingerprint": "eb14391ea2f55054", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-108802cdfd0e0af2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:154)"}, "properties": {"repobilityId": "bc62f99d55927576", "scanner": "scanner-primary", "fingerprint": "108802cdfd0e0af2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c18a5eec6a538e89", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/voice/caden/prompt (app/v5/employees-admin/[slug]/caden-drawer.tsx:273)"}, "properties": {"repobilityId": "ea1c4e7af6e3fb02", "scanner": "scanner-primary", "fingerprint": "c18a5eec6a538e89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c71394ef89bd794c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/voice/caden (app/v5/employees-admin/[slug]/caden-drawer.tsx:364)"}, "properties": {"repobilityId": "b977c80214b14828", "scanner": "scanner-primary", "fingerprint": "c71394ef89bd794c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92ced8024e5a710d", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/employees-admin/[slug]/caden-drawer.tsx:615)"}, "properties": {"repobilityId": "8aec2868c9debcd8", "scanner": "scanner-primary", "fingerprint": "92ced8024e5a710d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3886f47443a0cf83", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/voice-prompt/apply (app/v5/employees-admin/[slug]/caden-drawer.tsx:627)"}, "properties": {"repobilityId": "cb848e1db708ad2b", "scanner": "scanner-primary", "fingerprint": "3886f47443a0cf83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-614f762a8d1bfed3", "level": "error", "message": {"text": "Dangling fetch: POST /api/employees/personas/upsert (app/v5/employees-admin/[slug]/edit-client.tsx:45)"}, "properties": {"repobilityId": "1c6dcd41c8161b02", "scanner": "scanner-primary", "fingerprint": "614f762a8d1bfed3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1bbf5b168fb35d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/hot-leads (app/v5/admin/hot-leads/_client.tsx:23)"}, "properties": {"repobilityId": "9f7bffa66cb10cf6", "scanner": "scanner-primary", "fingerprint": "e1bbf5b168fb35d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98740b2f68c337a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/admin/usage?window=${w} (app/v5/admin/usage/_view.tsx:80)"}, "properties": {"repobilityId": "5a71d96299a3024f", "scanner": "scanner-primary", "fingerprint": "98740b2f68c337a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a0f519c1b628c5f", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId} (app/v5/admin/workspaces/[tenantId]/page.tsx:62)"}, "properties": {"repobilityId": "d9ce0842f62cf254", "scanner": "scanner-primary", "fingerprint": "2a0f519c1b628c5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b7b265d2a317357", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/members (app/v5/admin/workspaces/[tenantId]/page.tsx:63)"}, "properties": {"repobilityId": "e7b96e97d30ac67a", "scanner": "scanner-primary", "fingerprint": "5b7b265d2a317357", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fdfb408f74aee480", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/workspaces/${tenantId}/invites (app/v5/admin/workspaces/[tenantId]/page.tsx:64)"}, "properties": {"repobilityId": "787fa251e11db6c5", "scanner": "scanner-primary", "fingerprint": "fdfb408f74aee480", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f63f80d5e972731", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/workspaces/${tenantId}/edit (app/v5/admin/workspaces/[tenantId]/page.tsx:87)"}, "properties": {"repobilityId": "3730d4ce0ff4d6dd", "scanner": "scanner-primary", "fingerprint": "4f63f80d5e972731", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98c71dcaffa9f382", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/resend-invite (app/v5/admin/workspaces/[tenantId]/page.tsx:101)"}, "properties": {"repobilityId": "b4bdf980295e5b8e", "scanner": "scanner-primary", "fingerprint": "98c71dcaffa9f382", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1357bf1d1f32b601", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenantId}/add-member (app/v5/admin/workspaces/[tenantId]/page.tsx:122)"}, "properties": {"repobilityId": "5243d1a358981e38", "scanner": "scanner-primary", "fingerprint": "1357bf1d1f32b601", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fd70fd31094818e", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/workspaces/${tenantId}/delete (app/v5/admin/workspaces/[tenantId]/page.tsx:139)"}, "properties": {"repobilityId": "695003e5d5cabfa2", "scanner": "scanner-primary", "fingerprint": "2fd70fd31094818e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fdf2839b2512a76", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/feature-flags (app/v5/admin/audits/auto-send-toggle.tsx:39)"}, "properties": {"repobilityId": "7c1842772868f757", "scanner": "scanner-primary", "fingerprint": "2fdf2839b2512a76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb294c6d8d7cb389", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/scoping-checkout (app/v5/admin/audits/audit-table-client.tsx:59)"}, "properties": {"repobilityId": "efa235ac01efdd0e", "scanner": "scanner-primary", "fingerprint": "cb294c6d8d7cb389", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-06f2ee30161a42e2", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/admin/audit/${props.auditId}/save (app/v5/admin/audits/[id]/review-client.tsx:55)"}, "properties": {"repobilityId": "9cbe3c4f6d138402", "scanner": "scanner-primary", "fingerprint": "06f2ee30161a42e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-30d4231edbc7e317", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/audit/${props.auditId}/regenerate (app/v5/admin/audits/[id]/review-client.tsx:91)"}, "properties": {"repobilityId": "48d900e2997ab133", "scanner": "scanner-primary", "fingerprint": "30d4231edbc7e317", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e7643818ced5733", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/audit/${props.auditId}/approve (app/v5/admin/audits/[id]/review-client.tsx:121)"}, "properties": {"repobilityId": "6c119c84d9aaa123", "scanner": "scanner-primary", "fingerprint": "3e7643818ced5733", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f4698f7ccf49461", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees (app/v5/admin/custom-employees/new/_form.tsx:70)"}, "properties": {"repobilityId": "c317d247062d0c1a", "scanner": "scanner-primary", "fingerprint": "5f4698f7ccf49461", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb89603e02544469", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/build-from-pdf (app/v5/admin/custom-employees/build-from-pdf/page.tsx:33)"}, "properties": {"repobilityId": "00fcd3c8452fa9ee", "scanner": "scanner-primary", "fingerprint": "bb89603e02544469", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd733dfeaf2258f3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/employee-drafts (app/v5/admin/custom-employees/new-with-ai/_client.tsx:148)"}, "properties": {"repobilityId": "a305146f91a16001", "scanner": "scanner-primary", "fingerprint": "bd733dfeaf2258f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b484cefb5cfcdead", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/chat (app/v5/admin/custom-employees/new-with-ai/_client.tsx:365)"}, "properties": {"repobilityId": "f2de74c19f6b2dbe", "scanner": "scanner-primary", "fingerprint": "b484cefb5cfcdead", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31953938bc79d370", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/employee-drafts/${draftRow.id} (app/v5/admin/custom-employees/new-with-ai/_client.tsx:386)"}, "properties": {"repobilityId": "356fbb74161e1a3f", "scanner": "scanner-primary", "fingerprint": "31953938bc79d370", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-661144dc6069fa54", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/employee-drafts/${draftRow.id}/create (app/v5/admin/custom-employees/new-with-ai/_client.tsx:410)"}, "properties": {"repobilityId": "16e6281a06c54aa1", "scanner": "scanner-primary", "fingerprint": "661144dc6069fa54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2ac2221f73193eb9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog/import (app/v5/admin/custom-employees/[slug]/_managers.tsx:22)"}, "properties": {"repobilityId": "f93217efdc4027ca", "scanner": "scanner-primary", "fingerprint": "2ac2221f73193eb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e2d8ce9821d1e0be", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/catalog (app/v5/admin/custom-employees/[slug]/_managers.tsx:64)"}, "properties": {"repobilityId": "ea8388624ea06448", "scanner": "scanner-primary", "fingerprint": "e2d8ce9821d1e0be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56bb5bad8a8913ca", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:77)"}, "properties": {"repobilityId": "e6889a346ded76d5", "scanner": "scanner-primary", "fingerprint": "56bb5bad8a8913ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c56518a89964ed1", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/catalog/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:87)"}, "properties": {"repobilityId": "9c3902e9565078c7", "scanner": "scanner-primary", "fingerprint": "3c56518a89964ed1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba72f9a64f6bf04d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/rules (app/v5/admin/custom-employees/[slug]/_managers.tsx:145)"}, "properties": {"repobilityId": "1dd98f130ff2d8ed", "scanner": "scanner-primary", "fingerprint": "ba72f9a64f6bf04d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee412603f927c5f9", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/rules/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:153)"}, "properties": {"repobilityId": "d7a3cd8327c69764", "scanner": "scanner-primary", "fingerprint": "ee412603f927c5f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b0a5e713d07b3de3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/knowledge (app/v5/admin/custom-employees/[slug]/_managers.tsx:207)"}, "properties": {"repobilityId": "db7cc6722aa3828b", "scanner": "scanner-primary", "fingerprint": "b0a5e713d07b3de3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fad5179a03375276", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/knowledge/${id} (app/v5/admin/custom-employees/[slug]/_managers.tsx:216)"}, "properties": {"repobilityId": "0bee36b435a60358", "scanner": "scanner-primary", "fingerprint": "fad5179a03375276", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac5e35165bc52647", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:28)"}, "properties": {"repobilityId": "7956f1c5b610008d", "scanner": "scanner-primary", "fingerprint": "ac5e35165bc52647", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b766da92d1ab743", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/integrations/stackit (app/v5/admin/custom-employees/[slug]/integrations/_stackit-form.tsx:46)"}, "properties": {"repobilityId": "bd9707601eabe3ed", "scanner": "scanner-primary", "fingerprint": "0b766da92d1ab743", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-18b0ac0495c71042", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:25)"}, "properties": {"repobilityId": "491ab1a005a8481a", "scanner": "scanner-primary", "fingerprint": "18b0ac0495c71042", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bb58f33c3fd69a8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${sheet.id}/upload-url (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:36)"}, "properties": {"repobilityId": "095519456e7974cb", "scanner": "scanner-primary", "fingerprint": "1bb58f33c3fd69a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-822f8c9d9c816be3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/admin/custom-employees/${personaSlug}/standard-sheets (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:61)"}, "properties": {"repobilityId": "36fb926366e86912", "scanner": "scanner-primary", "fingerprint": "822f8c9d9c816be3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70060e6e01056231", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/admin/custom-employees/${personaSlug}/standard-sheets/${id} (app/v5/admin/custom-employees/[slug]/standard-sheets/_manager.tsx:76)"}, "properties": {"repobilityId": "118261301fa99b6f", "scanner": "scanner-primary", "fingerprint": "70060e6e01056231", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12ac8c5404b66ef8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/outbound-copies (app/v5/admin/copy-monitor/_client.tsx:20)"}, "properties": {"repobilityId": "755a8a545c7b24f2", "scanner": "scanner-primary", "fingerprint": "12ac8c5404b66ef8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5500bb8109b9a507", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/tenant-quality (app/v5/admin/tenant-quality/_client.tsx:35)"}, "properties": {"repobilityId": "ca2cd7947c18bb33", "scanner": "scanner-primary", "fingerprint": "5500bb8109b9a507", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-741d8e360e764386", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/copy-test-results (app/v5/admin/copy-test-results/_client.tsx:26)"}, "properties": {"repobilityId": "401ad568807b7572", "scanner": "scanner-primary", "fingerprint": "741d8e360e764386", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-825c9996d527eff4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/agents/feed (app/v5/agents/_page-legacy.tsx:196)"}, "properties": {"repobilityId": "782fc23ffd417b61", "scanner": "scanner-primary", "fingerprint": "825c9996d527eff4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff0274b630921062", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/${draft.id}/chat (app/v5/agents/_page-legacy.tsx:379)"}, "properties": {"repobilityId": "ab741e5b73e1d9a9", "scanner": "scanner-primary", "fingerprint": "ff0274b630921062", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-100548dd15ef99c7", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/agents/${draft.id} (app/v5/agents/_page-legacy.tsx:405)"}, "properties": {"repobilityId": "cc1d33a3ff7e2d48", "scanner": "scanner-primary", "fingerprint": "100548dd15ef99c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a2df557d3cc7836", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/content?status=${tab} (app/v5/content/page.tsx:55)"}, "properties": {"repobilityId": "a4817e8e2a107bbe", "scanner": "scanner-primary", "fingerprint": "7a2df557d3cc7836", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c35b06fb7a5f09f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/council (app/v5/content/page.tsx:61)"}, "properties": {"repobilityId": "4738efe69983922f", "scanner": "scanner-primary", "fingerprint": "c35b06fb7a5f09f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13391dbb99477192", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/content (app/v5/content/page.tsx:79)"}, "properties": {"repobilityId": "9fa9a51dedb71d2d", "scanner": "scanner-primary", "fingerprint": "13391dbb99477192", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f1754b6b3de589c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/campaigns/feed (app/v5/campaigns/_page-legacy.tsx:41)"}, "properties": {"repobilityId": "db5328cb12bb1cbf", "scanner": "scanner-primary", "fingerprint": "6f1754b6b3de589c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4036af137b2f9d0f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/pause (app/v5/campaigns/_page-legacy.tsx:154)"}, "properties": {"repobilityId": "ddde26ba23e0c115", "scanner": "scanner-primary", "fingerprint": "4036af137b2f9d0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de0b03938543021e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/campaigns/${campaign.id}/activate (app/v5/campaigns/_page-legacy.tsx:165)"}, "properties": {"repobilityId": "d0f2b428591c204d", "scanner": "scanner-primary", "fingerprint": "de0b03938543021e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-480b10d727de45b0", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/campaigns/${campaign.id}/steps/${s.idx} (app/v5/campaigns/_page-legacy.tsx:183)"}, "properties": {"repobilityId": "68d8e85df0eb67c4", "scanner": "scanner-primary", "fingerprint": "480b10d727de45b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-571808df53c2e0e0", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/tenant-plan (app/v5/upgrade/page.tsx:153)"}, "properties": {"repobilityId": "f55e3ccdddf18f1f", "scanner": "scanner-primary", "fingerprint": "571808df53c2e0e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c551cf5f45bb6ff6", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/change-plan (app/v5/upgrade/page.tsx:506)"}, "properties": {"repobilityId": "aa6575a15d5d8360", "scanner": "scanner-primary", "fingerprint": "c551cf5f45bb6ff6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6aab4886b9df5b5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/senders/feed (app/v5/senders/_view.tsx:78)"}, "properties": {"repobilityId": "fcfe131be8f322bc", "scanner": "scanner-primary", "fingerprint": "d6aab4886b9df5b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f987fb466a1ac294", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/senders/sync (app/v5/senders/_view.tsx:129)"}, "properties": {"repobilityId": "6b4602d68c010b47", "scanner": "scanner-primary", "fingerprint": "f987fb466a1ac294", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-084f8cbbd8d46530", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v5/senders/${m.id} (app/v5/senders/_view.tsx:225)"}, "properties": {"repobilityId": "ed8221be61961a43", "scanner": "scanner-primary", "fingerprint": "084f8cbbd8d46530", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-886b23ac2c48b2c6", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:461)"}, "properties": {"repobilityId": "5b27baa7c18e8062", "scanner": "scanner-primary", "fingerprint": "886b23ac2c48b2c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42d6a75d9e9e1fae", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/senders/mailbox/${mailbox.id} (app/v5/senders/_view.tsx:473)"}, "properties": {"repobilityId": "0109fc169cff5737", "scanner": "scanner-primary", "fingerprint": "42d6a75d9e9e1fae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-353a257e44710f64", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/dns-check (app/v5/senders/_view.tsx:485)"}, "properties": {"repobilityId": "2d3fcb0c68e8838e", "scanner": "scanner-primary", "fingerprint": "353a257e44710f64", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b77cc15687760d76", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/senders/sms/${num.id} (app/v5/senders/_view.tsx:556)"}, "properties": {"repobilityId": "1c6778630a8d2aaa", "scanner": "scanner-primary", "fingerprint": "b77cc15687760d76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9c0681cd174bece", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/senders/sms/${num.id}/sync (app/v5/senders/_view.tsx:569)"}, "properties": {"repobilityId": "6e7682192430a53c", "scanner": "scanner-primary", "fingerprint": "c9c0681cd174bece", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a5058843de366ca9", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:91)"}, "properties": {"repobilityId": "a1ddfcb0c5b537b5", "scanner": "scanner-primary", "fingerprint": "a5058843de366ca9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d4516dc0cdde98f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/council/feed (app/v5/council/page.tsx:115)"}, "properties": {"repobilityId": "6c694a17a6da418f", "scanner": "scanner-primary", "fingerprint": "3d4516dc0cdde98f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7f674497fa3cc65", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/council/approve (app/v5/council/page.tsx:197)"}, "properties": {"repobilityId": "6849e1cde7464545", "scanner": "scanner-primary", "fingerprint": "f7f674497fa3cc65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4aabd420361a0d73", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/council/toggle (app/v5/council/page.tsx:543)"}, "properties": {"repobilityId": "5bcae63005bc68f3", "scanner": "scanner-primary", "fingerprint": "4aabd420361a0d73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b3d106c8e62bd99d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/inbox/feed (app/v5/inbox/_page-legacy.tsx:430)"}, "properties": {"repobilityId": "4b3002ea828d5e9e", "scanner": "scanner-primary", "fingerprint": "b3d106c8e62bd99d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39b3ad48d3e9d470", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:534)"}, "properties": {"repobilityId": "a477df86da3a64ee", "scanner": "scanner-primary", "fingerprint": "39b3ad48d3e9d470", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f31114b75b6a3c44", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/inbox/thread/${encodeURIComponent(target.id)} (app/v5/inbox/_page-legacy.tsx:571)"}, "properties": {"repobilityId": "54230ce717bc95ca", "scanner": "scanner-primary", "fingerprint": "f31114b75b6a3c44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf6dd797de361c8a", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:643)"}, "properties": {"repobilityId": "b198c155ac4d3076", "scanner": "scanner-primary", "fingerprint": "cf6dd797de361c8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16357e69057f611c", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/snooze (app/v5/inbox/_page-legacy.tsx:724)"}, "properties": {"repobilityId": "c7fb52759a331630", "scanner": "scanner-primary", "fingerprint": "16357e69057f611c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8b7fda14f543e5e", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/mute-ai (app/v5/inbox/_page-legacy.tsx:749)"}, "properties": {"repobilityId": "17b8577cc3b4d0a3", "scanner": "scanner-primary", "fingerprint": "c8b7fda14f543e5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60201cf4e210527c", "level": "error", "message": {"text": "Dangling fetch: POST /api/inbox/send (app/v5/inbox/_page-legacy.tsx:1636)"}, "properties": {"repobilityId": "e0b5ba12c4d38932", "scanner": "scanner-primary", "fingerprint": "60201cf4e210527c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd778dbe4bc0cbc2", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/sms-draft (app/v5/inbox/_page-legacy.tsx:1668)"}, "properties": {"repobilityId": "3da1c116a15dde6d", "scanner": "scanner-primary", "fingerprint": "fd778dbe4bc0cbc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2de6f4f0c3811409", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2118)"}, "properties": {"repobilityId": "4e30ed54f38a4cf4", "scanner": "scanner-primary", "fingerprint": "2de6f4f0c3811409", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53a65853f72f0169", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v5/leads/${encodeURIComponent(contactId)} (app/v5/inbox/_page-legacy.tsx:2138)"}, "properties": {"repobilityId": "534c8405a0731b45", "scanner": "scanner-primary", "fingerprint": "53a65853f72f0169", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-52e52439b7ca0300", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (app/workers/outbound.ts:91)"}, "properties": {"repobilityId": "4e6916bef4947751", "scanner": "scanner-primary", "fingerprint": "52e52439b7ca0300", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a53d20b3537a496", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/apollo-sync-now (app/admin/funnel/apollo-sync-button.tsx:12)"}, "properties": {"repobilityId": "3f90f985db76370e", "scanner": "scanner-primary", "fingerprint": "1a53d20b3537a496", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-946e1677bd56dcb7", "level": "error", "message": {"text": "Dangling fetch: POST /auth/signout (app/v9/_shell.tsx:100)"}, "properties": {"repobilityId": "a6c1e7ae23106cb1", "scanner": "scanner-primary", "fingerprint": "946e1677bd56dcb7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af98b5507ae97872", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/notifications (app/v9/_shell.tsx:121)"}, "properties": {"repobilityId": "23de55a8783506ff", "scanner": "scanner-primary", "fingerprint": "af98b5507ae97872", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bbbaa8ca856e6d2a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/me (app/v9/_shell.tsx:139)"}, "properties": {"repobilityId": "82c7d4d27eca2f91", "scanner": "scanner-primary", "fingerprint": "bbbaa8ca856e6d2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf657c9b77d3b343", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/notifications/read-all (app/v9/_shell.tsx:183)"}, "properties": {"repobilityId": "9910fe6b86c74434", "scanner": "scanner-primary", "fingerprint": "bf657c9b77d3b343", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0d44f52bb4242c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/notifications/${n.id}/read (app/v9/_shell.tsx:199)"}, "properties": {"repobilityId": "bc9f1ac80c2a8261", "scanner": "scanner-primary", "fingerprint": "f0d44f52bb4242c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-04b1adcccd649cc4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/search?q=${encodeURIComponent(query)} (app/v9/_shell.tsx:960)"}, "properties": {"repobilityId": "a3a9a851d2126680", "scanner": "scanner-primary", "fingerprint": "04b1adcccd649cc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1937fa400bd47d8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces?limit=12 (app/v9/_shell.tsx:1169)"}, "properties": {"repobilityId": "b2befab02e03a173", "scanner": "scanner-primary", "fingerprint": "1937fa400bd47d8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4ed83b3b4688ed00", "level": "error", "message": {"text": "Dangling fetch: POST /api/tenants/switch (app/v9/_shell.tsx:1197)"}, "properties": {"repobilityId": "6aff9afc8b8540d1", "scanner": "scanner-primary", "fingerprint": "4ed83b3b4688ed00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4dee2b3e39b8dad", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/_shell.tsx:1217)"}, "properties": {"repobilityId": "07b7897290e67270", "scanner": "scanner-primary", "fingerprint": "a4dee2b3e39b8dad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-052c05e1b85548ec", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/view-mode (app/v9/_shell.tsx:1222)"}, "properties": {"repobilityId": "72977e29e314916b", "scanner": "scanner-primary", "fingerprint": "052c05e1b85548ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77f11b5ca2b5907b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/signout (app/v9/_shell.tsx:1327)"}, "properties": {"repobilityId": "134a3dd3a5485c8a", "scanner": "scanner-primary", "fingerprint": "77f11b5ca2b5907b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ce47bd64109c01c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/workspace (app/v9/settings/page.tsx:130)"}, "properties": {"repobilityId": "4df79957a50f93ee", "scanner": "scanner-primary", "fingerprint": "7ce47bd64109c01c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-01f878c1a30d1423", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/settings/workspace (app/v9/settings/page.tsx:138)"}, "properties": {"repobilityId": "b36e6cd1e13fcb89", "scanner": "scanner-primary", "fingerprint": "01f878c1a30d1423", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c873b1f6b6e7f747", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/billing (app/v9/settings/page.tsx:181)"}, "properties": {"repobilityId": "91d146e1692420fb", "scanner": "scanner-primary", "fingerprint": "c873b1f6b6e7f747", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f667f1a5abfcd19", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/integrations (app/v9/settings/page.tsx:244)"}, "properties": {"repobilityId": "309bd93f631ac131", "scanner": "scanner-primary", "fingerprint": "2f667f1a5abfcd19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-15792142a9878498", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/notifications (app/v9/settings/page.tsx:285)"}, "properties": {"repobilityId": "f406270eee6950f9", "scanner": "scanner-primary", "fingerprint": "15792142a9878498", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70731b728332bbee", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/settings/notifications (app/v9/settings/page.tsx:296)"}, "properties": {"repobilityId": "20761e0fda91eea6", "scanner": "scanner-primary", "fingerprint": "70731b728332bbee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2907d363e614b548", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/api-keys (app/v9/settings/page.tsx:379)"}, "properties": {"repobilityId": "22be62fffebe156e", "scanner": "scanner-primary", "fingerprint": "2907d363e614b548", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4cca5c8096a47f5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/settings/api-keys (app/v9/settings/page.tsx:389)"}, "properties": {"repobilityId": "1bfb035173375c63", "scanner": "scanner-primary", "fingerprint": "b4cca5c8096a47f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-702c73ab30d427fd", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/settings/api-keys?id=${id} (app/v9/settings/page.tsx:407)"}, "properties": {"repobilityId": "7c6af8b30ecec8e9", "scanner": "scanner-primary", "fingerprint": "702c73ab30d427fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-54c0fb354614dcd4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/settings/team (app/v9/settings/page.tsx:481)"}, "properties": {"repobilityId": "e32bb4514b928de5", "scanner": "scanner-primary", "fingerprint": "54c0fb354614dcd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f1c38014a1d977a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/employees (app/v9/employees/page.tsx:47)"}, "properties": {"repobilityId": "8e76a081f648988a", "scanner": "scanner-primary", "fingerprint": "4f1c38014a1d977a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8295a4a0d5720980", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/employees/${emp.id}/builder (app/v9/employees/page.tsx:155)"}, "properties": {"repobilityId": "e6cf04dfa4597ecf", "scanner": "scanner-primary", "fingerprint": "8295a4a0d5720980", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d97069f673720fe", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/employees/${emp.id} (app/v9/employees/page.tsx:173)"}, "properties": {"repobilityId": "92bdfdf9102fb5a0", "scanner": "scanner-primary", "fingerprint": "4d97069f673720fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3824b13d32ee0315", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/ops/briefings (app/v9/ops/page.tsx:66)"}, "properties": {"repobilityId": "5c62f43ecd7cd335", "scanner": "scanner-primary", "fingerprint": "3824b13d32ee0315", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d749aad3a9337b6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/ops/chat (app/v9/ops/page.tsx:83)"}, "properties": {"repobilityId": "1fed22d552559b73", "scanner": "scanner-primary", "fingerprint": "3d749aad3a9337b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-caf6cd2962383c47", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/leads/bulk (app/v9/leads/page.tsx:93)"}, "properties": {"repobilityId": "0d33086f624ea8ae", "scanner": "scanner-primary", "fingerprint": "caf6cd2962383c47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a234588330f716d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces (app/v9/leads/new/page.tsx:48)"}, "properties": {"repobilityId": "e31ac15a024c1002", "scanner": "scanner-primary", "fingerprint": "a234588330f716d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-849718d18a21ed61", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/leads (app/v9/leads/new/page.tsx:63)"}, "properties": {"repobilityId": "1d231491a51138f2", "scanner": "scanner-primary", "fingerprint": "849718d18a21ed61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f2a0431deae71ae", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:349)"}, "properties": {"repobilityId": "b2e68bbe548d7c43", "scanner": "scanner-primary", "fingerprint": "7f2a0431deae71ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a300612bed1580c3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:359)"}, "properties": {"repobilityId": "598d51fb132f9cc6", "scanner": "scanner-primary", "fingerprint": "a300612bed1580c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fcc35fdb3d422771", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/activity (app/v9/workspaces/page.tsx:814)"}, "properties": {"repobilityId": "fd52af10d530fb37", "scanner": "scanner-primary", "fingerprint": "fcc35fdb3d422771", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2046aacf62a9f98", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/page.tsx:829)"}, "properties": {"repobilityId": "a9fc550044af182b", "scanner": "scanner-primary", "fingerprint": "a2046aacf62a9f98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac875290abbd192c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/page.tsx:843)"}, "properties": {"repobilityId": "6e1349a23af25e0f", "scanner": "scanner-primary", "fingerprint": "ac875290abbd192c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0462957ea1c4dd38", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:858)"}, "properties": {"repobilityId": "f9cee81ecec8b2d5", "scanner": "scanner-primary", "fingerprint": "0462957ea1c4dd38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e239352e088444e7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/page.tsx:873)"}, "properties": {"repobilityId": "7345bba6805a2cc3", "scanner": "scanner-primary", "fingerprint": "e239352e088444e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5dfe40d8a786e721", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/custom-draft (app/v9/workspaces/page.tsx:1145)"}, "properties": {"repobilityId": "74c22337a877fc2d", "scanner": "scanner-primary", "fingerprint": "5dfe40d8a786e721", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28095778ba0cca31", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/page.tsx:1163)"}, "properties": {"repobilityId": "ae5184176dc30ed8", "scanner": "scanner-primary", "fingerprint": "28095778ba0cca31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de93535038949433", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces (app/v9/workspaces/new/page.tsx:38)"}, "properties": {"repobilityId": "16559ba47f382462", "scanner": "scanner-primary", "fingerprint": "de93535038949433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56b2aa57deeecd2d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/_admin-shell.tsx:44)"}, "properties": {"repobilityId": "02e512bc2fd43c29", "scanner": "scanner-primary", "fingerprint": "56b2aa57deeecd2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b6efc9b41bf9599", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/_admin-shell.tsx:52)"}, "properties": {"repobilityId": "f3af2cfed34dcf0f", "scanner": "scanner-primary", "fingerprint": "2b6efc9b41bf9599", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b8f30795cc486cb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces?ids=${id}&include_deleted=1 (app/v9/workspaces/[id]/page.tsx:78)"}, "properties": {"repobilityId": "33b4ce74d2772fe7", "scanner": "scanner-primary", "fingerprint": "1b8f30795cc486cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d47b1255cab9c52", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/workspaces/[id]/page.tsx:91)"}, "properties": {"repobilityId": "c98ae78356b51fb2", "scanner": "scanner-primary", "fingerprint": "4d47b1255cab9c52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-41cb4f9697057057", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${ws.id}/mute-ai (app/v9/workspaces/[id]/page.tsx:108)"}, "properties": {"repobilityId": "07dc104e4cbbc9df", "scanner": "scanner-primary", "fingerprint": "41cb4f9697057057", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9da518fde02169dd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:128)"}, "properties": {"repobilityId": "43d6eb306538b1f0", "scanner": "scanner-primary", "fingerprint": "9da518fde02169dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d72b964c87732f5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${ws.id}/delete (app/v9/workspaces/[id]/page.tsx:144)"}, "properties": {"repobilityId": "423fe95a7597998c", "scanner": "scanner-primary", "fingerprint": "0d72b964c87732f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3771d923c8d3a0f0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${ws.id}/smoke-test (app/v9/workspaces/[id]/page.tsx:242)"}, "properties": {"repobilityId": "c33f609bbf11c2ac", "scanner": "scanner-primary", "fingerprint": "3771d923c8d3a0f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39d63d13489ddb01", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context (app/v9/workspaces/[id]/page.tsx:351)"}, "properties": {"repobilityId": "3bd07d448485b110", "scanner": "scanner-primary", "fingerprint": "39d63d13489ddb01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d30ff091c2977d0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/export-context?upload=1 (app/v9/workspaces/[id]/page.tsx:371)"}, "properties": {"repobilityId": "60120f2f3a5fa6b1", "scanner": "scanner-primary", "fingerprint": "9d30ff091c2977d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b1e7313753860f6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/workspaces/[id]/page.tsx:413)"}, "properties": {"repobilityId": "07b7050a4e73d652", "scanner": "scanner-primary", "fingerprint": "7b1e7313753860f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-238f736567c4ddd4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/page.tsx:704)"}, "properties": {"repobilityId": "49ae820edc96ba4a", "scanner": "scanner-primary", "fingerprint": "238f736567c4ddd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ee00e8ee0b2b04b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/page.tsx:787)"}, "properties": {"repobilityId": "5c556975d1b0e4e3", "scanner": "scanner-primary", "fingerprint": "8ee00e8ee0b2b04b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc8c8b3f2ebe3663", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/readiness (app/v9/workspaces/[id]/page.tsx:869)"}, "properties": {"repobilityId": "f13ab2722a2e9525", "scanner": "scanner-primary", "fingerprint": "cc8c8b3f2ebe3663", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1483d13cb1f7fa25", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${tenantId}/billing-mtd (app/v9/workspaces/[id]/page.tsx:962)"}, "properties": {"repobilityId": "64b3d3bea28e1dab", "scanner": "scanner-primary", "fingerprint": "1483d13cb1f7fa25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c888aa6cce8f9ae1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/integrations (app/v9/workspaces/[id]/integrations/page.tsx:42)"}, "properties": {"repobilityId": "441cc727a476d8ee", "scanner": "scanner-primary", "fingerprint": "c888aa6cce8f9ae1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-edcee0b44dd70bca", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:82)"}, "properties": {"repobilityId": "87ca778880a8f1c8", "scanner": "scanner-primary", "fingerprint": "edcee0b44dd70bca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a5397f508b7b73d", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/settings (app/v9/workspaces/[id]/settings/page.tsx:114)"}, "properties": {"repobilityId": "af323279c8d7bc8f", "scanner": "scanner-primary", "fingerprint": "3a5397f508b7b73d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bfd48443451c1bf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/usage (app/v9/workspaces/[id]/usage/page.tsx:60)"}, "properties": {"repobilityId": "49a1fb8b84573cd3", "scanner": "scanner-primary", "fingerprint": "2bfd48443451c1bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b1eff5f2c3ed561", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager (app/v9/workspaces/[id]/manager/page.tsx:110)"}, "properties": {"repobilityId": "1d9bf9fa16a1a2f6", "scanner": "scanner-primary", "fingerprint": "0b1eff5f2c3ed561", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f1ec899276e5c15", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/actions (app/v9/workspaces/[id]/manager/page.tsx:111)"}, "properties": {"repobilityId": "f3f4a39715211047", "scanner": "scanner-primary", "fingerprint": "3f1ec899276e5c15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9eefaf73a05b0d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/autonomous-mode (app/v9/workspaces/[id]/manager/page.tsx:128)"}, "properties": {"repobilityId": "2c7526a6bc68b5f6", "scanner": "scanner-primary", "fingerprint": "e9eefaf73a05b0d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-856bdfd48f272fa4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/manager/messages?session_id=${sessionId} (app/v9/workspaces/[id]/manager/page.tsx:144)"}, "properties": {"repobilityId": "828d8200a26c4231", "scanner": "scanner-primary", "fingerprint": "856bdfd48f272fa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35b82af2b748fc36", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat-uploads (app/v9/workspaces/[id]/manager/page.tsx:199)"}, "properties": {"repobilityId": "850b41d647662595", "scanner": "scanner-primary", "fingerprint": "35b82af2b748fc36", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-47a7c635b5b97a48", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/chat (app/v9/workspaces/[id]/manager/page.tsx:232)"}, "properties": {"repobilityId": "ca5f1b8d69bd0cd4", "scanner": "scanner-primary", "fingerprint": "47a7c635b5b97a48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ce67151d221d517", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${id}/manager/proposals/${pid} (app/v9/workspaces/[id]/manager/page.tsx:255)"}, "properties": {"repobilityId": "7d953bddcc87a941", "scanner": "scanner-primary", "fingerprint": "0ce67151d221d517", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-319514664776e4f6", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspaces/${tenant.id}/invites (app/v9/workspaces/[id]/invite/_client.tsx:98)"}, "properties": {"repobilityId": "21d03be17eff34dc", "scanner": "scanner-primary", "fingerprint": "319514664776e4f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44b15ba53ae2164b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/personas (app/v9/workspaces/[id]/ai-employees/page.tsx:68)"}, "properties": {"repobilityId": "b32bd25180f411bb", "scanner": "scanner-primary", "fingerprint": "44b15ba53ae2164b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0c3a62c8f78842ec", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/summary (app/v9/workspaces/[id]/ai-employees/page.tsx:71)"}, "properties": {"repobilityId": "23d573d5aba0d811", "scanner": "scanner-primary", "fingerprint": "0c3a62c8f78842ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6dfa605c4d7c1271", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=200 (app/v9/workspaces/[id]/activity/page.tsx:57)"}, "properties": {"repobilityId": "685b0e78243d38bb", "scanner": "scanner-primary", "fingerprint": "6dfa605c4d7c1271", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b6395d80985623a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/activity (app/v9/workspaces/[id]/activity/page.tsx:58)"}, "properties": {"repobilityId": "18882e5604542d2b", "scanner": "scanner-primary", "fingerprint": "9b6395d80985623a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-75ede06ee043928e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/admin-activity?limit=500 (app/v9/workspaces/[id]/audits/page.tsx:42)"}, "properties": {"repobilityId": "84887a7ec64ad7a4", "scanner": "scanner-primary", "fingerprint": "75ede06ee043928e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f4d5018bbdc928c4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/audit-log?${p} (app/v9/workspaces/[id]/audit-log/page.tsx:39)"}, "properties": {"repobilityId": "7da60db2de58a27c", "scanner": "scanner-primary", "fingerprint": "f4d5018bbdc928c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-54851168ce020abd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/billing (app/v9/workspaces/[id]/billing/page.tsx:54)"}, "properties": {"repobilityId": "33a8ac08bdaf8bad", "scanner": "scanner-primary", "fingerprint": "54851168ce020abd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3631d395d60d05b2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:47)"}, "properties": {"repobilityId": "5763d122de15bd46", "scanner": "scanner-primary", "fingerprint": "3631d395d60d05b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-887f09cfd860ace7", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/members (app/v9/workspaces/[id]/members/page.tsx:64)"}, "properties": {"repobilityId": "b39a735dd61edf43", "scanner": "scanner-primary", "fingerprint": "887f09cfd860ace7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f43b78893d39ff23", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/workspaces/${id}/members?user_id=${userId} (app/v9/workspaces/[id]/members/page.tsx:81)"}, "properties": {"repobilityId": "16b1a11d40ca2386", "scanner": "scanner-primary", "fingerprint": "f43b78893d39ff23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d8251f752a5e613", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/jobs?limit=300 (app/v9/workspaces/[id]/jobs/page.tsx:51)"}, "properties": {"repobilityId": "42cb1e2aeb904bab", "scanner": "scanner-primary", "fingerprint": "7d8251f752a5e613", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-621748a8aa7c9098", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:43)"}, "properties": {"repobilityId": "5fcfad4e9ba87f6b", "scanner": "scanner-primary", "fingerprint": "621748a8aa7c9098", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dab74587b1e7600f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/workspaces/${id}/pricing (app/v9/workspaces/[id]/pricing/page.tsx:66)"}, "properties": {"repobilityId": "dbcb4ffaed91eb9a", "scanner": "scanner-primary", "fingerprint": "dab74587b1e7600f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c161994aad116f18", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/workspace-templates (app/v9/workspaces/new-from-call/page.tsx:120)"}, "properties": {"repobilityId": "4912d51f1567d237", "scanner": "scanner-primary", "fingerprint": "c161994aad116f18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b85e6c248161ef4d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/preview-plan (app/v9/workspaces/new-from-call/page.tsx:161)"}, "properties": {"repobilityId": "37ba0d1e4f11e7be", "scanner": "scanner-primary", "fingerprint": "b85e6c248161ef4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e89c027d16b4d3c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspace-templates/${templateSlug}/apply (app/v9/workspaces/new-from-call/page.tsx:231)"}, "properties": {"repobilityId": "431adf58264947e8", "scanner": "scanner-primary", "fingerprint": "e89c027d16b4d3c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-613a35e11c773091", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspace-drafts (app/v9/workspaces/new-with-ai/_client.tsx:213)"}, "properties": {"repobilityId": "29a73b0eccb1ac55", "scanner": "scanner-primary", "fingerprint": "613a35e11c773091", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34b1fc978d02d7b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/chat (app/v9/workspaces/new-with-ai/_client.tsx:423)"}, "properties": {"repobilityId": "ec3b7ab648c1fd5b", "scanner": "scanner-primary", "fingerprint": "34b1fc978d02d7b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e2222119318cdfe9", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/workspace-drafts/${draftRow.id} (app/v9/workspaces/new-with-ai/_client.tsx:444)"}, "properties": {"repobilityId": "e11a9720158aaa98", "scanner": "scanner-primary", "fingerprint": "e2222119318cdfe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce735abe7a1d6baf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspace-drafts/${draftRow.id}/create (app/v9/workspaces/new-with-ai/_client.tsx:491)"}, "properties": {"repobilityId": "2d563bddd73c4f69", "scanner": "scanner-primary", "fingerprint": "ce735abe7a1d6baf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28ad8109aae613c3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/draft-from-prompt (app/v9/workspaces/new-from-prompt/page.tsx:23)"}, "properties": {"repobilityId": "47177b35f89a3d3f", "scanner": "scanner-primary", "fingerprint": "28ad8109aae613c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae7cdd5c7159037f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/insights (app/v9/today/page.tsx:35)"}, "properties": {"repobilityId": "54fc01e84bf22ab7", "scanner": "scanner-primary", "fingerprint": "ae7cdd5c7159037f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-389e6794669aa587", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/today/page.tsx:36)"}, "properties": {"repobilityId": "fa5e6c823a27bb7a", "scanner": "scanner-primary", "fingerprint": "389e6794669aa587", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cdd6eb197ded10cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:75)"}, "properties": {"repobilityId": "a1b6d0187ee7999e", "scanner": "scanner-primary", "fingerprint": "cdd6eb197ded10cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39dafa1445012f91", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/audits/${id}/action (app/v9/audits/_page-legacy.tsx:86)"}, "properties": {"repobilityId": "4890780f3d1a117c", "scanner": "scanner-primary", "fingerprint": "39dafa1445012f91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f197d047c00e5306", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/audits/${id} (app/v9/audits/_page-legacy.tsx:94)"}, "properties": {"repobilityId": "4faddb53a457e968", "scanner": "scanner-primary", "fingerprint": "f197d047c00e5306", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39649a84759f2dd3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/audits (app/v9/audits/new/page.tsx:44)"}, "properties": {"repobilityId": "a437e1ed0fe3387a", "scanner": "scanner-primary", "fingerprint": "39649a84759f2dd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-21c6fd5c16cacd00", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/mack/bulk-approve-clear (app/v9/rebuild/review/_bulk-approve.tsx:22)"}, "properties": {"repobilityId": "3e1bc1e419042166", "scanner": "scanner-primary", "fingerprint": "21c6fd5c16cacd00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dc74c5a530eb28e9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/custom-employees/${personaSlug}/jobs/${jobId}/review-field (app/v9/rebuild/review/[jobId]/_client.tsx:54)"}, "properties": {"repobilityId": "3b40803407a1023d", "scanner": "scanner-primary", "fingerprint": "dc74c5a530eb28e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a4532790669743d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/insights (app/v9/insights/page.tsx:49)"}, "properties": {"repobilityId": "2e5b23773101f30c", "scanner": "scanner-primary", "fingerprint": "8a4532790669743d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bceafb75e55aade9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v5/refer (app/v9/app/refer/page.tsx:91)"}, "properties": {"repobilityId": "1ff2ae4916a965a3", "scanner": "scanner-primary", "fingerprint": "bceafb75e55aade9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d437d346aa761b07", "level": "error", "message": {"text": "Dangling fetch: POST /api/v5/refer (app/v9/app/refer/page.tsx:106)"}, "properties": {"repobilityId": "4b0e28fe5bfff501", "scanner": "scanner-primary", "fingerprint": "d437d346aa761b07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-260e65fbe18feab4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/mack/stackit/test (app/v9/admin/mack/stackit-setup/page.tsx:43)"}, "properties": {"repobilityId": "1b88118231951ed9", "scanner": "scanner-primary", "fingerprint": "260e65fbe18feab4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee831b2737e80340", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/mack/outlook/test (app/v9/admin/mack/outlook-setup/page.tsx:45)"}, "properties": {"repobilityId": "5d1df2bf28868f0a", "scanner": "scanner-primary", "fingerprint": "ee831b2737e80340", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ccfc28ba413f7113", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/mack/e2e-verify (app/v9/admin/mack/e2e-verify/page.tsx:40)"}, "properties": {"repobilityId": "96cd048592ec8ad2", "scanner": "scanner-primary", "fingerprint": "ccfc28ba413f7113", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1249c615a8fa5abc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/mack-eval (app/v9/admin/mack-eval/page.tsx:52)"}, "properties": {"repobilityId": "1a7d4a665f4e54b0", "scanner": "scanner-primary", "fingerprint": "1249c615a8fa5abc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8d8e0baa66f3023", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:38)"}, "properties": {"repobilityId": "44db6e85ac1f5fae", "scanner": "scanner-primary", "fingerprint": "e8d8e0baa66f3023", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-11739a291e44f36b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/self-heal (app/v9/admin/operations/page.tsx:58)"}, "properties": {"repobilityId": "c113b3930d2cfab9", "scanner": "scanner-primary", "fingerprint": "11739a291e44f36b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f4959f12b93bc03c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/self-heal/actions (app/v9/admin/operations/page.tsx:141)"}, "properties": {"repobilityId": "dcf1bae2f40f40d6", "scanner": "scanner-primary", "fingerprint": "f4959f12b93bc03c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c43c38ed2e0d448", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:73)"}, "properties": {"repobilityId": "9fb482aa7930cd7b", "scanner": "scanner-primary", "fingerprint": "8c43c38ed2e0d448", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6158c56d22e03621", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/workspace-creation-gauntlet (app/v9/admin/health-gauntlet/page.tsx:93)"}, "properties": {"repobilityId": "4bca8dcf087b6122", "scanner": "scanner-primary", "fingerprint": "6158c56d22e03621", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e351080827231a85", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:31)"}, "properties": {"repobilityId": "185d9a69485a0642", "scanner": "scanner-primary", "fingerprint": "e351080827231a85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-438e0b02563993b1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:48)"}, "properties": {"repobilityId": "62e3eac06f4ec1cb", "scanner": "scanner-primary", "fingerprint": "438e0b02563993b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a77827a74e519f98", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/admin/platform-admins (app/v9/admin/platform-admins/page.tsx:62)"}, "properties": {"repobilityId": "5a962f06b3196f77", "scanner": "scanner-primary", "fingerprint": "a77827a74e519f98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-daa62c5e0c7b7646", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/finance (app/v9/admin/finance/page.tsx:133)"}, "properties": {"repobilityId": "e462938ce0a15bb3", "scanner": "scanner-primary", "fingerprint": "daa62c5e0c7b7646", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2639cfcc070eb3a7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/billing (app/v9/admin/billing/page.tsx:97)"}, "properties": {"repobilityId": "7e78a41111c7f500", "scanner": "scanner-primary", "fingerprint": "2639cfcc070eb3a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-885f92176cdfcee8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:119)"}, "properties": {"repobilityId": "c1e6584abf47e456", "scanner": "scanner-primary", "fingerprint": "885f92176cdfcee8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-573e19faded561c9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/billing/generate-draft (app/v9/admin/billing/page.tsx:144)"}, "properties": {"repobilityId": "761e3a1dea34a417", "scanner": "scanner-primary", "fingerprint": "573e19faded561c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f6da08c66552c66", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/billing/tenant-config (app/v9/admin/billing/page.tsx:264)"}, "properties": {"repobilityId": "be622604215e344c", "scanner": "scanner-primary", "fingerprint": "7f6da08c66552c66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e0e356b28c7b649", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/billing/test-subscription (app/v9/admin/billing/test-subscriptions/page.tsx:28)"}, "properties": {"repobilityId": "18998ac5ec01c22b", "scanner": "scanner-primary", "fingerprint": "7e0e356b28c7b649", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-935e4885939bcc33", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/subscriptions (app/v9/admin/billing/test-subscriptions/page.tsx:54)"}, "properties": {"repobilityId": "7bedc26ec0f83815", "scanner": "scanner-primary", "fingerprint": "935e4885939bcc33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e01dfe9caee51e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/mack-health (app/v9/admin/mack-health/page.tsx:61)"}, "properties": {"repobilityId": "173d12db32740ea1", "scanner": "scanner-primary", "fingerprint": "9e01dfe9caee51e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8d30bf91e1f9e92", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/ai-spend?range=${range}&tenant=${encodeURIComponent(tenant)} (app/v9/admin/ai-spend/page.tsx:99)"}, "properties": {"repobilityId": "67dfe18a711cce8f", "scanner": "scanner-primary", "fingerprint": "e8d30bf91e1f9e92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9bd5c3d1796c6ca9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:100)"}, "properties": {"repobilityId": "15e65233f17d3467", "scanner": "scanner-primary", "fingerprint": "9bd5c3d1796c6ca9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d31af227151877a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:122)"}, "properties": {"repobilityId": "415839bfb531ac3f", "scanner": "scanner-primary", "fingerprint": "8d31af227151877a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5063daac48d03e05", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget/global (app/v9/admin/ai-spend/page.tsx:137)"}, "properties": {"repobilityId": "361b384fb548495d", "scanner": "scanner-primary", "fingerprint": "5063daac48d03e05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a32edecf56e6a06", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:162)"}, "properties": {"repobilityId": "0c7338833daab44d", "scanner": "scanner-primary", "fingerprint": "3a32edecf56e6a06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a21d345f41213b5", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/admin/ai-budget (app/v9/admin/ai-spend/page.tsx:177)"}, "properties": {"repobilityId": "1e1ac7c8a8078bc8", "scanner": "scanner-primary", "fingerprint": "0a21d345f41213b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82c7a67f704635b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:99)"}, "properties": {"repobilityId": "0261b7b7167a4b51", "scanner": "scanner-primary", "fingerprint": "82c7a67f704635b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a20b44baea3acfa3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/mack-benchmark/sonnet-vs-opus (app/v9/admin/mack-opus-benchmark/page.tsx:127)"}, "properties": {"repobilityId": "7ec5f1f1f216945e", "scanner": "scanner-primary", "fingerprint": "a20b44baea3acfa3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9d9b0095aae36bd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/mack-benchmark/enable-opus (app/v9/admin/mack-opus-benchmark/page.tsx:153)"}, "properties": {"repobilityId": "d6c82a7293d37ba3", "scanner": "scanner-primary", "fingerprint": "e9d9b0095aae36bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-00fad82757603d00", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:53)"}, "properties": {"repobilityId": "da6a7fddab2bbc1a", "scanner": "scanner-primary", "fingerprint": "00fad82757603d00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7491f4bd05062bc9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/admin/cron-health (app/v9/admin/cron-health/page.tsx:64)"}, "properties": {"repobilityId": "f3aa92c561d387ac", "scanner": "scanner-primary", "fingerprint": "7491f4bd05062bc9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d12874bc503336c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/portfolio (app/v9/admin/portfolio/page.tsx:63)"}, "properties": {"repobilityId": "31eed0d6ff1756f4", "scanner": "scanner-primary", "fingerprint": "1d12874bc503336c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d80401cb71521336", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/page.tsx:79)"}, "properties": {"repobilityId": "fa4bd19e3abeceea", "scanner": "scanner-primary", "fingerprint": "d80401cb71521336", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b86048c89de84350", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/workspace/${params.tenantId} (app/v9/admin/portfolio/[tenantId]/page.tsx:46)"}, "properties": {"repobilityId": "3fb5ce217a82bab6", "scanner": "scanner-primary", "fingerprint": "b86048c89de84350", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73de1c41dd5dcd9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/view-as (app/v9/admin/portfolio/[tenantId]/page.tsx:63)"}, "properties": {"repobilityId": "addde341882304ad", "scanner": "scanner-primary", "fingerprint": "73de1c41dd5dcd9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-201f55663729dfd0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/admin/workspace-health (app/v9/admin/workspace-health/page.tsx:81)"}, "properties": {"repobilityId": "9900a59f2b3b7751", "scanner": "scanner-primary", "fingerprint": "201f55663729dfd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0191ee3a6bf7dcd6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/workspaces/${tenantId}/health-action (app/v9/admin/workspace-health/page.tsx:107)"}, "properties": {"repobilityId": "c8ccec69e03fcca3", "scanner": "scanner-primary", "fingerprint": "0191ee3a6bf7dcd6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-345439987c877ad6", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/mack-blind-benchmark/recent (app/v9/admin/mack-benchmark/page.tsx:125)"}, "properties": {"repobilityId": "beeeeb3cf32cfb0d", "scanner": "scanner-primary", "fingerprint": "345439987c877ad6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a0df833df4a7eee", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/mack-blind-benchmark/${activeRunId} (app/v9/admin/mack-benchmark/page.tsx:144)"}, "properties": {"repobilityId": "f0e67422bc9442c9", "scanner": "scanner-primary", "fingerprint": "9a0df833df4a7eee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dda2cb039d40d79f", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/mack-blind-benchmark (app/v9/admin/mack-benchmark/page.tsx:166)"}, "properties": {"repobilityId": "a1a6911ef67c9beb", "scanner": "scanner-primary", "fingerprint": "dda2cb039d40d79f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60db6928fcee41f6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:67)"}, "properties": {"repobilityId": "59b2f092be45bd4d", "scanner": "scanner-primary", "fingerprint": "60db6928fcee41f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1711b5a00df405ee", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/pipeline (app/v9/pipeline/page.tsx:79)"}, "properties": {"repobilityId": "0e6c1abbd4d83735", "scanner": "scanner-primary", "fingerprint": "1711b5a00df405ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7452a2cb03017d18", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/pipeline/action (app/v9/pipeline/page.tsx:88)"}, "properties": {"repobilityId": "7ef83fde22a506a2", "scanner": "scanner-primary", "fingerprint": "7452a2cb03017d18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4cc9802564f21a8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/attribution (app/v9/attribution/page.tsx:76)"}, "properties": {"repobilityId": "7398dc56eac7551d", "scanner": "scanner-primary", "fingerprint": "4cc9802564f21a8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e0996ef2c86fe4e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:137)"}, "properties": {"repobilityId": "bc2b22ab8a21b383", "scanner": "scanner-primary", "fingerprint": "3e0996ef2c86fe4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a359e79acdc2b04", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/inbox/ai-draft (app/v9/inbox/page.tsx:156)"}, "properties": {"repobilityId": "3f7157925c588f06", "scanner": "scanner-primary", "fingerprint": "4a359e79acdc2b04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4170d76ea1246854", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/inbox/send (app/v9/inbox/page.tsx:176)"}, "properties": {"repobilityId": "00725661d6bc988e", "scanner": "scanner-primary", "fingerprint": "4170d76ea1246854", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9b436299ebb8c51", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/inbox/thread/${activeId} (app/v9/inbox/page.tsx:199)"}, "properties": {"repobilityId": "64d969e166311ef8", "scanner": "scanner-primary", "fingerprint": "d9b436299ebb8c51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-daeafcbb40405c1b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:77)"}, "properties": {"repobilityId": "b65270b78b49f1d3", "scanner": "scanner-primary", "fingerprint": "daeafcbb40405c1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f610a01f416408de", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/founder-tasks (app/v9/_components/home-task-center.tsx:89)"}, "properties": {"repobilityId": "3dd19d05888f8971", "scanner": "scanner-primary", "fingerprint": "f610a01f416408de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d17f5a4a3669e88", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:128)"}, "properties": {"repobilityId": "90de3a318af4baed", "scanner": "scanner-primary", "fingerprint": "4d17f5a4a3669e88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-96a27ce7f4d25dba", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:139)"}, "properties": {"repobilityId": "ccc50047c4c6b33e", "scanner": "scanner-primary", "fingerprint": "96a27ce7f4d25dba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc1d3ab67a52068b", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/founder-tasks?id=${id} (app/v9/_components/home-task-center.tsx:152)"}, "properties": {"repobilityId": "f3b3d82f875156fc", "scanner": "scanner-primary", "fingerprint": "bc1d3ab67a52068b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8a9244914f67a61", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/founder-tasks/run-agent?id=${encodeURIComponent(taskId)}${qs} (app/v9/_components/home-task-center.tsx:165)"}, "properties": {"repobilityId": "5aebdec361b079a1", "scanner": "scanner-primary", "fingerprint": "c8a9244914f67a61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a82c16e97a68e4d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v9/upload (app/v9/_components/upload-button.tsx:63)"}, "properties": {"repobilityId": "72ab65ee921b4b06", "scanner": "scanner-primary", "fingerprint": "a82c16e97a68e4d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f07d7278422a8b2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v9/view-as (app/v9/_components/view-as-banner.tsx:40)"}, "properties": {"repobilityId": "78c3623e92f680fc", "scanner": "scanner-primary", "fingerprint": "6f07d7278422a8b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a6418fa5f284f8f", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/log-error (app/(app)/error.tsx:13)"}, "properties": {"repobilityId": "0ec37dce063c2edd", "scanner": "scanner-primary", "fingerprint": "4a6418fa5f284f8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-489b56d8fe820244", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/start-trial (app/(app)/billing/start-trial/page.tsx:32)"}, "properties": {"repobilityId": "97c726a5381bfd2d", "scanner": "scanner-primary", "fingerprint": "489b56d8fe820244", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce0d38c5f8d6b3a7", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/finalize-trial (app/(app)/billing/start-trial/page.tsx:86)"}, "properties": {"repobilityId": "b529321f033490a0", "scanner": "scanner-primary", "fingerprint": "ce0d38c5f8d6b3a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a896279185fcafb9", "level": "error", "message": {"text": "Dangling fetch: POST /api/agents/quick-draft (app/(app)/agents/new/quick-start.tsx:39)"}, "properties": {"repobilityId": "65cca5aa9c3a8ca7", "scanner": "scanner-primary", "fingerprint": "a896279185fcafb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4bd5d4832b001aa4", "level": "error", "message": {"text": "Dangling fetch: POST /api/q/${token}/${action} (app/q/[token]/_actions.tsx:14)"}, "properties": {"repobilityId": "6f3f7a9dfffa1ee0", "scanner": "scanner-primary", "fingerprint": "4bd5d4832b001aa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e71ceed7aae5893", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/log-error (app/(marketing)/error.tsx:13)"}, "properties": {"repobilityId": "1bad7d0544bce433", "scanner": "scanner-primary", "fingerprint": "1e71ceed7aae5893", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-298978fb21af965a", "level": "error", "message": {"text": "Dangling fetch: POST /api/audit/book (app/(marketing)/audit/audit-form.tsx:178)"}, "properties": {"repobilityId": "e74fc4f2658630ba", "scanner": "scanner-primary", "fingerprint": "298978fb21af965a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de3c46659b537b2f", "level": "error", "message": {"text": "Dangling fetch: GET /api/book-call/availability (app/(marketing)/audit/book/[id]/slot-picker.tsx:54)"}, "properties": {"repobilityId": "1a8f6513214ba6ea", "scanner": "scanner-primary", "fingerprint": "de3c46659b537b2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecae4a701b4e6467", "level": "error", "message": {"text": "Dangling fetch: POST /api/book-call (app/(marketing)/audit/book/[id]/slot-picker.tsx:85)"}, "properties": {"repobilityId": "9398a378a1fd9cd3", "scanner": "scanner-primary", "fingerprint": "ecae4a701b4e6467", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-571bf734cd7c1015", "level": "error", "message": {"text": "Dangling fetch: POST /api/try-arc/chat (app/(marketing)/try-arc/try-arc-chat.tsx:59)"}, "properties": {"repobilityId": "c1421d15471c6771", "scanner": "scanner-primary", "fingerprint": "571bf734cd7c1015", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44e017574473604a", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/alerts-email.ts:98)"}, "properties": {"repobilityId": "e66e5b69f53d5dda", "scanner": "scanner-primary", "fingerprint": "44e017574473604a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f6c0a2178dd08a2d", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/alerts-email.ts:223)"}, "properties": {"repobilityId": "8f6ff11a35221047", "scanner": "scanner-primary", "fingerprint": "f6c0a2178dd08a2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1efb79cc9564884", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/alerts.ts:317)"}, "properties": {"repobilityId": "6635bd2fb592d15d", "scanner": "scanner-primary", "fingerprint": "d1efb79cc9564884", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93f0476c7d17e619", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/invoices.ts:89)"}, "properties": {"repobilityId": "bb14552c6f189d0e", "scanner": "scanner-primary", "fingerprint": "93f0476c7d17e619", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-425bdf86fad47ad4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.twilio.com/2010-04-01/Accounts/${sid}/Messages.json (lib/integrations/reviews.ts:59)"}, "properties": {"repobilityId": "860d10ec5ce63a83", "scanner": "scanner-primary", "fingerprint": "425bdf86fad47ad4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d4eac124581b0c1", "level": "error", "message": {"text": "Dangling fetch: PATCH https://www.googleapis.com/calendar/v3/calendars/primary/events/${encodeURIComponent(a.event_id)}?sendUpdates=all (lib/integrations/calendar.ts:414)"}, "properties": {"repobilityId": "0420cc44876cbe38", "scanner": "scanner-primary", "fingerprint": "0d4eac124581b0c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9b6b940b41735c3", "level": "error", "message": {"text": "Dangling fetch: POST https://auth.servicetitan.io/connect/token (lib/integrations/servicetitan.ts:17)"}, "properties": {"repobilityId": "8eabf711df5c7e19", "scanner": "scanner-primary", "fingerprint": "e9b6b940b41735c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-918d38eb1ef7cde3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/files (lib/mack/strategies/vision-focused.ts:119)"}, "properties": {"repobilityId": "d21d681fcdccce83", "scanner": "scanner-primary", "fingerprint": "918d38eb1ef7cde3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-09cccb23a4aab38b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/mack/strategies/vision-focused.ts:133)"}, "properties": {"repobilityId": "5023b4a7bbbd6911", "scanner": "scanner-primary", "fingerprint": "09cccb23a4aab38b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7412ebbe12cdd06b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (lib/enrichment/researcher.ts:119)"}, "properties": {"repobilityId": "a0ffe597a7aad2e3", "scanner": "scanner-primary", "fingerprint": "7412ebbe12cdd06b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28ce9ad59de172a7", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/send-composed.ts:117)"}, "properties": {"repobilityId": "b7815fd44f65de09", "scanner": "scanner-primary", "fingerprint": "28ce9ad59de172a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de1afe8602a8c8fd", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/send-composed.ts:143)"}, "properties": {"repobilityId": "7c8ca4430b6370f2", "scanner": "scanner-primary", "fingerprint": "de1afe8602a8c8fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42cfa373ad334aeb", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/invite.ts:164)"}, "properties": {"repobilityId": "bfbda0e9a52eb509", "scanner": "scanner-primary", "fingerprint": "42cfa373ad334aeb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e1a5d3dc2871153", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/invite.ts:194)"}, "properties": {"repobilityId": "760d7e95012a19a5", "scanner": "scanner-primary", "fingerprint": "5e1a5d3dc2871153", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-483afd165373e634", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:140)"}, "properties": {"repobilityId": "5e37a34fdf72c6fd", "scanner": "scanner-primary", "fingerprint": "483afd165373e634", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e0bebfb54ddc396", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:173)"}, "properties": {"repobilityId": "93d4aa7b32f56420", "scanner": "scanner-primary", "fingerprint": "5e0bebfb54ddc396", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2cc82dfe460d2f37", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/email/team-invite.ts:209)"}, "properties": {"repobilityId": "5dae2ae65471c4f7", "scanner": "scanner-primary", "fingerprint": "2cc82dfe460d2f37", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b3f3539a490f63a", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (lib/email/team-invite.ts:239)"}, "properties": {"repobilityId": "2788fa55852ab6f5", "scanner": "scanner-primary", "fingerprint": "2b3f3539a490f63a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce7ecf7d33ff5aac", "level": "error", "message": {"text": "Dangling fetch: GET https://serpapi.com/search.json?engine=google&q=${encodeURIComponent(query)}&api_key=${key}&num=5 (lib/founder-task-agent/runner.ts:259)"}, "properties": {"repobilityId": "c60383426fda9883", "scanner": "scanner-primary", "fingerprint": "ce7ecf7d33ff5aac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e25a04471233efa", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/cover-email.ts:80)"}, "properties": {"repobilityId": "dd31addcf68b8bc1", "scanner": "scanner-primary", "fingerprint": "5e25a04471233efa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee6cd931888bea2f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/files (lib/custom-employees/ensemble-plan-parser.ts:516)"}, "properties": {"repobilityId": "bc97a7eca3b86036", "scanner": "scanner-primary", "fingerprint": "ee6cd931888bea2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e002885f65388eb", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/responses (lib/custom-employees/ensemble-plan-parser.ts:550)"}, "properties": {"repobilityId": "7eace16db96a8769", "scanner": "scanner-primary", "fingerprint": "0e002885f65388eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b026fd1a17b6a5b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/notify.ts:68)"}, "properties": {"repobilityId": "07b9f3065391bf44", "scanner": "scanner-primary", "fingerprint": "3b026fd1a17b6a5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74e96d7762f44695", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/custom-employees/processor.ts:965)"}, "properties": {"repobilityId": "f4e75d213a06060d", "scanner": "scanner-primary", "fingerprint": "74e96d7762f44695", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f6c994fa7d5818e4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.postmarkapp.com/email (lib/custom-employees/send-cover-email.ts:46)"}, "properties": {"repobilityId": "bd86f29b4cdca430", "scanner": "scanner-primary", "fingerprint": "f6c994fa7d5818e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-88bfa3ec370259f4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/intent/classifier.ts:57)"}, "properties": {"repobilityId": "015c69f3498da5bc", "scanner": "scanner-primary", "fingerprint": "88bfa3ec370259f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6626124971560eb6", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (lib/cold-mailbox/poll.ts:48)"}, "properties": {"repobilityId": "3622efc8d902ad7f", "scanner": "scanner-primary", "fingerprint": "6626124971560eb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f99bc6ab4475720", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:134)"}, "properties": {"repobilityId": "d2c57fd4b28870a2", "scanner": "scanner-primary", "fingerprint": "3f99bc6ab4475720", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7b73d9abaf12d10", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/profile (lib/cold-mailbox/poll.ts:162)"}, "properties": {"repobilityId": "4ea3b76081fc16b7", "scanner": "scanner-primary", "fingerprint": "c7b73d9abaf12d10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f6cc245ba6632ba5", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${messageId}?format=full (lib/cold-mailbox/poll.ts:193)"}, "properties": {"repobilityId": "e8f2f9ff69df0dc4", "scanner": "scanner-primary", "fingerprint": "f6cc245ba6632ba5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-64bb05c6375c4153", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 50)} (lib/voice-profile/extract-business.ts:160)"}, "properties": {"repobilityId": "60bc570816837fde", "scanner": "scanner-primary", "fingerprint": "64bb05c6375c4153", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61b9f5e7b8e727c3", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date (lib/voice-profile/extract-business.ts:174)"}, "properties": {"repobilityId": "332d2b347ad150a5", "scanner": "scanner-primary", "fingerprint": "61b9f5e7b8e727c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a89eb5baf781be2c", "level": "error", "message": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me/messages/${m.id}/attachments?$select=id,name,size,contentType (lib/voice-profile/harvest-historical-plans.ts:149)"}, "properties": {"repobilityId": "ccf2619dbf10b94d", "scanner": "scanner-primary", "fingerprint": "a89eb5baf781be2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aa116bd60f9536df", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/voice-profile/harvest-historical-plans.ts:194)"}, "properties": {"repobilityId": "f047a641216f2e7e", "scanner": "scanner-primary", "fingerprint": "aa116bd60f9536df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d383418931bdc2d", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=SENT&maxResults=${Math.min(count, 50)} (lib/voice-profile/extract.ts:173)"}, "properties": {"repobilityId": "e0fdf49fe5494081", "scanner": "scanner-primary", "fingerprint": "7d383418931bdc2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f486b00cf57d3d53", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=metadata&metadataHeaders=Subject&metadataHeaders=To&metadataHeaders=Date (lib/voice-profile/extract.ts:189)"}, "properties": {"repobilityId": "de1553b409b92a70", "scanner": "scanner-primary", "fingerprint": "f486b00cf57d3d53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b77743c8e266b549", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/agents/builder.ts:572)"}, "properties": {"repobilityId": "7843eb52929eeae0", "scanner": "scanner-primary", "fingerprint": "b77743c8e266b549", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0aff04ebf0e391ef", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${id}?format=full (lib/onboarding/extract-brand-voice.ts:120)"}, "properties": {"repobilityId": "e9ddcebc133a1a0d", "scanner": "scanner-primary", "fingerprint": "0aff04ebf0e391ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6356db83ca33659d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v9/sidebar-badges?seen=${seenToQuery(seenMap)} (lib/v9/tab-seen.ts:14)"}, "properties": {"repobilityId": "fb3874efc0649f0b", "scanner": "scanner-primary", "fingerprint": "6356db83ca33659d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb2c62d43772fbf8", "level": "error", "message": {"text": "Dangling fetch: POST https://api.tavily.com/search (lib/council/tools/web-search.ts:68)"}, "properties": {"repobilityId": "cd4bcde1e44fdeee", "scanner": "scanner-primary", "fingerprint": "bb2c62d43772fbf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71047fe20f8e9234", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/preview-ai/provision.ts:182)"}, "properties": {"repobilityId": "f15136aae16b0d90", "scanner": "scanner-primary", "fingerprint": "71047fe20f8e9234", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-23043c2f2ca64290", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (lib/llm/with-fallback.ts:66)"}, "properties": {"repobilityId": "ec4ed29896d768eb", "scanner": "scanner-primary", "fingerprint": "23043c2f2ca64290", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e0d7df16d582fad", "level": "error", "message": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey} (lib/llm/model-registry-check.ts:61)"}, "properties": {"repobilityId": "e9a1e1c3e263dce3", "scanner": "scanner-primary", "fingerprint": "1e0d7df16d582fad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-543c6734ce42f3a5", "level": "error", "message": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (lib/llm/model-registry-check.ts:87)"}, "properties": {"repobilityId": "16104e329b3112c3", "scanner": "scanner-primary", "fingerprint": "543c6734ce42f3a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5eb2a79c2fd47175", "level": "note", "message": {"text": "Unused endpoint: POST /join-meeting"}, "properties": {"repobilityId": "f6f267ffad558e14", "scanner": "scanner-primary", "fingerprint": "5eb2a79c2fd47175", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d022f2c44144995", "level": "note", "message": {"text": "Unused endpoint: POST /leave-meeting"}, "properties": {"repobilityId": "b6566dc9039774ea", "scanner": "scanner-primary", "fingerprint": "3d022f2c44144995", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}