{"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-0c1bac7f44612722", "name": "Stray `console.log` in TS/JS \u2014 apps/docs/vite.config.ts:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/docs/vite.config.ts:108"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84f514f2b8567245", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/SearchBar.tsx:170", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/SearchBar.tsx:170"}, "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-d27796f3b77dce1d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/showcase/TokensPage.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/showcase/TokensPage.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-fc84d404cf3dd115", "name": "Stray `console.log` in TS/JS \u2014 apps/admin/scripts/create-globals.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/scripts/create-globals.ts:10"}, "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-18f3ee035b894410", "name": "TODO/FIXME marker in shipping code \u2014 apps/admin/src/instrumentation.ts:46", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/admin/src/instrumentation.ts:46"}, "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-363ce22315f091ad", "name": "Stray `console.log` in TS/JS \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts:61"}, "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-402b769f976d8c00", "name": "Custom React Flow node registered without explicit width/height \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts:112"}, "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-b7df58651fe8542c", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/components/revealui/elements/announcement-badge.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/components/revealui/elements/announcement-badge.tsx:32"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0cd5fc74efe6b404", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/security/page.tsx:856", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/security/page.tsx:856"}, "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-f6de14e562eb42a7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/account/page.tsx:287", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/account/page.tsx:287"}, "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-a097275e1630a9fe", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/marketplace/tasks/page.tsx:200", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/marketplace/tasks/page.tsx:200"}, "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-96cf5a9c686a546e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/chat/page.tsx:113", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/chat/page.tsx:113"}, "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-2efda45da89e596a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/coordination/page.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/coordination/page.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-31a5849cc053b066", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:332", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:332"}, "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-c69ee9f617fda6f5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/jobs/page.tsx:420", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/jobs/page.tsx:420"}, "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-4bbe417800e98367", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/app/(frontend)/layout.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/app/(frontend)/layout.tsx:70"}, "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-416135b4dd6a5316", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(frontend)/welcome/page.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(frontend)/welcome/page.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-687c1932b9fbe936", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/mcp/resources-panel.tsx:131", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/mcp/resources-panel.tsx:131"}, "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-01cbd53688c6b8a4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/task-history.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/task-history.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-7dd62b22a8dedd72", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/agent-card.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/agent-card.tsx:32"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86f27222bb25d625", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:412", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:412"}, "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-5cfbd88000ab1d04", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8"}, "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-3bbe858f224dd4b1", "name": "Stray `console.log` in TS/JS \u2014 apps/admin/src/lib/collections/Products/examples/populate-examples.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/src/lib/collections/Products/examples/populate-examples.ts:38"}, "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-18069d1e68f3e351", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/features/embed/components/EmbedNodeComponent.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/features/embed/components/EmbedNodeComponent.tsx:55"}, "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-ad11f93d114afbf3", "name": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/webhooks.ts:953", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/webhooks.ts:953"}, "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-92fedc12c63a66e6", "name": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/gdpr.ts:387", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/gdpr.ts:387"}, "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-18d10d4503055f8b", "name": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:450", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:450"}, "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-7aef0e617702f6c4", "name": "TODO/FIXME marker in shipping code \u2014 apps/server/src/services/revmarket-executor.ts:231", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/services/revmarket-executor.ts:231"}, "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-4c020c1305806b18", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-fleet-marketing-site.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-fleet-marketing-site.ts:36"}, "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-6f18965fd60850ed", "name": "Stray `console.log` in TS/JS \u2014 scripts/electric-latency-probe/probe.ts:379", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/electric-latency-probe/probe.ts:379"}, "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-69bef1544b75b406", "name": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/verify-backup.ts:190", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/verify-backup.ts:190"}, "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-830adba0d33e49cb", "name": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/check-unreconciled.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/check-unreconciled.ts:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a552c40e745acbb1", "name": "Stray `console.log` in TS/JS \u2014 scripts/docs/generate-api.ts:214", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/docs/generate-api.ts:214"}, "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-3c12af87e500752c", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/_base.ts:210", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/_base.ts:210"}, "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-e5102004ea079904", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/release.ts:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/release.ts:176"}, "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-af393780d1ea40b1", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/scripts.ts:165", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/scripts.ts:165"}, "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-f995a8f4632e88a2", "name": "Stray `console.log` in TS/JS \u2014 scripts/utils/base.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/utils/base.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-3edc6ca5e72d53ca", "name": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/run-integration-tests.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/run-integration-tests.ts:36"}, "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-a5c591b4bd61782b", "name": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-focus.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-focus.ts:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5e062f943ceaf6d", "name": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-watchdog.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-watchdog.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-5cfb448b2013da20", "name": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/post-migration-types.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/post-migration-types.ts:31"}, "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-ee618f0f72c7c753", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/bootstrap.ts:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/bootstrap.ts:79"}, "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-ea0f13d6cec914d4", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-emdash.ts:368", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-emdash.ts:368"}, "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-f75a6d61b7652831", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-any-types.ts:334", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-any-types.ts:334"}, "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-4ea54d92c4f96414", "name": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-console.ts:291", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-console.ts:291"}, "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-9b40bb8370c39447", "name": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.process.test.ts:71", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.process.test.ts:71"}, "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-546ffc5be15d4ad3", "name": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.integration.test.ts:35", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.integration.test.ts:35"}, "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-ab48aefbabe9380a", "name": "Stray `console.log` in TS/JS \u2014 scripts/gates/ci-gate.ts:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/ci-gate.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-ae6b8f85e48c3037", "name": "Stray `console.log` in TS/JS \u2014 scripts/gates/types-gate.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/types-gate.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-c19f3812d72cb0d9", "name": "Stray `console.log` in TS/JS \u2014 scripts/gates/test-coverage-gate.ts:248", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/test-coverage-gate.ts:248"}, "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-103dc77449252576", "name": "Stray `console.log` in TS/JS \u2014 scripts/gates/security-gate.ts:568", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/security-gate.ts:568"}, "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-abd3a72854dd813b", "name": "Stray `console.log` in TS/JS \u2014 scripts/secrets/rotate.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/rotate.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-536a999a15f62b48", "name": "Stray `console.log` in TS/JS \u2014 scripts/secrets/generate.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/generate.ts:40"}, "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-f73d488cd82214fb", "name": "Stray `console.log` in TS/JS \u2014 scripts/secrets/scan.ts:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/scan.ts:111"}, "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-0399efbf967e6cef", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/build-artifacts.ts:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/build-artifacts.ts:80"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2360a36af20dfa43", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/empty-catch.ts:266", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/empty-catch.ts:266"}, "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-3dbe8fa3a93240b1", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/seed-script-wiring.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/seed-script-wiring.ts:67"}, "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-6a77d1e929f395e7", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/client-safety.ts:629", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/client-safety.ts:629"}, "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-01c87c93bfe4212e", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/docs-import-drift.ts:347", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/docs-import-drift.ts:347"}, "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-6de89a9641b710ff", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/claim-drift.ts:1687", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/claim-drift.ts:1687"}, "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-5d7f0a567a17d00d", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/catalog-changeset.ts:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/catalog-changeset.ts:164"}, "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-94dbf166d29ea2a1", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/validate-code.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/validate-code.ts:63"}, "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-244da405f84919cd", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/raw-sql.ts:412", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/raw-sql.ts:412"}, "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-4694d594c78be085", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/marketing-voice.ts:445", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/marketing-voice.ts:445"}, "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-0c1bc48ab1c1cdce", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/boundary.ts:347", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/boundary.ts:347"}, "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-88d22b4033529e4d", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/gitignore-pro.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/gitignore-pro.ts:68"}, "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-1e164707bcefa202", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/version-policy.ts:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/version-policy.ts:150"}, "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-2cff9f341c891191", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/structure.ts:257", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/structure.ts:257"}, "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-8806c60e61bba46d", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate/migration-journal.ts:348", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/migration-journal.ts:348"}, "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-73ceb71e73fc4a20", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/credentials.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/credentials.ts:39"}, "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-e842cae27f0de977", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/setup-dual-database.ts:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/setup-dual-database.ts:131"}, "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-ccd07976912f9e04", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/sync-billing-catalog.ts:304", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/sync-billing-catalog.ts:304"}, "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-effc136eb87478dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-billing.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-billing.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-7f2f656a8b9d0779", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-stripe.ts:387", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-stripe.ts:387"}, "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-c71bc3d26d7fecaa", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/security/src/sanitize.ts:390", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/security/src/sanitize.ts:390"}, "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-6e1312a6bb8ecf32", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/test-semantic-cache.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/test-semantic-cache.ts:14"}, "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-8d0a9457f5865483", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/test-response-cache.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/test-response-cache.ts:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8c2871f7053c950", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/examples/prompt-caching-example.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/examples/prompt-caching-example.ts:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0e52c63d3d5b449", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/crdt-persistence.test.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/crdt-persistence.test.ts:125"}, "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-95fb89d91ec733ce", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/automated-validation.test.ts:190", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/automated-validation.test.ts:190"}, "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-e6dbd0395a41b9c6", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/src/observability/examples.ts:325", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/observability/examples.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-5465901ef47a1692", "name": "Stray `console.log` in TS/JS \u2014 packages/ai/src/llm/cache-utils.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/llm/cache-utils.ts:63"}, "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-676940b17a63c12c", "name": "Stray `console.log` in TS/JS \u2014 packages/test/src/integration/api/users.integration.test.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/src/integration/api/users.integration.test.ts:97"}, "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-6ebeb634025d3589", "name": "Stray `console.log` in TS/JS \u2014 packages/test/src/e2e/global-setup.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/src/e2e/global-setup.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-efb4dba08956ea28", "name": "Stray `console.log` in TS/JS \u2014 packages/test/load-tests/load/payments/payment-processing.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/load-tests/load/payments/payment-processing.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-168e0e66f34fe7d6", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/cache.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/cache.ts:31"}, "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-1d4e30d83fe287a7", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/output.ts:221", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/output.ts:221"}, "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-ac9319efcef0a4ab", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/utils.ts:379", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/utils.ts:379"}, "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-197d2c2e55b8bd20", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/parallel.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/parallel.ts:24"}, "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-2717d8596ea2bc4b", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/telemetry.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/telemetry.ts:26"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f191fcf53c6f1a11", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/exec.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/exec.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-5fbe55ec413dda46", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/logger.ts:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/logger.ts:129"}, "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-e5f89c37b0b3c890", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/scripts/analyzers/sanitizer-usage-analyzer.ts:89", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/scripts/analyzers/sanitizer-usage-analyzer.ts:89"}, "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-9c2ff6e800dd8b47", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/analyzers/console-analyzer.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/analyzers/console-analyzer.ts:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6905b7fa7430f214", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/cli/dispatch.ts:243", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/cli/dispatch.ts:243"}, "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-82d7f087b55ae9bf", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-registry.ts:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-registry.ts:84"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0628228907e0d739", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-scanner.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-scanner.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b2b32ab5a25d5b0", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/database/backup-manager.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/database/backup-manager.ts:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a9d806c1ebb0d38", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/impact-analyzer.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/impact-analyzer.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ff72629f41fc657", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/dry-run-engine.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/dry-run-engine.ts:31"}, "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-b2c97637deab3f80", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/change-preview.ts:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/change-preview.ts:174"}, "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-9bd4c60358c39330", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/validators/documentation-validator.ts:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/validators/documentation-validator.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-cedd27dfa0189790", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/contracts/examples.ts:162", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/contracts/examples.ts:162"}, "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-d944810f8acf96c9", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/types/table-discovery.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/types/table-discovery.ts:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fc8722ed8da9cb77", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/validation-builder.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/validation-builder.ts:106"}, "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-d2d3c6dc50e51942", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/pattern-matcher.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/pattern-matcher.ts:106"}, "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-6d4dd9d1b2006efa", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/file-scanner.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/file-scanner.ts:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d1d8d0e509423df", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/package-readme.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/package-readme.ts:61"}, "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-e998232785ac237a", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/assessment.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/assessment.ts:22"}, "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-5961be323360e789", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/jsdoc-extractor.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/jsdoc-extractor.ts:55"}, "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-061d0a17c3cff77d", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/coverage.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/coverage.ts:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7c866bb65a8c368", "name": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/formatter.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/formatter.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-325c746a00fc341d", "name": "TODO/FIXME marker in shipping code \u2014 packages/cli/src/cli.ts:381", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/cli/src/cli.ts:381"}, "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-cc095e337f40547e", "name": "Stray `console.log` in TS/JS \u2014 packages/utils/src/logger/index.ts:239", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/utils/src/logger/index.ts:239"}, "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-2adb602596dc19ba", "name": "Stray `console.log` in TS/JS \u2014 packages/cache/src/__tests__/benchmark-pglite-vs-map.test.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/cache/src/__tests__/benchmark-pglite-vs-map.test.ts:54"}, "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-682de29e2d9cf8f4", "name": "TODO/FIXME marker in shipping code \u2014 packages/harnesses/src/content/definitions/rules/unused-declarations.ts:28", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/harnesses/src/content/definitions/rules/unused-declarations.ts:28"}, "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-aa3c3540fdeaaa9c", "name": "TODO/FIXME marker in shipping code \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:208", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:208"}, "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-d6ac98f761631578", "name": "Stray `console.log` in TS/JS \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:57"}, "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-f82f2aeea5167436", "name": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/cleanup-expired.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/cleanup-expired.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-7d37282002f4bffc", "name": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/backfill-migrations.ts:117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/backfill-migrations.ts:117"}, "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-96e24def57395699", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/integration/monitoring.test.ts:315", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/integration/monitoring.test.ts:315"}, "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-0de5cf9228ee42b8", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/utils/test-helpers.test.ts:190", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/utils/test-helpers.test.ts:190"}, "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-53e0ec4382e13209", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/revealui-compat.test.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/revealui-compat.test.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-1b597bf01667e55e", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/payload-compat.test.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/payload-compat.test.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-716e71f4ea74d265", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/page.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/page.tsx:81"}, "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-d7593de89e4d4acf", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/components/AdminDashboard.tsx:265", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/components/AdminDashboard.tsx:265"}, "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-53b8d4c57d86208b", "name": "Stray `console.log` in TS/JS \u2014 packages/core/src/instance/logger.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/instance/logger.ts:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a199737eda8bf403", "name": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/core.test.ts:444", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/core.test.ts:444"}, "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-fdd558903f9fc93a", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/integration-real-configs.test.ts:346", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/integration-real-configs.test.ts:346"}, "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-968250eadd497804", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/revealui-compat.test.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/revealui-compat.test.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-57bea39b06ff9bc4", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/payload-compat.test.ts:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/payload-compat.test.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-17742da95ac706b8", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/blocks.test.ts:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/blocks.test.ts:206"}, "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-18a27cee931b25aa", "name": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/blocks.test.ts:91", "shortDescription": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/blocks.test.ts:91"}, "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-3c0b0a1efbd2922e", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/contracts.test.ts:414", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/contracts.test.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-a2a8bb1dfa156416", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/payload.ts:158", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/payload.ts:158"}, "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-a32f6281913189cc", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/revealui.ts:158", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/revealui.ts:158"}, "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-55cb8e46fcba0e0b", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/foundation/contract.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/foundation/contract.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-f3fd97e50e37530e", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/database/bridge.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/database/bridge.ts:61"}, "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-15dfa020a2c600d4", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/collection.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/collection.ts:39"}, "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-aa0e3612838434ad", "name": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/errors.ts:200", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/errors.ts:200"}, "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-4047ea37fda05523", "name": "Stray `console.log` in TS/JS \u2014 packages/setup/src/utils/logger.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/setup/src/utils/logger.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-155a7dc90d5863e1", "name": "Stray `console.log` in TS/JS \u2014 packages/presentation/src/animations/hooks/use-gesture.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/presentation/src/animations/hooks/use-gesture.ts:43"}, "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-f47d59a2c8aeae52", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/listbox.tsx:306", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/listbox.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-09b045d87820d07f", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/combobox.tsx:483", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/combobox.tsx:483"}, "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-ed16b3f5267d3b45", "name": "Stray `console.log` in TS/JS \u2014 examples/code-examples/automated-workflow.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/automated-workflow.ts:78"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a2e6c92ccabd67a", "name": "Stray `console.log` in TS/JS \u2014 examples/code-examples/script-validation-api.ts:186", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/script-validation-api.ts:186"}, "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-075b19b959650eaf", "name": "Stray `console.log` in TS/JS \u2014 examples/code-examples/custom-cli.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/custom-cli.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-869e87dd367d0e61", "name": "Stray `console.log` in TS/JS \u2014 examples/server/index.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/server/index.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-326579d757030f89", "name": "Stray `console.log` in TS/JS \u2014 e2e/user-flows.e2e.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/user-flows.e2e.ts:69"}, "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-d59c5693799de7a1", "name": "Stray `console.log` in TS/JS \u2014 e2e/global-teardown.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/global-teardown.ts:8"}, "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-a98bdde9694f0387", "name": "Stray `console.log` in TS/JS \u2014 e2e/error-scenarios.e2e.ts:360", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/error-scenarios.e2e.ts:360"}, "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-9746afab6c94aed5", "name": "Stray `console.log` in TS/JS \u2014 e2e/example-complete-flow.e2e.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/example-complete-flow.e2e.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f14556bec9c2d81", "name": "Stray `console.log` in TS/JS \u2014 e2e/global-setup.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/global-setup.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-e7f1ce31ad8234b9", "name": "Privileged port 256 in use", "shortDescription": {"text": "Privileged port 256 in use"}, "fullDescription": {"text": "Port 256 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-dc94fa0b6a7a4c4a", "name": "Privileged port 79 in use", "shortDescription": {"text": "Privileged port 79 in use"}, "fullDescription": {"text": "Port 79 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-490b6567ef32935a", "name": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/typescript-node:24-bookworm", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/typescript-node:24-bookworm"}, "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-ceff9fc2456b9fbf", "name": "Dockerfile runs as root: apps/docs/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: apps/docs/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-98240dc55dc8554d", "name": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-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-432976f1d9f35552", "name": "Docker base image is tag-pinned but not digest-pinned: nginx:1.31-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: nginx:1.31-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-395bf9508de752f0", "name": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-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-b66c598a17e782aa", "name": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-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-f2d830d7ae5c1641", "name": "Runtime dotenv file present in repo: .env.test", "shortDescription": {"text": "Runtime dotenv file present in repo: .env.test"}, "fullDescription": {"text": "`.env.test` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b20afc80f33a123", "name": "Insecure pattern 'node_child_process' in apps/docs/scripts/check-links.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/docs/scripts/check-links.ts:29"}, "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-501fd841bf7e9a56", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/docs/app/lib/__tests__/head.test.ts:11", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/docs/app/lib/__tests__/head.test.ts:11"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5609152c28f9fcd", "name": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/app/(frontend)/layout.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/app/(frontend)/layout.tsx:70"}, "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-ab52d10549abb6ce", "name": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8"}, "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-448f7d310b4e39ab", "name": "Insecure pattern 'private_key_in_repo' in apps/server/src/lib/__tests__/validate-startup.test.ts:24", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in apps/server/src/lib/__tests__/validate-startup.test.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c15c5e365461ee0a", "name": "Insecure pattern 'private_key_in_repo' in apps/server/src/routes/__tests__/license.test.ts:275", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in apps/server/src/routes/__tests__/license.test.ts:275"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-9f9261ff9b20e854", "name": "Insecure pattern 'node_child_process' in apps/server/src/services/revmarket-sandbox/fork-provider.ts:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/server/src/services/revmarket-sandbox/fork-provider.ts:28"}, "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-661a6cb09319e28c", "name": "Insecure pattern 'node_child_process' in scripts/electric-latency-probe/probe.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/electric-latency-probe/probe.ts:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a80ee17ebc86316", "name": "Insecure pattern 'node_child_process' in scripts/cli/scripts.ts:33", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/cli/scripts.ts:33"}, "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-5b4d63cdb1ba1b42", "name": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-focus.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-focus.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4582d21b6e44bb17", "name": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-watchdog.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-watchdog.ts:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a85b73218a10046", "name": "Insecure pattern 'node_child_process' in scripts/dev-tools/admin-local.ts:35", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/admin-local.ts:35"}, "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-ddb8f494e43b9407", "name": "Insecure pattern 'node_child_process' in scripts/dev-tools/post-migration-types.ts:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/post-migration-types.ts:21"}, "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-cc8de13fc67ac9ff", "name": "Insecure pattern 'node_child_process' in scripts/leak-scan/build.mjs:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/leak-scan/build.mjs:8"}, "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-c67ffe0ff5ea3907", "name": "Insecure pattern 'node_child_process' in scripts/admin/bootstrap.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/admin/bootstrap.ts:24"}, "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-6afba0041c93c1d3", "name": "Insecure pattern 'node_child_process' in scripts/analyze/__tests__/analyze-code-quality.process.test.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/analyze/__tests__/analyze-code-quality.process.test.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b527484819c543f", "name": "Insecure pattern 'node_child_process' in scripts/gates/test-coverage-gate.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/gates/test-coverage-gate.ts:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7fcc87ad8319b195", "name": "Insecure pattern 'node_child_process' in scripts/gates/ops/deploy.ts:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/gates/ops/deploy.ts:22"}, "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-c834ca0fd2fc9997", "name": "Insecure pattern 'node_child_process' in scripts/secrets/scan.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/secrets/scan.ts:13"}, "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-8241be22a1122533", "name": "Insecure pattern 'node_child_process' in scripts/validate/claim-drift.ts:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validate/claim-drift.ts:22"}, "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-9a1915adec6a066c", "name": "Insecure pattern 'node_child_process' in scripts/validate/catalog-changeset.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validate/catalog-changeset.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5b68d0dceb4a898", "name": "Insecure pattern 'node_child_process' in scripts/validate/__tests__/claim-drift.test.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/validate/__tests__/claim-drift.test.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23820db5cdc4d435", "name": "Insecure pattern 'private_key_in_repo' in scripts/validate/__tests__/prod-env.test.ts:24", "shortDescription": {"text": "Insecure pattern 'private_key_in_repo' in scripts/validate/__tests__/prod-env.test.ts:24"}, "fullDescription": {"text": "Found a known-risky pattern (private_key_in_repo). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-f9f94fc6a296ce57", "name": "Insecure pattern 'node_child_process' in scripts/setup/credentials.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/setup/credentials.ts:29"}, "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-41d2ece20482bd58", "name": "Insecure pattern 'node_child_process' in scripts/setup/stripe-revvault-sync.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/setup/stripe-revvault-sync.ts:24"}, "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-0c7b00922869c1ac", "name": "Insecure pattern 'node_child_process' in scripts/setup/seed-stripe.ts:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/setup/seed-stripe.ts:24"}, "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-91f2f91c606caae3", "name": "Insecure pattern 'node_child_process' in scripts/e2e/run-with-mcp.ts:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/run-with-mcp.ts: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-4798e968629abb33", "name": "Insecure pattern 'cors_wildcard' in packages/security/src/__tests__/headers.test.ts:120", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/security/src/__tests__/headers.test.ts:120"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eecdf78ffe4ac42b", "name": "Insecure pattern 'node_child_process' in packages/security/src/__tests__/sanitize.test.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/security/src/__tests__/sanitize.test.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13336a18c5a88e54", "name": "Possible secret in packages/security/src/__tests__/sanitize-corpus/log-redaction.ts", "shortDescription": {"text": "Possible secret in packages/security/src/__tests__/sanitize-corpus/log-redaction.ts"}, "fullDescription": {"text": "Detected pattern matching github_token. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-25976d3df6a081c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/router/src/__tests__/hydrate.test.tsx:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/router/src/__tests__/hydrate.test.tsx:27"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01f99e5f7f79c20b", "name": "Insecure pattern 'node_child_process' in packages/ai/src/__tests__/tools/coding/git-ops.test.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/__tests__/tools/coding/git-ops.test.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc3249731d8a91f4", "name": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/git-ops.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/git-ops.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd67297def4d3544", "name": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/lint-fix.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/lint-fix.ts:8"}, "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-d2bce73e213d8fb0", "name": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/test-runner.ts:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/test-runner.ts:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-593ab35f52653529", "name": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/shell-exec.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/shell-exec.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9745985bfb7c670c", "name": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/vercel-loader.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/vercel-loader.ts:8"}, "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-4fa84636acaacee1", "name": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/github-loader.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/github-loader.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1f59c01a9ab05de", "name": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/useMFA.test.tsx:372", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/useMFA.test.tsx:372"}, "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-150c8fa3d958f48b", "name": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/usePasskey.test.tsx:423", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/usePasskey.test.tsx:423"}, "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-8ec85412e54c94c6", "name": "Insecure pattern 'weak_hash' in packages/auth/src/server/mfa.ts:111", "shortDescription": {"text": "Insecure pattern 'weak_hash' in packages/auth/src/server/mfa.ts:111"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b642cff38599a24", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/oauth.ts:41", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/oauth.ts:41"}, "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-d7991bfe61f34e60", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/hypervisor.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/hypervisor.ts:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a431f60d590e9888", "name": "Insecure pattern 'exec_used' in packages/mcp/src/rate-limit-store.ts:109", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/mcp/src/rate-limit-store.ts:109"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f80fd84e2ed9965", "name": "Insecure pattern 'exec_used' in packages/mcp/src/adapters/db.ts:45", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/mcp/src/adapters/db.ts:45"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4810dd311fb1d7b1", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/next-devtools.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/next-devtools.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-082c191784f24ad6", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/stripe.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/stripe.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cca858928a51defc", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/vercel.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/vercel.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c855b5eed04e8e11", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/playwright.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/playwright.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a595f20c808900e7", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/supabase.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/supabase.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96c67240bc95778b", "name": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/neon.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/neon.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9499df2aa4c2f23f", "name": "Possible secret in packages/test/README.md", "shortDescription": {"text": "Possible secret in packages/test/README.md"}, "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-217fe68c756e604d", "name": "Possible secret in packages/test/src/e2e/revenue-path.spec.ts", "shortDescription": {"text": "Possible secret in packages/test/src/e2e/revenue-path.spec.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-a6ab23243361c4f7", "name": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts", "shortDescription": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.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-3be4ed914ed13053", "name": "Possible secret in packages/test/src/e2e/auth.spec.ts", "shortDescription": {"text": "Possible secret in packages/test/src/e2e/auth.spec.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-459d73d037956a97", "name": "Possible secret in packages/test/src/e2e/multi-tenant.spec.ts", "shortDescription": {"text": "Possible secret in packages/test/src/e2e/multi-tenant.spec.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-cc43d28a503e35e3", "name": "Possible secret in packages/test/load-tests/load/auth/auth-rate-limiting.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-rate-limiting.js"}, "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-8baea9999b92c3eb", "name": "Possible secret in packages/test/load-tests/load/auth/auth-sign-in.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-sign-in.js"}, "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-cfeeb5f82f133fec", "name": "Possible secret in packages/test/load-tests/load/auth/auth-session-validation.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-session-validation.js"}, "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-0ccac4b3cd04788f", "name": "Possible secret in packages/test/load-tests/load/auth/auth-sign-up.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-sign-up.js"}, "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-c6fcd127855c51df", "name": "Possible secret in packages/test/load-tests/load/auth/auth-load.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-load.js"}, "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-caf176574721edd4", "name": "Possible secret in packages/test/load-tests/load/auth/auth-login.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-login.js"}, "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-6db2476f7021896f", "name": "Possible secret in packages/test/load-tests/load/auth/auth-stress.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-stress.js"}, "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-6795bef53529b2f9", "name": "Possible secret in packages/test/load-tests/load/payments/payment-processing.js", "shortDescription": {"text": "Possible secret in packages/test/load-tests/load/payments/payment-processing.js"}, "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-6ce203e711218096", "name": "Insecure pattern 'exec_used' in packages/resilience/src/circuit-breaker-store.ts:84", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/resilience/src/circuit-breaker-store.ts:84"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f02afb0b1d0c070", "name": "Insecure pattern 'node_child_process' in packages/scripts/exec.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/exec.ts:13"}, "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-712960ad901eb10f", "name": "Insecure pattern 'cors_wildcard' in packages/scripts/__tests__/api-security-analyzer.test.ts:38", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/scripts/__tests__/api-security-analyzer.test.ts:38"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a1d7016dbaa0053", "name": "Insecure pattern 'node_child_process' in packages/scripts/__tests__/code-pattern-analyzer.test.ts:38", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/__tests__/code-pattern-analyzer.test.ts:38"}, "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-69facaf88c66f83b", "name": "Insecure pattern 'node_child_process' in packages/scripts/rollback/snapshot-manager.ts:34", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/rollback/snapshot-manager.ts:34"}, "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-4ebe95254675d19a", "name": "Insecure pattern 'node_child_process' in packages/scripts/dry-run/dry-run-engine.ts:35", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/dry-run/dry-run-engine.ts:35"}, "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-92a62f237abbec7d", "name": "Insecure pattern 'node_child_process' in packages/scripts/validation/pre-execution.ts:33", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/validation/pre-execution.ts:33"}, "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-c212bf8bbd434501", "name": "Insecure pattern 'node_child_process' in packages/scripts/validation/post-execution.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/scripts/validation/post-execution.ts:25"}, "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-33b30612c3711310", "name": "Insecure pattern 'exec_used' in packages/cache/src/invalidation-channel.ts:54", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/cache/src/invalidation-channel.ts:54"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2a3c3e7f7f1336a", "name": "Insecure pattern 'exec_used' in packages/cache/src/adapters/pglite.ts:16", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/cache/src/adapters/pglite.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f013ca793953c1f", "name": "Insecure pattern 'node_child_process' in packages/harnesses/src/adapters/translation-layer.ts:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/adapters/translation-layer.ts:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c149d3d370e9dc1c", "name": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/integration.test.ts:40", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/integration.test.ts:40"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b871d14cfd927f94", "name": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/coordinator.test.ts:30", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/coordinator.test.ts:30"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91d4f5a0a0cfce08", "name": "Insecure pattern 'node_child_process' in packages/harnesses/src/coordination/merge-pipeline.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/coordination/merge-pipeline.ts:11"}, "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-da8d95dcd3e8d95f", "name": "Insecure pattern 'cors_wildcard' in packages/harnesses/src/server/http-gateway.ts:99", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/harnesses/src/server/http-gateway.ts:99"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-84aa8fdac6bb2abb", "name": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/spawner-service.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/spawner-service.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9cb6c6824a330296", "name": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/inference-service.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/inference-service.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc7097c2435bb925", "name": "Insecure pattern 'node_child_process' in packages/harnesses/src/detection/process-detector.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/detection/process-detector.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7bc9bdc898791e09", "name": "Insecure pattern 'eval_used' in packages/dev/src/biome/README.md:71", "shortDescription": {"text": "Insecure pattern 'eval_used' in packages/dev/src/biome/README.md:71"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f3fa57af89a8b5f", "name": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/monitoring/zombie-detector.test.ts:46", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/monitoring/zombie-detector.test.ts:46"}, "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-497fb896f5e9f74c", "name": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/observability/health-check.test.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/observability/health-check.test.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7dd8c434886f1b2a", "name": "Insecure pattern 'domparser_html_parse' in packages/core/src/client/richtext/plugins/PastePlugin.tsx:69", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in packages/core/src/client/richtext/plugins/PastePlugin.tsx:69"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a3309e2f216d334", "name": "Possible secret in packages/core/src/client/admin/i18n/en.ts", "shortDescription": {"text": "Possible secret in packages/core/src/client/admin/i18n/en.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-038a4ca40bbfd007", "name": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/zombie-detector.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/zombie-detector.ts:8"}, "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-6bab62df313b3fed", "name": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/__tests__/zombie-detector.test.ts:38", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/__tests__/zombie-detector.test.ts:38"}, "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-659f7ac6b316b161", "name": "Insecure pattern 'node_child_process' in packages/core/src/observability/health-check.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/core/src/observability/health-check.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45b33748e9ccfc21", "name": "Insecure pattern 'node_child_process' in packages/setup/src/system-tune/detect.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/setup/src/system-tune/detect.ts:8"}, "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-c1aace21d6f6c791", "name": "Insecure pattern 'node_child_process' in .github/scripts/create-github-releases.cjs:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/scripts/create-github-releases.cjs:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c547d87eb257772", "name": "Insecure pattern 'node_child_process' in .github/workflows/issue-leak-scan.yml:58", "shortDescription": {"text": "Insecure pattern 'node_child_process' in .github/workflows/issue-leak-scan.yml:58"}, "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-1c1753a35464fb36", "name": "Possible secret in e2e/electric.e2e.ts", "shortDescription": {"text": "Possible secret in e2e/electric.e2e.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-795edc78b5294f4e", "name": "Possible secret in e2e/auth.e2e.ts", "shortDescription": {"text": "Possible secret in e2e/auth.e2e.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-83923c31d8a22543", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68a2b8f5c8cd6b53", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b9fff3521ac665a", "name": "pull_request_target workflow appears to check out untrusted PR code", "shortDescription": {"text": "pull_request_target workflow appears to check out untrusted PR code"}, "fullDescription": {"text": "pull_request_target runs with base-repo privileges. Checking out PR head code in that context can expose repository tokens or secrets to attacker-controlled code."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1384ccafca35b738", "name": "Very large file: apps/server/src/index.ts (1378 lines)", "shortDescription": {"text": "Very large file: apps/server/src/index.ts (1378 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-6ac7db222b16b826", "name": "Very large file: apps/server/src/routes/webhooks.ts (3665 lines)", "shortDescription": {"text": "Very large file: apps/server/src/routes/webhooks.ts (3665 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-298698ed8db18108", "name": "Very large file: apps/server/src/routes/billing.ts (2678 lines)", "shortDescription": {"text": "Very large file: apps/server/src/routes/billing.ts (2678 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-b76344e653c4bda5", "name": "Very large file: apps/server/src/routes/__tests__/billing-comprehensive.test.ts (1507 lines)", "shortDescription": {"text": "Very large file: apps/server/src/routes/__tests__/billing-comprehensive.test.ts (1507 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-848a0f006ca69035", "name": "Very large file: scripts/validate/claim-drift.ts (2062 lines)", "shortDescription": {"text": "Very large file: scripts/validate/claim-drift.ts (2062 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-6c07eaed441a3d30", "name": "Very large file: packages/db/src/types/database.ts (1564 lines)", "shortDescription": {"text": "Very large file: packages/db/src/types/database.ts (1564 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-823a5e335fe9a360", "name": "Very large file: packages/contracts/src/generated/contracts.ts (2225 lines)", "shortDescription": {"text": "Very large file: packages/contracts/src/generated/contracts.ts (2225 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-0f1193c21c61dd97", "name": "Very large file: packages/contracts/src/generated/zod-schemas.ts (2224 lines)", "shortDescription": {"text": "Very large file: packages/contracts/src/generated/zod-schemas.ts (2224 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-c69f0b4f79af852d", "name": "Node manifest has dependencies but no lockfile: apps/docs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/docs/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-9f6d9aaea4f8a426", "name": "Node manifest has dependencies but no lockfile: apps/marketing/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/marketing/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-5c30f715681a4005", "name": "Node manifest has dependencies but no lockfile: apps/admin/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/admin/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-5f12bbcc60e1f76c", "name": "Node manifest has dependencies but no lockfile: apps/server/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/server/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b52f3d5e0999caa", "name": "Node manifest has dependencies but no lockfile: packages/security/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/security/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-1fede29967ed5772", "name": "Node manifest has dependencies but no lockfile: packages/engines/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/engines/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-884ad368e0d3295e", "name": "Node manifest has dependencies but no lockfile: packages/router/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/router/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-2dd77b00676ec847", "name": "Node manifest has dependencies but no lockfile: packages/sync/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sync/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-80f569ae36a3e3bf", "name": "Node manifest has dependencies but no lockfile: packages/ai/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ai/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-eddecaa766cadff2", "name": "Node manifest has dependencies but no lockfile: packages/config/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/config/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-41b225e183229484", "name": "Node manifest has dependencies but no lockfile: packages/auth/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/auth/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-4dba29e0ee46f793", "name": "Node manifest has dependencies but no lockfile: packages/create-revealui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/create-revealui/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-b9c03e4b51641936", "name": "Node manifest has dependencies but no lockfile: packages/mcp/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/mcp/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-332c996d13baab17", "name": "Node manifest has dependencies but no lockfile: packages/test/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/test/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-29b547b3cb4d6b10", "name": "Node manifest has dependencies but no lockfile: packages/resilience/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/resilience/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-36e513ed369dc5f7", "name": "Node manifest has dependencies but no lockfile: packages/scripts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/scripts/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-8c2e3196a4ef0cdd", "name": "Node manifest has dependencies but no lockfile: packages/cli/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/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-22008884ff4ef1be", "name": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter/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-1119f3cda9953b0e", "name": "Node manifest has dependencies but no lockfile: packages/cli/templates/basic-blog/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/basic-blog/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-8cfa63b58cf567f3", "name": "Node manifest has dependencies but no lockfile: packages/cli/templates/portfolio/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/portfolio/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-2b53282d5c8c6c14", "name": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter-native/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter-native/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-3fbed2d3fdce65f6", "name": "Node manifest has dependencies but no lockfile: packages/cli/templates/e-commerce/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/e-commerce/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-47edb5907af5997f", "name": "Node manifest has dependencies but no lockfile: packages/utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/utils/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17758973a65e7db1", "name": "Node manifest has dependencies but no lockfile: packages/cache/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cache/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84e8fb7f82506019", "name": "Node manifest has dependencies but no lockfile: packages/harnesses/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/harnesses/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-86833cb46f68d46c", "name": "Node manifest has dependencies but no lockfile: packages/revealui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/revealui/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-889092dbc9ab7483", "name": "Node manifest has dependencies but no lockfile: packages/dev/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/dev/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-a5d46994f67835d9", "name": "Node manifest has dependencies but no lockfile: packages/services/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/services/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-7b16ae2bd0fca524", "name": "Node manifest has dependencies but no lockfile: packages/db/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/db/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28e92806c0db3cd2", "name": "Node manifest has dependencies but no lockfile: packages/core/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eeba9be7881f7313", "name": "Node manifest has dependencies but no lockfile: packages/paywall/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/paywall/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-f85d8f0719e22fa8", "name": "Node manifest has dependencies but no lockfile: packages/contracts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/contracts/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-9e7525cb05ab3fd8", "name": "Node manifest has dependencies but no lockfile: packages/setup/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/setup/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-7e1311bfab7073fa", "name": "Node manifest has dependencies but no lockfile: packages/presentation/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/presentation/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-7e52cabd5cdfdc20", "name": "Node manifest has dependencies but no lockfile: packages/openapi/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/openapi/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 1031 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 282 placeholder/mock markers across 100 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-37582e55e2b39016", "name": "Commented-code block (6 lines) in apps/docs/vitest.config.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in apps/docs/vitest.config.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-7286ac165b4e85ee", "name": "Commented-code block (6 lines) in apps/docs/scripts/prune-non-public.mjs:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/docs/scripts/prune-non-public.mjs: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-ca435d4c698c1553", "name": "Commented-code block (5 lines) in apps/docs/scripts/served-docs.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/docs/scripts/served-docs.mjs: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-16b4cca73e8fd6fa", "name": "Commented-code block (5 lines) in apps/docs/app/App.tsx:90", "shortDescription": {"text": "Commented-code block (5 lines) in apps/docs/app/App.tsx:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c1f153d1cfc23c0", "name": "Commented-code block (5 lines) in apps/docs/app/utils/markdown.tsx:95", "shortDescription": {"text": "Commented-code block (5 lines) in apps/docs/app/utils/markdown.tsx: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-d19b78880bc1ab4b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/docs/app/lib/search-index.ts:189", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/docs/app/lib/search-index.ts: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-9d2207363b340014", "name": "Commented-code block (5 lines) in apps/marketing/app/__tests__/agency-engagement-ladder.test.ts:97", "shortDescription": {"text": "Commented-code block (5 lines) in apps/marketing/app/__tests__/agency-engagement-ladder.test.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f085e84bfcc25126", "name": "Commented-code block (9 lines) in apps/marketing/app/components/landing/Fork.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in apps/marketing/app/components/landing/Fork.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-794fd1fe1969809d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/marketing/app/routes/StatusPage.tsx:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/marketing/app/routes/StatusPage.tsx:122"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13603ffe24b937ea", "name": "Commented-code block (8 lines) in apps/marketing/app/content/primitives.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/primitives.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-417c857b6ea5435c", "name": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators-how-it-works.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators-how-it-works.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-706a9b38cb7ac3a2", "name": "Commented-code block (5 lines) in apps/marketing/app/content/persona.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/marketing/app/content/persona.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-807468d7d03d95b8", "name": "Commented-code block (5 lines) in apps/marketing/app/content/marketplace.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/marketing/app/content/marketplace.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-deb11a4dc4b502b1", "name": "Commented-code block (8 lines) in apps/marketing/app/content/products.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/products.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-53231c3679e9c1e1", "name": "Commented-code block (9 lines) in apps/marketing/app/content/home.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in apps/marketing/app/content/home.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-e6033503ab7d09b6", "name": "Commented-code block (8 lines) in apps/marketing/app/content/pricing.ts:140", "shortDescription": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/pricing.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-bb6dd8b00c3db41e", "name": "Commented-code block (15 lines) in apps/marketing/app/content/site.ts:1", "shortDescription": {"text": "Commented-code block (15 lines) in apps/marketing/app/content/site.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-785ea3a13162f237", "name": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators.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-c91bc6716d9a60a7", "name": "Commented-code block (7 lines) in apps/marketing/app/content/fair-source.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/marketing/app/content/fair-source.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-d5e33b6dd729cfd7", "name": "Commented-code block (6 lines) in apps/marketing/app/content/for-operators-managed.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/marketing/app/content/for-operators-managed.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-b1c9431ea0afd85b", "name": "Commented-code block (6 lines) in apps/admin/tailwind.config.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/tailwind.config.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b614cccdd72ccb6", "name": "Commented-code block (5 lines) in apps/admin/revealui.config.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/revealui.config.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-acd5198ed2dcd330", "name": "Commented-code block (5 lines) in apps/admin/next.config.mjs:88", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/next.config.mjs:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fdeb089748a7ef9", "name": "Commented-code block (5 lines) in apps/admin/vitest.config.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/vitest.config.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-a3240f9ef41fb563", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/public/sw.js:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/public/sw.js: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-f2510eccbea9dcc8", "name": "Commented-code block (6 lines) in apps/admin/src/instrumentation.ts:34", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/instrumentation.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-bf44155589270a7e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/instrumentation.ts:164", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/instrumentation.ts:164"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0b430c58dfa36a6", "name": "Commented-code block (6 lines) in apps/admin/src/proxy.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/proxy.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3df60ea2c7d26b59", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-auth-redirect.test.ts:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-auth-redirect.test.ts:19"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-674efc520e51321e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-csp.test.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-csp.test.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-ef05ff32df1a631c", "name": "Commented-code block (6 lines) in apps/admin/src/__tests__/auth/access-control.test.ts:320", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/__tests__/auth/access-control.test.ts:320"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bdf8e6cd55bb142", "name": "Commented-code block (5 lines) in apps/admin/src/__tests__/utils/admin-test-utils.ts:193", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/__tests__/utils/admin-test-utils.ts:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d1b24371215b875", "name": "Commented-code block (5 lines) in apps/admin/src/app/global-error.tsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/app/global-error.tsx: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-70e52ced93870b14", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/globals/[slug]/route.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/globals/[slug]/route.ts:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5be0916ee038fccc", "name": "Commented-code block (7 lines) in apps/admin/src/app/api/auth/sign-up/route.ts:202", "shortDescription": {"text": "Commented-code block (7 lines) in apps/admin/src/app/api/auth/sign-up/route.ts:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46ba291406a6de8c", "name": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/callback/[provider]/route.ts:87", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/callback/[provider]/route.ts:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2da70eea39c52c3", "name": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/password-reset/route.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/password-reset/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-680ba47bbbb642cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/media/route.ts:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/media/route.ts: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-18f1972e51082c7f", "name": "Commented-code block (7 lines) in apps/admin/src/app/api/mcp/oauth/__tests__/oauth-routes.test.ts:63", "shortDescription": {"text": "Commented-code block (7 lines) in apps/admin/src/app/api/mcp/oauth/__tests__/oauth-routes.test.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-d2d63c703f0a969b", "name": "Commented-code block (6 lines) in apps/admin/src/app/api/mcp/remote-servers/[server]/get-prompt/route.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/app/api/mcp/remote-servers/[server]/get-prompt/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-8c749fb26acb3d07", "name": "Commented-code block (6 lines) in apps/admin/src/app/api/gdpr/delete/route.ts:67", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/app/api/gdpr/delete/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-16cbc1f9e67ebf42", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/collections/[collection]/[id]/route.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/collections/[collection]/[id]/route.ts:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-488fcdbfc6f650c2", "name": "Commented-code block (5 lines) in apps/admin/src/app/api/setup/route.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/setup/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-de76807e90735b36", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/earnings/page.tsx:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/earnings/page.tsx:41"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67162065de063669", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/[agentId]/page.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/[agentId]/page.tsx:69"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b87c6d5f0689d647", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/media/page.tsx:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/media/page.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-d56eaa503991a1da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:116", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:116"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a759e647ef2d6113", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agents/page.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agents/page.tsx:70"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca242a8b27650418", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/upgrade/page.tsx:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/upgrade/page.tsx:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1abbb1a82bf0ffd", "name": "Commented-code block (5 lines) in apps/admin/src/app/(frontend)/layout.tsx:133", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/app/(frontend)/layout.tsx:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b5b2a4521877675", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/billing/page.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/billing/page.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-d35a3f9552f87893", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/license/page.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/license/page.tsx:69"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-131f148b2d78dc5b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/utils/csrf.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/utils/csrf.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-6f374dc83a817490", "name": "Commented-code block (5 lines) in apps/admin/src/lib/utils/env-validation.ts:53", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/utils/env-validation.ts: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-163caa6529bcedb1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/AdminBar/index.tsx:165", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/AdminBar/index.tsx:165"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a4ffcd3ba3cc4e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd819a1f7269478f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/CustomerSelect/index.tsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/CustomerSelect/index.tsx:6"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6039e82db95ef944", "name": "Commented-code block (5 lines) in apps/admin/src/lib/components/PageRange/index.tsx:61", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/PageRange/index.tsx: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-232f46657afb9e67", "name": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/index.tsx:48", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/index.tsx:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98edb9b80c4fa4d7", "name": "Commented-code block (29 lines) in apps/admin/src/lib/components/Media/types.ts:56", "shortDescription": {"text": "Commented-code block (29 lines) in apps/admin/src/lib/components/Media/types.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-287222b84ef8aa79", "name": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/ImageMedia/index.tsx:80", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/ImageMedia/index.tsx: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-62a6cde881b3da49", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.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-956450298bc6e871", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-516fe68856a6b0fd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/hooks/beforeChange.ts:136", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/hooks/beforeChange.ts:136"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8fef9dce04e2c268", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab92c2d559995ad8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/hooks/beforeChange.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/hooks/beforeChange.ts:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4211e54afd038e46", "name": "Commented-code block (5 lines) in apps/admin/src/lib/hooks/ensureFirstUserIsSuperAdmin.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/hooks/ensureFirstUserIsSuperAdmin.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b97704ca473ca3cb", "name": "Commented-code block (6 lines) in apps/admin/src/lib/hooks/customersProxy.ts:158", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/lib/hooks/customersProxy.ts:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49a3dea0fee39105", "name": "Commented-code block (8 lines) in apps/admin/src/lib/features/label/feature.client.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in apps/admin/src/lib/features/label/feature.client.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-60b718e375b9db1d", "name": "Commented-code block (6 lines) in apps/admin/src/lib/features/label/nodes/LabelNode.tsx:135", "shortDescription": {"text": "Commented-code block (6 lines) in apps/admin/src/lib/features/label/nodes/LabelNode.tsx: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-66a162db3acc08bf", "name": "Commented-code block (7 lines) in apps/server/tsup.config.ts:20", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/tsup.config.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-10af25cc0823a334", "name": "Commented-code block (6 lines) in apps/server/vitest.config.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/vitest.config.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-1f3cc9aa7927c7b7", "name": "Commented-code block (5 lines) in apps/server/src/index.ts:129", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/index.ts:129"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-247de067984661aa", "name": "Commented-code block (7 lines) in apps/server/src/worker.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/worker.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-ff45e6040bc9071c", "name": "Commented-code block (5 lines) in apps/server/src/__tests__/index.startup.test.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/__tests__/index.startup.test.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-52c80cc2d4fd2319", "name": "Legacy-named symbol `sub_old` in apps/server/src/__tests__/concurrency/billing-concurrent.test.ts:770", "shortDescription": {"text": "Legacy-named symbol `sub_old` in apps/server/src/__tests__/concurrency/billing-concurrent.test.ts:770"}, "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-710ad9f3b1328bc9", "name": "Commented-code block (5 lines) in apps/server/src/middleware/error.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/error.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-8974928c72ad2bf8", "name": "Commented-code block (5 lines) in apps/server/src/middleware/task-quota.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/task-quota.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3761120887972d31", "name": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/domain-validation.test.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/domain-validation.test.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-00c69d00b484e629", "name": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/rate-limit.test.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/rate-limit.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6f237311a6f88dc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/internal-admin-client.ts:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/internal-admin-client.ts: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-cdbeb0e3277edd4d", "name": "Commented-code block (12 lines) in apps/server/src/lib/validate-startup.ts:107", "shortDescription": {"text": "Commented-code block (12 lines) in apps/server/src/lib/validate-startup.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-df565d8f928eabe4", "name": "Commented-code block (5 lines) in apps/server/src/lib/agent-dispatcher.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/lib/agent-dispatcher.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-f4a6bd9af87c74bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/agent-dispatcher.ts:125", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/agent-dispatcher.ts:125"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99b67e599119977e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/webhook-replay.ts:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/webhook-replay.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-9b89245c21c58449", "name": "Legacy-named symbol `cus_legacy` in apps/server/src/lib/__tests__/billing-status.test.ts:54", "shortDescription": {"text": "Legacy-named symbol `cus_legacy` in apps/server/src/lib/__tests__/billing-status.test.ts:54"}, "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-d171a8f956960dd2", "name": "Commented-code block (7 lines) in apps/server/src/lib/__tests__/request-context.test.ts:49", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/lib/__tests__/request-context.test.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-0c29dd9c3ad75ef9", "name": "Commented-code block (9 lines) in apps/server/src/routes/webhooks.ts:656", "shortDescription": {"text": "Commented-code block (9 lines) in apps/server/src/routes/webhooks.ts:656"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3efffb5175211819", "name": "Commented-code block (7 lines) in apps/server/src/routes/billing.ts:127", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/routes/billing.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55ed20efd9591f7a", "name": "Commented-code block (9 lines) in apps/server/src/routes/og.ts:35", "shortDescription": {"text": "Commented-code block (9 lines) in apps/server/src/routes/og.ts: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-defcfae0a11f1def", "name": "Commented-code block (6 lines) in apps/server/src/routes/agent-stream.ts:220", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/routes/agent-stream.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-783763ff6621a0e6", "name": "Commented-code block (8 lines) in apps/server/src/routes/pricing.ts:23", "shortDescription": {"text": "Commented-code block (8 lines) in apps/server/src/routes/pricing.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-0fb02dbd95cc71a0", "name": "Commented-code block (5 lines) in apps/server/src/routes/contact.ts:30", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/contact.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-8e93e788d2578f3b", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/agent-stream-success.test.ts:250", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/agent-stream-success.test.ts:250"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22536c145d9ee5dd", "name": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:207", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:207"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f1883d40614c454", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:255", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:255"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40ae1033ccb935aa", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/inference-config.test.ts:400", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/inference-config.test.ts:400"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c0fba5052dd0bb2", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/pricing-edge.test.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/pricing-edge.test.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-ba13dcbe8619f713", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/webhook-signature-replay.test.ts:857", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/webhook-signature-replay.test.ts:857"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0d105d8fddfb4ea", "name": "Commented-code block (8 lines) in apps/server/src/routes/__tests__/webhook-safety.test.ts:922", "shortDescription": {"text": "Commented-code block (8 lines) in apps/server/src/routes/__tests__/webhook-safety.test.ts:922"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6073e206b2e2d2a1", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/og.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/og.test.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-cb236acebd62787b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/rag-index.test.ts:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/rag-index.test.ts:99"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6bb064264f424910", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace-endpoints.test.ts: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-5334d53b9adc1891", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:118"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7fa98cf7d4951d12", "name": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/billing-lifecycle.test.ts:506", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/billing-lifecycle.test.ts:506"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e60551c3f91ddfbe", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/devkit.test.ts:281", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/devkit.test.ts:281"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96d4ed8ac3899628", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/agent-tasks.test.ts:349", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/agent-tasks.test.ts: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-c6117e65b48bf470", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/billing-pending-change.test.ts:531", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/billing-pending-change.test.ts:531"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8289722c6e7ac972", "name": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/billing-metered-checkout.test.ts:357", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/billing-metered-checkout.test.ts:357"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d25451cac21ccf0", "name": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:442", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:442"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3a639bbb572446f", "name": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace.test.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace.test.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-f7cbf8f10466cc46", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace.test.ts:126", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace.test.ts:126"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55f08feb0cadb490", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/coordination.test.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/coordination.test.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-494c10fa72857b5b", "name": "Commented-code block (6 lines) in apps/server/src/routes/admin/__tests__/observability-jobs.test.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/routes/admin/__tests__/observability-jobs.test.ts: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-7b6a40716e5e9033", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/observability-jobs.test.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/observability-jobs.test.ts:60"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5defd4814a4ed1b4", "name": "Legacy-named symbol `evt_old` in apps/server/src/routes/cron/drain-unreconciled.test.ts:216", "shortDescription": {"text": "Legacy-named symbol `evt_old` in apps/server/src/routes/cron/drain-unreconciled.test.ts:216"}, "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-a27225d650623f03", "name": "Commented-code block (5 lines) in apps/server/src/routes/cron/drain-unreconciled.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/cron/drain-unreconciled.test.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-323cd9422df12495", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/drain-unreconciled.test.ts:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/drain-unreconciled.test.ts:99"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc268653ad61f696", "name": "Commented-code block (5 lines) in apps/server/src/routes/cron/reconcile-customers.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/cron/reconcile-customers.ts: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-86d3324f295ba1d4", "name": "Commented-code block (6 lines) in apps/server/src/routes/cron/billing-readiness.ts:151", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/routes/cron/billing-readiness.ts:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9130afe0b3681ee8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/reconcile-subscriptions.test.ts:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/reconcile-subscriptions.test.ts:67"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-077def3cec0f7967", "name": "Commented-code block (9 lines) in apps/server/src/routes/cron/dispatch.ts:53", "shortDescription": {"text": "Commented-code block (9 lines) in apps/server/src/routes/cron/dispatch.ts: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-3c3f459847927ed9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/__tests__/reconcile-customers.test.ts:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/__tests__/reconcile-customers.test.ts:134"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93cc981990db880f", "name": "Commented-code block (5 lines) in apps/server/src/routes/content/media.ts:341", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/routes/content/media.ts:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd2cb6b8b1b33c63", "name": "Commented-code block (7 lines) in apps/server/src/collab/provenance-logger.ts:63", "shortDescription": {"text": "Commented-code block (7 lines) in apps/server/src/collab/provenance-logger.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-2f93c5fce35e99a3", "name": "Commented-code block (6 lines) in apps/server/src/services/revmarket-executor.ts:215", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/services/revmarket-executor.ts: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-7ee1732f4e938c93", "name": "Commented-code block (5 lines) in apps/server/src/services/revmarket-sandbox/__test-runners__/memory-bomb.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/server/src/services/revmarket-sandbox/__test-runners__/memory-bomb.mjs: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-730057d84155a628", "name": "Commented-code block (6 lines) in apps/server/src/jobs/agent-dispatch.ts:80", "shortDescription": {"text": "Commented-code block (6 lines) in apps/server/src/jobs/agent-dispatch.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-b91de2f0eec134b4", "name": "Commented-code block (5 lines) in scripts/security/__tests__/rotate-kek.test.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/security/__tests__/rotate-kek.test.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-7fda43b991b991e1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/electric-latency-probe/probe.ts:277", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/electric-latency-probe/probe.ts:277"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97cdb90780e3eb4b", "name": "Commented-code block (5 lines) in scripts/admin/bootstrap.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/admin/bootstrap.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-052b750f3a88ef66", "name": "Commented-code block (5 lines) in scripts/validate/claim-drift.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validate/claim-drift.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-5fac97dbba5ebc78", "name": "Commented-code block (5 lines) in scripts/validate/raw-sql.ts:340", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validate/raw-sql.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-7ec95f4c9d8fabc8", "name": "Commented-code block (6 lines) in scripts/validate/prod-env.ts:131", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/validate/prod-env.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-1b1d72e7d1247ee0", "name": "Commented-code block (5 lines) in scripts/validate/marketing-voice.ts:52", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validate/marketing-voice.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-cd69ec5035f06853", "name": "Commented-code block (5 lines) in scripts/validate/__tests__/prod-env.test.ts:269", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/validate/__tests__/prod-env.test.ts:269"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6c0d928694ebb34", "name": "Commented-code block (5 lines) in scripts/setup/seed-stripe.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/setup/seed-stripe.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-4de2696143e2a108", "name": "Commented-code block (8 lines) in packages/security/tsup.config.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in packages/security/tsup.config.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-7ba0954beb504997", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/security/src/auth.ts:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/security/src/auth.ts:99"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc95f7e0f21f95d8", "name": "Commented-code block (5 lines) in packages/security/src/sanitize.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in packages/security/src/sanitize.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-dc19397d4f5b89ae", "name": "Commented-code block (7 lines) in packages/security/src/__tests__/request-ip.test.ts:24", "shortDescription": {"text": "Commented-code block (7 lines) in packages/security/src/__tests__/request-ip.test.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-044044f42954e2f3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/router/src/index.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/router/src/index.ts:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8726d184c61d27da", "name": "Commented-code block (5 lines) in packages/router/src/router.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in packages/router/src/router.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-443b679a6f8a60af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sync/src/fetch-with-timeout.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sync/src/fetch-with-timeout.ts:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f1f479e9940bc09", "name": "Commented-code block (6 lines) in packages/ai/src/__tests__/integration/crdt-persistence.test.ts:170", "shortDescription": {"text": "Commented-code block (6 lines) in packages/ai/src/__tests__/integration/crdt-persistence.test.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-314057f2bf2c9165", "name": "Commented-code block (5 lines) in packages/ai/src/__tests__/integration/persistence-regression.test.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ai/src/__tests__/integration/persistence-regression.test.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-4c9224ae63d704dc", "name": "Commented-code block (5 lines) in packages/ai/src/__tests__/tools/mcp-events.test.ts:343", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ai/src/__tests__/tools/mcp-events.test.ts:343"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d72fefa0504bc577", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/client/hooks/useAgentStream.ts:275", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/client/hooks/useAgentStream.ts:275"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10e38f32bc51576b", "name": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.test.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.test.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d1acab752f98dfc", "name": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.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-cad9d52b1a87047c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/openai-compat.ts:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/openai-compat.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-d8241e223cb9bd93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/inference-snaps.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/inference-snaps.ts:83"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf9cd0a9f2168c4b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/ollama.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/ollama.ts: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-3c5210a86e1116a3", "name": "Commented-code block (6 lines) in packages/config/src/schema.ts:84", "shortDescription": {"text": "Commented-code block (6 lines) in packages/config/src/schema.ts:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-327eecbd669236cf", "name": "Commented-code block (5 lines) in packages/config/src/index.ts:128", "shortDescription": {"text": "Commented-code block (5 lines) in packages/config/src/index.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-eca8f774f115aa1d", "name": "Legacy-named symbol `envWithDeprecated` in packages/config/src/__tests__/config.test.ts:246", "shortDescription": {"text": "Legacy-named symbol `envWithDeprecated` in packages/config/src/__tests__/config.test.ts:246"}, "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-7259b304c7791909", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/usePasskey.ts:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/usePasskey.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-74fd924948bf8bfe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/__tests__/usePasskey.test.tsx:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/__tests__/usePasskey.test.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-4d963629802ac281", "name": "Commented-code block (5 lines) in packages/auth/src/server/oauth.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in packages/auth/src/server/oauth.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-7fe0f29344d3e76a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/server/providers/github.ts:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/server/providers/github.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-35c1f043314325c2", "name": "Commented-code block (5 lines) in packages/auth/src/server/providers/google.ts:99", "shortDescription": {"text": "Commented-code block (5 lines) in packages/auth/src/server/providers/google.ts:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e57943e63953166", "name": "Commented-code block (5 lines) in packages/mcp/__tests__/revealui-content-factory.integration.test.ts:134", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mcp/__tests__/revealui-content-factory.integration.test.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66381dd98d62e563", "name": "Commented-code block (6 lines) in packages/mcp/__tests__/remote-client.test.ts:23", "shortDescription": {"text": "Commented-code block (6 lines) in packages/mcp/__tests__/remote-client.test.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-bf506f9c5c852cda", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/__tests__/streamable-http.integration.test.ts:237", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/__tests__/streamable-http.integration.test.ts:237"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-497b3dc4da20ced0", "name": "Commented-code block (5 lines) in packages/mcp/__tests__/mcp-document-operations.integration.test.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mcp/__tests__/mcp-document-operations.integration.test.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-135581aeab9392d4", "name": "Commented-code block (5 lines) in packages/mcp/src/__tests__/contracts-server.test.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mcp/src/__tests__/contracts-server.test.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-f03bd824411884c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/_email-provider.ts:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/_email-provider.ts:67"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-727e2d379d28a2b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-stripe.ts:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-stripe.ts: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-3e711dd93ae78886", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/adapter.ts:489", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/adapter.ts:489"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8381d17503cfa74a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-memory.ts:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-memory.ts: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-0a846f0fefb600eb", "name": "Commented-code block (5 lines) in packages/mcp/src/servers/supabase.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mcp/src/servers/supabase.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-41142ad46f1e5904", "name": "Commented-code block (5 lines) in packages/test/src/integration/auth/session-cleanup.integration.test.ts:153", "shortDescription": {"text": "Commented-code block (5 lines) in packages/test/src/integration/auth/session-cleanup.integration.test.ts:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a142010b45eccd6", "name": "Commented-code block (6 lines) in packages/test/src/integration/auth/brute-force.integration.test.ts:44", "shortDescription": {"text": "Commented-code block (6 lines) in packages/test/src/integration/auth/brute-force.integration.test.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-6124ca0371d660cf", "name": "Commented-code block (5 lines) in packages/test/src/integration/auth/rate-limiting.integration.test.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in packages/test/src/integration/auth/rate-limiting.integration.test.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-bdacc6d18d414429", "name": "Legacy-named symbol `evt_old` in packages/test/src/integration/database/operational-retention.integration.test.ts:170", "shortDescription": {"text": "Legacy-named symbol `evt_old` in packages/test/src/integration/database/operational-retention.integration.test.ts:170"}, "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-4c4c2b0d461986e7", "name": "Legacy-named symbol `evt_test_old` in packages/test/src/integration/services/webhook-handling.integration.test.ts:117", "shortDescription": {"text": "Legacy-named symbol `evt_test_old` in packages/test/src/integration/services/webhook-handling.integration.test.ts:117"}, "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-858f57be5ce205fd", "name": "Commented-code block (7 lines) in packages/test/src/utils/test-hooks.ts:50", "shortDescription": {"text": "Commented-code block (7 lines) in packages/test/src/utils/test-hooks.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-bbcd2dceefe85435", "name": "Commented-code block (8 lines) in packages/test/src/utils/integration-helpers.ts:168", "shortDescription": {"text": "Commented-code block (8 lines) in packages/test/src/utils/integration-helpers.ts:168"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b11fb4e47db3a44", "name": "Commented-code block (7 lines) in packages/test/src/patterns/payments.test.example.ts:23", "shortDescription": {"text": "Commented-code block (7 lines) in packages/test/src/patterns/payments.test.example.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-4e59b5e4da6ed79a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/retry.ts:166", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/retry.ts:166"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e9ad4aa2d70527c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/circuit-breaker.ts:454", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/circuit-breaker.ts:454"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7719d6a2e8925a2", "name": "Legacy-named symbol `validateDeprecated` in packages/scripts/index.ts:241", "shortDescription": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/index.ts:241"}, "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-6734c1cc9057201a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/scripts/parallel.ts:358", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/scripts/parallel.ts:358"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7ce2e19cf70c341", "name": "Legacy-named symbol `isDeprecated` in packages/scripts/registry/script-metadata.ts:186", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in packages/scripts/registry/script-metadata.ts:186"}, "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-b4d3921008083ba0", "name": "Legacy-named symbol `scriptsDeprecated` in packages/scripts/registry/script-registry.ts:322", "shortDescription": {"text": "Legacy-named symbol `scriptsDeprecated` in packages/scripts/registry/script-registry.ts:322"}, "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-201c0e57b90c76b8", "name": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/documentation-validator.ts:89", "shortDescription": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/documentation-validator.ts:89"}, "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-e8b800c8b317e3f2", "name": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/index.ts:22", "shortDescription": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/index.ts:22"}, "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-030584346d23a3c3", "name": "Commented-code block (9 lines) in packages/cli/templates/starter/src/seed.ts:16", "shortDescription": {"text": "Commented-code block (9 lines) in packages/cli/templates/starter/src/seed.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-4444ffb17d862a2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/basic-blog/src/seed.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/basic-blog/src/seed.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d3f6b9e48e262aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/portfolio/src/seed.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/portfolio/src/seed.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c4a7a5d833f1b29", "name": "Commented-code block (9 lines) in packages/cli/templates/starter-native/src/seed.ts:16", "shortDescription": {"text": "Commented-code block (9 lines) in packages/cli/templates/starter-native/src/seed.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-9ded6c8a85abd119", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/e-commerce/src/seed.ts:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/e-commerce/src/seed.ts:55"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0773373002ab1a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cache/src/edge-cache.ts:136", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cache/src/edge-cache.ts:136"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6aaa00f1bd823e05", "name": "Commented-code block (5 lines) in packages/cache/src/__tests__/adapters-supplemental.test.ts:110", "shortDescription": {"text": "Commented-code block (5 lines) in packages/cache/src/__tests__/adapters-supplemental.test.ts:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f9e991ec3d7d7c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/harnesses/src/cli.ts:296", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/harnesses/src/cli.ts:296"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1b466c8a85f9fed", "name": "Commented-code block (6 lines) in packages/dev/src/code-validator/__tests__/validator.test.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in packages/dev/src/code-validator/__tests__/validator.test.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-113f1c5a1d40840d", "name": "Commented-code block (7 lines) in packages/services/vitest.config.ts:33", "shortDescription": {"text": "Commented-code block (7 lines) in packages/services/vitest.config.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-299e26ba70470ec3", "name": "Commented-code block (5 lines) in packages/services/__tests__/stripe-api-methods.test.ts:324", "shortDescription": {"text": "Commented-code block (5 lines) in packages/services/__tests__/stripe-api-methods.test.ts:324"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26865615295d9810", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/services/src/email/index.ts:135", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/services/src/email/index.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-76488486d31059b4", "name": "Commented-code block (8 lines) in packages/services/src/stripe/mode.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in packages/services/src/stripe/mode.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-97acd98f88f7aa86", "name": "Commented-code block (9 lines) in packages/services/src/stripe/stripeClient.ts:42", "shortDescription": {"text": "Commented-code block (9 lines) in packages/services/src/stripe/stripeClient.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-433bab81f5cd1a31", "name": "Legacy-named symbol `encUnderOld` in packages/db/src/__tests__/crypto.test.ts:557", "shortDescription": {"text": "Legacy-named symbol `encUnderOld` in packages/db/src/__tests__/crypto.test.ts:557"}, "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-a55a1659c8349696", "name": "Commented-code block (5 lines) in packages/db/src/__tests__/crypto.test.ts:455", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/__tests__/crypto.test.ts:455"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-666e40e70c90d2ce", "name": "Commented-code block (5 lines) in packages/db/src/types/extract-relationships.ts:593", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/types/extract-relationships.ts:593"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eec426a6872c8b04", "name": "Commented-code block (8 lines) in packages/db/src/types/__tests__/discover-units.test.ts:498", "shortDescription": {"text": "Commented-code block (8 lines) in packages/db/src/types/__tests__/discover-units.test.ts: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-ac4adcada22ab9e0", "name": "Commented-code block (5 lines) in packages/db/src/client/index.ts:206", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/client/index.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa6ae6df425d7995", "name": "Commented-code block (5 lines) in packages/db/src/schema/users.ts:104", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/src/schema/users.ts: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-e008d27ba8b1dc19", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/db/src/jobs/enqueue.ts:161", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/db/src/jobs/enqueue.ts:161"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a96e0375de64d10", "name": "Commented-code block (5 lines) in packages/core/src/index.ts:191", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/index.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9c1e052657682f2", "name": "Commented-code block (8 lines) in packages/core/src/revforge-license.ts:123", "shortDescription": {"text": "Commented-code block (8 lines) in packages/core/src/revforge-license.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-ef2b1bf8f7321e60", "name": "Commented-code block (5 lines) in packages/core/src/license.ts:281", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/license.ts:281"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb8769f731250224", "name": "Commented-code block (6 lines) in packages/core/src/__tests__/extraction-quality.test.ts:191", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/__tests__/extraction-quality.test.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd99f309636518ec", "name": "Legacy-named symbol `cus_legacy` in packages/core/src/__tests__/license.test.ts:190", "shortDescription": {"text": "Legacy-named symbol `cus_legacy` in packages/core/src/__tests__/license.test.ts:190"}, "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-9b4bec66a36db3d9", "name": "Legacy-named symbol `collection_v2` in packages/core/src/__tests__/security/injection-prevention.test.ts:87", "shortDescription": {"text": "Legacy-named symbol `collection_v2` in packages/core/src/__tests__/security/injection-prevention.test.ts:87"}, "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-ccc5fd7fa4578191", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/__tests__/concurrency/race-conditions.test.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/__tests__/concurrency/race-conditions.test.ts: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-d5a3aed5941a22b4", "name": "Commented-code block (5 lines) in packages/core/src/richtext/exports/server/rsc.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/richtext/exports/server/rsc.tsx: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-5da935479dec07b5", "name": "Commented-code block (7 lines) in packages/core/src/fields/hooks/afterRead/promise.ts:59", "shortDescription": {"text": "Commented-code block (7 lines) in packages/core/src/fields/hooks/afterRead/promise.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-a77d1cebd461c745", "name": "Commented-code block (5 lines) in packages/core/src/types/index.ts:291", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/types/index.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-d6f0bf0afa71839a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/richtext/components/__tests__/upload.test.ts:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/richtext/components/__tests__/upload.test.ts:6"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d902ab527f59710f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/admin/utils/csrf.ts:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/admin/utils/csrf.ts: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-83bc1bc590c1d5dc", "name": "Commented-code block (6 lines) in packages/core/src/generated/types/index.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/generated/types/index.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-905022f8d5c202a4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/cache.ts:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/cache.ts:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d6cffe4e48987c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/request-context.ts:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/request-context.ts:204"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-726495decff332c9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/__tests__/cache.test.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/__tests__/cache.test.ts:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9310b1970b8dc66c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/observability/alerts.ts:240", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/observability/alerts.ts:240"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d508c9a587cfa087", "name": "Commented-code block (8 lines) in packages/core/src/observability/__tests__/metrics.test.ts:484", "shortDescription": {"text": "Commented-code block (8 lines) in packages/core/src/observability/__tests__/metrics.test.ts:484"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59b7df04a038c520", "name": "Commented-code block (6 lines) in packages/core/src/collections/operations/findById.ts:56", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/collections/operations/findById.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-08b5475d7066f87a", "name": "Commented-code block (6 lines) in packages/core/src/collections/operations/sqlAdapter.ts:107", "shortDescription": {"text": "Commented-code block (6 lines) in packages/core/src/collections/operations/sqlAdapter.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-ab601c7209e29fba", "name": "Commented-code block (5 lines) in packages/core/src/collections/operations/create.ts:162", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/collections/operations/create.ts:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0d131a7d7a55ad8", "name": "Commented-code block (5 lines) in packages/core/src/collections/operations/__tests__/access-enforcement.test.ts:809", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/collections/operations/__tests__/access-enforcement.test.ts:809"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bb902ba0d0ae3e2", "name": "Commented-code block (5 lines) in packages/core/src/nextjs/index.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/nextjs/index.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-05a818186eecf091", "name": "Commented-code block (5 lines) in packages/core/src/queries/queryBuilder.ts:68", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/queries/queryBuilder.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-4c50faec62ffc182", "name": "Commented-code block (5 lines) in packages/core/src/storage/r2.ts:105", "shortDescription": {"text": "Commented-code block (5 lines) in packages/core/src/storage/r2.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-6d4fe21c54378d45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/storage/r2.ts:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/storage/r2.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-9ddd3e33a61e54bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/index.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/index.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-5a40d9d2b6a552c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/PaywallProvider.tsx:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/PaywallProvider.tsx: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-882abdb2a824e12a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/upgrade-aware-fetch.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/upgrade-aware-fetch.ts: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-4785ae9184be52c6", "name": "Commented-code block (5 lines) in packages/contracts/src/pricing.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in packages/contracts/src/pricing.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40bd9443ff48fd0d", "name": "Legacy-named symbol `agt_legacy` in packages/contracts/src/__tests__/agent-pricing.test.ts:96", "shortDescription": {"text": "Legacy-named symbol `agt_legacy` in packages/contracts/src/__tests__/agent-pricing.test.ts:96"}, "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-7063c4a40a39036f", "name": "Commented-code block (7 lines) in packages/setup/src/__tests__/bootstrap.test.ts:146", "shortDescription": {"text": "Commented-code block (7 lines) in packages/setup/src/__tests__/bootstrap.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3df8d4d5f9274cd", "name": "Commented-code block (6 lines) in packages/setup/src/bootstrap/index.ts:183", "shortDescription": {"text": "Commented-code block (6 lines) in packages/setup/src/bootstrap/index.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-b2979f44862f6414", "name": "Commented-code block (5 lines) in packages/presentation/src/server.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in packages/presentation/src/server.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-12f6ce72fe39b3e1", "name": "Commented-code block (7 lines) in packages/presentation/src/__tests__/tokens.contract.test.ts:44", "shortDescription": {"text": "Commented-code block (7 lines) in packages/presentation/src/__tests__/tokens.contract.test.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-02d8beb9ae27563b", "name": "Commented-code block (5 lines) in packages/openapi/scripts/emit-from-mcp.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in packages/openapi/scripts/emit-from-mcp.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-0798f43294a59a5d", "name": "Commented-code block (6 lines) in packages/openapi/src/__tests__/emit-from-mcp.test.ts:53", "shortDescription": {"text": "Commented-code block (6 lines) in packages/openapi/src/__tests__/emit-from-mcp.test.ts: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-bf5e0bcfa7e5749b", "name": "Commented-code block (5 lines) in e2e/smoke.e2e.ts:132", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/smoke.e2e.ts: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-ece469775f67d011", "name": "Commented-code block (5 lines) in e2e/billing-funnel.e2e.ts:130", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/billing-funnel.e2e.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-8660ec72a3ca3311", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/billing-funnel.e2e.ts:132", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/billing-funnel.e2e.ts:132"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ad896bb52748b983", "name": "Commented-code block (7 lines) in e2e/content.e2e.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/content.e2e.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-f98463ffbef65625", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/utils/db-helpers.ts:327", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/utils/db-helpers.ts:327"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55bb41278814344e", "name": "231 env vars used in code but missing from .env.example", "shortDescription": {"text": "231 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENT_TIMEOUT_MS`, `ANTHROPIC_ENABLE_CACHE`, `API_BASE_URL`, `API_URL`, `APP_NAME`, `APP_VERSION`, `AWS_LAMBDA_FUNCTION_NAME`, `BASE_URL` + 223 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-58089577c2ad502e", "name": "Dangling fetch: HEAD /${section}/${file}.md (apps/docs/app/utils/file-discovery.ts:55)", "shortDescription": {"text": "Dangling fetch: HEAD /${section}/${file}.md (apps/docs/app/utils/file-discovery.ts:55)"}, "fullDescription": {"text": "`apps/docs/app/utils/file-discovery.ts:55` calls `HEAD /${section}/${file}.md` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<p>/<p>.md`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5584f3e5a068022a", "name": "Dangling fetch: HEAD /${section}/${pkg}/README.md (apps/docs/app/utils/file-discovery.ts:76)", "shortDescription": {"text": "Dangling fetch: HEAD /${section}/${pkg}/README.md (apps/docs/app/utils/file-discovery.ts:76)"}, "fullDescription": {"text": "`apps/docs/app/utils/file-discovery.ts:76` calls `HEAD /${section}/${pkg}/README.md` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<p>/<p>/readme.md`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21a92b4614a09400", "name": "Dangling fetch: GET /${file} (apps/docs/app/lib/search-index.ts:189)", "shortDescription": {"text": "Dangling fetch: GET /${file} (apps/docs/app/lib/search-index.ts:189)"}, "fullDescription": {"text": "`apps/docs/app/lib/search-index.ts:189` calls `GET /${file}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<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-968905b7b1bae306", "name": "Dangling fetch: PUT https://sentry.io/api/0/projects/${process.env.SENTRY_ORG}/${process.env.SENTRY_PROJECT}/users/${ide", "shortDescription": {"text": "Dangling fetch: PUT https://sentry.io/api/0/projects/${process.env.SENTRY_ORG}/${process.env.SENTRY_PROJECT}/users/${ident}/forget/ (apps/admin/src/app/api/gdpr/delete/route.ts:198)"}, "fullDescription": {"text": "`apps/admin/src/app/api/gdpr/delete/route.ts:198` calls `PUT https://sentry.io/api/0/projects/${process.env.SENTRY_ORG}/${process.env.SENTRY_PROJECT}/users/${ident}/forget/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/sentry.io/api/<p>/projects/<p>/<p>/users/<p>/forget`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e982e1cb77913fa6", "name": "Dangling fetch: GET /api/auth/mfa/status (apps/admin/src/app/(backend)/settings/security/page.tsx:120)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/mfa/status (apps/admin/src/app/(backend)/settings/security/page.tsx:120)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/settings/security/page.tsx:120` calls `GET /api/auth/mfa/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/mfa/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-d169d8053b6eec27", "name": "Dangling fetch: GET /api/auth/passkey/list (apps/admin/src/app/(backend)/settings/security/page.tsx:132)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/passkey/list (apps/admin/src/app/(backend)/settings/security/page.tsx:132)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/settings/security/page.tsx:132` calls `GET /api/auth/passkey/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/passkey/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-fed5b8e2effe1bd4", "name": "Dangling fetch: GET /api/auth/sessions (apps/admin/src/app/(backend)/settings/security/page.tsx:144)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/sessions (apps/admin/src/app/(backend)/settings/security/page.tsx:144)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/settings/security/page.tsx:144` calls `GET /api/auth/sessions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sessions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7fdd08c334b39b8", "name": "Dangling fetch: GET /api/user/api-keys (apps/admin/src/app/(backend)/settings/api-keys/page.tsx:56)", "shortDescription": {"text": "Dangling fetch: GET /api/user/api-keys (apps/admin/src/app/(backend)/settings/api-keys/page.tsx:56)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/settings/api-keys/page.tsx:56` calls `GET /api/user/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: `/user/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-96ad47e18be3480f", "name": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/settings/account/page.tsx:134)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/settings/account/page.tsx:134)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/settings/account/page.tsx:134` calls `GET /api/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/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-41dfe60e25a69aa1", "name": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/refunds/page.tsx:124)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/refunds/page.tsx:124)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/refunds/page.tsx:124` calls `GET /api/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/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-c98adb748182946b", "name": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/mcp/page.tsx:46)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/mcp/page.tsx:46)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/mcp/page.tsx:46` calls `GET /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8667bd3c460297ce", "name": "Dangling fetch: GET /api/mcp/collections (apps/admin/src/app/(backend)/mcp/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/collections (apps/admin/src/app/(backend)/mcp/page.tsx:64)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/mcp/page.tsx:64` calls `GET /api/mcp/collections` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/collections`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d30167d3c167bc49", "name": "Dangling fetch: GET /api/mcp/remote-servers?tenant=${encodeURIComponent(tenantId)} (apps/admin/src/app/(backend)/mcp/pag", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers?tenant=${encodeURIComponent(tenantId)} (apps/admin/src/app/(backend)/mcp/page.tsx:83)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/mcp/page.tsx:83` calls `GET /api/mcp/remote-servers?tenant=${encodeURIComponent(tenantId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/remote-servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ebcb8bc80b61f6c5", "name": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/tools?tenant=${encodeURIComponent(tenant)} (ap", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/tools?tenant=${encodeURIComponent(tenant)} (apps/admin/src/app/(backend)/mcp/inspect/page.tsx:67)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/mcp/inspect/page.tsx:67` calls `GET /api/mcp/remote-servers/${encodeURIComponent(server)}/tools?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: `/mcp/remote-servers/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0f315594224b3c0", "name": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/agents/page.tsx:185)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/agents/page.tsx:185)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/agents/page.tsx:185` calls `GET /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a560f5b524c8e388", "name": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/upgrade/page.tsx:22)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/upgrade/page.tsx:22)"}, "fullDescription": {"text": "`apps/admin/src/app/(backend)/upgrade/page.tsx:22` calls `GET /api/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/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-fb047e8622bb9ef1", "name": "Dangling fetch: POST /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:58)"}, "fullDescription": {"text": "`apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:58` calls `POST /api/auth/password-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/password-reset`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb462f6d108511b6", "name": "Dangling fetch: PUT /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:155)", "shortDescription": {"text": "Dangling fetch: PUT /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:155)"}, "fullDescription": {"text": "`apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:155` calls `PUT /api/auth/password-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/password-reset`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da3c082385fdff2c", "name": "Dangling fetch: POST /api/setup (apps/admin/src/app/(frontend)/setup/SetupForm.tsx:35)", "shortDescription": {"text": "Dangling fetch: POST /api/setup (apps/admin/src/app/(frontend)/setup/SetupForm.tsx:35)"}, "fullDescription": {"text": "`apps/admin/src/app/(frontend)/setup/SetupForm.tsx:35` calls `POST /api/setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e3a09d30c86b665", "name": "Dangling fetch: GET /api/auth/me (apps/admin/src/lib/components/AdminBar/index.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/lib/components/AdminBar/index.tsx:40)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/AdminBar/index.tsx:40` calls `GET /api/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/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-c44215ea98b55cb6", "name": "Dangling fetch: GET /next/exit-preview (apps/admin/src/lib/components/AdminBar/index.tsx:165)", "shortDescription": {"text": "Dangling fetch: GET /next/exit-preview (apps/admin/src/lib/components/AdminBar/index.tsx:165)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/AdminBar/index.tsx:165` calls `GET /next/exit-preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/next/exit-preview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee8181a5849334db", "name": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/prompts?tenant=${encodeURIComponent(tenant)} (", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/prompts?tenant=${encodeURIComponent(tenant)} (apps/admin/src/lib/components/mcp/prompts-panel.tsx:52)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/prompts-panel.tsx:52` calls `GET /api/mcp/remote-servers/${encodeURIComponent(server)}/prompts?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: `/mcp/remote-servers/<p>/prompts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d56f5b855c49cc4", "name": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/complete (apps/admin/src/lib/components/mcp/p", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/complete (apps/admin/src/lib/components/mcp/prompts-panel.tsx:237)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/prompts-panel.tsx:237` calls `POST /api/mcp/remote-servers/${encodeURIComponent(server)}/complete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/remote-servers/<p>/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-4224413c4b2acfc7", "name": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/call-tool-stream (apps/admin/src/lib/componen", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/call-tool-stream (apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234` calls `POST /api/mcp/remote-servers/${encodeURIComponent(server)}/call-tool-stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/remote-servers/<p>/call-tool-stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab63e1c4e8368fd3", "name": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resources?tenant=${encodeURIComponent(tenant)}", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resources?tenant=${encodeURIComponent(tenant)} (apps/admin/src/lib/components/mcp/resources-panel.tsx:46)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/resources-panel.tsx:46` calls `GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resources?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: `/mcp/remote-servers/<p>/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12a9570e698a832a", "name": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resource?tenant=${encodeURIComponent(tenant)}&", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resource?tenant=${encodeURIComponent(tenant)}&uri=${encodeURIComponent(uri)} (apps/admin/src/lib/components/mcp/resources-panel.tsx:75)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/resources-panel.tsx:75` calls `GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resource?tenant=${encodeURIComponent(tenant)}&uri=${encodeURIComponent(uri)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/remote-servers/<p>/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab3760f4ee4428f7", "name": "Dangling fetch: GET /api/mcp/usage?range=${r} (apps/admin/src/lib/components/mcp/usage-dashboard.tsx:104)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=${r} (apps/admin/src/lib/components/mcp/usage-dashboard.tsx:104)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/usage-dashboard.tsx:104` calls `GET /api/mcp/usage?range=${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/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-d0bc34b1fadeb9dd", "name": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/log-stream?tenant=${encodeURIComponent(tenant)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/log-stream?tenant=${encodeURIComponent(tenant)}&level=${level} (apps/admin/src/lib/components/mcp/logs-panel.tsx:61)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/mcp/logs-panel.tsx:61` calls `GET /api/mcp/remote-servers/${encodeURIComponent(server)}/log-stream?tenant=${encodeURIComponent(tenant)}&level=${level}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/remote-servers/<p>/log-stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2820ef9d2a295d71", "name": "Dangling fetch: GET /api/stripe/customers (apps/admin/src/lib/components/CustomerSelect/index.tsx:6)", "shortDescription": {"text": "Dangling fetch: GET /api/stripe/customers (apps/admin/src/lib/components/CustomerSelect/index.tsx:6)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/CustomerSelect/index.tsx:6` calls `GET /api/stripe/customers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stripe/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-b87f15fdb8b3571e", "name": "Dangling fetch: GET /api/health-monitoring (apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:30)", "shortDescription": {"text": "Dangling fetch: GET /api/health-monitoring (apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:30)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:30` calls `GET /api/health-monitoring` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/health-monitoring`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93e6b0ba4f4dffb8", "name": "Dangling fetch: GET /api/health-monitoring/processes?${params.toString()} (apps/admin/src/lib/components/SystemHealthMon", "shortDescription": {"text": "Dangling fetch: GET /api/health-monitoring/processes?${params.toString()} (apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:70)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:70` calls `GET /api/health-monitoring/processes?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/health-monitoring/processes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83431debcf1b6d51", "name": "Dangling fetch: GET /api/conversations/${conversationId}/messages (apps/admin/src/lib/components/Agent/index.tsx:503)", "shortDescription": {"text": "Dangling fetch: GET /api/conversations/${conversationId}/messages (apps/admin/src/lib/components/Agent/index.tsx:503)"}, "fullDescription": {"text": "`apps/admin/src/lib/components/Agent/index.tsx:503` calls `GET /api/conversations/${conversationId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/conversations/<p>/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-a8facbfef0cfc18d", "name": "Dangling fetch: GET /api/stripe/products (apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11)", "shortDescription": {"text": "Dangling fetch: GET /api/stripe/products (apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11)"}, "fullDescription": {"text": "`apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11` calls `GET /api/stripe/products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stripe/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-baf15b8f0d11d884", "name": "Dangling fetch: GET /api/stripe/prices (apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12)", "shortDescription": {"text": "Dangling fetch: GET /api/stripe/prices (apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12)"}, "fullDescription": {"text": "`apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12` calls `GET /api/stripe/prices` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stripe/prices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c00e669bebc4e7f3", "name": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:294)", "shortDescription": {"text": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:294)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:294` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ff95b94aa09b94cd", "name": "Dangling fetch: GET /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:307)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:307)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:307` calls `GET /api/tickets/boards` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2080ff3e3bee28cd", "name": "Dangling fetch: POST /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:315)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:315)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:315` calls `POST /api/tickets/boards` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ee287bf2c5f2d43", "name": "Dangling fetch: GET /api/tickets/boards/board-1 (apps/server/__tests__/api-endpoints.test.ts:326)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/boards/board-1 (apps/server/__tests__/api-endpoints.test.ts:326)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:326` calls `GET /api/tickets/boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7012cce3c30f320", "name": "Dangling fetch: GET /api/tickets/boards/nonexistent (apps/server/__tests__/api-endpoints.test.ts:333)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/boards/nonexistent (apps/server/__tests__/api-endpoints.test.ts:333)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:333` calls `GET /api/tickets/boards/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71590bfbc38d6cbb", "name": "Dangling fetch: GET /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:346)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:346)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:346` calls `GET /api/tickets/boards/board-1/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards/board-1/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d78209b36bf56e0", "name": "Dangling fetch: POST /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:354)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:354)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:354` calls `POST /api/tickets/boards/board-1/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/boards/board-1/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-932e09b51bb7cf96", "name": "Dangling fetch: GET /api/tickets/tickets/ticket-1 (apps/server/__tests__/api-endpoints.test.ts:365)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/tickets/ticket-1 (apps/server/__tests__/api-endpoints.test.ts:365)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:365` calls `GET /api/tickets/tickets/ticket-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/tickets/ticket-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63ee2774ce6d681b", "name": "Dangling fetch: GET /api/tickets/tickets/nonexistent (apps/server/__tests__/api-endpoints.test.ts:372)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/tickets/nonexistent (apps/server/__tests__/api-endpoints.test.ts:372)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:372` calls `GET /api/tickets/tickets/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/tickets/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77760870fe039e19", "name": "Dangling fetch: POST /api/tickets/tickets/ticket-1/move (apps/server/__tests__/api-endpoints.test.ts:379)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets/tickets/ticket-1/move (apps/server/__tests__/api-endpoints.test.ts:379)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:379` calls `POST /api/tickets/tickets/ticket-1/move` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/tickets/ticket-1/move`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-671c77bfc6fc04be", "name": "Dangling fetch: GET /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:396)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:396)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:396` calls `GET /api/tickets/tickets/ticket-1/comments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/tickets/ticket-1/comments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d42ce9869b92e66", "name": "Dangling fetch: POST /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:404)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:404)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:404` calls `POST /api/tickets/tickets/ticket-1/comments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/tickets/ticket-1/comments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-873a76f4f53bfdc4", "name": "Dangling fetch: GET /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:421)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:421)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:421` calls `GET /api/tickets/labels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/labels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-08fbd9f1517dc5c7", "name": "Dangling fetch: POST /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:429)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:429)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:429` calls `POST /api/tickets/labels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/labels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0cd41a8ac5ed62b1", "name": "Dangling fetch: GET /api/provenance (apps/server/__tests__/api-endpoints.test.ts:446)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance (apps/server/__tests__/api-endpoints.test.ts:446)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:446` calls `GET /api/provenance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-311905f8e903766e", "name": "Dangling fetch: GET /api/provenance?authorType=ai_generated (apps/server/__tests__/api-endpoints.test.ts:454)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance?authorType=ai_generated (apps/server/__tests__/api-endpoints.test.ts:454)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:454` calls `GET /api/provenance?authorType=ai_generated` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6320ef9276be0ed1", "name": "Dangling fetch: POST /api/provenance (apps/server/__tests__/api-endpoints.test.ts:461)", "shortDescription": {"text": "Dangling fetch: POST /api/provenance (apps/server/__tests__/api-endpoints.test.ts:461)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:461` calls `POST /api/provenance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-059285e98558aa02", "name": "Dangling fetch: GET /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:478)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:478)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:478` calls `GET /api/provenance/prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03e132ce7b46bd41", "name": "Dangling fetch: GET /api/provenance/nonexistent (apps/server/__tests__/api-endpoints.test.ts:485)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance/nonexistent (apps/server/__tests__/api-endpoints.test.ts:485)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:485` calls `GET /api/provenance/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6faab3c6206d831", "name": "Dangling fetch: PATCH /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:492)", "shortDescription": {"text": "Dangling fetch: PATCH /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:492)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:492` calls `PATCH /api/provenance/prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd9a11fe4f673fb3", "name": "Dangling fetch: DELETE /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:503)", "shortDescription": {"text": "Dangling fetch: DELETE /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:503)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:503` calls `DELETE /api/provenance/prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80c00752a6399ad9", "name": "Dangling fetch: GET /api/provenance/stats (apps/server/__tests__/api-endpoints.test.ts:512)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance/stats (apps/server/__tests__/api-endpoints.test.ts:512)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:512` calls `GET /api/provenance/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/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-20f2ffcf0b535c47", "name": "Dangling fetch: POST /api/provenance/prov-1/review (apps/server/__tests__/api-endpoints.test.ts:521)", "shortDescription": {"text": "Dangling fetch: POST /api/provenance/prov-1/review (apps/server/__tests__/api-endpoints.test.ts:521)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:521` calls `POST /api/provenance/prov-1/review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/prov-1/review`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ae00f1394baaed4", "name": "Dangling fetch: GET /api/provenance/prov-1/reviews (apps/server/__tests__/api-endpoints.test.ts:536)", "shortDescription": {"text": "Dangling fetch: GET /api/provenance/prov-1/reviews (apps/server/__tests__/api-endpoints.test.ts:536)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:536` calls `GET /api/provenance/prov-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/provenance/prov-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-791b639eefac1a7f", "name": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:550)", "shortDescription": {"text": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:550)"}, "fullDescription": {"text": "`apps/server/__tests__/api-endpoints.test.ts:550` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b21d5ecec28d3a1c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:56)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:56` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c26d87521bceba22", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:68)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:68` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-dc8c8e07467aab63", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:77)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:77` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-956029062c64cf45", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:88)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:88` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-9cf693598229d12b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:99)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:99` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-07a036554c417ee3", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:109)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:109` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0eacfe351c294332", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:119)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:119)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:119` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-45df5fbf68f7ad72", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:129)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:129)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:129` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-51a5578dd077b90c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:140)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:140)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:140` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d3b468d92538d007", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:150)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:150)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:150` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1bcfd29afd66eb51", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:158)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:158)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:158` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1ad62ea6a1c3101a", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:167)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:167)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:167` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d725f210f5295964", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:175)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:175)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:175` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4be6d2c7996f9001", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:184)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:184)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:184` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8bfa39531a0db1d0", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:205)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:205)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:205` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a2bfb474b94a7432", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:213)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:213)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:213` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d6dbd46d980b0a45", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:223)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:223)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:223` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4663e4f45a7d158a", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:234)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:234)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:234` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-55518356d942949f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:245)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:245)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:245` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-071b99dedc10dcfd", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:254)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:254)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:254` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-68ce2cb352f20c8e", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:269)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:269)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:269` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f515a5259be09216", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:286)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:286)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:286` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-11cd06ee2f392735", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:294)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:294)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:294` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c86fa3c14879bfd4", "name": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:319)", "shortDescription": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:319)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:319` calls `GET /require-tenant` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/require-tenant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3eadb9c9b6a7a4aa", "name": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:327)", "shortDescription": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:327)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:327` calls `GET /require-tenant` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/require-tenant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ba1ad4ee028b27a", "name": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:346)", "shortDescription": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:346)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tenant.test.ts:346` calls `GET /require-tenant` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/require-tenant`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5a20dd97b207205", "name": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:51)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:51` calls `GET /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d187b95b456fc1e", "name": "Dangling fetch: POST /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:73)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:73` calls `POST /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-007d473023e49ad6", "name": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:90)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:90` calls `GET /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-450318f21b0ae3db", "name": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:104)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:104)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:104` calls `GET /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-772e5ffb61477785", "name": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:113)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:113)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:113` calls `GET /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb5b8fa0fce8e3d7", "name": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:125)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/audit.test.ts:125` calls `GET /api/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1029c4b666790db1", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:62)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:62` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e01499146830ac40", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:74)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:74` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b05377dc4e566216", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:86)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:86)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:86` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8b83032051e7f34", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:98)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:98` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-078132c7afef91cf", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:112)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:112)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:112` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df0f08dba1b06b5f", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:126)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:126)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:126` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ebac2fd322e4e75", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:138)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:138` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18d4cca14af6530b", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:149)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:149)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/domain-validation.test.ts:149` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99e0fe731ed637c7", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:83)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:83` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c3617dc53e28ce3f", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:95)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:95` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e981f94f116632fc", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:114)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:114)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:114` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb16e2d79421d04a", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:141)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:141` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63229ec5d7ba06b3", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:164)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:164)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:164` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0136248797a4f323", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:168)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:168)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:168` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f18d0493ed283b1", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:184)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:184)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:184` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d0cd8d5a8f672c3", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:204)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:204)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:204` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ceb73c14a0bdf7a", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:225)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:225)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:225` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2635966861e26e57", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:246)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:246)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:246` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2722d02ee960e230", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:253)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:253)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/support-expiry.test.ts:253` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6db4e4e10287426", "name": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:37)", "shortDescription": {"text": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:37)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/body-limits.test.ts:37` calls `POST /api/content/media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/content/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-529812b8a921dfd6", "name": "Dangling fetch: POST /api/v1/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:42)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:42)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/body-limits.test.ts:42` calls `POST /api/v1/content/media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/content/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33517864a63f1ba3", "name": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:50)", "shortDescription": {"text": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:50)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/body-limits.test.ts:50` calls `POST /api/content/media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/content/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfa0af42751dabae", "name": "Dangling fetch: PATCH /api/content/media/abc (apps/server/src/middleware/__tests__/body-limits.test.ts:56)", "shortDescription": {"text": "Dangling fetch: PATCH /api/content/media/abc (apps/server/src/middleware/__tests__/body-limits.test.ts:56)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/body-limits.test.ts:56` calls `PATCH /api/content/media/abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/content/media/abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eeb8ee99b80c3cdf", "name": "Dangling fetch: POST /api/other (apps/server/src/middleware/__tests__/body-limits.test.ts:65)", "shortDescription": {"text": "Dangling fetch: POST /api/other (apps/server/src/middleware/__tests__/body-limits.test.ts:65)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/body-limits.test.ts:65` calls `POST /api/other` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/other`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d5312d0e7050f8f", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:78)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:78` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57e5eb164cc73e03", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:92)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:92` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcb8402bf732aba8", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:107)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:107` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33228ca402e518d9", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:119)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:119)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:119` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71e19c0d0a8d2849", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:135)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:135)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:135` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae872e0c17da17b9", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:139)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:139)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:139` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-204487832f11c706", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:151)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:151)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:151` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd5d74c11a81e094", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:169)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:169)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:169` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4166e7db3bcb90c7", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:177)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:177)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:177` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98a4829e88dc8a7c", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:191)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:191)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:191` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-518e8e4c5f2ec5fb", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:205)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:205)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:205` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8222b755bc263084", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:237)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:237)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:237` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ec85ec23e6e865c", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:243)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:243)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:243` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c464a1ebcc7f246", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:250)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:250)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:250` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-740230c206a67c99", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:274)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:274)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:274` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7e84b2df113ea99", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:281)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:281)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license-status.test.ts:281` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98d177cf2973acf2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:72)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/entitlements.test.ts:72` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-20c263acfffef5d4", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:85)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:85)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/entitlements.test.ts:85` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-7c34774a0408f5a2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:108)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:108)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/entitlements.test.ts:108` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0dd240c70672224d", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:123)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:123)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/entitlements.test.ts:123` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3deb6b5623701f7e", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:83)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:83` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aabad6ae39a0bb76", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:95)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:95` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e4576b64df7eeda", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:107)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:107` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6237560ac5f7e867", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:122)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:122` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f4abfec48c56552", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:132)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:132` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04f0471a7c1421ed", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:148)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:148` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba05d22ddb65a6d2", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:158)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:158)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:158` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-080d825dfe8fe330", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:166)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:166)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:166` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edca288dd410a1a3", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:193)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:193)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:193` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06497976477613de", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:207)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:207)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:207` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59c03a4ca3747349", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:219)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:219)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:219` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7df1e3181b64f30", "name": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:231)", "shortDescription": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:231)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/license.test.ts:231` calls `GET /protected/resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26e7e152a27f4332", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:35)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:35)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/db.test.ts:35` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-989bc48c92091f75", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:48)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/db.test.ts:48` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1b67396282b84e73", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:66)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/db.test.ts:66` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ef127999766e8b15", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:84)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/db.test.ts:84` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6b68485b8e73980c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:56)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:56` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c368acf525271af2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:68)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:68` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f62bcefe74f585e3", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:80)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:80)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:80` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-10b41d8d02692341", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:92)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:92` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-120fc6e465f9e32f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:105)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:105)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:105` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-7e92560ff39feeb3", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:118)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:118)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:118` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-44eea54bf85d6fae", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:137)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:137` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ce899d466a844a02", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:157)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:157)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:157` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6613c68795f7863f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:178)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:178)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:178` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-541e2409320c06db", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:196)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:196)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:196` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2445839db76aa26a", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:211)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:211)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:211` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4e492a65455fd760", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:225)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:225)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:225` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-7513a3a22d3172ee", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:240)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:240)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:240` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8335ad5c15c5387c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:268)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:268)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:268` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-9fc284a517fd80c0", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:286)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:286)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:286` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-e65b45d11ccf31db", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:303)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:303)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:303` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a8a91b2471e407d1", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:316)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:316)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:316` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-bb59fa031011ae27", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:329)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:329)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/rate-limit.test.ts:329` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-98611f8243354ddb", "name": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:117)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:117` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ab31423ec7b0315", "name": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:133)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:133)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:133` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b68ffc97a2f8ecae", "name": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:144)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:144)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:144` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d47b3fe6f808495", "name": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:153)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:153` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c98c296ea520fca1", "name": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:184)", "shortDescription": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:184)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:184` calls `GET /admin-only` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin-only`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95ee737f4137ee90", "name": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:194)", "shortDescription": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:194)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:194` calls `GET /admin-only` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin-only`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52ce520aefcef8a5", "name": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:207)", "shortDescription": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:207)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:207` calls `GET /admin-only` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin-only`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea94767aa07e2434", "name": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:233)", "shortDescription": {"text": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:233)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:233` calls `GET /api/public/data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/public/data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fc2e14af001f3ff", "name": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:244)", "shortDescription": {"text": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:244)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:244` calls `GET /api/public/data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/public/data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-063b7f2283c65757", "name": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:255)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:255)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:255` calls `POST /api/admin/data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eca6757fc0d0db66", "name": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:264)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:264)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:264` calls `POST /api/admin/data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56bed92c3f7503e9", "name": "Dangling fetch: GET /api/billing/checkout (apps/server/src/middleware/__tests__/chain-integration.test.ts:308)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/checkout (apps/server/src/middleware/__tests__/chain-integration.test.ts:308)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:308` calls `GET /api/billing/checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/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-0bdc23a43da00b07", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/chain-integration.test.ts:333)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/chain-integration.test.ts:333)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/chain-integration.test.ts:333` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8236a5775a364f56", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/csrf.test.ts:112)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/csrf.test.ts:112)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:112` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-17127239f8ee151e", "name": "Dangling fetch: HEAD /test (apps/server/src/middleware/__tests__/csrf.test.ts:118)", "shortDescription": {"text": "Dangling fetch: HEAD /test (apps/server/src/middleware/__tests__/csrf.test.ts:118)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:118` calls `HEAD /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ffbc163700e9c7e9", "name": "Dangling fetch: OPTIONS /test (apps/server/src/middleware/__tests__/csrf.test.ts:124)", "shortDescription": {"text": "Dangling fetch: OPTIONS /test (apps/server/src/middleware/__tests__/csrf.test.ts:124)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:124` calls `OPTIONS /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f01c0c57b1f1a34a", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:132)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:132)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:132` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-80169c1844a982ef", "name": "Dangling fetch: POST /api/webhooks/stripe (apps/server/src/middleware/__tests__/csrf.test.ts:143)", "shortDescription": {"text": "Dangling fetch: POST /api/webhooks/stripe (apps/server/src/middleware/__tests__/csrf.test.ts:143)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:143` calls `POST /api/webhooks/stripe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/webhooks/stripe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-722342ffc37c15fa", "name": "Dangling fetch: POST /.well-known/agent.json (apps/server/src/middleware/__tests__/csrf.test.ts:155)", "shortDescription": {"text": "Dangling fetch: POST /.well-known/agent.json (apps/server/src/middleware/__tests__/csrf.test.ts:155)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:155` calls `POST /.well-known/agent.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/.well-known/agent.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-cb31b7c9c860719b", "name": "Dangling fetch: POST /custom/exempt/hook (apps/server/src/middleware/__tests__/csrf.test.ts:167)", "shortDescription": {"text": "Dangling fetch: POST /custom/exempt/hook (apps/server/src/middleware/__tests__/csrf.test.ts:167)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:167` calls `POST /custom/exempt/hook` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/custom/exempt/hook`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-390d6f6c02511d08", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:187)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:187)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:187` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3b92ce0ea675df65", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:207)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:207)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:207` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4a2dc21c765aab56", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:227)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:227)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:227` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f05fa9861091ffdc", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:247)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:247)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:247` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b9bbfb895222599a", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:274)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:274)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:274` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-891b15787acd2313", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:301)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:301)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:301` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ec8d63bdf45c36ed", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:325)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:325)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:325` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b7d811e89b3fc0c7", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:345)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:345)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:345` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a8c0efdd092c606b", "name": "Dangling fetch: DELETE /test (apps/server/src/middleware/__tests__/csrf.test.ts:368)", "shortDescription": {"text": "Dangling fetch: DELETE /test (apps/server/src/middleware/__tests__/csrf.test.ts:368)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:368` calls `DELETE /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5649e173306f175d", "name": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:392)", "shortDescription": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:392)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/csrf.test.ts:392` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f536f7b9247aa93f", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:53)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:53)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:53` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df2d7d1e367804cb", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:60)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:60)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:60` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf697b35664810ff", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:66)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:66` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fb163dc385f3276", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:76)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:76)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:76` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-deac3394c56b34cd", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:85)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:85)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:85` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5dd9ea7f6848f108", "name": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:101)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:101` calls `POST /billing-handler` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-handler`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecd0fb4d68b00ab1", "name": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:109)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:109` calls `POST /billing-mutation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-mutation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-658bc8cf5cc950fd", "name": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:116)", "shortDescription": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:116)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:116` calls `POST /billing-mutation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-mutation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76784cbc97b7367c", "name": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:122)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/account-owner.test.ts:122` calls `POST /billing-mutation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing-mutation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60cc9c2e590499d6", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:49)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:49` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e0778db668794ed", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:68)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:68` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca525582fdb56ae1", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:87)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:87)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:87` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c978cef13253c11", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:102)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:102)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:102` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f7c0faecd28ded9", "name": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:117)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:117` calls `GET /resource` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resource`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86463186d889872e", "name": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:99)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:99` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e4d5b432f4b5469", "name": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:109)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:109` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c224136b8277004b", "name": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:122)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:122` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3cb872d7a75a3f71", "name": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:143)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:143)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:143` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09cc8786b0d0b69f", "name": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:157)", "shortDescription": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:157)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:157` calls `POST /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f67323f5a79aed0a", "name": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:167)", "shortDescription": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:167)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:167` calls `POST /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d479b8a839d8dc7d", "name": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:180)", "shortDescription": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:180)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/resource-limits.test.ts:180` calls `POST /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d658fa67274c1437", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:193)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:193)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:193` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b7fa7a2edc469e8b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:202)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:202)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:202` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-313b2b46d1db799a", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:218)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:218)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:218` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-50758b2a29d3de5f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:229)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:229)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:229` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f23d169b2d3af299", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:239)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:239)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:239` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-090a26c50a76d335", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:248)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:248)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:248` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-435a68e96166a08b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:265)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:265)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:265` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4709296e01828924", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:281)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:281)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:281` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-979a4e091b7f752f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:296)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:296)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:296` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-e2a188b6664e1291", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:308)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:308)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:308` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ebe12750bfe1faa9", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:319)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:319)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:319` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-77b6c7f6bd75be63", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:337)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:337)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:337` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-9ed64b0bd0ca3eb6", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:346)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:346)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:346` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1e515c38adfa6344", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:362)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:362)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:362` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b3cdbb6419d11a17", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:378)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:378)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:378` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-29fea21bd6ab9603", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:388)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:388)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:388` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5777a4d92874feb5", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:400)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:400)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:400` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1519ddcca71385d1", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:410)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:410)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:410` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1e87b6e569967f77", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:422)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:422)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:422` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-802d91fdd2fbbdfb", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:449)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:449)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:449` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a9f048149888ab1a", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:464)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:464)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:464` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fbab522c6a02b8f9", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:480)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:480)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:480` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-659f40d3b9321b17", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:493)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:493)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:493` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d7c353625910f8be", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:517)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:517)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:517` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-db65102e9d6a9543", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:528)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:528)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:528` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-628cdb9a4d30fdd8", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:546)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:546)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:546` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-087de0b008b80471", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:557)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:557)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:557` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d09f9822ecfcc88c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:570)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:570)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota.test.ts:570` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-64998b2d3ea17ce6", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:62)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:62` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-72ec568548d99282", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:77)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:77` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-64850d0499209e4c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:90)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:90` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2e64c8d2af73c99b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:106)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:106` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5ac3d5e3bc90787e", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:122)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:122` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8f529d71a043ae57", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:145)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:145` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-285eec8950d5b9eb", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:175)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:175)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:175` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-428a2adf543c2351", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:189)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:189)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:189` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b41d7828c1342ee5", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:209)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:209)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:209` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f71f63398cdbd34b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:231)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:231)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:231` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a6fd3924b21d4893", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:240)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:240)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:240` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3fba04620674c312", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:251)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:251)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:251` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-cfcd6676547b2a59", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:260)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:260)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:260` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d46f57dd1e73e32b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:269)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:269)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/auth.test.ts:269` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5e5fce229706054f", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:143)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:143)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:143` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-18931c5dd574a7b3", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:152)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:152)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:152` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-09b7a7229c5fac41", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:161)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:161)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:161` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2a8d8a51f3a33ac4", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:174)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:174)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:174` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-769f78c3b4f39d46", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:189)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:189)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:189` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4de5abac327ed316", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:58)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:58` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ef3d7ba96e9d4f86", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:72)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:72` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f2cdaf2cc451eb65", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:84)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:84` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f8e48abccd23cbcd", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:96)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:96)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:96` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-124438058ff84d60", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:106)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:106` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c1ed50c1562e5538", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:117)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:117` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1e0012580e53469c", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:128)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:128)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:128` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-80bc1f69254952f2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:139)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:139)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:139` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-81f0a495b92be856", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:154)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:154)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:154` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5f4eb8a35d4f7334", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:173)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:173)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:173` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-835fb10a8f123da1", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:193)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:193)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:193` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0ad60d5c1e2d7463", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:209)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:209)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:209` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-caa5e9b22d15c3f9", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:222)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:222)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:222` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3ea5372ab3645db2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:235)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:235)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:235` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-46e019f1a7c4d9d5", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:248)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:248)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:248` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0ece4a0660d46fb5", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:260)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:260)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:260` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d05dc54dfe6f0945", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:271)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:271)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:271` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-dc8842770eadd190", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:284)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:284)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:284` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-99db198c0b214328", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:298)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:298)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:298` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-18b3e413d1335ea1", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:309)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:309)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/error.test.ts:309` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6db53a339e49552b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:17)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:17)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:17` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-855c248f723d623e", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:31)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:31)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:31` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-bf0a4ed21ec64459", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:44)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:44` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-39c9e430dcf942b2", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:56)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:56` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1913b54f8c42e929", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:68)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:68` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-657b150e30478c50", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:69)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:69` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c1f1d34b71fbca2b", "name": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:86)", "shortDescription": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:86)"}, "fullDescription": {"text": "`apps/server/src/middleware/__tests__/request-id.test.ts:86` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a89dc0e2301c680d", "name": "Dangling fetch: GET /ctx (apps/server/src/lib/__tests__/request-context.test.ts:14)", "shortDescription": {"text": "Dangling fetch: GET /ctx (apps/server/src/lib/__tests__/request-context.test.ts:14)"}, "fullDescription": {"text": "`apps/server/src/lib/__tests__/request-context.test.ts:14` calls `GET /ctx` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ctx`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7e1a2c12ecd960a", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:201)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:201)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:201` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e096c5e35d5ec730", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:219)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:219)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:219` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36e4b9e4d712d460", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:227)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:227)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:227` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abba02d2121c7f7a", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:237)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:237)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:237` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5550adad952ef9b2", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:334)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:334)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:334` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80b787f471f2a0c1", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:350)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:350)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:350` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a712d695b07e084", "name": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:365)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:365)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:365` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13bd834c07c80354", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:93)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:93` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-253b421caf1e2739", "name": "Dangling fetch: GET /rotation/history?days=14 (apps/server/src/routes/__tests__/rotation.test.ts:133)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history?days=14 (apps/server/src/routes/__tests__/rotation.test.ts:133)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:133` calls `GET /rotation/history?days=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12d06f5b77f3edd8", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:165)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:165)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:165` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13ac03e9e83ad3af", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:178)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:178)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:178` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e5d6eba1dcbe98a", "name": "Dangling fetch: GET /rotation/history?days=0 (apps/server/src/routes/__tests__/rotation.test.ts:189)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history?days=0 (apps/server/src/routes/__tests__/rotation.test.ts:189)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:189` calls `GET /rotation/history?days=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c96e83af0ced8acc", "name": "Dangling fetch: GET /rotation/history?days=400 (apps/server/src/routes/__tests__/rotation.test.ts:198)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history?days=400 (apps/server/src/routes/__tests__/rotation.test.ts:198)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:198` calls `GET /rotation/history?days=400` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd907e66c4a4315a", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:217)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:217)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:217` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a360aac2cb94142", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:248)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:248)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:248` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64429a6a84e87964", "name": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:262)", "shortDescription": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:262)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rotation.test.ts:262` calls `GET /rotation/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rotation/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76926642eed64dd5", "name": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-pglite.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-pglite.test.ts:151)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/webhook-pglite.test.ts:151` calls `POST /stripe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/stripe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e7ab612769993d5", "name": "Dangling fetch: GET /api/collab/agent/snapshot/doc-123 (apps/server/src/routes/__tests__/agent-collab.test.ts:374)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/doc-123 (apps/server/src/routes/__tests__/agent-collab.test.ts:374)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:374` calls `GET /api/collab/agent/snapshot/doc-123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/doc-123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8d1417fef31d05b", "name": "Dangling fetch: GET /api/collab/agent/snapshot/nonexistent-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:39", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/nonexistent-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:394)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:394` calls `GET /api/collab/agent/snapshot/nonexistent-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/nonexistent-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87b3f54199a8284f", "name": "Dangling fetch: GET /api/collab/agent/snapshot/large-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:416)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/large-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:416)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:416` calls `GET /api/collab/agent/snapshot/large-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/large-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cb47903d4b19115", "name": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:436)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:436)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:436` calls `GET /api/collab/agent/snapshot/empty-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/empty-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5647c0bdcf1c5171", "name": "Dangling fetch: GET /api/collab/agent/snapshot/error-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:450)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/error-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:450)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:450` calls `GET /api/collab/agent/snapshot/error-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/error-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bda6869b453d3407", "name": "Dangling fetch: GET /api/collab/agent/snapshot/valid-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:468)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/valid-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:468)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab.test.ts:468` calls `GET /api/collab/agent/snapshot/valid-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/valid-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59148b6923a42799", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:170)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:170)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:170` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18b0f0d181f66174", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:183)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:183)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:183` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e791f8d996c5fa6c", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:194)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:194)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:194` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91d20adc356a865a", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:207)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:207)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:207` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-742483346523cf1e", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:224)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:224)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:224` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a3705bc15b80d06", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:234)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:234)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:234` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcb1c6585a7a2f18", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:246)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:246)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:246` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3d9360f388e406d", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:258)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:258)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:258` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b01944f10d638922", "name": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:269)", "shortDescription": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:269)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:269` calls `GET /ready` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ready`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b42a3878562ce1f", "name": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:279)", "shortDescription": {"text": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:279)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:279` calls `GET /live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc642e4b5b295028", "name": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:287)", "shortDescription": {"text": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:287)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:287` calls `GET /live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c13795568650bdb6", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:309)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:309)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:309` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4b39c596f8fca33c", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:315)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:315)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:315` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b66f7465962cf4a9", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:323)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:323)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:323` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-13b30405cabb1b61", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:331)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:331)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:331` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2d42ccc6e4b92602", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:339)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:339)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:339` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-19c3a481498b786f", "name": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:348)", "shortDescription": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:348)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:348` calls `GET /metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0cf0ea41737f4ee1", "name": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:368)", "shortDescription": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:368)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:368` calls `GET /metrics/json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/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-f5f14dbf62bf569c", "name": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:374)", "shortDescription": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:374)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:374` calls `GET /metrics/json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/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-999ce37afabb11df", "name": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:382)", "shortDescription": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:382)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/health.test.ts:382` calls `GET /metrics/json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/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-a59f0c4ddfd0cf2c", "name": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:full (apps/server/src/routes/__tests__/terminal-auth-edge.t", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:full (apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:183)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:183` calls `GET /terminal-auth/lookup?fingerprint=SHA256:full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74f15609a22e2c16", "name": "Dangling fetch: GET /terminal-auth/lookup?fingerprint= (apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:319)", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint= (apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:319)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:319` calls `GET /terminal-auth/lookup?fingerprint=` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55494bc8b1994aaf", "name": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:101)", "shortDescription": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:101)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:101` calls `GET /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3447d3caaf65fc74", "name": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:113)", "shortDescription": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:113)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:113` calls `GET /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfdf7a0049959ae4", "name": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:125)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:125` calls `GET /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-019d214e81285f9a", "name": "Dangling fetch: GET /products?limit=10&offset=20 (apps/server/src/routes/__tests__/products.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /products?limit=10&offset=20 (apps/server/src/routes/__tests__/products.test.ts:134)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:134` calls `GET /products?limit=10&offset=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e654397fea6e5e77", "name": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:151)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:151` calls `POST /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5045857b3a96364c", "name": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:169)", "shortDescription": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:169)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:169` calls `POST /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b0467c0f4736963", "name": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:179)", "shortDescription": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:179)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:179` calls `POST /products` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78abe0a9388d523c", "name": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:196)", "shortDescription": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:196)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:196` calls `GET /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88a312453c81189a", "name": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:206)", "shortDescription": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:206)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:206` calls `GET /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4381eb0de4c8f42a", "name": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:213)", "shortDescription": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:213)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:213` calls `GET /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ac7dea12cf3f024", "name": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:220)", "shortDescription": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:220)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:220` calls `GET /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f35459a70b2e7f8a", "name": "Dangling fetch: GET /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:229)", "shortDescription": {"text": "Dangling fetch: GET /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:229)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:229` calls `GET /products/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a5832ac5ccb2fa1", "name": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:245)", "shortDescription": {"text": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:245)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:245` calls `PATCH /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a27939f48a05b5ff", "name": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:258)", "shortDescription": {"text": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:258)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:258` calls `PATCH /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95b36bf680126f34", "name": "Dangling fetch: PATCH /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:269)", "shortDescription": {"text": "Dangling fetch: PATCH /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:269)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:269` calls `PATCH /products/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-835abce2d6f0f11c", "name": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:287)", "shortDescription": {"text": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:287)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:287` calls `DELETE /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70e6302222a250a8", "name": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:296)", "shortDescription": {"text": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:296)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:296` calls `DELETE /products/product-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/product-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9eaa070800abef77", "name": "Dangling fetch: DELETE /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:303)", "shortDescription": {"text": "Dangling fetch: DELETE /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:303)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/products.test.ts:303` calls `DELETE /products/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/products/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5b14378061791fd", "name": "Dangling fetch: GET /api/collab/agent/snapshot/boundary-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/boundary-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:199)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab-edge.test.ts:199` calls `GET /api/collab/agent/snapshot/boundary-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/boundary-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9b85a76fffef40f", "name": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:218", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:218)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab-edge.test.ts:218` calls `GET /api/collab/agent/snapshot/empty-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/empty-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7ce521fc387fcde", "name": "Dangling fetch: GET /api/collab/agent/snapshot/collab-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:25", "shortDescription": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/collab-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:255)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/agent-collab-edge.test.ts:255` calls `GET /api/collab/agent/snapshot/collab-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/agent/snapshot/collab-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97addbb0462f27a8", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:232)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:232)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:232` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c33626f47f16c93", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:247)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:247)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:247` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f71b4b109f8a172", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:267)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:267)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:267` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86d43f3e0aaf2097", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:279)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:279)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:279` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb02600fddd8d461", "name": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:302)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:302)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:302` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea162ad5125ec21d", "name": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:315)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:315)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:315` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22a42a0657f9c57f", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content-xss.test.ts:334)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content-xss.test.ts:334)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:334` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-314bfc5c29076023", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:359)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:359)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:359` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e91f66a2b7281aa0", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:388)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:388)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:388` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f92dc6c627d4c46", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:410)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:410)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:410` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4269773b49472c7f", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:426)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:426)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:426` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e8460cb59b4a39b", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:441)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:441)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:441` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c85143d0f39e557e", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:457)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:457)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:457` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-efd9606c38746001", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:468)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:468)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:468` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a9af0e1c94999a8d", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:482)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:482)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:482` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-740cf9f8158fe625", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:498)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:498)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-xss.test.ts:498` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9def10c55853587e", "name": "Dangling fetch: POST /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:158)", "shortDescription": {"text": "Dangling fetch: POST /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:158)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:158` calls `POST /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17e10ac1cb0cb5f8", "name": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:263)", "shortDescription": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:263)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:263` calls `GET /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1accb098d7f55bac", "name": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:272)", "shortDescription": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:272)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:272` calls `GET /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abd817e85c64c953", "name": "Dangling fetch: GET /media?mimeType=image (apps/server/src/routes/__tests__/content-media-upload.test.ts:281)", "shortDescription": {"text": "Dangling fetch: GET /media?mimeType=image (apps/server/src/routes/__tests__/content-media-upload.test.ts:281)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:281` calls `GET /media?mimeType=image` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1f3f5a98fdc4c67", "name": "Dangling fetch: GET /media?limit=10&offset=20 (apps/server/src/routes/__tests__/content-media-upload.test.ts:290)", "shortDescription": {"text": "Dangling fetch: GET /media?limit=10&offset=20 (apps/server/src/routes/__tests__/content-media-upload.test.ts:290)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:290` calls `GET /media?limit=10&offset=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98009e18cf2ae28f", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:310)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:310)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:310` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d44d34ea491dce6", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:324)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:324)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:324` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d14ed80951cdfa52", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:332)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:332)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:332` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6e25be594384a3e", "name": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:348)", "shortDescription": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:348)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:348` calls `GET /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01ddaa5eaa8f502b", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:362)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:362)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:362` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65222f611393a42b", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:369)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:369)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:369` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e9cdfad705146b0", "name": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:379)", "shortDescription": {"text": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:379)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:379` calls `GET /media/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a0ffd36b50f419c", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:390)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:390)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:390` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d332589819e66d8", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:397)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:397)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:397` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74fb198f91cdb78b", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:413)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:413)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:413` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2df72528fb9243ff", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:423)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:423)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:423` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d610b8cbdb7487ce", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:441)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:441)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:441` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0940607ee0d363a0", "name": "Dangling fetch: PATCH /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:457)", "shortDescription": {"text": "Dangling fetch: PATCH /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:457)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:457` calls `PATCH /media/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df6a59457ce9e91a", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:470)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:470)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:470` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d71c36800b958e2", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:490)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:490)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:490` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb37615d4dc43b4f", "name": "Dangling fetch: DELETE /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:497)", "shortDescription": {"text": "Dangling fetch: DELETE /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:497)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:497` calls `DELETE /media/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e821da2ea355deb3", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:506)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:506)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:506` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69dff887722b606a", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:513)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:513)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content-media-upload.test.ts:513` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86585f2bfa3899ad", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:16", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:162)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:162` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-598146925c410ac1", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:17", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:170)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:170` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-6238831a3382d20e", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:18", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:181)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:181` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-553c8682762c8f5a", "name": "Dangling fetch: GET /inference/config?workspaceId=site_no_config (apps/server/src/routes/__tests__/inference-config.test", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_no_config (apps/server/src/routes/__tests__/inference-config.test.ts:199)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:199` calls `GET /inference/config?workspaceId=site_no_config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-ab40a36a9113f42b", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:22", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:220)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:220` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-fcfc1b3edaaef683", "name": "Dangling fetch: GET /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:235)", "shortDescription": {"text": "Dangling fetch: GET /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:235)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:235` calls `GET /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-f43af5a2065bd578", "name": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:263)", "shortDescription": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:263)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:263` calls `PUT /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-2e466bb79586ed2b", "name": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:286)", "shortDescription": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:286)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:286` calls `PUT /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-69abaed3b8ba4cd7", "name": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:300)", "shortDescription": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:300)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:300` calls `PUT /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-c10bd89a8b7c59aa", "name": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:324)", "shortDescription": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:324)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:324` calls `PUT /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-5de6004a84bf0148", "name": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:360)", "shortDescription": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:360)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:360` calls `PUT /inference/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-3c743b0b8a8ebba3", "name": "Dangling fetch: DELETE /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts", "shortDescription": {"text": "Dangling fetch: DELETE /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:388)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:388` calls `DELETE /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-79d603dc105e748e", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:42", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:422)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:422` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-d985384ffeab6e8c", "name": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:44", "shortDescription": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:443)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/inference-config.test.ts:443` calls `GET /inference/config?workspaceId=site_xyz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/inference/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-91b9838b3ec68c0d", "name": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:383)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:383)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:383` calls `GET /gdpr/consent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d983bad07f7df4e8", "name": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:389)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:389)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:389` calls `GET /gdpr/consent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7176098e223580c9", "name": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:400)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:400)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:400` calls `GET /gdpr/consent/check/analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent/check/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-5eb68a9109d0c3c5", "name": "Dangling fetch: GET /gdpr/consent/check/invalid (apps/server/src/routes/__tests__/gdpr.test.ts:406)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent/check/invalid (apps/server/src/routes/__tests__/gdpr.test.ts:406)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:406` calls `GET /gdpr/consent/check/invalid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent/check/invalid`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee3952610009306b", "name": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:412)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:412)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:412` calls `GET /gdpr/consent/check/analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent/check/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-513993ad78562d23", "name": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:426)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:426)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:426` calls `GET /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-497716075a69c689", "name": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:433)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:433)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:433` calls `GET /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b46f399d3a2b4d4", "name": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:447)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:447)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:447` calls `GET /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95a502fd3e7d401a", "name": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:459)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:459)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:459` calls `GET /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f971883cbfd0433", "name": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:471)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:471)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:471` calls `GET /gdpr/deletion/del-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion/del-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82812ffc7f9e1e14", "name": "Dangling fetch: GET /gdpr/deletion/del-missing (apps/server/src/routes/__tests__/gdpr.test.ts:478)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion/del-missing (apps/server/src/routes/__tests__/gdpr.test.ts:478)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:478` calls `GET /gdpr/deletion/del-missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion/del-missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f374de0d8ce4439a", "name": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:485)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:485)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:485` calls `GET /gdpr/deletion/del-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion/del-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b8715a203335f85", "name": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:494)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:494)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:494` calls `GET /gdpr/deletion/del-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion/del-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45cb83a60c80c4e4", "name": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:506)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:506)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:506` calls `GET /gdpr/admin/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/admin/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-96a96596d4223af8", "name": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:512)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:512)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr.test.ts:512` calls `GET /gdpr/admin/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/admin/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-0484f9aff5e00f3e", "name": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:233)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:233)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:233` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a03069a44b5c2be", "name": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:250)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:250)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:250` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a8834b6ce493e65", "name": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:279)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:279)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:279` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0fcd2d67ee8f552c", "name": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:297)", "shortDescription": {"text": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:297)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:297` calls `DELETE /api-keys/key_abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys/key_abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba929c7b1fc2b367", "name": "Dangling fetch: DELETE /api-keys/key_nonexistent (apps/server/src/routes/__tests__/api-keys.test.ts:314)", "shortDescription": {"text": "Dangling fetch: DELETE /api-keys/key_nonexistent (apps/server/src/routes/__tests__/api-keys.test.ts:314)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:314` calls `DELETE /api-keys/key_nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys/key_nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1bbc64e5c960a1d", "name": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:333)", "shortDescription": {"text": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:333)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:333` calls `DELETE /api-keys/key_abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys/key_abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4be39421f5891760", "name": "Dangling fetch: DELETE /api-keys/key_belongs_to_user1 (apps/server/src/routes/__tests__/api-keys.test.ts:517)", "shortDescription": {"text": "Dangling fetch: DELETE /api-keys/key_belongs_to_user1 (apps/server/src/routes/__tests__/api-keys.test.ts:517)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:517` calls `DELETE /api-keys/key_belongs_to_user1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys/key_belongs_to_user1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b380f2215504b2c0", "name": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:553)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:553)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/api-keys.test.ts:553` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28812264044db6d9", "name": "Dangling fetch: GET /boards (apps/server/src/routes/__tests__/tickets.test.ts:245)", "shortDescription": {"text": "Dangling fetch: GET /boards (apps/server/src/routes/__tests__/tickets.test.ts:245)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:245` calls `GET /boards` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eba6796719b4f375", "name": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:269)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:269)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:269` calls `GET /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8526acf5bb7393e3", "name": "Dangling fetch: GET /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:278)", "shortDescription": {"text": "Dangling fetch: GET /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:278)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:278` calls `GET /boards/no-board` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/no-board`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3a84db57281d466", "name": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:285)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:285)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:285` calls `GET /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87f3996d8f4c778b", "name": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:292)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:292)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:292` calls `GET /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1e098d6946759ae", "name": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:332)", "shortDescription": {"text": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:332)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:332` calls `DELETE /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec7600701714c5c4", "name": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:342)", "shortDescription": {"text": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:342)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:342` calls `DELETE /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df42fe7290052d06", "name": "Dangling fetch: DELETE /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:349)", "shortDescription": {"text": "Dangling fetch: DELETE /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:349)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:349` calls `DELETE /boards/no-board` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/no-board`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52c2a4c5cfb0f113", "name": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:356)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:356)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:356` calls `GET /boards/board-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4e6d90be4502a49", "name": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:370)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:370)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:370` calls `GET /boards/board-1/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b38a60655bf018d", "name": "Dangling fetch: GET /boards/missing-board/tickets (apps/server/src/routes/__tests__/tickets.test.ts:380)", "shortDescription": {"text": "Dangling fetch: GET /boards/missing-board/tickets (apps/server/src/routes/__tests__/tickets.test.ts:380)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:380` calls `GET /boards/missing-board/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/missing-board/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d070c668b1cc433", "name": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:388)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:388)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:388` calls `GET /boards/board-1/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fddece0f42ee6444", "name": "Dangling fetch: GET /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:413)", "shortDescription": {"text": "Dangling fetch: GET /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:413)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:413` calls `GET /tickets/ticket-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e65fe15b59655447", "name": "Dangling fetch: GET /tickets/missing (apps/server/src/routes/__tests__/tickets.test.ts:422)", "shortDescription": {"text": "Dangling fetch: GET /tickets/missing (apps/server/src/routes/__tests__/tickets.test.ts:422)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:422` calls `GET /tickets/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2f6404c0ac79b49", "name": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:469)", "shortDescription": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:469)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:469` calls `DELETE /tickets/ticket-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4de1064725420ca3", "name": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:480)", "shortDescription": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:480)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:480` calls `DELETE /tickets/ticket-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2efc42168a4c282b", "name": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:488)", "shortDescription": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:488)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:488` calls `DELETE /tickets/ticket-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0dd60c96147e2b4", "name": "Dangling fetch: GET /tickets/ticket-1/subtasks (apps/server/src/routes/__tests__/tickets.test.ts:534)", "shortDescription": {"text": "Dangling fetch: GET /tickets/ticket-1/subtasks (apps/server/src/routes/__tests__/tickets.test.ts:534)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:534` calls `GET /tickets/ticket-1/subtasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1/subtasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2768b5b91b39d6af", "name": "Dangling fetch: GET /boards/board-1/columns (apps/server/src/routes/__tests__/tickets.test.ts:550)", "shortDescription": {"text": "Dangling fetch: GET /boards/board-1/columns (apps/server/src/routes/__tests__/tickets.test.ts:550)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:550` calls `GET /boards/board-1/columns` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/boards/board-1/columns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-041c7ceefadcee27", "name": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:601)", "shortDescription": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:601)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:601` calls `DELETE /columns/col-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/columns/col-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5139a6e23fb49d70", "name": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:619)", "shortDescription": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:619)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:619` calls `DELETE /columns/col-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/columns/col-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb81e107fa15ac27", "name": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:635)", "shortDescription": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:635)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:635` calls `DELETE /columns/col-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/columns/col-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a0d2834bd662a19", "name": "Dangling fetch: GET /tickets/ticket-1/comments (apps/server/src/routes/__tests__/tickets.test.ts:658)", "shortDescription": {"text": "Dangling fetch: GET /tickets/ticket-1/comments (apps/server/src/routes/__tests__/tickets.test.ts:658)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:658` calls `GET /tickets/ticket-1/comments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1/comments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8e4a6d4520e48ab", "name": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:741)", "shortDescription": {"text": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:741)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:741` calls `DELETE /comments/comment-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/comments/comment-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-895b05835b20c833", "name": "Dangling fetch: DELETE /comments/no-comment (apps/server/src/routes/__tests__/tickets.test.ts:750)", "shortDescription": {"text": "Dangling fetch: DELETE /comments/no-comment (apps/server/src/routes/__tests__/tickets.test.ts:750)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:750` calls `DELETE /comments/no-comment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/comments/no-comment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da40b224c8c75e9a", "name": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:759)", "shortDescription": {"text": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:759)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:759` calls `DELETE /comments/comment-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/comments/comment-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c609d50e7ca80f7", "name": "Dangling fetch: GET /labels (apps/server/src/routes/__tests__/tickets.test.ts:772)", "shortDescription": {"text": "Dangling fetch: GET /labels (apps/server/src/routes/__tests__/tickets.test.ts:772)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:772` calls `GET /labels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/labels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d4bd8a4ee6d894d", "name": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:814)", "shortDescription": {"text": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:814)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:814` calls `DELETE /labels/label-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/labels/label-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdb42e272bd2edd4", "name": "Dangling fetch: DELETE /labels/no-label (apps/server/src/routes/__tests__/tickets.test.ts:821)", "shortDescription": {"text": "Dangling fetch: DELETE /labels/no-label (apps/server/src/routes/__tests__/tickets.test.ts:821)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:821` calls `DELETE /labels/no-label` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/labels/no-label`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa284d44abb8ad7f", "name": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:835)", "shortDescription": {"text": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:835)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:835` calls `DELETE /labels/label-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/labels/label-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93b06e386e6d422d", "name": "Dangling fetch: GET /tickets/ticket-1/labels (apps/server/src/routes/__tests__/tickets.test.ts:860)", "shortDescription": {"text": "Dangling fetch: GET /tickets/ticket-1/labels (apps/server/src/routes/__tests__/tickets.test.ts:860)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:860` calls `GET /tickets/ticket-1/labels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1/labels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8b08975d54b2cd3", "name": "Dangling fetch: DELETE /tickets/ticket-1/labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:871)", "shortDescription": {"text": "Dangling fetch: DELETE /tickets/ticket-1/labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:871)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/tickets.test.ts:871` calls `DELETE /tickets/ticket-1/labels/label-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/tickets/ticket-1/labels/label-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1860bfc32634273", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/invalid collection! (apps/server/src/routes/__tests__/rag-index.test.ts:", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/invalid collection! (apps/server/src/routes/__tests__/rag-index.test.ts:65)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:65` calls `POST /rag/workspaces/ws-1/index/invalid collection!` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/invalid collection!`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb71496404b2155a", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/my.collection (apps/server/src/routes/__tests__/rag-index.test.ts:77)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/my.collection (apps/server/src/routes/__tests__/rag-index.test.ts:77)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:77` calls `POST /rag/workspaces/ws-1/index/my.collection` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/my.collection`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71411232696d5b60", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/valid-collection_1 (apps/server/src/routes/__tests__/rag-index.test.ts:9", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/valid-collection_1 (apps/server/src/routes/__tests__/rag-index.test.ts:95)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:95` calls `POST /rag/workspaces/ws-1/index/valid-collection_1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/valid-collection_1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3993541e024cd81c", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:118)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:118)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:118` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc2096fddb37fbf5", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/articles (apps/server/src/routes/__tests__/rag-index.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/articles (apps/server/src/routes/__tests__/rag-index.test.ts:140)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:140` calls `POST /rag/workspaces/ws-1/index/articles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/articles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f977320edfe75b52", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:154)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:154` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f40a8920dd114fce", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:169)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:169)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:169` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-275e8daf951eee3b", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:189)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:189)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:189` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97c2768b4a883466", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:210)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:210)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:210` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2676bd2d88632105", "name": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:242)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:242)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:242` calls `GET /rag/workspaces/ws-1/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-393213fc0a6a91ca", "name": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:263)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:263)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:263` calls `GET /rag/workspaces/ws-1/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24a23aadadf96888", "name": "Dangling fetch: GET /rag/workspaces/ws-2/documents (apps/server/src/routes/__tests__/rag-index.test.ts:283)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-2/documents (apps/server/src/routes/__tests__/rag-index.test.ts:283)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:283` calls `GET /rag/workspaces/ws-2/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-2/documents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3773c04de72ab787", "name": "Dangling fetch: GET /rag/workspaces/ws-3/documents (apps/server/src/routes/__tests__/rag-index.test.ts:307)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-3/documents (apps/server/src/routes/__tests__/rag-index.test.ts:307)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:307` calls `GET /rag/workspaces/ws-3/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-3/documents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0303c27071935676", "name": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-1 (apps/server/src/routes/__tests__/rag-index.test.ts:320)", "shortDescription": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-1 (apps/server/src/routes/__tests__/rag-index.test.ts:320)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:320` calls `DELETE /rag/workspaces/ws-1/documents/doc-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents/doc-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f489a544f081fb53", "name": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-42 (apps/server/src/routes/__tests__/rag-index.test.ts:332)", "shortDescription": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-42 (apps/server/src/routes/__tests__/rag-index.test.ts:332)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:332` calls `DELETE /rag/workspaces/ws-1/documents/doc-42` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents/doc-42`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d525078bd88fa53f", "name": "Dangling fetch: GET /rag/workspaces/ws-1/status (apps/server/src/routes/__tests__/rag-index.test.ts:356)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/status (apps/server/src/routes/__tests__/rag-index.test.ts:356)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:356` calls `GET /rag/workspaces/ws-1/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e781e5a3346dd0bd", "name": "Dangling fetch: GET /rag/workspaces/ws-2/status (apps/server/src/routes/__tests__/rag-index.test.ts:378)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-2/status (apps/server/src/routes/__tests__/rag-index.test.ts:378)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:378` calls `GET /rag/workspaces/ws-2/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-2/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-b510341629199b91", "name": "Dangling fetch: GET /rag/workspaces/empty-ws/status (apps/server/src/routes/__tests__/rag-index.test.ts:402)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/empty-ws/status (apps/server/src/routes/__tests__/rag-index.test.ts:402)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:402` calls `GET /rag/workspaces/empty-ws/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/empty-ws/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-7b76e3d7fc038798", "name": "Dangling fetch: GET /rag/workspaces/ws-fail/status (apps/server/src/routes/__tests__/rag-index.test.ts:424)", "shortDescription": {"text": "Dangling fetch: GET /rag/workspaces/ws-fail/status (apps/server/src/routes/__tests__/rag-index.test.ts:424)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:424` calls `GET /rag/workspaces/ws-fail/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-fail/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-f21cd2d4fd44215b", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:516)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:516)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:516` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fb0550663fd88a9", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:551)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:551)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:551` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f6200939f974b9d", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:587)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:587)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:587` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6da192d7aefa54d5", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:614)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:614)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:614` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5dfc64895c37706", "name": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:647)", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:647)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:647` calls `POST /rag/workspaces/ws-1/index/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/index/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72b82d4db0d4ae86", "name": "Dangling fetch: POST /rag/workspaces/my-workspace/index/my-collection (apps/server/src/routes/__tests__/rag-index.test.t", "shortDescription": {"text": "Dangling fetch: POST /rag/workspaces/my-workspace/index/my-collection (apps/server/src/routes/__tests__/rag-index.test.ts:669)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:669` calls `POST /rag/workspaces/my-workspace/index/my-collection` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/my-workspace/index/my-collection`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81689ff455622419", "name": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-99 (apps/server/src/routes/__tests__/rag-index.test.ts:689)", "shortDescription": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-99 (apps/server/src/routes/__tests__/rag-index.test.ts:689)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:689` calls `DELETE /rag/workspaces/ws-1/documents/doc-99` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents/doc-99`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c0e357befdace6a", "name": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/specific-doc-id (apps/server/src/routes/__tests__/rag-index.test.t", "shortDescription": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/specific-doc-id (apps/server/src/routes/__tests__/rag-index.test.ts:705)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/rag-index.test.ts:705` calls `DELETE /rag/workspaces/ws-1/documents/specific-doc-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rag/workspaces/ws-1/documents/specific-doc-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5b5aa8c344494d9", "name": "Dangling fetch: GET /stats (apps/server/src/routes/__tests__/code-provenance.test.ts:162)", "shortDescription": {"text": "Dangling fetch: GET /stats (apps/server/src/routes/__tests__/code-provenance.test.ts:162)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:162` calls `GET /stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-a5249f76a871fb98", "name": "Dangling fetch: GET /file/packages%2Fcore%2Fsrc%2Findex.ts (apps/server/src/routes/__tests__/code-provenance.test.ts:175", "shortDescription": {"text": "Dangling fetch: GET /file/packages%2Fcore%2Fsrc%2Findex.ts (apps/server/src/routes/__tests__/code-provenance.test.ts:175)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:175` calls `GET /file/packages%2Fcore%2Fsrc%2Findex.ts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/file/packages%2fcore%2fsrc%2findex.ts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34ce82b848fd2cbc", "name": "Dangling fetch: GET /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:187)", "shortDescription": {"text": "Dangling fetch: GET /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:187)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:187` calls `GET /prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aea9fef5d1913ec2", "name": "Dangling fetch: GET /no-such-id (apps/server/src/routes/__tests__/code-provenance.test.ts:197)", "shortDescription": {"text": "Dangling fetch: GET /no-such-id (apps/server/src/routes/__tests__/code-provenance.test.ts:197)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:197` calls `GET /no-such-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/no-such-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc23df6a6141bb9b", "name": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:275)", "shortDescription": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:275)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:275` calls `DELETE /prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-803d27e0454026e5", "name": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:284)", "shortDescription": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:284)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:284` calls `DELETE /prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-453e417b6f688832", "name": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:292)", "shortDescription": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:292)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:292` calls `DELETE /prov-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-329438b3caa0f8f3", "name": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:449)", "shortDescription": {"text": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:449)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:449` calls `GET /prov-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-faa7bf3dae4523b2", "name": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:459)", "shortDescription": {"text": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:459)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/code-provenance.test.ts:459` calls `GET /prov-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/prov-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a4c2eb02e24d333", "name": "Dangling fetch: GET /search (apps/server/src/routes/__tests__/search.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /search (apps/server/src/routes/__tests__/search.test.ts:88)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:88` calls `GET /search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2ecd2734dd5e015a", "name": "Dangling fetch: GET /search?q=a (apps/server/src/routes/__tests__/search.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET /search?q=a (apps/server/src/routes/__tests__/search.test.ts:93)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:93` calls `GET /search?q=a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-46c8d711accab38b", "name": "Dangling fetch: GET /search?q=${long} (apps/server/src/routes/__tests__/search.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /search?q=${long} (apps/server/src/routes/__tests__/search.test.ts:99)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:99` calls `GET /search?q=${long}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2cae85202038b76", "name": "Dangling fetch: GET /search?q=${exact}&type=posts (apps/server/src/routes/__tests__/search.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /search?q=${exact}&type=posts (apps/server/src/routes/__tests__/search.test.ts:106)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:106` calls `GET /search?q=${exact}&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dcc86b11baa8910b", "name": "Dangling fetch: GET /search?q=hello&type=invalid (apps/server/src/routes/__tests__/search.test.ts:111)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=invalid (apps/server/src/routes/__tests__/search.test.ts:111)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:111` calls `GET /search?q=hello&type=invalid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-10951e7081e74bd0", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:117)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:117` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3bbb533e9e181e67", "name": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:123)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:123)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:123` calls `GET /search?q=hello&type=pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c76d3e39681eedf8", "name": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:134)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:134` calls `GET /search?q=hello&type=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b90ff769cd49f9c5", "name": "Dangling fetch: GET /search?q=hello (apps/server/src/routes/__tests__/search.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello (apps/server/src/routes/__tests__/search.test.ts:145)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:145` calls `GET /search?q=hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfe611fff94d491b", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:157)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:157)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:157` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a08f003b1d0f6908", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:168)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:168)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:168` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c50df6133278ce85", "name": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:178)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:178)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:178` calls `GET /search?q=hello&type=pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a843a58087e4cef7", "name": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:189)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:189)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:189` calls `GET /search?q=hello&type=pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e0001c0830b00db", "name": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:209)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:209)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:209` calls `GET /search?q=hello&type=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4b6a38d50580b74", "name": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:217)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:217)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:217` calls `GET /search?q=hello&type=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6a692d87aba8073", "name": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:244)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:244)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:244` calls `GET /search?q=hello&type=all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f789515cbaff76a", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:256)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:256)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:256` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c701be747a8b05a", "name": "Dangling fetch: GET /search?q=hello&type=posts&limit=5 (apps/server/src/routes/__tests__/search.test.ts:263)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=5 (apps/server/src/routes/__tests__/search.test.ts:263)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:263` calls `GET /search?q=hello&type=posts&limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-e85cdf9dbd4fe10d", "name": "Dangling fetch: GET /search?q=hello&type=posts&limit=999 (apps/server/src/routes/__tests__/search.test.ts:268)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=999 (apps/server/src/routes/__tests__/search.test.ts:268)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:268` calls `GET /search?q=hello&type=posts&limit=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-38b376011f23f838", "name": "Dangling fetch: GET /search?q=hello&type=posts&limit=0 (apps/server/src/routes/__tests__/search.test.ts:273)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=0 (apps/server/src/routes/__tests__/search.test.ts:273)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:273` calls `GET /search?q=hello&type=posts&limit=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-21966c5a9b4d2a2f", "name": "Dangling fetch: GET /search?q=hello&type=posts&offset=40 (apps/server/src/routes/__tests__/search.test.ts:279)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&offset=40 (apps/server/src/routes/__tests__/search.test.ts:279)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:279` calls `GET /search?q=hello&type=posts&offset=40` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2f04ca186ad1a978", "name": "Dangling fetch: GET /search?q=hello&type=posts&offset=-10 (apps/server/src/routes/__tests__/search.test.ts:284)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&offset=-10 (apps/server/src/routes/__tests__/search.test.ts:284)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:284` calls `GET /search?q=hello&type=posts&offset=-10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-759fdc0157fb8c7c", "name": "Dangling fetch: GET /search?q=test&type=posts (apps/server/src/routes/__tests__/search.test.ts:294)", "shortDescription": {"text": "Dangling fetch: GET /search?q=test&type=posts (apps/server/src/routes/__tests__/search.test.ts:294)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:294` calls `GET /search?q=test&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0661ddf55cd6eee9", "name": "Dangling fetch: GET /search?q=typescript&type=posts (apps/server/src/routes/__tests__/search.test.ts:309)", "shortDescription": {"text": "Dangling fetch: GET /search?q=typescript&type=posts (apps/server/src/routes/__tests__/search.test.ts:309)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:309` calls `GET /search?q=typescript&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcaaff362576c1be", "name": "Dangling fetch: GET /search?q=notfound&type=posts (apps/server/src/routes/__tests__/search.test.ts:316)", "shortDescription": {"text": "Dangling fetch: GET /search?q=notfound&type=posts (apps/server/src/routes/__tests__/search.test.ts:316)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:316` calls `GET /search?q=notfound&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c6d42c990f94c9c", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:324)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:324)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:324` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea5a949f5c9480af", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:339)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:339)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:339` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c1c21784b946423", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:346)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:346)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:346` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d77fcfbaa0cd0db8", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:354)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:354)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:354` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6be0fedb14718e69", "name": "Dangling fetch: GET /search?q=ab&type=posts (apps/server/src/routes/__tests__/search.test.ts:365)", "shortDescription": {"text": "Dangling fetch: GET /search?q=ab&type=posts (apps/server/src/routes/__tests__/search.test.ts:365)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:365` calls `GET /search?q=ab&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2988f562a59d54cd", "name": "Dangling fetch: GET /search?q=hello&type=posts&limit=1 (apps/server/src/routes/__tests__/search.test.ts:373)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=1 (apps/server/src/routes/__tests__/search.test.ts:373)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:373` calls `GET /search?q=hello&type=posts&limit=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-16461631f94e18c9", "name": "Dangling fetch: GET /search?q=hello&type=posts&limit=100 (apps/server/src/routes/__tests__/search.test.ts:380)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=100 (apps/server/src/routes/__tests__/search.test.ts:380)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:380` calls `GET /search?q=hello&type=posts&limit=100` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a56e1eae87ea4bcf", "name": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:397)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:397)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:397` calls `GET /search?q=hello&type=posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6cd4e74c6bd89e7", "name": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:409)", "shortDescription": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:409)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/search.test.ts:409` calls `GET /search?q=hello&type=pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63baa90fb35f884f", "name": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:98)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:98` calls `POST /batch/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-ca282546f479ef2e", "name": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:116)", "shortDescription": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:116)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:116` calls `POST /batch/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-1e2dcd1f12292655", "name": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:127)", "shortDescription": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:127)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:127` calls `POST /batch/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-cf90bb178f0ac657", "name": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:138)", "shortDescription": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:138)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:138` calls `POST /batch/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-78d74738213230eb", "name": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:155)", "shortDescription": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:155)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:155` calls `POST /batch/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-b676a58012ad5459", "name": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:182)", "shortDescription": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:182)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:182` calls `POST /batch/update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-7f6b4281be2a2940", "name": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:198)", "shortDescription": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:198)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:198` calls `POST /batch/update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-7a90e620b5c390cc", "name": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:214)", "shortDescription": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:214)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:214` calls `POST /batch/update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-2ac5812a52dc6578", "name": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:237)", "shortDescription": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:237)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:237` calls `POST /batch/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-f821ab53c43951b1", "name": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:253)", "shortDescription": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:253)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:253` calls `POST /batch/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-905a439741c781e8", "name": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:264)", "shortDescription": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:264)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:264` calls `POST /batch/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-00cfd58ed5253eae", "name": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:277)", "shortDescription": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:277)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/batch.test.ts:277` calls `POST /batch/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-039ae6b96f6210b6", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:354)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:354)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:354` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0123a885ca14d3d", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:366)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:366)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:366` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c88631f56c7c6e95", "name": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:376)", "shortDescription": {"text": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:376)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:376` calls `GET /servers?category=data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6e28473f4e1e42d", "name": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:384)", "shortDescription": {"text": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:384)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:384` calls `GET /servers?limit=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c4073830f4145a0", "name": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:394)", "shortDescription": {"text": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:394)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:394` calls `GET /servers?offset=abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89f7e12747dc20f8", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:408)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:408)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:408` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cebfc77697f38c35", "name": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:418)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:418)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:418` calls `GET /servers/mcp_notfound1234` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_notfound1234`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1fe19d78ae2c5605", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:426)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:426)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:426` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7516b28ed5f7e26c", "name": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:434)", "shortDescription": {"text": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:434)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:434` calls `GET /servers/bad-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/bad-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf37de057ee58201", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:445)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:445)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:445` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8472bc4a9bc003d", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:461)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:461)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:461` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-864ecf8578f3471c", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:481)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:481)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:481` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee5e471fa370c673", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:495)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:495)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:495` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e20327da562fa65", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:509)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:509)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:509` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-122e3a79598f4cc6", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:523)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:523)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:523` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-293fa0cbac902d99", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:537)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:537)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:537` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66cdd0f3cb1dfad5", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:558)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:558)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:558` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-430a279092256a9a", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:579)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:579)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:579` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d933aacee3791bfa", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:589)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:589)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:589` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8826621adabf2592", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:602)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:602)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:602` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57d0971244a4e4fa", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:612)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:612)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:612` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-379fb71e292ab423", "name": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:624)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:624)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:624` calls `DELETE /servers/mcp_zzzzzzzzzzzz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_zzzzzzzzzzzz`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b31dff192f25e585", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:63", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:638)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:638` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b52994895bf5fd2", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:65", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:654)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:654` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8cee0ae558a8b2a", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:67", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:670)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:670` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f6179e6e9d065ed", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:69", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:697)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:697` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d2d73b9c7851c31", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:72", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:721)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:721` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea8a14afd46b63a8", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:742)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:742)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:742` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-583822608cc5d8dd", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:750)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:750)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:750` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9417f2b5f52906d", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:767)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:767)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:767` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e83a154b7ed1f44", "name": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:781)", "shortDescription": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:781)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:781` calls `GET /connect/return` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/return`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aac8af44cc52b90", "name": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:146)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:146)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:146` calls `GET /analytics/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-16fff803de7a3720", "name": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:152)", "shortDescription": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:152)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:152` calls `GET /analytics/by-meter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/by-meter`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b1f545dcdaeb0cf", "name": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:158)", "shortDescription": {"text": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:158)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:158` calls `GET /analytics/by-source` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/by-source`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e727cdcde7ab760d", "name": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:172)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:172)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:172` calls `GET /analytics/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-bbdc3338b0fa7fe7", "name": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:196)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:196)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:196` calls `GET /analytics/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-1a4ed51a8324567e", "name": "Dangling fetch: GET /analytics/summary?days=7 (apps/server/src/routes/__tests__/analytics.test.ts:221)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary?days=7 (apps/server/src/routes/__tests__/analytics.test.ts:221)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:221` calls `GET /analytics/summary?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-03f5bb1222cd363e", "name": "Dangling fetch: GET /analytics/summary?days=0 (apps/server/src/routes/__tests__/analytics.test.ts:237)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary?days=0 (apps/server/src/routes/__tests__/analytics.test.ts:237)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:237` calls `GET /analytics/summary?days=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-f7bc707393b5d490", "name": "Dangling fetch: GET /analytics/summary?days=400 (apps/server/src/routes/__tests__/analytics.test.ts:244)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary?days=400 (apps/server/src/routes/__tests__/analytics.test.ts:244)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:244` calls `GET /analytics/summary?days=400` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-5c5fb942365903b1", "name": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:275)", "shortDescription": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:275)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:275` calls `GET /analytics/by-meter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/by-meter`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1018eb4966c9be9", "name": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:294)", "shortDescription": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:294)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:294` calls `GET /analytics/by-meter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/by-meter`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7cf5a703373a006", "name": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:328)", "shortDescription": {"text": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:328)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:328` calls `GET /analytics/by-source` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/by-source`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71023dd8e5069be8", "name": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:362)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:362)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:362` calls `GET /analytics/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-5f74582f04ea31ed", "name": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:378)", "shortDescription": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:378)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/analytics.test.ts:378` calls `GET /analytics/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/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-824c29e36cd868c6", "name": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:430)", "shortDescription": {"text": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:430)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/license.test.ts:430` calls `GET /features` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/features`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e789f9e544c5b313", "name": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:440)", "shortDescription": {"text": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:440)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/license.test.ts:440` calls `GET /features` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/features`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93d4d880d3eccaec", "name": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:98)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:98` calls `GET /api/mcp/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-07b121fc191b2c31", "name": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:109)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:109` calls `GET /api/mcp/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-4cd9b22c8478eb1f", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:119)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:119)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:119` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-cd2eeb2dcd107657", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:148)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:148` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-37994f9e8487f378", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:194)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:194)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:194` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-5aa571fbcc3d9a8e", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:223)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:223)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:223` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-94da4d560ac6bf94", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:254)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:254)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:254` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-000ef7cd02e1f392", "name": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:282)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:282)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:282` calls `GET /api/mcp/usage?range=24h` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-30577e9d22406b7c", "name": "Dangling fetch: GET /api/mcp/usage?range=7d (apps/server/src/routes/__tests__/mcp-usage.test.ts:286)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=7d (apps/server/src/routes/__tests__/mcp-usage.test.ts:286)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:286` calls `GET /api/mcp/usage?range=7d` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-08e9ce879ca777da", "name": "Dangling fetch: GET /api/mcp/usage?range=999d (apps/server/src/routes/__tests__/mcp-usage.test.ts:297)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/usage?range=999d (apps/server/src/routes/__tests__/mcp-usage.test.ts:297)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/mcp-usage.test.ts:297` calls `GET /api/mcp/usage?range=999d` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/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-3d28804434be478e", "name": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:543)", "shortDescription": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:543)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/studio-auth.test.ts:543` calls `POST /studio-auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/studio-auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87fe62f6ee5d2280", "name": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:555)", "shortDescription": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:555)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/studio-auth.test.ts:555` calls `POST /studio-auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/studio-auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a00dd6e1d3b4a395", "name": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:575)", "shortDescription": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:575)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/studio-auth.test.ts:575` calls `POST /studio-auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/studio-auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13d1293f14d802aa", "name": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:593)", "shortDescription": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:593)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/studio-auth.test.ts:593` calls `POST /studio-auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/studio-auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa26ebc517860e90", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-stripe-erasure.test.ts:153)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-stripe-erasure.test.ts:153)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-stripe-erasure.test.ts:153` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2480252c4a17af1", "name": "Dangling fetch: POST /waitlist (apps/server/src/routes/__tests__/waitlist.test.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /waitlist (apps/server/src/routes/__tests__/waitlist.test.ts:55)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/waitlist.test.ts:55` calls `POST /waitlist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/waitlist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cfbba6f9abbbd0a6", "name": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:222)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:222)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:222` calls `GET /api/collab/snapshot/doc-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-530a69761a0ee837", "name": "Dangling fetch: GET /api/collab/snapshot/doc-empty (apps/server/src/routes/__tests__/collab.test.ts:231)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-empty (apps/server/src/routes/__tests__/collab.test.ts:231)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:231` calls `GET /api/collab/snapshot/doc-empty` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-empty`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03e8b8f1fb2033e8", "name": "Dangling fetch: GET /api/collab/snapshot/doc-with-data (apps/server/src/routes/__tests__/collab.test.ts:248)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-with-data (apps/server/src/routes/__tests__/collab.test.ts:248)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:248` calls `GET /api/collab/snapshot/doc-with-data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-with-data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07c6c15c647ac069", "name": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:264)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:264)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:264` calls `GET /api/collab/snapshot/doc-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a732910a6a74f905", "name": "Dangling fetch: GET /api/collab/snapshot/shape-doc (apps/server/src/routes/__tests__/collab.test.ts:280)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/shape-doc (apps/server/src/routes/__tests__/collab.test.ts:280)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:280` calls `GET /api/collab/snapshot/shape-doc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/shape-doc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4570b33af304f61", "name": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:303)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:303)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:303` calls `GET /api/collab/snapshot/${targetDocId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/<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-533d54a740f3e7e9", "name": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:320)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:320)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:320` calls `GET /api/collab/snapshot/${targetDocId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/<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-1956a9a6bbb8a5df", "name": "Dangling fetch: GET /api/collab/snapshot/doc-roundtrip (apps/server/src/routes/__tests__/collab.test.ts:485)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-roundtrip (apps/server/src/routes/__tests__/collab.test.ts:485)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:485` calls `GET /api/collab/snapshot/doc-roundtrip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-roundtrip`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87f83863064f07f6", "name": "Dangling fetch: GET /api/collab/snapshot/doc-nonerror (apps/server/src/routes/__tests__/collab.test.ts:505)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-nonerror (apps/server/src/routes/__tests__/collab.test.ts:505)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:505` calls `GET /api/collab/snapshot/doc-nonerror` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-nonerror`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6dec05e4be049e8", "name": "Dangling fetch: GET /api/collab/snapshot/doc-a (apps/server/src/routes/__tests__/collab.test.ts:524)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-a (apps/server/src/routes/__tests__/collab.test.ts:524)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:524` calls `GET /api/collab/snapshot/doc-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e376e6f38ae7e9a", "name": "Dangling fetch: GET /api/collab/snapshot/doc-b (apps/server/src/routes/__tests__/collab.test.ts:533)", "shortDescription": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-b (apps/server/src/routes/__tests__/collab.test.ts:533)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/collab.test.ts:533` calls `GET /api/collab/snapshot/doc-b` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/collab/snapshot/doc-b`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4a67f090eee8e55", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:151)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-integration.test.ts:151` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d3be4afa87eaf3e", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:181)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:181)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-integration.test.ts:181` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6400632f5298418c", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:197)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:197)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-integration.test.ts:197` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a753b9027229e31", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:210)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:210)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-integration.test.ts:210` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd0ee188a4168b5f", "name": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:223)", "shortDescription": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:223)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-integration.test.ts:223` calls `POST /gdpr/deletion` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/deletion`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f550512921b1c8d", "name": "Dangling fetch: GET /gdpr/consent/check/marketing (apps/server/src/routes/__tests__/gdpr-edge.test.ts:235)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent/check/marketing (apps/server/src/routes/__tests__/gdpr-edge.test.ts:235)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-edge.test.ts:235` calls `GET /gdpr/consent/check/marketing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent/check/marketing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a5ec1b6b35a722d", "name": "Dangling fetch: GET /gdpr/consent/check/${type} (apps/server/src/routes/__tests__/gdpr-edge.test.ts:246)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/consent/check/${type} (apps/server/src/routes/__tests__/gdpr-edge.test.ts:246)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-edge.test.ts:246` calls `GET /gdpr/consent/check/${type}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/consent/check/<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-88a1623adea53574", "name": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr-edge.test.ts:287)", "shortDescription": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr-edge.test.ts:287)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/gdpr-edge.test.ts:287` calls `GET /gdpr/admin/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/gdpr/admin/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-5197aa9f26783e02", "name": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:103)", "shortDescription": {"text": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:103)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/devkit.test.ts:103` calls `GET /devkit/profiles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/devkit/profiles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-094cfeb1e2898fa7", "name": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:131)", "shortDescription": {"text": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:131)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/devkit.test.ts:131` calls `GET /devkit/profiles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/devkit/profiles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db4644924da6c45a", "name": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:281)", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:281)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth.test.ts:281` calls `GET /terminal-auth/lookup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5814488bf92b7e23", "name": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:291)", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:291)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth.test.ts:291` calls `GET /terminal-auth/lookup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b1ea39c86796253", "name": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:test (apps/server/src/routes/__tests__/terminal-auth.test.t", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:test (apps/server/src/routes/__tests__/terminal-auth.test.ts:301)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth.test.ts:301` calls `GET /terminal-auth/lookup?fingerprint=SHA256:test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be981ebe510e1796", "name": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:unknown (apps/server/src/routes/__tests__/terminal-auth.tes", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:unknown (apps/server/src/routes/__tests__/terminal-auth.test.ts:329)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth.test.ts:329` calls `GET /terminal-auth/lookup?fingerprint=SHA256:unknown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ac7010c656e7b88", "name": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:known (apps/server/src/routes/__tests__/terminal-auth.test.", "shortDescription": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:known (apps/server/src/routes/__tests__/terminal-auth.test.ts:361)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/terminal-auth.test.ts:361` calls `GET /terminal-auth/lookup?fingerprint=SHA256:known` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/terminal-auth/lookup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-761fa2b2ca123d88", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:90)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:90` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76876238238b5c64", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:96)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:96)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:96` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e136e1d21186a656", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:105)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:105)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:105` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f91e6668e46ad2d4", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:117)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:117` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb7299936c31eb79", "name": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:135)", "shortDescription": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:135)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:135` calls `GET /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0d46350c3aa7714", "name": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:141)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:141` calls `GET /users/user-b` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-b`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9ef011f7e815352", "name": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:149)", "shortDescription": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:149)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:149` calls `GET /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4652f1bd261efcd", "name": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:157)", "shortDescription": {"text": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:157)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:157` calls `GET /users/user-b` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-b`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d96ac13bdff78a6c", "name": "Dangling fetch: GET /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:165)", "shortDescription": {"text": "Dangling fetch: GET /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:165)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:165` calls `GET /users/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1cc1660b1bb5378", "name": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:173)", "shortDescription": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:173)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:173` calls `GET /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f65acce6dedacf1d", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:192)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:192)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:192` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45365f6af05ff620", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:202)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:202)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:202` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a633abc01190b024", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:214)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:214)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:214` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20dae87d3add5dc2", "name": "Dangling fetch: PATCH /users/user-b (apps/server/src/routes/__tests__/users.test.ts:224)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-b (apps/server/src/routes/__tests__/users.test.ts:224)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:224` calls `PATCH /users/user-b` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-b`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72df3a848ed48960", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:236)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:236)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:236` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-448cefed33ebc294", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:248)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:248)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:248` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0c6ee8ec586a71d", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:260)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:260)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:260` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a33ddf2c94d916da", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:275)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:275)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:275` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25042dfb3b058701", "name": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:289)", "shortDescription": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:289)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:289` calls `PATCH /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-276b25f0b39b33e0", "name": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:312)", "shortDescription": {"text": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:312)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:312` calls `DELETE /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7dc4a421b9fba3b", "name": "Dangling fetch: DELETE /users/user-b (apps/server/src/routes/__tests__/users.test.ts:318)", "shortDescription": {"text": "Dangling fetch: DELETE /users/user-b (apps/server/src/routes/__tests__/users.test.ts:318)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:318` calls `DELETE /users/user-b` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-b`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-859e4dbf19bac6d3", "name": "Dangling fetch: DELETE /users/admin-1 (apps/server/src/routes/__tests__/users.test.ts:324)", "shortDescription": {"text": "Dangling fetch: DELETE /users/admin-1 (apps/server/src/routes/__tests__/users.test.ts:324)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:324` calls `DELETE /users/admin-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/admin-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a066eecfc0942202", "name": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:332)", "shortDescription": {"text": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:332)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:332` calls `DELETE /users/user-a` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-a`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ebd8b8dfd60fd692", "name": "Dangling fetch: DELETE /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:341)", "shortDescription": {"text": "Dangling fetch: DELETE /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:341)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:341` calls `DELETE /users/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28712b300f846dee", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:358)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:358)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:358` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b02d0537797b8eb6", "name": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:367)", "shortDescription": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:367)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/users.test.ts:367` calls `GET /users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d452cfe4c88a4cf", "name": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:137)", "shortDescription": {"text": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:137)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:137` calls `POST /stripe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/stripe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-633b3c7f7a1cbc9f", "name": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:115)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:115` calls `GET /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fa7d18aa0506cfb", "name": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:128)", "shortDescription": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:128)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:128` calls `GET /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdbc06ead91d1351", "name": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:137)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:137` calls `GET /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-00ee917cf9f4e369", "name": "Dangling fetch: GET /orders?limit=5&offset=10 (apps/server/src/routes/__tests__/orders.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /orders?limit=5&offset=10 (apps/server/src/routes/__tests__/orders.test.ts:145)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:145` calls `GET /orders?limit=5&offset=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f4df1040f596c4f", "name": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:177)", "shortDescription": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:177)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:177` calls `POST /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6177dcc9e26e4d52", "name": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:198)", "shortDescription": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:198)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:198` calls `POST /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14717c38e575882e", "name": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:216)", "shortDescription": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:216)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:216` calls `POST /orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0cfa601a8e85d8e", "name": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:241)", "shortDescription": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:241)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:241` calls `GET /orders/order-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/order-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a33f06b2f120013", "name": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:253)", "shortDescription": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:253)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:253` calls `GET /orders/order-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/order-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92330a15a63c75b7", "name": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:264)", "shortDescription": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:264)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:264` calls `GET /orders/order-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/order-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a5a388397580820", "name": "Dangling fetch: GET /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:274)", "shortDescription": {"text": "Dangling fetch: GET /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:274)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:274` calls `GET /orders/does-not-exist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/does-not-exist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46bc7bb9d39cf603", "name": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:293)", "shortDescription": {"text": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:293)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:293` calls `PATCH /orders/order-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/order-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b61511bebc7d7207", "name": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:312)", "shortDescription": {"text": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:312)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:312` calls `PATCH /orders/order-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/order-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94463bcc2e2260bd", "name": "Dangling fetch: PATCH /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:327)", "shortDescription": {"text": "Dangling fetch: PATCH /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:327)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/orders.test.ts:327` calls `PATCH /orders/does-not-exist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/orders/does-not-exist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a0ce0817b91b2c0", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:367)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:367)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:367` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b8342afc4c8e1d0", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:378)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:378)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:378` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b25049415a9632c", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:388)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:388)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:388` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5a695d4684d9156", "name": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace.test.ts:399)", "shortDescription": {"text": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace.test.ts:399)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:399` calls `GET /servers?category=data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-563f54e5ba7bc08b", "name": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace.test.ts:407)", "shortDescription": {"text": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace.test.ts:407)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:407` calls `GET /servers?limit=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-833a4a29714f9c90", "name": "Dangling fetch: GET /servers?limit=10&offset=20 (apps/server/src/routes/__tests__/marketplace.test.ts:417)", "shortDescription": {"text": "Dangling fetch: GET /servers?limit=10&offset=20 (apps/server/src/routes/__tests__/marketplace.test.ts:417)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:417` calls `GET /servers?limit=10&offset=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4d1e19272365d1b", "name": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace.test.ts:428)", "shortDescription": {"text": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace.test.ts:428)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:428` calls `GET /servers?offset=abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12de603ba432d472", "name": "Dangling fetch: GET /servers?limit=-5 (apps/server/src/routes/__tests__/marketplace.test.ts:438)", "shortDescription": {"text": "Dangling fetch: GET /servers?limit=-5 (apps/server/src/routes/__tests__/marketplace.test.ts:438)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:438` calls `GET /servers?limit=-5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eecbf5009703cb7c", "name": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:448)", "shortDescription": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:448)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:448` calls `GET /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60877d93a23e5586", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:460)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:460)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:460` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09110fde9d77292a", "name": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace.test.ts:471)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace.test.ts:471)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:471` calls `GET /servers/mcp_notfound1234` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_notfound1234`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b84d439721f39b53", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:481)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:481)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:481` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b50ce8895a4026c5", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:491)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:491)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:491` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-511e8a792e783fc5", "name": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace.test.ts:497)", "shortDescription": {"text": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace.test.ts:497)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:497` calls `GET /servers/bad-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/bad-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f844d37a6166252", "name": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:505)", "shortDescription": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:505)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:505` calls `GET /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1cea3b4ebf4bacc", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:526)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:526)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:526` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-839729f0d5a5886a", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:540)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:540)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:540` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-025d921006d0ddbd", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:550)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:550)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:550` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5da8a60b7d0a81fd", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:563)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:563)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:563` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6af5d5864bf1cde6", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:576)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:576)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:576` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc55cd1c2ec79bcf", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:589)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:589)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:589` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a0efad96d305dd8", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:602)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:602)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:602` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-516cd3d89d8098dc", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:615)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:615)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:615` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cc0c89341e6e565", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:628)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:628)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:628` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01cfa915f3aa09c6", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:641)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:641)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:641` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec132bd95810e596", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:654)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:654)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:654` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59228355e1fc5de3", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:667)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:667)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:667` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-367c6b2c20238dd3", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:687)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:687)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:687` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22dc9ac5b2d91be7", "name": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:706)", "shortDescription": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:706)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:706` calls `POST /servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de26289676db9dba", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:725)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:725)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:725` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6e6888a75c5911b", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:737)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:737)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:737` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15ec9f26903acf0b", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:749)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:749)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:749` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fec9bf046be419be", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:759)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:759)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:759` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2099f4cab0ad22d9", "name": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace.test.ts:769)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace.test.ts:769)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:769` calls `DELETE /servers/mcp_zzzzzzzzzzzz` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_zzzzzzzzzzzz`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4519a6f441f007c3", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:779)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:779)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:779` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a5ec1ff2d19c69d", "name": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:790)", "shortDescription": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:790)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:790` calls `DELETE /servers/mcp_abcdef123456` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6497bb8d6e55eba9", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:809)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:809)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:809` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f7a3a7a142d5c9e", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:826)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:826)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:826` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6aa4c408c27d296", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:841)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:841)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:841` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7626d1398fe07368", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:859)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:859)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:859` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b356dc53c6d7590c", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:886)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:886)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:886` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55dffcf7a98590d2", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:911)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:911)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:911` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e5afbd353a2e267", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:941)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:941)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:941` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a41947795b3f1439", "name": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:962)", "shortDescription": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:962)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:962` calls `POST /servers/mcp_abcdef123456/invoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/servers/mcp_abcdef123456/invoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6721e6af343899e", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:983)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:983)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:983` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c9d9ce386717b9c", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:991)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:991)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:991` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a2744125c3217be", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1008)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1008)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:1008` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd3a92f34e45ea45", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1019)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1019)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:1019` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68885f7fc52d12c6", "name": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1032)", "shortDescription": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1032)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:1032` calls `POST /connect/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c7f5237600b5472", "name": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1045)", "shortDescription": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1045)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:1045` calls `GET /connect/return` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/return`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-436820cedc1b61bf", "name": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1054)", "shortDescription": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1054)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/marketplace.test.ts:1054` calls `GET /connect/return` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connect/return`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bd0a02a6c487550", "name": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:180)", "shortDescription": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:180)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:180` calls `GET /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-549699e6901ce703", "name": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:193)", "shortDescription": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:193)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:193` calls `GET /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-823a1c900f1a78d3", "name": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:202)", "shortDescription": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:202)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:202` calls `GET /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a3deacfcbe17974", "name": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:211)", "shortDescription": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:211)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:211` calls `GET /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4fbaa5bd7953d2d", "name": "Dangling fetch: GET /posts?limit=10&offset=20 (apps/server/src/routes/__tests__/content.test.ts:220)", "shortDescription": {"text": "Dangling fetch: GET /posts?limit=10&offset=20 (apps/server/src/routes/__tests__/content.test.ts:220)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:220` calls `GET /posts?limit=10&offset=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-50df14ceb61aa0bf", "name": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:231)", "shortDescription": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:231)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:231` calls `GET /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-696a0369af389e63", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:243)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:243)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:243` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d12882b7143e0f96", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:255)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:255)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:255` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9309197bf9a52c0b", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:268)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:268)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:268` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d39b215685c4d7d", "name": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:278)", "shortDescription": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:278)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:278` calls `POST /posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dc2b615d3c374e7", "name": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:293)", "shortDescription": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:293)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:293` calls `GET /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdee60af03ad8eae", "name": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:300)", "shortDescription": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:300)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:300` calls `GET /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38060f19614f5b77", "name": "Dangling fetch: GET /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:309)", "shortDescription": {"text": "Dangling fetch: GET /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:309)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:309` calls `GET /posts/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01747eba51262236", "name": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:316)", "shortDescription": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:316)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:316` calls `GET /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37a9c452c6de6915", "name": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:325)", "shortDescription": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:325)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:325` calls `GET /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-164059499a637a01", "name": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:332)", "shortDescription": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:332)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:332` calls `GET /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cfbd4dda05dc7775", "name": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:343)", "shortDescription": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:343)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:343` calls `GET /posts/slug/hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/slug/hello`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb2040d33a392069", "name": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:350)", "shortDescription": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:350)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:350` calls `GET /posts/slug/hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/slug/hello`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3786cc151efb7aed", "name": "Dangling fetch: GET /posts/slug/unknown (apps/server/src/routes/__tests__/content.test.ts:359)", "shortDescription": {"text": "Dangling fetch: GET /posts/slug/unknown (apps/server/src/routes/__tests__/content.test.ts:359)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:359` calls `GET /posts/slug/unknown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/slug/unknown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25dc2710949f6c0c", "name": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:366)", "shortDescription": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:366)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:366` calls `GET /posts/slug/hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/slug/hello`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1330001a6dee57d9", "name": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:373)", "shortDescription": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:373)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:373` calls `GET /posts/slug/hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/slug/hello`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c92d946aa33f9ff", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:383)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:383)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:383` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88b1928bc8509cd1", "name": "Dangling fetch: PATCH /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:394)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:394)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:394` calls `PATCH /posts/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-177e39a85241cbcf", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:405)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:405)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:405` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f736177eca340900", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:419)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:419)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:419` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6223541989aa7f2f", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:434)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:434)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:434` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c357c813bcd7b744", "name": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:447)", "shortDescription": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:447)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:447` calls `PATCH /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd424bd635e11746", "name": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:461)", "shortDescription": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:461)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:461` calls `DELETE /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91de736083e2f4a7", "name": "Dangling fetch: DELETE /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:468)", "shortDescription": {"text": "Dangling fetch: DELETE /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:468)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:468` calls `DELETE /posts/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e9345d95df1ac8d", "name": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:475)", "shortDescription": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:475)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:475` calls `DELETE /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f18c8603a32779c", "name": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:484)", "shortDescription": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:484)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:484` calls `DELETE /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fecba34a4cbda5a", "name": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:493)", "shortDescription": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:493)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:493` calls `DELETE /posts/post-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/posts/post-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce470ef37a919733", "name": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:509)", "shortDescription": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:509)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:509` calls `GET /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a176a8f8d55655bf", "name": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:515)", "shortDescription": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:515)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:515` calls `GET /media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b83a570d5fa9cd65", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:528)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:528)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:528` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e0f0b676c02e6c07", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:535)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:535)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:535` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e17b06e81a2c2108", "name": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:542)", "shortDescription": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:542)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:542` calls `GET /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-461243f5ed194d73", "name": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content.test.ts:549)", "shortDescription": {"text": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content.test.ts:549)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:549` calls `GET /media/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94c5b3646d7e19b3", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:560)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:560)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:560` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7e73ff06df45928", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:574)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:574)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:574` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6639f5c0ea21b819", "name": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:587)", "shortDescription": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:587)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:587` calls `PATCH /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-037fd9f5e865278d", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:602)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:602)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:602` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b1e4ca512a0caa3", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:611)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:611)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:611` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de805bb0015db682", "name": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:619)", "shortDescription": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:619)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:619` calls `DELETE /media/media-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/media/media-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75c918961a41e104", "name": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:635)", "shortDescription": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:635)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:635` calls `GET /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee15113439356a8b", "name": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:641)", "shortDescription": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:641)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:641` calls `GET /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b97164320cb9b9f", "name": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:651)", "shortDescription": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:651)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:651` calls `GET /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22044bfaebdc2ecf", "name": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:663)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:663)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:663` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-229de57cedc78ff0", "name": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:675)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:675)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:675` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1a2a2c472d79602", "name": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:689)", "shortDescription": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:689)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:689` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ad5fcaa7a50ae47", "name": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:703)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:703)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:703` calls `GET /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38ffd01133d63737", "name": "Dangling fetch: GET /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:710)", "shortDescription": {"text": "Dangling fetch: GET /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:710)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:710` calls `GET /sites/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38be4499a2c1b025", "name": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:717)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:717)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:717` calls `GET /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b95d31ff7896bc0", "name": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:726)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:726)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:726` calls `GET /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b34db6dbc5dbacc", "name": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:733)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:733)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:733` calls `GET /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0d6d4a20a6013d3", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:743)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:743)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:743` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d70ad4b699557106", "name": "Dangling fetch: PATCH /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:754)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:754)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:754` calls `PATCH /sites/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-819a674fc679b00f", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:765)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:765)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:765` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5950f4ade8c56584", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:779)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:779)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:779` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b339ab644d32b3b", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:794)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:794)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:794` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4fbae214cdb9c81", "name": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:807)", "shortDescription": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:807)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:807` calls `PATCH /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6165063269114c62", "name": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:821)", "shortDescription": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:821)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:821` calls `DELETE /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02667f8f5b276639", "name": "Dangling fetch: DELETE /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:828)", "shortDescription": {"text": "Dangling fetch: DELETE /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:828)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:828` calls `DELETE /sites/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52bf74b47512291b", "name": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:835)", "shortDescription": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:835)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:835` calls `DELETE /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e73bd7ccf41190b", "name": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:844)", "shortDescription": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:844)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:844` calls `DELETE /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10335fb71fecefbc", "name": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:853)", "shortDescription": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:853)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:853` calls `DELETE /sites/site-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8748176b5cd02d18", "name": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:869)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:869)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:869` calls `GET /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28477efa5d9298c9", "name": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:881)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:881)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:881` calls `GET /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a84d2dd90fe4ef96", "name": "Dangling fetch: GET /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:888)", "shortDescription": {"text": "Dangling fetch: GET /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:888)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:888` calls `GET /sites/nonexistent/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/nonexistent/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d7434f660e55494", "name": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:895)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:895)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:895` calls `GET /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-789e7f5ab69c1607", "name": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:903)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:903)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:903` calls `GET /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40cbbc910d0d0bc6", "name": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:913)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:913)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:913` calls `GET /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d16aecd5cc9e58d4", "name": "Dangling fetch: GET /sites/site-1/pages?status=published (apps/server/src/routes/__tests__/content.test.ts:920)", "shortDescription": {"text": "Dangling fetch: GET /sites/site-1/pages?status=published (apps/server/src/routes/__tests__/content.test.ts:920)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:920` calls `GET /sites/site-1/pages?status=published` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-415236ab3c17f818", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:934)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:934)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:934` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26738560f2e4bd3a", "name": "Dangling fetch: POST /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:945)", "shortDescription": {"text": "Dangling fetch: POST /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:945)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:945` calls `POST /sites/nonexistent/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/nonexistent/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04d28d95c1b6440b", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:956)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:956)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:956` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8becead65ad2c2b3", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:969)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:969)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:969` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21a79d64deb5a2db", "name": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:982)", "shortDescription": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:982)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:982` calls `POST /sites/site-1/pages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites/site-1/pages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-053d5389f192f702", "name": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:997)", "shortDescription": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:997)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:997` calls `GET /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05dfe43f7e32479f", "name": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1004)", "shortDescription": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1004)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1004` calls `GET /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1951e84e4a53beb4", "name": "Dangling fetch: GET /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1013)", "shortDescription": {"text": "Dangling fetch: GET /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1013)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1013` calls `GET /pages/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07aa486f262a2ca4", "name": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1021)", "shortDescription": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1021)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1021` calls `GET /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f08ae89ced4fc43e", "name": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1029)", "shortDescription": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1029)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1029` calls `GET /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a47bbeb8cabc69b8", "name": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1036)", "shortDescription": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1036)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1036` calls `GET /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1e43262e645f203", "name": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1046)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1046)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1046` calls `PATCH /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b08e18b2df3767fa", "name": "Dangling fetch: PATCH /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1057)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1057)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1057` calls `PATCH /pages/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ebffcf7724232328", "name": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1069)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1069)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1069` calls `PATCH /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3322cc9ffcddc21", "name": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1084)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1084)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1084` calls `PATCH /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44fba76a4727d340", "name": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1099)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1099)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1099` calls `PATCH /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4820ca4cb85cdf4c", "name": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1113)", "shortDescription": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1113)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1113` calls `PATCH /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9b3cdb5a0cce2a1", "name": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1127)", "shortDescription": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1127)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1127` calls `DELETE /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-afa8d995dc71d154", "name": "Dangling fetch: DELETE /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1134)", "shortDescription": {"text": "Dangling fetch: DELETE /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1134)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1134` calls `DELETE /pages/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bea168dd36ecddb4", "name": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1142)", "shortDescription": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1142)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1142` calls `DELETE /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97a06168f08ee046", "name": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1152)", "shortDescription": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1152)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1152` calls `DELETE /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fcf701f6947068a", "name": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1161)", "shortDescription": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1161)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/content.test.ts:1161` calls `DELETE /pages/page-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pages/page-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31ecaa0a6606b01b", "name": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:109)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:109` calls `GET /export/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0fff431be169223", "name": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:116)", "shortDescription": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:116)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:116` calls `GET /export/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1de566403593a94e", "name": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:132)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:132` calls `GET /export/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5ace841749dffde", "name": "Dangling fetch: GET /export/sites?status=active (apps/server/src/routes/__tests__/export.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /export/sites?status=active (apps/server/src/routes/__tests__/export.test.ts:148)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:148` calls `GET /export/sites?status=active` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a7dcbcc8b172587", "name": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:161)", "shortDescription": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:161)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:161` calls `GET /export/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9484258dbc1b5364", "name": "Dangling fetch: GET /export/users (apps/server/src/routes/__tests__/export.test.ts:182)", "shortDescription": {"text": "Dangling fetch: GET /export/users (apps/server/src/routes/__tests__/export.test.ts:182)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:182` calls `GET /export/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf27ffa12602ee39", "name": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:205)", "shortDescription": {"text": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:205)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:205` calls `GET /export/posts?format=csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c7bee9c60e91c2a", "name": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:221)", "shortDescription": {"text": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:221)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:221` calls `GET /export/posts?format=csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/posts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7981047542fa9212", "name": "Dangling fetch: GET /export/tickets (apps/server/src/routes/__tests__/export.test.ts:234)", "shortDescription": {"text": "Dangling fetch: GET /export/tickets (apps/server/src/routes/__tests__/export.test.ts:234)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:234` calls `GET /export/tickets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/tickets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfdf3c469780b6c3", "name": "Dangling fetch: GET /export/media (apps/server/src/routes/__tests__/export.test.ts:245)", "shortDescription": {"text": "Dangling fetch: GET /export/media (apps/server/src/routes/__tests__/export.test.ts:245)"}, "fullDescription": {"text": "`apps/server/src/routes/__tests__/export.test.ts:245` calls `GET /export/media` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/export/media`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ccd69b458d9f3b4", "name": "Dangling fetch: GET /api/posts/${id} (packages/router/src/index.ts:26)", "shortDescription": {"text": "Dangling fetch: GET /api/posts/${id} (packages/router/src/index.ts:26)"}, "fullDescription": {"text": "`packages/router/src/index.ts:26` calls `GET /api/posts/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/posts/<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-e32891bd25d765f9", "name": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:81)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:81)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useEpisodicMemory.ts:81` calls `GET /api/memory/episodic/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/episodic/<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-ddd13e751a8df057", "name": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:115)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useEpisodicMemory.ts:115` calls `GET /api/memory/episodic/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/episodic/<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-ffea7d22b8681afe", "name": "Dangling fetch: POST /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:137)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:137)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useEpisodicMemory.ts:137` calls `POST /api/memory/episodic/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/episodic/<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-f3250573464ad995", "name": "Dangling fetch: DELETE /api/memory/episodic/${userId}/${memoryId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:167", "shortDescription": {"text": "Dangling fetch: DELETE /api/memory/episodic/${userId}/${memoryId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:167)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useEpisodicMemory.ts:167` calls `DELETE /api/memory/episodic/${userId}/${memoryId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/episodic/<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-d0caa30b532736a9", "name": "Dangling fetch: POST /api/memory/search-text (packages/ai/src/client/hooks/useEpisodicMemory.ts:197)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/search-text (packages/ai/src/client/hooks/useEpisodicMemory.ts:197)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useEpisodicMemory.ts:197` calls `POST /api/memory/search-text` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/search-text`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b44a6b527d7d4329", "name": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:72)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useAgentContext.ts:72` calls `GET /api/memory/context/${sessionId}/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/context/<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-15a7a5755ea46e57", "name": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:101)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:101)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useAgentContext.ts:101` calls `GET /api/memory/context/${sessionId}/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/context/<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-6f854247db1152e8", "name": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:138)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:138)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useAgentContext.ts:138` calls `POST /api/memory/context/${sessionId}/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/context/<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-a5c2b51fcb4925b1", "name": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:163)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:163)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useAgentContext.ts:163` calls `POST /api/memory/context/${sessionId}/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/context/<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-bc42e2556c3c1695", "name": "Dangling fetch: DELETE /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:188)", "shortDescription": {"text": "Dangling fetch: DELETE /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:188)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useAgentContext.ts:188` calls `DELETE /api/memory/context/${sessionId}/${agentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/context/<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-44fc272a1a012903", "name": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:200)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:200)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:200` calls `GET /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-24dc61fa745e7365", "name": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:232)", "shortDescription": {"text": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:232)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:232` calls `GET /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-ca8a440e9976d4aa", "name": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:264)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:264)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:264` calls `POST /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-b17f5c0f2343b9a4", "name": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:314)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:314)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:314` calls `POST /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-3e6edb7b41a3dec6", "name": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:340)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:340)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:340` calls `POST /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-b68da0d6fcb248b0", "name": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:366)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:366)"}, "fullDescription": {"text": "`packages/ai/src/client/hooks/useWorkingMemory.ts:366` calls `POST /api/memory/working/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/working/<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-5ca42db27500def4", "name": "Dangling fetch: POST /api/auth/mfa/setup (packages/auth/src/react/useMFA.ts:77)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/mfa/setup (packages/auth/src/react/useMFA.ts:77)"}, "fullDescription": {"text": "`packages/auth/src/react/useMFA.ts:77` calls `POST /api/auth/mfa/setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/mfa/setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b7e1886bea2d811", "name": "Dangling fetch: POST /api/auth/mfa/verify-setup (packages/auth/src/react/useMFA.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/mfa/verify-setup (packages/auth/src/react/useMFA.ts:110)"}, "fullDescription": {"text": "`packages/auth/src/react/useMFA.ts:110` calls `POST /api/auth/mfa/verify-setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/mfa/verify-setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-221bf1a28baaa918", "name": "Dangling fetch: POST /api/auth/mfa/verify (packages/auth/src/react/useMFA.ts:188)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/mfa/verify (packages/auth/src/react/useMFA.ts:188)"}, "fullDescription": {"text": "`packages/auth/src/react/useMFA.ts:188` calls `POST /api/auth/mfa/verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/mfa/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-8470191ef3b54a9e", "name": "Dangling fetch: POST /api/auth/mfa/backup (packages/auth/src/react/useMFA.ts:222)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/mfa/backup (packages/auth/src/react/useMFA.ts:222)"}, "fullDescription": {"text": "`packages/auth/src/react/useMFA.ts:222` calls `POST /api/auth/mfa/backup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/mfa/backup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b85533fcfa6a6fac", "name": "Dangling fetch: POST /api/auth/sign-out (packages/auth/src/react/useSignOut.ts:54)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sign-out (packages/auth/src/react/useSignOut.ts:54)"}, "fullDescription": {"text": "`packages/auth/src/react/useSignOut.ts:54` calls `POST /api/auth/sign-out` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sign-out`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f652a8e74ef5ae6", "name": "Dangling fetch: POST /api/auth/sign-in (packages/auth/src/react/useSignIn.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sign-in (packages/auth/src/react/useSignIn.ts:98)"}, "fullDescription": {"text": "`packages/auth/src/react/useSignIn.ts:98` calls `POST /api/auth/sign-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sign-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-531a6b1fc48d81c0", "name": "Dangling fetch: POST /api/auth/passkey/register-options (packages/auth/src/react/usePasskey.ts:87)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/passkey/register-options (packages/auth/src/react/usePasskey.ts:87)"}, "fullDescription": {"text": "`packages/auth/src/react/usePasskey.ts:87` calls `POST /api/auth/passkey/register-options` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/passkey/register-options`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ee287c780194829", "name": "Dangling fetch: POST /api/auth/passkey/register-verify (packages/auth/src/react/usePasskey.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/passkey/register-verify (packages/auth/src/react/usePasskey.ts:119)"}, "fullDescription": {"text": "`packages/auth/src/react/usePasskey.ts:119` calls `POST /api/auth/passkey/register-verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/passkey/register-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-892436d01dd6a7d7", "name": "Dangling fetch: POST /api/auth/passkey/authenticate-options (packages/auth/src/react/usePasskey.ts:225)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/passkey/authenticate-options (packages/auth/src/react/usePasskey.ts:225)"}, "fullDescription": {"text": "`packages/auth/src/react/usePasskey.ts:225` calls `POST /api/auth/passkey/authenticate-options` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/passkey/authenticate-options`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-317fa827c4ef3e1d", "name": "Dangling fetch: POST /api/auth/passkey/authenticate-verify (packages/auth/src/react/usePasskey.ts:251)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/passkey/authenticate-verify (packages/auth/src/react/usePasskey.ts:251)"}, "fullDescription": {"text": "`packages/auth/src/react/usePasskey.ts:251` calls `POST /api/auth/passkey/authenticate-verify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/passkey/authenticate-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-0706b680783be84a", "name": "Dangling fetch: POST /api/auth/sign-up (packages/auth/src/react/useSignUp.ts:89)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sign-up (packages/auth/src/react/useSignUp.ts:89)"}, "fullDescription": {"text": "`packages/auth/src/react/useSignUp.ts:89` calls `POST /api/auth/sign-up` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sign-up`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b6265196a9c45f8", "name": "Dangling fetch: GET /api/auth/session (packages/auth/src/react/useSession.ts:85)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/session (packages/auth/src/react/useSession.ts:85)"}, "fullDescription": {"text": "`packages/auth/src/react/useSession.ts:85` calls `GET /api/auth/session` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/session`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd3483be574acc8b", "name": "Dangling fetch: GET https://api.pwnedpasswords.com/range/${prefix} (packages/auth/src/server/password-validation.ts:85)", "shortDescription": {"text": "Dangling fetch: GET https://api.pwnedpasswords.com/range/${prefix} (packages/auth/src/server/password-validation.ts:85)"}, "fullDescription": {"text": "`packages/auth/src/server/password-validation.ts:85` calls `GET https://api.pwnedpasswords.com/range/${prefix}` 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.pwnedpasswords.com/range/<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-1e443e0ba4f96595", "name": "Dangling fetch: POST https://github.com/login/oauth/access_token (packages/auth/src/server/providers/github.ts:49)", "shortDescription": {"text": "Dangling fetch: POST https://github.com/login/oauth/access_token (packages/auth/src/server/providers/github.ts:49)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/github.ts:49` calls `POST https://github.com/login/oauth/access_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:/github.com/login/oauth/access_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-79194ad85327d9bf", "name": "Dangling fetch: GET https://api.github.com/user (packages/auth/src/server/providers/github.ts:87)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/user (packages/auth/src/server/providers/github.ts:87)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/github.ts:87` calls `GET https://api.github.com/user` 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/user`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7047c5d97d4501f", "name": "Dangling fetch: GET https://api.github.com/user/emails (packages/auth/src/server/providers/github.ts:114)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/user/emails (packages/auth/src/server/providers/github.ts:114)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/github.ts:114` calls `GET https://api.github.com/user/emails` 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/user/emails`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdfee7017578bd8a", "name": "Dangling fetch: POST https://api.vercel.com/v2/oauth/access_token (packages/auth/src/server/providers/vercel.ts:28)", "shortDescription": {"text": "Dangling fetch: POST https://api.vercel.com/v2/oauth/access_token (packages/auth/src/server/providers/vercel.ts:28)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/vercel.ts:28` calls `POST https://api.vercel.com/v2/oauth/access_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:/api.vercel.com/v2/oauth/access_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-c23f3d3b042bb54e", "name": "Dangling fetch: GET https://api.vercel.com/v2/user (packages/auth/src/server/providers/vercel.ts:63)", "shortDescription": {"text": "Dangling fetch: GET https://api.vercel.com/v2/user (packages/auth/src/server/providers/vercel.ts:63)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/vercel.ts:63` calls `GET https://api.vercel.com/v2/user` 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.vercel.com/v2/user`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46b071e89b44a07b", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/auth/src/server/providers/google.ts:45)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/auth/src/server/providers/google.ts:45)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/google.ts:45` 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-2a973608fc17f3d6", "name": "Dangling fetch: GET https://openidconnect.googleapis.com/v1/userinfo (packages/auth/src/server/providers/google.ts:72)", "shortDescription": {"text": "Dangling fetch: GET https://openidconnect.googleapis.com/v1/userinfo (packages/auth/src/server/providers/google.ts:72)"}, "fullDescription": {"text": "`packages/auth/src/server/providers/google.ts:72` calls `GET https://openidconnect.googleapis.com/v1/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:/openidconnect.googleapis.com/v1/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-67a00ee05c9b4f48", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/mcp/src/servers/_email-provider.ts:67)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/mcp/src/servers/_email-provider.ts:67)"}, "fullDescription": {"text": "`packages/mcp/src/servers/_email-provider.ts:67` 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-586bdb4a3ca830cb", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/mcp/src/servers/_email-provi", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/mcp/src/servers/_email-provider.ts:127)"}, "fullDescription": {"text": "`packages/mcp/src/servers/_email-provider.ts:127` 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-beac3dc1ab72f6ad", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:60)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:60` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c35b336badbb9710", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:77)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:77` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-42be9ecc05fb4040", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:94)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:94)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:94` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fcdb9f7bde1b786f", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:109)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:109` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-aa6b32e9070e6a44", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:125)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:125` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6c8deaaea6389ff5", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:139)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:139)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:139` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-20d40ea73fb15d63", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:153)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:153` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ab6ff43e3a31e115", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:172)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:172)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:172` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8c5d0b914f383131", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:184)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:184)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:184` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f2dc54bc274d3bd2", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:196)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:196)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:196` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fee8a735ae31af65", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:208)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:208)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:208` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f038c08240e8ac2b", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:220)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:220)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:220` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-707bb267e9094300", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:240)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:240)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:240` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6ebc530dde50904c", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:255)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:255)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:255` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2bbe342e61f63eb6", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:267)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:267)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:267` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-e7ab2ed37087d67b", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:318)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:318)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:318` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-cc4bcf55383e10f0", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:330)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:330)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:330` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b2a75ff265ed3050", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:344)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:344)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:344` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2101661a448ad5fd", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:363)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:363)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:363` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-90d677ee6927f1ff", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:373)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:373)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:373` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f14eac80dd98325e", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:385)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:385)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:385` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-5a9afc0d6fc7bf0d", "name": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:396)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:396)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-error-handler.integration.test.ts:396` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-2a3ded643bd908b1", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:95)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:95` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fdcb12f8fd7ea740", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:101)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:101)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:101` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b792439977a7db27", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:107)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:107` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-febafd840776e490", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:120)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:120)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:120` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fb0bb52c61b86ff4", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:134)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:134` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-9ac1f2fa7b123b77", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:148)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:148` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3e30433b65124a59", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:169)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:169)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:169` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-165a7df011d7e379", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:174)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:174)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:174` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6d0a0fa1bed7340b", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:179)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:179)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:179` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-ed4f4cfd3fcc6dc0", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:201)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:201)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:201` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-72a7b8853f26779f", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:221)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:221)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:221` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c87f8927bcb8ced2", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:241)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:241)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:241` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f938e18efcec4c8d", "name": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:261)", "shortDescription": {"text": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:261)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:261` calls `OPTIONS /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-6326acf3d4594120", "name": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:281)", "shortDescription": {"text": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:281)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:281` calls `OPTIONS /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f1b17b1294c3f3b4", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:305)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:305)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:305` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-e2b6b7818bec395b", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:318)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:318)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:318` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-1bfc0dc4e90188c5", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:333)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:333)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:333` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-0f8a1010b1271acc", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:347)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:347)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:347` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-3baa776cb338d723", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:362)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:362)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:362` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-fe0b9bfd3ef3819c", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:367)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:367)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:367` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-14cbe1bf22260da3", "name": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:373)", "shortDescription": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:373)"}, "fullDescription": {"text": "`packages/test/src/integration/api/api-cors.integration.test.ts:373` calls `GET /health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-62ac080992fac877", "name": "Dangling fetch: GET /api/1 (packages/scripts/parallel.ts:358)", "shortDescription": {"text": "Dangling fetch: GET /api/1 (packages/scripts/parallel.ts:358)"}, "fullDescription": {"text": "`packages/scripts/parallel.ts:358` calls `GET /api/1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<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-39a9cc963ea20ad0", "name": "Dangling fetch: GET /api/2 (packages/scripts/parallel.ts:358)", "shortDescription": {"text": "Dangling fetch: GET /api/2 (packages/scripts/parallel.ts:358)"}, "fullDescription": {"text": "`packages/scripts/parallel.ts:358` calls `GET /api/2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<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-7fd0238f0adae447", "name": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:", "shortDescription": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:194)"}, "fullDescription": {"text": "`packages/cache/src/cdn-config.ts:194` calls `POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache` 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.cloudflare.com/client/v4/zones/<p>/purge_cache`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0aadd0b34d93acec", "name": "Dangling fetch: POST https://api.vercel.com/v1/purge (packages/cache/src/cdn-config.ts:236)", "shortDescription": {"text": "Dangling fetch: POST https://api.vercel.com/v1/purge (packages/cache/src/cdn-config.ts:236)"}, "fullDescription": {"text": "`packages/cache/src/cdn-config.ts:236` calls `POST https://api.vercel.com/v1/purge` 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.vercel.com/v1/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-d542aea623d134d0", "name": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:", "shortDescription": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:318)"}, "fullDescription": {"text": "`packages/cache/src/cdn-config.ts:318` calls `POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache` 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.cloudflare.com/client/v4/zones/<p>/purge_cache`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1cba6d43cb61536", "name": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:", "shortDescription": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:363)"}, "fullDescription": {"text": "`packages/cache/src/cdn-config.ts:363` calls `POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache` 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.cloudflare.com/client/v4/zones/<p>/purge_cache`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-390110b7aad72cf9", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/services/src/email/index.ts:135)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/services/src/email/index.ts:135)"}, "fullDescription": {"text": "`packages/services/src/email/index.ts:135` 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-ea047d9d42a46883", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/services/src/email/index.ts:", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/services/src/email/index.ts:202)"}, "fullDescription": {"text": "`packages/services/src/email/index.ts:202` 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-3dc6e4a688eeaf53", "name": "Dangling fetch: POST /api/auth/sign-out (packages/core/src/client/admin/utils/csrf.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sign-out (packages/core/src/client/admin/utils/csrf.ts:44)"}, "fullDescription": {"text": "`packages/core/src/client/admin/utils/csrf.ts:44` calls `POST /api/auth/sign-out` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sign-out`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8de6b749829b7356", "name": "Dangling fetch: POST /api/batch/delete (packages/core/src/client/admin/utils/apiClient.ts:309)", "shortDescription": {"text": "Dangling fetch: POST /api/batch/delete (packages/core/src/client/admin/utils/apiClient.ts:309)"}, "fullDescription": {"text": "`packages/core/src/client/admin/utils/apiClient.ts:309` calls `POST /api/batch/delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-a43216bb17fb275a", "name": "Dangling fetch: POST /api/batch/update (packages/core/src/client/admin/utils/apiClient.ts:325)", "shortDescription": {"text": "Dangling fetch: POST /api/batch/update (packages/core/src/client/admin/utils/apiClient.ts:325)"}, "fullDescription": {"text": "`packages/core/src/client/admin/utils/apiClient.ts:325` calls `POST /api/batch/update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/batch/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-7c2398e0e9885111", "name": "Dangling fetch: GET https://api.example.com/users (packages/core/src/utils/request-context.ts:204)", "shortDescription": {"text": "Dangling fetch: GET https://api.example.com/users (packages/core/src/utils/request-context.ts:204)"}, "fullDescription": {"text": "`packages/core/src/utils/request-context.ts:204` calls `GET https://api.example.com/users` 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.example.com/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1145479474291de1", "name": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/index.ts:22)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/index.ts:22)"}, "fullDescription": {"text": "`packages/paywall/src/client/index.ts:22` 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-98d03378ddcf4e47", "name": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/PaywallProvider.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/PaywallProvider.tsx:34)"}, "fullDescription": {"text": "`packages/paywall/src/client/PaywallProvider.tsx:34` 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-7128787fe0076192", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:29)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:29)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:29` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-3ee499652a771c91", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:41)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:41` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-e6c2ab26e4ed4512", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:57)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:57` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-bd90b8bd3d1dee42", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:69)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:69` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-4e1e327e3ffbe76f", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:83)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:83` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-3d26ef35fc55affb", "name": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:101)", "shortDescription": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:101)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:101` calls `GET /ai/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ai/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-0cc648e9a98a305b", "name": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:114)", "shortDescription": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:114)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:114` calls `GET /admin/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/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-d070fdc4aaf81587", "name": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:125)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:125` calls `GET /admin/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/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-44e29bb570fc2911", "name": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:136)", "shortDescription": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:136)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:136` calls `GET /admin/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/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-5720832dafa129e8", "name": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:151)", "shortDescription": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:151)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:151` calls `GET /admin/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/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-c7599f3b99219d29", "name": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:167)", "shortDescription": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:167)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:167` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-676092f3175b77d9", "name": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:183)", "shortDescription": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:183)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:183` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d7484b5b4cfc4a2", "name": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:205)", "shortDescription": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:205)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:205` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f4401badd905495", "name": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:220)", "shortDescription": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:220)"}, "fullDescription": {"text": "`packages/paywall/src/server/__tests__/hono.test.ts:220` calls `POST /sites` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sites`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6525dc4fbc31f75", "name": "Dangling fetch: GET /test?page=5 (packages/openapi/src/__tests__/openapi-hono.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /test?page=5 (packages/openapi/src/__tests__/openapi-hono.test.ts:58)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:58` calls `GET /test?page=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-c7f37eb7acc8d983", "name": "Dangling fetch: GET /test?page=0 (packages/openapi/src/__tests__/openapi-hono.test.ts:76)", "shortDescription": {"text": "Dangling fetch: GET /test?page=0 (packages/openapi/src/__tests__/openapi-hono.test.ts:76)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:76` calls `GET /test?page=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-4d6dce9008361a4d", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:103)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:103` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-02d47eea62cbcf1e", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:136)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:136)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:136` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-094d5f90238140a0", "name": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:162)", "shortDescription": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:162)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:162` calls `GET /openapi.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/openapi.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-a87f575c5c0ea874", "name": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:191)", "shortDescription": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:191)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:191` calls `GET /openapi.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/openapi.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-4a58bc1ede9a2be6", "name": "Dangling fetch: GET /api/v1/openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:222)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:222)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:222` calls `GET /api/v1/openapi.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/openapi.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-876d39bfc319d708", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:255)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:255)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:255` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b4440f39fb04e32a", "name": "Dangling fetch: GET /test?q=hello (packages/openapi/src/__tests__/openapi-hono.test.ts:291)", "shortDescription": {"text": "Dangling fetch: GET /test?q=hello (packages/openapi/src/__tests__/openapi-hono.test.ts:291)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:291` calls `GET /test?q=hello` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-d0e32c406a478ffa", "name": "Dangling fetch: GET /openapi31.json (packages/openapi/src/__tests__/openapi-hono.test.ts:323)", "shortDescription": {"text": "Dangling fetch: GET /openapi31.json (packages/openapi/src/__tests__/openapi-hono.test.ts:323)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:323` calls `GET /openapi31.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/openapi31.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-5966ee6e333b9e4b", "name": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:375)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:375)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:375` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-56584742b40af6c0", "name": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:381)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:381)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:381` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-982fa9feb36e6793", "name": "Dangling fetch: GET /users/user-123 (packages/openapi/src/__tests__/openapi-hono.test.ts:409)", "shortDescription": {"text": "Dangling fetch: GET /users/user-123 (packages/openapi/src/__tests__/openapi-hono.test.ts:409)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:409` calls `GET /users/user-123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/user-123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb5b8de0efd72a22", "name": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:436)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:436)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:436` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-f065be5922350341", "name": "Dangling fetch: POST /submit (packages/openapi/src/__tests__/openapi-hono.test.ts:470)", "shortDescription": {"text": "Dangling fetch: POST /submit (packages/openapi/src/__tests__/openapi-hono.test.ts:470)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:470` calls `POST /submit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/submit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ca68f94a9e32843", "name": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:497)", "shortDescription": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:497)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/openapi-hono.test.ts:497` calls `GET /openapi.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/openapi.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-d10667079ccf30c1", "name": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:157)", "shortDescription": {"text": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:157)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/integration.test.ts:157` calls `POST /items` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/items`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cef05f5cbb50b83", "name": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:166)", "shortDescription": {"text": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:166)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/integration.test.ts:166` calls `POST /items` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/items`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b145048301c0ec3", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:16)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:16)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:16` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b81d064f626fcfe9", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:34)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:34)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:34` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-8f11aa99ff0e5172", "name": "Dangling fetch: GET /test?page=3 (packages/openapi/src/__tests__/zod-validator.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /test?page=3 (packages/openapi/src/__tests__/zod-validator.test.ts:52)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:52` calls `GET /test?page=3` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-88ec89d39466a8cf", "name": "Dangling fetch: GET /users/abc123 (packages/openapi/src/__tests__/zod-validator.test.ts:67)", "shortDescription": {"text": "Dangling fetch: GET /users/abc123 (packages/openapi/src/__tests__/zod-validator.test.ts:67)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:67` calls `GET /users/abc123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/users/abc123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-848b6643a92ab6b8", "name": "Dangling fetch: GET /test (packages/openapi/src/__tests__/zod-validator.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/zod-validator.test.ts:82)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:82` calls `GET /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-df56ba7c8b94c211", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:106)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:106` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-cce7cf577fcc1c79", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:133)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:133` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-62b93185e1100301", "name": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:151)"}, "fullDescription": {"text": "`packages/openapi/src/__tests__/zod-validator.test.ts:151` calls `POST /test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/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-b8073f7bf758f6d0", "name": "Unused endpoint: USE /api/*", "shortDescription": {"text": "Unused endpoint: USE /api/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/*` 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-765b3181318378b8", "name": "Unused endpoint: USE /api/v1/*", "shortDescription": {"text": "Unused endpoint: USE /api/v1/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/*` 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-673f67c7fbc2000e", "name": "Unused endpoint: USE /api/license/generate", "shortDescription": {"text": "Unused endpoint: USE /api/license/generate"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/license/generate` 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-b044c7be07a209d4", "name": "Unused endpoint: USE /api/v1/license/generate", "shortDescription": {"text": "Unused endpoint: USE /api/v1/license/generate"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/license/generate` 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-765fd8b6f861bd96", "name": "Unused endpoint: USE /a2a/agents", "shortDescription": {"text": "Unused endpoint: USE /a2a/agents"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /a2a/agents` 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-1881f04a4f589c48", "name": "Unused endpoint: USE /a2a/agents/*", "shortDescription": {"text": "Unused endpoint: USE /a2a/agents/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /a2a/agents/*` 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-dbfe30ed2247f8c8", "name": "Unused endpoint: USE /api/agent-tasks/*", "shortDescription": {"text": "Unused endpoint: USE /api/agent-tasks/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/agent-tasks/*` 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-4dcc85335dd01d24", "name": "Unused endpoint: USE /api/v1/agent-tasks/*", "shortDescription": {"text": "Unused endpoint: USE /api/v1/agent-tasks/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/agent-tasks/*` 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-2ff4499ca050c0b5", "name": "Unused endpoint: USE /api/agent-stream", "shortDescription": {"text": "Unused endpoint: USE /api/agent-stream"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/agent-stream` 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-565a8789e2cec846", "name": "Unused endpoint: USE /api/v1/agent-stream", "shortDescription": {"text": "Unused endpoint: USE /api/v1/agent-stream"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/agent-stream` 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-f4adf683ae3d9a31", "name": "Unused endpoint: USE /api/rag/*", "shortDescription": {"text": "Unused endpoint: USE /api/rag/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/rag/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4bd0ecc292783d75", "name": "Unused endpoint: USE /api/v1/rag/*", "shortDescription": {"text": "Unused endpoint: USE /api/v1/rag/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/rag/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa928aaa2b5be38a", "name": "Unused endpoint: USE /api/errors", "shortDescription": {"text": "Unused endpoint: USE /api/errors"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/errors` 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-744f68f443afbfca", "name": "Unused endpoint: USE /api/v1/errors", "shortDescription": {"text": "Unused endpoint: USE /api/v1/errors"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/errors` 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-e4b2c2b7682a8346", "name": "Unused endpoint: USE /api/logs", "shortDescription": {"text": "Unused endpoint: USE /api/logs"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/logs` 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-6b9878140778bfe3", "name": "Unused endpoint: USE /api/v1/logs", "shortDescription": {"text": "Unused endpoint: USE /api/v1/logs"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/logs` 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-1f57152d7326fb12", "name": "Unused endpoint: USE /api/api-keys/*", "shortDescription": {"text": "Unused endpoint: USE /api/api-keys/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/api-keys/*` 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-959929931305310e", "name": "Unused endpoint: USE /api/v1/api-keys/*", "shortDescription": {"text": "Unused endpoint: USE /api/v1/api-keys/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/api-keys/*` 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-99350a35220a8c5d", "name": "Unused endpoint: USE /api/billing/checkout", "shortDescription": {"text": "Unused endpoint: USE /api/billing/checkout"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/checkout` 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-0eee6c1769001274", "name": "Unused endpoint: USE /api/v1/billing/checkout", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/checkout"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/checkout` 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-26e02049beb927a8", "name": "Unused endpoint: USE /api/billing/upgrade", "shortDescription": {"text": "Unused endpoint: USE /api/billing/upgrade"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/upgrade` 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-4c39161c077d536d", "name": "Unused endpoint: USE /api/v1/billing/upgrade", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/upgrade"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/upgrade` 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-db290b14d61c2f3a", "name": "Unused endpoint: USE /api/billing/downgrade", "shortDescription": {"text": "Unused endpoint: USE /api/billing/downgrade"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/downgrade` 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-602dc1c8ab301c8d", "name": "Unused endpoint: USE /api/v1/billing/downgrade", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/downgrade"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/downgrade` 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-64dba40532a808cd", "name": "Unused endpoint: USE /api/billing/checkout-perpetual", "shortDescription": {"text": "Unused endpoint: USE /api/billing/checkout-perpetual"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/checkout-perpetual` 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-cc5bcbd9b66a2122", "name": "Unused endpoint: USE /api/v1/billing/checkout-perpetual", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/checkout-perpetual"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/checkout-perpetual` 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-77f7aa305e44af4e", "name": "Unused endpoint: USE /api/billing/portal", "shortDescription": {"text": "Unused endpoint: USE /api/billing/portal"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/portal` 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-68cb1110306743f8", "name": "Unused endpoint: USE /api/v1/billing/portal", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/portal"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/portal` 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-80e19701ca6363c2", "name": "Unused endpoint: USE /api/billing/refund", "shortDescription": {"text": "Unused endpoint: USE /api/billing/refund"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/refund` 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-603ac855c06951d0", "name": "Unused endpoint: USE /api/v1/billing/refund", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/refund"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/refund` 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-109a657c98d9ff15", "name": "Unused endpoint: USE /api/billing/checkout-credits", "shortDescription": {"text": "Unused endpoint: USE /api/billing/checkout-credits"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/checkout-credits` 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-525f3c371b54253a", "name": "Unused endpoint: USE /api/v1/billing/checkout-credits", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/checkout-credits"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/checkout-credits` 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-e5434bcbdad3556e", "name": "Unused endpoint: USE /api/billing/checkout-support-renewal", "shortDescription": {"text": "Unused endpoint: USE /api/billing/checkout-support-renewal"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/checkout-support-renewal` 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-4a6f84966215a0f0", "name": "Unused endpoint: USE /api/v1/billing/checkout-support-renewal", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/checkout-support-renewal"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/checkout-support-renewal` 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-8a37bdb7351f91f3", "name": "Unused endpoint: USE /api/billing/subscription", "shortDescription": {"text": "Unused endpoint: USE /api/billing/subscription"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/subscription` 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-a3086bb47647d81f", "name": "Unused endpoint: USE /api/v1/billing/subscription", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/subscription"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/subscription` 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-0513c65688b28a73", "name": "Unused endpoint: USE /api/billing/usage", "shortDescription": {"text": "Unused endpoint: USE /api/billing/usage"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/usage` 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-73554ef8f1a24900", "name": "Unused endpoint: USE /api/v1/billing/usage", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/usage"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/usage` 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-8eb741ed826523be", "name": "Unused endpoint: USE /api/billing/credits", "shortDescription": {"text": "Unused endpoint: USE /api/billing/credits"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/credits` 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-ee69659fb075da0c", "name": "Unused endpoint: USE /api/v1/billing/credits", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/credits"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/credits` 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-c025be5c62c0dbf4", "name": "Unused endpoint: USE /api/billing/invoices", "shortDescription": {"text": "Unused endpoint: USE /api/billing/invoices"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/invoices` 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-ecc5722bc9d92bc5", "name": "Unused endpoint: USE /api/v1/billing/invoices", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/invoices"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/invoices` 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-55e49857c48960a0", "name": "Unused endpoint: USE /api/billing/pause", "shortDescription": {"text": "Unused endpoint: USE /api/billing/pause"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/pause` 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-744ff161bf1b6fa5", "name": "Unused endpoint: USE /api/v1/billing/pause", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/pause"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/pause` 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-b7ea5cd88377b82b", "name": "Unused endpoint: USE /api/billing/resume", "shortDescription": {"text": "Unused endpoint: USE /api/billing/resume"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/resume` 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-8997c5bcf36ffce1", "name": "Unused endpoint: USE /api/v1/billing/resume", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/resume"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/resume` 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-dd17609826e2c55d", "name": "Unused endpoint: USE /api/billing/metrics", "shortDescription": {"text": "Unused endpoint: USE /api/billing/metrics"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/billing/metrics` 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-0f890b8e37a9f390", "name": "Unused endpoint: USE /api/v1/billing/metrics", "shortDescription": {"text": "Unused endpoint: USE /api/v1/billing/metrics"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/billing/metrics` 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-ce4b1afd92f76340", "name": "Unused endpoint: USE /api/content/batch/*", "shortDescription": {"text": "Unused endpoint: USE /api/content/batch/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/content/batch/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-24b49c0033cb52b8", "name": "Unused endpoint: USE /api/v1/content/batch/*", "shortDescription": {"text": "Unused endpoint: USE /api/v1/content/batch/*"}, "fullDescription": {"text": "`apps/server/src/index.ts` declares `USE /api/v1/content/batch/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18139"}, "properties": {"repository": "RevealUIStudio/revealui", "repoUrl": "https://github.com/RevealUIStudio/revealui", "branch": "main"}, "results": [{"ruleId": "scanner-0c1bac7f44612722", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/docs/vite.config.ts:108"}, "properties": {"repobilityId": "c3d70828d8f29d53", "scanner": "scanner-primary", "fingerprint": "0c1bac7f44612722", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84f514f2b8567245", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/SearchBar.tsx:170"}, "properties": {"repobilityId": "eec200c462b3cf7c", "scanner": "scanner-primary", "fingerprint": "84f514f2b8567245", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d27796f3b77dce1d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/docs/app/components/showcase/TokensPage.tsx:105"}, "properties": {"repobilityId": "2d93819b364d666c", "scanner": "scanner-primary", "fingerprint": "d27796f3b77dce1d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fc84d404cf3dd115", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/scripts/create-globals.ts:10"}, "properties": {"repobilityId": "ba1968a9e011ddcf", "scanner": "scanner-primary", "fingerprint": "fc84d404cf3dd115", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-18f3ee035b894410", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/admin/src/instrumentation.ts:46"}, "properties": {"repobilityId": "9c90a1956d4ef402", "scanner": "scanner-primary", "fingerprint": "18f3ee035b894410", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-363ce22315f091ad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts:61"}, "properties": {"repobilityId": "014a9bc4bf268e21", "scanner": "scanner-primary", "fingerprint": "363ce22315f091ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-402b769f976d8c00", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 apps/admin/src/__tests__/blocks/schema-adapter.test.ts:112"}, "properties": {"repobilityId": "847711267e403f15", "scanner": "scanner-primary", "fingerprint": "402b769f976d8c00", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-b7df58651fe8542c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/components/revealui/elements/announcement-badge.tsx:32"}, "properties": {"repobilityId": "e54db73c5da66af3", "scanner": "scanner-primary", "fingerprint": "b7df58651fe8542c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0cd5fc74efe6b404", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/security/page.tsx:856"}, "properties": {"repobilityId": "0d0c479113d27607", "scanner": "scanner-primary", "fingerprint": "0cd5fc74efe6b404", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6de14e562eb42a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/settings/account/page.tsx:287"}, "properties": {"repobilityId": "dffa8f7deee8c8d1", "scanner": "scanner-primary", "fingerprint": "f6de14e562eb42a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a097275e1630a9fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/marketplace/tasks/page.tsx:200"}, "properties": {"repobilityId": "ee3a9ff2a8c2579b", "scanner": "scanner-primary", "fingerprint": "a097275e1630a9fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96cf5a9c686a546e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/chat/page.tsx:113"}, "properties": {"repobilityId": "1f432c16e9d0ef7d", "scanner": "scanner-primary", "fingerprint": "96cf5a9c686a546e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2efda45da89e596a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/coordination/page.tsx:240"}, "properties": {"repobilityId": "9d3ee6000e62669f", "scanner": "scanner-primary", "fingerprint": "2efda45da89e596a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31a5849cc053b066", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:332"}, "properties": {"repobilityId": "a1b384a5987771f0", "scanner": "scanner-primary", "fingerprint": "31a5849cc053b066", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c69ee9f617fda6f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(backend)/jobs/page.tsx:420"}, "properties": {"repobilityId": "28c62864c090acf7", "scanner": "scanner-primary", "fingerprint": "c69ee9f617fda6f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4bbe417800e98367", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/app/(frontend)/layout.tsx:70"}, "properties": {"repobilityId": "6c3b9b98559b8ac3", "scanner": "scanner-primary", "fingerprint": "4bbe417800e98367", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-416135b4dd6a5316", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/app/(frontend)/welcome/page.tsx:84"}, "properties": {"repobilityId": "98dfa022b0df0ef0", "scanner": "scanner-primary", "fingerprint": "416135b4dd6a5316", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-687c1932b9fbe936", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/mcp/resources-panel.tsx:131"}, "properties": {"repobilityId": "5daa91a7fed97a53", "scanner": "scanner-primary", "fingerprint": "687c1932b9fbe936", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-01cbd53688c6b8a4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/task-history.tsx:98"}, "properties": {"repobilityId": "eedad3185b2ac86c", "scanner": "scanner-primary", "fingerprint": "01cbd53688c6b8a4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7dd62b22a8dedd72", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/agents/agent-card.tsx:32"}, "properties": {"repobilityId": "74c0bba9430dcb7c", "scanner": "scanner-primary", "fingerprint": "7dd62b22a8dedd72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-86f27222bb25d625", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:412"}, "properties": {"repobilityId": "4451daba12194e9e", "scanner": "scanner-primary", "fingerprint": "86f27222bb25d625", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5cfbd88000ab1d04", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8"}, "properties": {"repobilityId": "b825c804e232c8cb", "scanner": "scanner-primary", "fingerprint": "5cfbd88000ab1d04", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3bbe858f224dd4b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/admin/src/lib/collections/Products/examples/populate-examples.ts:38"}, "properties": {"repobilityId": "0255c65c3dfcaaf6", "scanner": "scanner-primary", "fingerprint": "3bbe858f224dd4b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-18069d1e68f3e351", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/admin/src/lib/features/embed/components/EmbedNodeComponent.tsx:55"}, "properties": {"repobilityId": "133439ff2cc7baaf", "scanner": "scanner-primary", "fingerprint": "18069d1e68f3e351", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad11f93d114afbf3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/webhooks.ts:953"}, "properties": {"repobilityId": "0fd52cf27a6f7baa", "scanner": "scanner-primary", "fingerprint": "ad11f93d114afbf3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-92fedc12c63a66e6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/gdpr.ts:387"}, "properties": {"repobilityId": "615e2abf55a53c2c", "scanner": "scanner-primary", "fingerprint": "92fedc12c63a66e6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-18d10d4503055f8b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:450"}, "properties": {"repobilityId": "7f945c312379d4fc", "scanner": "scanner-primary", "fingerprint": "18d10d4503055f8b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7aef0e617702f6c4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/server/src/services/revmarket-executor.ts:231"}, "properties": {"repobilityId": "c13a139d90595814", "scanner": "scanner-primary", "fingerprint": "7aef0e617702f6c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4c020c1305806b18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-fleet-marketing-site.ts:36"}, "properties": {"repobilityId": "db7a5330816ab489", "scanner": "scanner-primary", "fingerprint": "4c020c1305806b18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f18965fd60850ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/electric-latency-probe/probe.ts:379"}, "properties": {"repobilityId": "7f50acd272e424b4", "scanner": "scanner-primary", "fingerprint": "6f18965fd60850ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69bef1544b75b406", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/verify-backup.ts:190"}, "properties": {"repobilityId": "1bfeee801d6c0d85", "scanner": "scanner-primary", "fingerprint": "69bef1544b75b406", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-830adba0d33e49cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/commands/database/check-unreconciled.ts:49"}, "properties": {"repobilityId": "762d4bd4444a2b94", "scanner": "scanner-primary", "fingerprint": "830adba0d33e49cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a552c40e745acbb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/docs/generate-api.ts:214"}, "properties": {"repobilityId": "01657d0debf4698c", "scanner": "scanner-primary", "fingerprint": "a552c40e745acbb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c12af87e500752c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/_base.ts:210"}, "properties": {"repobilityId": "bba8b9226e9673c8", "scanner": "scanner-primary", "fingerprint": "3c12af87e500752c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5102004ea079904", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/release.ts:176"}, "properties": {"repobilityId": "3920042120bbdac3", "scanner": "scanner-primary", "fingerprint": "e5102004ea079904", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af393780d1ea40b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/scripts.ts:165"}, "properties": {"repobilityId": "9a93be4a44383cc5", "scanner": "scanner-primary", "fingerprint": "af393780d1ea40b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f995a8f4632e88a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/utils/base.ts:34"}, "properties": {"repobilityId": "dfc8e0d59812d09c", "scanner": "scanner-primary", "fingerprint": "f995a8f4632e88a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3edc6ca5e72d53ca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/run-integration-tests.ts:36"}, "properties": {"repobilityId": "4a802c671b09fc6c", "scanner": "scanner-primary", "fingerprint": "3edc6ca5e72d53ca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5c591b4bd61782b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-focus.ts:44"}, "properties": {"repobilityId": "125d3406c2e5a9f5", "scanner": "scanner-primary", "fingerprint": "a5c591b4bd61782b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b5e062f943ceaf6d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/dev-watchdog.ts:93"}, "properties": {"repobilityId": "b561e0176b9e9c15", "scanner": "scanner-primary", "fingerprint": "b5e062f943ceaf6d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cfb448b2013da20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-tools/post-migration-types.ts:31"}, "properties": {"repobilityId": "b3268ddfb3aef24f", "scanner": "scanner-primary", "fingerprint": "5cfb448b2013da20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee618f0f72c7c753", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/bootstrap.ts:79"}, "properties": {"repobilityId": "c1cb77b6c53f9270", "scanner": "scanner-primary", "fingerprint": "ee618f0f72c7c753", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea0f13d6cec914d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-emdash.ts:368"}, "properties": {"repobilityId": "da2f552ca6224c10", "scanner": "scanner-primary", "fingerprint": "ea0f13d6cec914d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f75a6d61b7652831", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-any-types.ts:334"}, "properties": {"repobilityId": "dcba1f8709dbc5a4", "scanner": "scanner-primary", "fingerprint": "f75a6d61b7652831", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ea54d92c4f96414", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/analyze/audit-console.ts:291"}, "properties": {"repobilityId": "66af2348bc5f43b7", "scanner": "scanner-primary", "fingerprint": "4ea54d92c4f96414", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9b40bb8370c39447", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.process.test.ts:71"}, "properties": {"repobilityId": "de9a33d960426074", "scanner": "scanner-primary", "fingerprint": "9b40bb8370c39447", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-546ffc5be15d4ad3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/analyze/__tests__/analyze-code-quality.integration.test.ts:35"}, "properties": {"repobilityId": "4772e2cc25606f8d", "scanner": "scanner-primary", "fingerprint": "546ffc5be15d4ad3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ab48aefbabe9380a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/ci-gate.ts:181"}, "properties": {"repobilityId": "bd8edd339f65067e", "scanner": "scanner-primary", "fingerprint": "ab48aefbabe9380a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae6b8f85e48c3037", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/types-gate.ts:93"}, "properties": {"repobilityId": "7c221ee98ee2b442", "scanner": "scanner-primary", "fingerprint": "ae6b8f85e48c3037", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c19f3812d72cb0d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/test-coverage-gate.ts:248"}, "properties": {"repobilityId": "919819dc310c9a2c", "scanner": "scanner-primary", "fingerprint": "c19f3812d72cb0d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-103dc77449252576", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gates/security-gate.ts:568"}, "properties": {"repobilityId": "010c3e256c9c5be9", "scanner": "scanner-primary", "fingerprint": "103dc77449252576", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-abd3a72854dd813b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/rotate.ts:35"}, "properties": {"repobilityId": "5a3b527651a2f2ff", "scanner": "scanner-primary", "fingerprint": "abd3a72854dd813b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-536a999a15f62b48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/generate.ts:40"}, "properties": {"repobilityId": "629e928def37e773", "scanner": "scanner-primary", "fingerprint": "536a999a15f62b48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f73d488cd82214fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/secrets/scan.ts:111"}, "properties": {"repobilityId": "9d9dd57f4ce94d84", "scanner": "scanner-primary", "fingerprint": "f73d488cd82214fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0399efbf967e6cef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/build-artifacts.ts:80"}, "properties": {"repobilityId": "4da6c56b5d643633", "scanner": "scanner-primary", "fingerprint": "0399efbf967e6cef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2360a36af20dfa43", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/empty-catch.ts:266"}, "properties": {"repobilityId": "a813988d591af192", "scanner": "scanner-primary", "fingerprint": "2360a36af20dfa43", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3dbe8fa3a93240b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/seed-script-wiring.ts:67"}, "properties": {"repobilityId": "2cb8c09c451fcb66", "scanner": "scanner-primary", "fingerprint": "3dbe8fa3a93240b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a77d1e929f395e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/client-safety.ts:629"}, "properties": {"repobilityId": "dfed6dda9b9b1863", "scanner": "scanner-primary", "fingerprint": "6a77d1e929f395e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01c87c93bfe4212e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/docs-import-drift.ts:347"}, "properties": {"repobilityId": "9d4fca20ac979f58", "scanner": "scanner-primary", "fingerprint": "01c87c93bfe4212e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6de89a9641b710ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/claim-drift.ts:1687"}, "properties": {"repobilityId": "370784cd342f8735", "scanner": "scanner-primary", "fingerprint": "6de89a9641b710ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d7f0a567a17d00d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/catalog-changeset.ts:164"}, "properties": {"repobilityId": "4c28ae0f3fca4c5d", "scanner": "scanner-primary", "fingerprint": "5d7f0a567a17d00d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94dbf166d29ea2a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/validate-code.ts:63"}, "properties": {"repobilityId": "9dd3a871fda7f71b", "scanner": "scanner-primary", "fingerprint": "94dbf166d29ea2a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-244da405f84919cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/raw-sql.ts:412"}, "properties": {"repobilityId": "6cdcede2910a7f65", "scanner": "scanner-primary", "fingerprint": "244da405f84919cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4694d594c78be085", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/marketing-voice.ts:445"}, "properties": {"repobilityId": "dc5511df9f0b6161", "scanner": "scanner-primary", "fingerprint": "4694d594c78be085", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c1bc48ab1c1cdce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/boundary.ts:347"}, "properties": {"repobilityId": "5bf08bf3862b8bf0", "scanner": "scanner-primary", "fingerprint": "0c1bc48ab1c1cdce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88d22b4033529e4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/gitignore-pro.ts:68"}, "properties": {"repobilityId": "f04a06cd04354f54", "scanner": "scanner-primary", "fingerprint": "88d22b4033529e4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e164707bcefa202", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/version-policy.ts:150"}, "properties": {"repobilityId": "bfeb2375caa5a220", "scanner": "scanner-primary", "fingerprint": "1e164707bcefa202", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2cff9f341c891191", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/structure.ts:257"}, "properties": {"repobilityId": "202463b53821fb8f", "scanner": "scanner-primary", "fingerprint": "2cff9f341c891191", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8806c60e61bba46d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate/migration-journal.ts:348"}, "properties": {"repobilityId": "67ad0eddf977584e", "scanner": "scanner-primary", "fingerprint": "8806c60e61bba46d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73ceb71e73fc4a20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/credentials.ts:39"}, "properties": {"repobilityId": "c3d14c5c206f6259", "scanner": "scanner-primary", "fingerprint": "73ceb71e73fc4a20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e842cae27f0de977", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/setup-dual-database.ts:131"}, "properties": {"repobilityId": "7ce4c083048f9e78", "scanner": "scanner-primary", "fingerprint": "e842cae27f0de977", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ccd07976912f9e04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/sync-billing-catalog.ts:304"}, "properties": {"repobilityId": "b208b60eaa134f14", "scanner": "scanner-primary", "fingerprint": "ccd07976912f9e04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-effc136eb87478dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-billing.ts:137"}, "properties": {"repobilityId": "7bef49004cd2270b", "scanner": "scanner-primary", "fingerprint": "effc136eb87478dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f2f656a8b9d0779", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/seed-stripe.ts:387"}, "properties": {"repobilityId": "8482e2292adcfea0", "scanner": "scanner-primary", "fingerprint": "7f2f656a8b9d0779", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c71bc3d26d7fecaa", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/security/src/sanitize.ts:390"}, "properties": {"repobilityId": "ec6f1cef73e636fc", "scanner": "scanner-primary", "fingerprint": "c71bc3d26d7fecaa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6e1312a6bb8ecf32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/test-semantic-cache.ts:14"}, "properties": {"repobilityId": "ad305e365ff8e9ef", "scanner": "scanner-primary", "fingerprint": "6e1312a6bb8ecf32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d0a9457f5865483", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/test-response-cache.ts:15"}, "properties": {"repobilityId": "883fd2efe648654b", "scanner": "scanner-primary", "fingerprint": "8d0a9457f5865483", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8c2871f7053c950", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/examples/prompt-caching-example.ts:18"}, "properties": {"repobilityId": "129f7f4b628d398a", "scanner": "scanner-primary", "fingerprint": "d8c2871f7053c950", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e0e52c63d3d5b449", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/crdt-persistence.test.ts:125"}, "properties": {"repobilityId": "d221e657937826df", "scanner": "scanner-primary", "fingerprint": "e0e52c63d3d5b449", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95fb89d91ec733ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/__tests__/integration/automated-validation.test.ts:190"}, "properties": {"repobilityId": "98936e1dbb0dc26f", "scanner": "scanner-primary", "fingerprint": "95fb89d91ec733ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6dbd0395a41b9c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/observability/examples.ts:325"}, "properties": {"repobilityId": "d3c47a2acd7e9fad", "scanner": "scanner-primary", "fingerprint": "e6dbd0395a41b9c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5465901ef47a1692", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ai/src/llm/cache-utils.ts:63"}, "properties": {"repobilityId": "cf728477e29ff188", "scanner": "scanner-primary", "fingerprint": "5465901ef47a1692", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-676940b17a63c12c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/src/integration/api/users.integration.test.ts:97"}, "properties": {"repobilityId": "e535f591d4493836", "scanner": "scanner-primary", "fingerprint": "676940b17a63c12c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ebeb634025d3589", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/src/e2e/global-setup.ts:12"}, "properties": {"repobilityId": "964c313b7c31936e", "scanner": "scanner-primary", "fingerprint": "6ebeb634025d3589", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efb4dba08956ea28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/test/load-tests/load/payments/payment-processing.js:51"}, "properties": {"repobilityId": "b1be38fb3eb675cd", "scanner": "scanner-primary", "fingerprint": "efb4dba08956ea28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-168e0e66f34fe7d6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/cache.ts:31"}, "properties": {"repobilityId": "45691300b573485a", "scanner": "scanner-primary", "fingerprint": "168e0e66f34fe7d6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d4e30d83fe287a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/output.ts:221"}, "properties": {"repobilityId": "6be76d5041d1df94", "scanner": "scanner-primary", "fingerprint": "1d4e30d83fe287a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac9319efcef0a4ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/utils.ts:379"}, "properties": {"repobilityId": "ad05609b68fdc42b", "scanner": "scanner-primary", "fingerprint": "ac9319efcef0a4ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-197d2c2e55b8bd20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/parallel.ts:24"}, "properties": {"repobilityId": "a5e4e73aabdaffcf", "scanner": "scanner-primary", "fingerprint": "197d2c2e55b8bd20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2717d8596ea2bc4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/telemetry.ts:26"}, "properties": {"repobilityId": "4787ef11f563a20d", "scanner": "scanner-primary", "fingerprint": "2717d8596ea2bc4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f191fcf53c6f1a11", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/exec.ts:85"}, "properties": {"repobilityId": "19e02747f1f1bdc0", "scanner": "scanner-primary", "fingerprint": "f191fcf53c6f1a11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5fbe55ec413dda46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/logger.ts:129"}, "properties": {"repobilityId": "37cd7a8d8c45fe14", "scanner": "scanner-primary", "fingerprint": "5fbe55ec413dda46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5f89c37b0b3c890", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/scripts/analyzers/sanitizer-usage-analyzer.ts:89"}, "properties": {"repobilityId": "b039940b98a45338", "scanner": "scanner-primary", "fingerprint": "e5f89c37b0b3c890", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9c2ff6e800dd8b47", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/analyzers/console-analyzer.ts:59"}, "properties": {"repobilityId": "9bf892cf3507ecd7", "scanner": "scanner-primary", "fingerprint": "9c2ff6e800dd8b47", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6905b7fa7430f214", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/cli/dispatch.ts:243"}, "properties": {"repobilityId": "d845f6336acb57c8", "scanner": "scanner-primary", "fingerprint": "6905b7fa7430f214", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-82d7f087b55ae9bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-registry.ts:84"}, "properties": {"repobilityId": "cf233546f9bad36b", "scanner": "scanner-primary", "fingerprint": "82d7f087b55ae9bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0628228907e0d739", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/registry/script-scanner.ts:17"}, "properties": {"repobilityId": "11974b92b26d7b3f", "scanner": "scanner-primary", "fingerprint": "0628228907e0d739", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b2b32ab5a25d5b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/database/backup-manager.ts:59"}, "properties": {"repobilityId": "5d5763d2ed161e04", "scanner": "scanner-primary", "fingerprint": "6b2b32ab5a25d5b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a9d806c1ebb0d38", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/impact-analyzer.ts:17"}, "properties": {"repobilityId": "d687a239fec34a83", "scanner": "scanner-primary", "fingerprint": "8a9d806c1ebb0d38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ff72629f41fc657", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/dry-run-engine.ts:31"}, "properties": {"repobilityId": "999281e7acffe264", "scanner": "scanner-primary", "fingerprint": "6ff72629f41fc657", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2c97637deab3f80", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/dry-run/change-preview.ts:174"}, "properties": {"repobilityId": "496e80426d030ebc", "scanner": "scanner-primary", "fingerprint": "b2c97637deab3f80", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9bd4c60358c39330", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/validators/documentation-validator.ts:170"}, "properties": {"repobilityId": "974acaee1464eb1a", "scanner": "scanner-primary", "fingerprint": "9bd4c60358c39330", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cedd27dfa0189790", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/contracts/examples.ts:162"}, "properties": {"repobilityId": "d6c297323465d8fc", "scanner": "scanner-primary", "fingerprint": "cedd27dfa0189790", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d944810f8acf96c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/types/table-discovery.ts:16"}, "properties": {"repobilityId": "419f65a77945381b", "scanner": "scanner-primary", "fingerprint": "d944810f8acf96c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc8722ed8da9cb77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/validation-builder.ts:106"}, "properties": {"repobilityId": "595f9e0d37782806", "scanner": "scanner-primary", "fingerprint": "fc8722ed8da9cb77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d2d3c6dc50e51942", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/pattern-matcher.ts:106"}, "properties": {"repobilityId": "28d8626a637180f8", "scanner": "scanner-primary", "fingerprint": "d2d3c6dc50e51942", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d4dd9d1b2006efa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/shared/file-scanner.ts:23"}, "properties": {"repobilityId": "f3663c8bc36ac379", "scanner": "scanner-primary", "fingerprint": "6d4dd9d1b2006efa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d1d8d0e509423df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/package-readme.ts:61"}, "properties": {"repobilityId": "340142040907dabf", "scanner": "scanner-primary", "fingerprint": "8d1d8d0e509423df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e998232785ac237a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/assessment.ts:22"}, "properties": {"repobilityId": "ee8a33b2bbcac469", "scanner": "scanner-primary", "fingerprint": "e998232785ac237a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5961be323360e789", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/content/jsdoc-extractor.ts:55"}, "properties": {"repobilityId": "785384d261a5377c", "scanner": "scanner-primary", "fingerprint": "5961be323360e789", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-061d0a17c3cff77d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/coverage.ts:17"}, "properties": {"repobilityId": "5600794ee0c8a71b", "scanner": "scanner-primary", "fingerprint": "061d0a17c3cff77d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7c866bb65a8c368", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/scripts/generators/reports/formatter.ts:56"}, "properties": {"repobilityId": "2f2d3da6cb49049d", "scanner": "scanner-primary", "fingerprint": "c7c866bb65a8c368", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-325c746a00fc341d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/cli/src/cli.ts:381"}, "properties": {"repobilityId": "548448839d773f60", "scanner": "scanner-primary", "fingerprint": "325c746a00fc341d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cc095e337f40547e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/utils/src/logger/index.ts:239"}, "properties": {"repobilityId": "b08759fc5baba14e", "scanner": "scanner-primary", "fingerprint": "cc095e337f40547e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2adb602596dc19ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/cache/src/__tests__/benchmark-pglite-vs-map.test.ts:54"}, "properties": {"repobilityId": "fe36121ae80239d9", "scanner": "scanner-primary", "fingerprint": "2adb602596dc19ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-682de29e2d9cf8f4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/harnesses/src/content/definitions/rules/unused-declarations.ts:28"}, "properties": {"repobilityId": "ebf3e5e51dd93ae4", "scanner": "scanner-primary", "fingerprint": "682de29e2d9cf8f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-aa3c3540fdeaaa9c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:208"}, "properties": {"repobilityId": "c774439ea3f0e548", "scanner": "scanner-primary", "fingerprint": "aa3c3540fdeaaa9c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d6ac98f761631578", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/dev/src/code-validator/__tests__/validator.test.ts:57"}, "properties": {"repobilityId": "5419d2bcfa81b533", "scanner": "scanner-primary", "fingerprint": "d6ac98f761631578", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f82f2aeea5167436", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/cleanup-expired.ts:34"}, "properties": {"repobilityId": "038513c43133ed98", "scanner": "scanner-primary", "fingerprint": "f82f2aeea5167436", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d37282002f4bffc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/src/scripts/backfill-migrations.ts:117"}, "properties": {"repobilityId": "db963cb71d7bc848", "scanner": "scanner-primary", "fingerprint": "7d37282002f4bffc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-96e24def57395699", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/integration/monitoring.test.ts:315"}, "properties": {"repobilityId": "e24d843b7a2251cf", "scanner": "scanner-primary", "fingerprint": "96e24def57395699", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0de5cf9228ee42b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/__tests__/utils/test-helpers.test.ts:190"}, "properties": {"repobilityId": "f26ed64add9124a6", "scanner": "scanner-primary", "fingerprint": "0de5cf9228ee42b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53e0ec4382e13209", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/revealui-compat.test.ts:212"}, "properties": {"repobilityId": "e928cc99a828406e", "scanner": "scanner-primary", "fingerprint": "53e0ec4382e13209", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1b597bf01667e55e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/types/__tests__/payload-compat.test.ts:212"}, "properties": {"repobilityId": "def8ee99df07c688", "scanner": "scanner-primary", "fingerprint": "1b597bf01667e55e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-716e71f4ea74d265", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/page.tsx:81"}, "properties": {"repobilityId": "644026cc0e773342", "scanner": "scanner-primary", "fingerprint": "716e71f4ea74d265", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7593de89e4d4acf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/core/src/client/admin/components/AdminDashboard.tsx:265"}, "properties": {"repobilityId": "41586c45621bf605", "scanner": "scanner-primary", "fingerprint": "d7593de89e4d4acf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-53b8d4c57d86208b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/core/src/instance/logger.ts:23"}, "properties": {"repobilityId": "d97805272e3e6946", "scanner": "scanner-primary", "fingerprint": "53b8d4c57d86208b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a199737eda8bf403", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/core.test.ts:444"}, "properties": {"repobilityId": "21618e78236c241f", "scanner": "scanner-primary", "fingerprint": "a199737eda8bf403", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-fdd558903f9fc93a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/integration-real-configs.test.ts:346"}, "properties": {"repobilityId": "4aacc640398a511c", "scanner": "scanner-primary", "fingerprint": "fdd558903f9fc93a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-968250eadd497804", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/revealui-compat.test.ts:212"}, "properties": {"repobilityId": "ff9908957548ebaa", "scanner": "scanner-primary", "fingerprint": "968250eadd497804", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-57bea39b06ff9bc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/payload-compat.test.ts:212"}, "properties": {"repobilityId": "baa7ca5055ee6a31", "scanner": "scanner-primary", "fingerprint": "57bea39b06ff9bc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17742da95ac706b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/blocks.test.ts:206"}, "properties": {"repobilityId": "d9aea296419c96cc", "scanner": "scanner-primary", "fingerprint": "17742da95ac706b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-18a27cee931b25aa", "level": "warning", "message": {"text": "Custom React Flow node registered without explicit width/height \u2014 packages/contracts/src/__tests__/blocks.test.ts:91"}, "properties": {"repobilityId": "fb8d92116cb26e98", "scanner": "scanner-primary", "fingerprint": "18a27cee931b25aa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.rfnode.no-dims"]}}, {"ruleId": "scanner-3c0b0a1efbd2922e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/contracts.test.ts:414"}, "properties": {"repobilityId": "2472460a8aafb0fb", "scanner": "scanner-primary", "fingerprint": "3c0b0a1efbd2922e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a2a8bb1dfa156416", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/payload.ts:158"}, "properties": {"repobilityId": "d841603ec72e0d9a", "scanner": "scanner-primary", "fingerprint": "a2a8bb1dfa156416", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a32f6281913189cc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/__tests__/mocks/revealui.ts:158"}, "properties": {"repobilityId": "ef476e0e2a41f969", "scanner": "scanner-primary", "fingerprint": "a32f6281913189cc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55cb8e46fcba0e0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/foundation/contract.ts:83"}, "properties": {"repobilityId": "f6a7dc2748d7d9d0", "scanner": "scanner-primary", "fingerprint": "55cb8e46fcba0e0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3fd97e50e37530e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/database/bridge.ts:61"}, "properties": {"repobilityId": "37ea58ade775091a", "scanner": "scanner-primary", "fingerprint": "f3fd97e50e37530e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15dfa020a2c600d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/collection.ts:39"}, "properties": {"repobilityId": "ac343b1dbdac33cd", "scanner": "scanner-primary", "fingerprint": "15dfa020a2c600d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa0e3612838434ad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/contracts/src/admin/errors.ts:200"}, "properties": {"repobilityId": "e703ef0e10d1ce8f", "scanner": "scanner-primary", "fingerprint": "aa0e3612838434ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4047ea37fda05523", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/setup/src/utils/logger.ts:126"}, "properties": {"repobilityId": "7c391e64fe97a5a0", "scanner": "scanner-primary", "fingerprint": "4047ea37fda05523", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-155a7dc90d5863e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/presentation/src/animations/hooks/use-gesture.ts:43"}, "properties": {"repobilityId": "179d6dbbd726cf80", "scanner": "scanner-primary", "fingerprint": "155a7dc90d5863e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f47d59a2c8aeae52", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/listbox.tsx:306"}, "properties": {"repobilityId": "3baa8ac8c51cd70a", "scanner": "scanner-primary", "fingerprint": "f47d59a2c8aeae52", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-09b045d87820d07f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/presentation/src/components/combobox.tsx:483"}, "properties": {"repobilityId": "01cc610a82306d6e", "scanner": "scanner-primary", "fingerprint": "09b045d87820d07f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed16b3f5267d3b45", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/automated-workflow.ts:78"}, "properties": {"repobilityId": "5a7b526ca491ddf3", "scanner": "scanner-primary", "fingerprint": "ed16b3f5267d3b45", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a2e6c92ccabd67a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/script-validation-api.ts:186"}, "properties": {"repobilityId": "44b0cdd71581c81a", "scanner": "scanner-primary", "fingerprint": "6a2e6c92ccabd67a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-075b19b959650eaf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/code-examples/custom-cli.ts:98"}, "properties": {"repobilityId": "c3e850b7292a9695", "scanner": "scanner-primary", "fingerprint": "075b19b959650eaf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-869e87dd367d0e61", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/server/index.ts:35"}, "properties": {"repobilityId": "0ad72b2ba9ed7d69", "scanner": "scanner-primary", "fingerprint": "869e87dd367d0e61", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-326579d757030f89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/user-flows.e2e.ts:69"}, "properties": {"repobilityId": "8de8cd4560538fae", "scanner": "scanner-primary", "fingerprint": "326579d757030f89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d59c5693799de7a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/global-teardown.ts:8"}, "properties": {"repobilityId": "dd8d374e880f9ae4", "scanner": "scanner-primary", "fingerprint": "d59c5693799de7a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a98bdde9694f0387", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/error-scenarios.e2e.ts:360"}, "properties": {"repobilityId": "c1eea294d5cda88c", "scanner": "scanner-primary", "fingerprint": "a98bdde9694f0387", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9746afab6c94aed5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/example-complete-flow.e2e.ts:50"}, "properties": {"repobilityId": "37098f11edfdb77d", "scanner": "scanner-primary", "fingerprint": "9746afab6c94aed5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f14556bec9c2d81", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/global-setup.ts:87"}, "properties": {"repobilityId": "47b4f7ec079f9271", "scanner": "scanner-primary", "fingerprint": "4f14556bec9c2d81", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e7f1ce31ad8234b9", "level": "warning", "message": {"text": "Privileged port 256 in use"}, "properties": {"repobilityId": "0ec1f2d0c9e6da94", "scanner": "scanner-primary", "fingerprint": "e7f1ce31ad8234b9", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/issue-leak-scan.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc94fa0b6a7a4c4a", "level": "warning", "message": {"text": "Privileged port 79 in use"}, "properties": {"repobilityId": "9565d26c5af09735", "scanner": "scanner-primary", "fingerprint": "dc94fa0b6a7a4c4a", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/issue-leak-scan.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-490b6567ef32935a", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: mcr.microsoft.com/devcontainers/typescript-node:24-bookworm"}, "properties": {"repobilityId": "97d1edf6958404eb", "scanner": "scanner-primary", "fingerprint": "490b6567ef32935a", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".devcontainer/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ceff9fc2456b9fbf", "level": "warning", "message": {"text": "Dockerfile runs as root: apps/docs/Dockerfile"}, "properties": {"repobilityId": "930d3c2ec822d88f", "scanner": "scanner-primary", "fingerprint": "ceff9fc2456b9fbf", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-98240dc55dc8554d", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine"}, "properties": {"repobilityId": "28706f2b46c902ba", "scanner": "scanner-primary", "fingerprint": "98240dc55dc8554d", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-432976f1d9f35552", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: nginx:1.31-alpine"}, "properties": {"repobilityId": "7c02b46b3e747ef2", "scanner": "scanner-primary", "fingerprint": "432976f1d9f35552", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs/Dockerfile"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-395bf9508de752f0", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine"}, "properties": {"repobilityId": "af30f9ee3cef0020", "scanner": "scanner-primary", "fingerprint": "395bf9508de752f0", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/admin/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-b66c598a17e782aa", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine"}, "properties": {"repobilityId": "7e8254d5b19f1e06", "scanner": "scanner-primary", "fingerprint": "b66c598a17e782aa", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-b66c598a17e782aa", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-alpine"}, "properties": {"repobilityId": "498f673f2f81d60b", "scanner": "scanner-primary", "fingerprint": "b66c598a17e782aa", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/Dockerfile"}, "region": {"startLine": 60}}}]}, {"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-f2d830d7ae5c1641", "level": "error", "message": {"text": "Runtime dotenv file present in repo: .env.test"}, "properties": {"repobilityId": "25baea8a4d77c75a", "scanner": "scanner-primary", "fingerprint": "f2d830d7ae5c1641", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env.test"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b20afc80f33a123", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/docs/scripts/check-links.ts:29"}, "properties": {"repobilityId": "61aa64e575c1eed8", "scanner": "scanner-primary", "fingerprint": "9b20afc80f33a123", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs/scripts/check-links.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-501fd841bf7e9a56", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/docs/app/lib/__tests__/head.test.ts:11"}, "properties": {"repobilityId": "7447b47d7ac761ee", "scanner": "scanner-primary", "fingerprint": "501fd841bf7e9a56", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs/app/lib/__tests__/head.test.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-e5609152c28f9fcd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/app/(frontend)/layout.tsx:70"}, "properties": {"repobilityId": "03c39176ff990603", "scanner": "scanner-primary", "fingerprint": "e5609152c28f9fcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/admin/src/app/(frontend)/layout.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-ab52d10549abb6ce", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/admin/src/lib/providers/Theme/InitTheme/index.tsx:8"}, "properties": {"repobilityId": "256bfe1609c70889", "scanner": "scanner-primary", "fingerprint": "ab52d10549abb6ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/admin/src/lib/providers/Theme/InitTheme/index.tsx"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-448f7d310b4e39ab", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in apps/server/src/lib/__tests__/validate-startup.test.ts:24"}, "properties": {"repobilityId": "b41df86a227a1e22", "scanner": "scanner-primary", "fingerprint": "448f7d310b4e39ab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/src/lib/__tests__/validate-startup.test.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c15c5e365461ee0a", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in apps/server/src/routes/__tests__/license.test.ts:275"}, "properties": {"repobilityId": "ebbf68f8274f0a6f", "scanner": "scanner-primary", "fingerprint": "c15c5e365461ee0a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/src/routes/__tests__/license.test.ts"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-9f9261ff9b20e854", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/server/src/services/revmarket-sandbox/fork-provider.ts:28"}, "properties": {"repobilityId": "da8072bc69ef368a", "scanner": "scanner-primary", "fingerprint": "9f9261ff9b20e854", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/src/services/revmarket-sandbox/fork-provider.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-661a6cb09319e28c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/electric-latency-probe/probe.ts:17"}, "properties": {"repobilityId": "7b09ee7ecfd7392f", "scanner": "scanner-primary", "fingerprint": "661a6cb09319e28c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/electric-latency-probe/probe.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-8a80ee17ebc86316", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/cli/scripts.ts:33"}, "properties": {"repobilityId": "ed70ca2d4cb75c0a", "scanner": "scanner-primary", "fingerprint": "8a80ee17ebc86316", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/cli/scripts.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-5b4d63cdb1ba1b42", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-focus.ts:16"}, "properties": {"repobilityId": "dbb1ab6c9af16fc8", "scanner": "scanner-primary", "fingerprint": "5b4d63cdb1ba1b42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-tools/dev-focus.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-4582d21b6e44bb17", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/dev-watchdog.ts:17"}, "properties": {"repobilityId": "d8feb78945307553", "scanner": "scanner-primary", "fingerprint": "4582d21b6e44bb17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-tools/dev-watchdog.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-0a85b73218a10046", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/admin-local.ts:35"}, "properties": {"repobilityId": "a11e47b847860b3f", "scanner": "scanner-primary", "fingerprint": "0a85b73218a10046", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-tools/admin-local.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-ddb8f494e43b9407", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-tools/post-migration-types.ts:21"}, "properties": {"repobilityId": "4dfaba7f104b7583", "scanner": "scanner-primary", "fingerprint": "ddb8f494e43b9407", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-tools/post-migration-types.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-cc8de13fc67ac9ff", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/leak-scan/build.mjs:8"}, "properties": {"repobilityId": "5e782c5dda6c3093", "scanner": "scanner-primary", "fingerprint": "cc8de13fc67ac9ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/leak-scan/build.mjs"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-c67ffe0ff5ea3907", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/admin/bootstrap.ts:24"}, "properties": {"repobilityId": "2b753eb96757ed9c", "scanner": "scanner-primary", "fingerprint": "c67ffe0ff5ea3907", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/admin/bootstrap.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-6afba0041c93c1d3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/analyze/__tests__/analyze-code-quality.process.test.ts:6"}, "properties": {"repobilityId": "e6607deccf1062a0", "scanner": "scanner-primary", "fingerprint": "6afba0041c93c1d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/analyze/__tests__/analyze-code-quality.process.test.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-9b527484819c543f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/gates/test-coverage-gate.ts:17"}, "properties": {"repobilityId": "5f4a90d5e76d3dc5", "scanner": "scanner-primary", "fingerprint": "9b527484819c543f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/gates/test-coverage-gate.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-7fcc87ad8319b195", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/gates/ops/deploy.ts:22"}, "properties": {"repobilityId": "dc4b2fa063e77b7c", "scanner": "scanner-primary", "fingerprint": "7fcc87ad8319b195", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/gates/ops/deploy.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-c834ca0fd2fc9997", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/secrets/scan.ts:13"}, "properties": {"repobilityId": "61b24e6231774cef", "scanner": "scanner-primary", "fingerprint": "c834ca0fd2fc9997", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/secrets/scan.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-8241be22a1122533", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validate/claim-drift.ts:22"}, "properties": {"repobilityId": "37e02f01f53df58e", "scanner": "scanner-primary", "fingerprint": "8241be22a1122533", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate/claim-drift.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-9a1915adec6a066c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validate/catalog-changeset.ts:18"}, "properties": {"repobilityId": "eede479798609608", "scanner": "scanner-primary", "fingerprint": "9a1915adec6a066c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate/catalog-changeset.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-a5b68d0dceb4a898", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/validate/__tests__/claim-drift.test.ts:1"}, "properties": {"repobilityId": "013e12cc5364359b", "scanner": "scanner-primary", "fingerprint": "a5b68d0dceb4a898", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate/__tests__/claim-drift.test.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23820db5cdc4d435", "level": "error", "message": {"text": "Insecure pattern 'private_key_in_repo' in scripts/validate/__tests__/prod-env.test.ts:24"}, "properties": {"repobilityId": "ece9bc8dc23553dc", "scanner": "scanner-primary", "fingerprint": "23820db5cdc4d435", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["owasp", "private_key_in_repo"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate/__tests__/prod-env.test.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-f9f94fc6a296ce57", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/setup/credentials.ts:29"}, "properties": {"repobilityId": "0d624c0bbc5bcb84", "scanner": "scanner-primary", "fingerprint": "f9f94fc6a296ce57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/credentials.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-41d2ece20482bd58", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/setup/stripe-revvault-sync.ts:24"}, "properties": {"repobilityId": "8157b87eebe26a51", "scanner": "scanner-primary", "fingerprint": "41d2ece20482bd58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/stripe-revvault-sync.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-0c7b00922869c1ac", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/setup/seed-stripe.ts:24"}, "properties": {"repobilityId": "7a6c1064b11bdf94", "scanner": "scanner-primary", "fingerprint": "0c7b00922869c1ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/seed-stripe.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-91f2f91c606caae3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/run-with-mcp.ts:23"}, "properties": {"repobilityId": "e78555af757edb3d", "scanner": "scanner-primary", "fingerprint": "91f2f91c606caae3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/run-with-mcp.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-4798e968629abb33", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/security/src/__tests__/headers.test.ts:120"}, "properties": {"repobilityId": "98188211b11c7a58", "scanner": "scanner-primary", "fingerprint": "4798e968629abb33", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/security/src/__tests__/headers.test.ts"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-eecdf78ffe4ac42b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/security/src/__tests__/sanitize.test.ts:1"}, "properties": {"repobilityId": "f29fe723ea22ee4e", "scanner": "scanner-primary", "fingerprint": "eecdf78ffe4ac42b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/security/src/__tests__/sanitize.test.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-13336a18c5a88e54", "level": "error", "message": {"text": "Possible secret in packages/security/src/__tests__/sanitize-corpus/log-redaction.ts"}, "properties": {"repobilityId": "829d403e7ec3227c", "scanner": "scanner-primary", "fingerprint": "13336a18c5a88e54", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/security/src/__tests__/sanitize-corpus/log-redaction.ts"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-25976d3df6a081c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/router/src/__tests__/hydrate.test.tsx:27"}, "properties": {"repobilityId": "cb47b81386f4c671", "scanner": "scanner-primary", "fingerprint": "25976d3df6a081c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/router/src/__tests__/hydrate.test.tsx"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-01f99e5f7f79c20b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/__tests__/tools/coding/git-ops.test.ts:1"}, "properties": {"repobilityId": "7c10f78a871ad698", "scanner": "scanner-primary", "fingerprint": "01f99e5f7f79c20b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/__tests__/tools/coding/git-ops.test.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc3249731d8a91f4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/git-ops.ts:5"}, "properties": {"repobilityId": "07a97fa0fe01087f", "scanner": "scanner-primary", "fingerprint": "bc3249731d8a91f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/tools/coding/git-ops.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-cd67297def4d3544", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/lint-fix.ts:8"}, "properties": {"repobilityId": "14264463f409b387", "scanner": "scanner-primary", "fingerprint": "cd67297def4d3544", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/tools/coding/lint-fix.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-d2bce73e213d8fb0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/test-runner.ts:9"}, "properties": {"repobilityId": "af3b99bbebe745bd", "scanner": "scanner-primary", "fingerprint": "d2bce73e213d8fb0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/tools/coding/test-runner.ts"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-593ab35f52653529", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/tools/coding/shell-exec.ts:5"}, "properties": {"repobilityId": "619eb283f8df1a24", "scanner": "scanner-primary", "fingerprint": "593ab35f52653529", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/tools/coding/shell-exec.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-9745985bfb7c670c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/vercel-loader.ts:8"}, "properties": {"repobilityId": "bf88a42796b0556f", "scanner": "scanner-primary", "fingerprint": "9745985bfb7c670c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/skills/loader/vercel-loader.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-4fa84636acaacee1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/ai/src/skills/loader/github-loader.ts:7"}, "properties": {"repobilityId": "19c9262ee8118f5b", "scanner": "scanner-primary", "fingerprint": "4fa84636acaacee1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/src/skills/loader/github-loader.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-b1f59c01a9ab05de", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/useMFA.test.tsx:372"}, "properties": {"repobilityId": "624c4012249f76ff", "scanner": "scanner-primary", "fingerprint": "b1f59c01a9ab05de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/auth/src/react/__tests__/useMFA.test.tsx"}, "region": {"startLine": 372}}}]}, {"ruleId": "scanner-150c8fa3d958f48b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in packages/auth/src/react/__tests__/usePasskey.test.tsx:423"}, "properties": {"repobilityId": "c5bce4e295f7392b", "scanner": "scanner-primary", "fingerprint": "150c8fa3d958f48b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/auth/src/react/__tests__/usePasskey.test.tsx"}, "region": {"startLine": 423}}}]}, {"ruleId": "scanner-8ec85412e54c94c6", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in packages/auth/src/server/mfa.ts:111"}, "properties": {"repobilityId": "97a8b62e899a95f7", "scanner": "scanner-primary", "fingerprint": "8ec85412e54c94c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/auth/src/server/mfa.ts"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-0b642cff38599a24", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/oauth.ts:41"}, "properties": {"repobilityId": "7b537d2f67fe89ce", "scanner": "scanner-primary", "fingerprint": "0b642cff38599a24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/oauth.ts"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-d7991bfe61f34e60", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/hypervisor.ts:17"}, "properties": {"repobilityId": "b738cfdde9abef91", "scanner": "scanner-primary", "fingerprint": "d7991bfe61f34e60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/hypervisor.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a431f60d590e9888", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/mcp/src/rate-limit-store.ts:109"}, "properties": {"repobilityId": "4d0f12a861ab5599", "scanner": "scanner-primary", "fingerprint": "a431f60d590e9888", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/rate-limit-store.ts"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-5f80fd84e2ed9965", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/mcp/src/adapters/db.ts:45"}, "properties": {"repobilityId": "29107b6f432f863d", "scanner": "scanner-primary", "fingerprint": "5f80fd84e2ed9965", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/adapters/db.ts"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-4810dd311fb1d7b1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/next-devtools.ts:12"}, "properties": {"repobilityId": "2eadae59321f0559", "scanner": "scanner-primary", "fingerprint": "4810dd311fb1d7b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/next-devtools.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-082c191784f24ad6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/stripe.ts:12"}, "properties": {"repobilityId": "e7ad16c09866d4a0", "scanner": "scanner-primary", "fingerprint": "082c191784f24ad6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/stripe.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-cca858928a51defc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/vercel.ts:12"}, "properties": {"repobilityId": "4bb2a534c2f59a24", "scanner": "scanner-primary", "fingerprint": "cca858928a51defc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/vercel.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-c855b5eed04e8e11", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/playwright.ts:12"}, "properties": {"repobilityId": "40f3fceefe5a3c6f", "scanner": "scanner-primary", "fingerprint": "c855b5eed04e8e11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/playwright.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-a595f20c808900e7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/supabase.ts:12"}, "properties": {"repobilityId": "a22a8dfed761ddb4", "scanner": "scanner-primary", "fingerprint": "a595f20c808900e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/supabase.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-96c67240bc95778b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/mcp/src/servers/neon.ts:12"}, "properties": {"repobilityId": "b602b41750587d5a", "scanner": "scanner-primary", "fingerprint": "96c67240bc95778b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/src/servers/neon.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-9499df2aa4c2f23f", "level": "error", "message": {"text": "Possible secret in packages/test/README.md"}, "properties": {"repobilityId": "37b0f491d4c22a69", "scanner": "scanner-primary", "fingerprint": "9499df2aa4c2f23f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/README.md"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-217fe68c756e604d", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/revenue-path.spec.ts"}, "properties": {"repobilityId": "66a7174a13efa0dc", "scanner": "scanner-primary", "fingerprint": "217fe68c756e604d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/revenue-path.spec.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-217fe68c756e604d", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/revenue-path.spec.ts"}, "properties": {"repobilityId": "66a7174a13efa0dc", "scanner": "scanner-primary", "fingerprint": "217fe68c756e604d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/revenue-path.spec.ts"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 402}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 418}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 426}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 451}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 531}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 587}}}]}, {"ruleId": "scanner-a6ab23243361c4f7", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/signup-flow.spec.ts"}, "properties": {"repobilityId": "bad26d5bbfc11e9c", "scanner": "scanner-primary", "fingerprint": "a6ab23243361c4f7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/signup-flow.spec.ts"}, "region": {"startLine": 679}}}]}, {"ruleId": "scanner-3be4ed914ed13053", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/auth.spec.ts"}, "properties": {"repobilityId": "7cb14a90a3f011ef", "scanner": "scanner-primary", "fingerprint": "3be4ed914ed13053", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/auth.spec.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-3be4ed914ed13053", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/auth.spec.ts"}, "properties": {"repobilityId": "7cb14a90a3f011ef", "scanner": "scanner-primary", "fingerprint": "3be4ed914ed13053", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/auth.spec.ts"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-3be4ed914ed13053", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/auth.spec.ts"}, "properties": {"repobilityId": "7cb14a90a3f011ef", "scanner": "scanner-primary", "fingerprint": "3be4ed914ed13053", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/auth.spec.ts"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-459d73d037956a97", "level": "error", "message": {"text": "Possible secret in packages/test/src/e2e/multi-tenant.spec.ts"}, "properties": {"repobilityId": "d349c567638b2424", "scanner": "scanner-primary", "fingerprint": "459d73d037956a97", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/src/e2e/multi-tenant.spec.ts"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-cc43d28a503e35e3", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-rate-limiting.js"}, "properties": {"repobilityId": "39ac02ca2d11ed37", "scanner": "scanner-primary", "fingerprint": "cc43d28a503e35e3", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-rate-limiting.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-8baea9999b92c3eb", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-sign-in.js"}, "properties": {"repobilityId": "33b31a3101ff12c7", "scanner": "scanner-primary", "fingerprint": "8baea9999b92c3eb", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-sign-in.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-cfeeb5f82f133fec", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-session-validation.js"}, "properties": {"repobilityId": "335aa39ff976093b", "scanner": "scanner-primary", "fingerprint": "cfeeb5f82f133fec", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-session-validation.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-0ccac4b3cd04788f", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-sign-up.js"}, "properties": {"repobilityId": "e5a149fe5c6c22c6", "scanner": "scanner-primary", "fingerprint": "0ccac4b3cd04788f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-sign-up.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-c6fcd127855c51df", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-load.js"}, "properties": {"repobilityId": "c1cf00defd0782c7", "scanner": "scanner-primary", "fingerprint": "c6fcd127855c51df", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-load.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-caf176574721edd4", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-login.js"}, "properties": {"repobilityId": "4564825a4ae96946", "scanner": "scanner-primary", "fingerprint": "caf176574721edd4", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-login.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-6db2476f7021896f", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-stress.js"}, "properties": {"repobilityId": "61d694fb635b48ea", "scanner": "scanner-primary", "fingerprint": "6db2476f7021896f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-stress.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-6db2476f7021896f", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/auth/auth-stress.js"}, "properties": {"repobilityId": "61d694fb635b48ea", "scanner": "scanner-primary", "fingerprint": "6db2476f7021896f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/auth/auth-stress.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-6795bef53529b2f9", "level": "error", "message": {"text": "Possible secret in packages/test/load-tests/load/payments/payment-processing.js"}, "properties": {"repobilityId": "3f26f5a851f818c8", "scanner": "scanner-primary", "fingerprint": "6795bef53529b2f9", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/load-tests/load/payments/payment-processing.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-6ce203e711218096", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/resilience/src/circuit-breaker-store.ts:84"}, "properties": {"repobilityId": "da17be6515a1196c", "scanner": "scanner-primary", "fingerprint": "6ce203e711218096", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/resilience/src/circuit-breaker-store.ts"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-7f02afb0b1d0c070", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/exec.ts:13"}, "properties": {"repobilityId": "633cb86a0ea0e0f0", "scanner": "scanner-primary", "fingerprint": "7f02afb0b1d0c070", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/exec.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-712960ad901eb10f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/scripts/__tests__/api-security-analyzer.test.ts:38"}, "properties": {"repobilityId": "b3d02f1914d92cc5", "scanner": "scanner-primary", "fingerprint": "712960ad901eb10f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/__tests__/api-security-analyzer.test.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-4a1d7016dbaa0053", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/__tests__/code-pattern-analyzer.test.ts:38"}, "properties": {"repobilityId": "961833699443a397", "scanner": "scanner-primary", "fingerprint": "4a1d7016dbaa0053", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/__tests__/code-pattern-analyzer.test.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-69facaf88c66f83b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/rollback/snapshot-manager.ts:34"}, "properties": {"repobilityId": "515ca1f97d6dece9", "scanner": "scanner-primary", "fingerprint": "69facaf88c66f83b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/rollback/snapshot-manager.ts"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-4ebe95254675d19a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/dry-run/dry-run-engine.ts:35"}, "properties": {"repobilityId": "f1d5095c998798f7", "scanner": "scanner-primary", "fingerprint": "4ebe95254675d19a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/dry-run/dry-run-engine.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-92a62f237abbec7d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/validation/pre-execution.ts:33"}, "properties": {"repobilityId": "fd9e53e0102aeb52", "scanner": "scanner-primary", "fingerprint": "92a62f237abbec7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/validation/pre-execution.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-c212bf8bbd434501", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/scripts/validation/post-execution.ts:25"}, "properties": {"repobilityId": "8d4643c920adcb8f", "scanner": "scanner-primary", "fingerprint": "c212bf8bbd434501", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/validation/post-execution.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-33b30612c3711310", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/cache/src/invalidation-channel.ts:54"}, "properties": {"repobilityId": "2d4d6cbc5dcb0627", "scanner": "scanner-primary", "fingerprint": "33b30612c3711310", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cache/src/invalidation-channel.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-b2a3c3e7f7f1336a", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/cache/src/adapters/pglite.ts:16"}, "properties": {"repobilityId": "188cf22c161eb52a", "scanner": "scanner-primary", "fingerprint": "b2a3c3e7f7f1336a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cache/src/adapters/pglite.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-5f013ca793953c1f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/adapters/translation-layer.ts:9"}, "properties": {"repobilityId": "ff8e87b5103a3269", "scanner": "scanner-primary", "fingerprint": "5f013ca793953c1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/adapters/translation-layer.ts"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-c149d3d370e9dc1c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/integration.test.ts:40"}, "properties": {"repobilityId": "6ed81e302661f117", "scanner": "scanner-primary", "fingerprint": "c149d3d370e9dc1c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/__tests__/integration.test.ts"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-b871d14cfd927f94", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/harnesses/src/__tests__/coordinator.test.ts:30"}, "properties": {"repobilityId": "a8aa655dc1bb4e64", "scanner": "scanner-primary", "fingerprint": "b871d14cfd927f94", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/__tests__/coordinator.test.ts"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-91d4f5a0a0cfce08", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/coordination/merge-pipeline.ts:11"}, "properties": {"repobilityId": "f57e15e3c7dba499", "scanner": "scanner-primary", "fingerprint": "91d4f5a0a0cfce08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/coordination/merge-pipeline.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-da8d95dcd3e8d95f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/harnesses/src/server/http-gateway.ts:99"}, "properties": {"repobilityId": "1ce8f4c7433293ac", "scanner": "scanner-primary", "fingerprint": "da8d95dcd3e8d95f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/server/http-gateway.ts"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-84aa8fdac6bb2abb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/spawner-service.ts:1"}, "properties": {"repobilityId": "7cfdfcb32b7db6d3", "scanner": "scanner-primary", "fingerprint": "84aa8fdac6bb2abb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/server/spawner-service.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9cb6c6824a330296", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/server/inference-service.ts:1"}, "properties": {"repobilityId": "70ba43a268541142", "scanner": "scanner-primary", "fingerprint": "9cb6c6824a330296", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/server/inference-service.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc7097c2435bb925", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/harnesses/src/detection/process-detector.ts:1"}, "properties": {"repobilityId": "450a1e0e4fcb0340", "scanner": "scanner-primary", "fingerprint": "bc7097c2435bb925", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/src/detection/process-detector.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7bc9bdc898791e09", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in packages/dev/src/biome/README.md:71"}, "properties": {"repobilityId": "52a5effd8d021716", "scanner": "scanner-primary", "fingerprint": "7bc9bdc898791e09", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/dev/src/biome/README.md"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-3f3fa57af89a8b5f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/monitoring/zombie-detector.test.ts:46"}, "properties": {"repobilityId": "6c8c2852e130578e", "scanner": "scanner-primary", "fingerprint": "3f3fa57af89a8b5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/__tests__/monitoring/zombie-detector.test.ts"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-497fb896f5e9f74c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/core/src/__tests__/observability/health-check.test.ts:20"}, "properties": {"repobilityId": "a7102529b047983f", "scanner": "scanner-primary", "fingerprint": "497fb896f5e9f74c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/__tests__/observability/health-check.test.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-7dd8c434886f1b2a", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in packages/core/src/client/richtext/plugins/PastePlugin.tsx:69"}, "properties": {"repobilityId": "265c518bfb3fbf29", "scanner": "scanner-primary", "fingerprint": "7dd8c434886f1b2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/client/richtext/plugins/PastePlugin.tsx"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-5a3309e2f216d334", "level": "error", "message": {"text": "Possible secret in packages/core/src/client/admin/i18n/en.ts"}, "properties": {"repobilityId": "a98706cfdd5b2928", "scanner": "scanner-primary", "fingerprint": "5a3309e2f216d334", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/client/admin/i18n/en.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-038a4ca40bbfd007", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/zombie-detector.ts:8"}, "properties": {"repobilityId": "3469da5af7639ce1", "scanner": "scanner-primary", "fingerprint": "038a4ca40bbfd007", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/monitoring/zombie-detector.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-6bab62df313b3fed", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/core/src/monitoring/__tests__/zombie-detector.test.ts:38"}, "properties": {"repobilityId": "2dcff52da9971111", "scanner": "scanner-primary", "fingerprint": "6bab62df313b3fed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/monitoring/__tests__/zombie-detector.test.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-659f7ac6b316b161", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/core/src/observability/health-check.ts:7"}, "properties": {"repobilityId": "6c9d6dff17bd7b28", "scanner": "scanner-primary", "fingerprint": "659f7ac6b316b161", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/src/observability/health-check.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-45b33748e9ccfc21", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/setup/src/system-tune/detect.ts:8"}, "properties": {"repobilityId": "aae01b0805236e20", "scanner": "scanner-primary", "fingerprint": "45b33748e9ccfc21", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/setup/src/system-tune/detect.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-c1aace21d6f6c791", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/scripts/create-github-releases.cjs:18"}, "properties": {"repobilityId": "b95b176010e8c5c7", "scanner": "scanner-primary", "fingerprint": "c1aace21d6f6c791", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/scripts/create-github-releases.cjs"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-7c547d87eb257772", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in .github/workflows/issue-leak-scan.yml:58"}, "properties": {"repobilityId": "b2f2fd57b0653e29", "scanner": "scanner-primary", "fingerprint": "7c547d87eb257772", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/issue-leak-scan.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-1c1753a35464fb36", "level": "error", "message": {"text": "Possible secret in e2e/electric.e2e.ts"}, "properties": {"repobilityId": "24be08eb61ccfa12", "scanner": "scanner-primary", "fingerprint": "1c1753a35464fb36", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/electric.e2e.ts"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-1c1753a35464fb36", "level": "error", "message": {"text": "Possible secret in e2e/electric.e2e.ts"}, "properties": {"repobilityId": "24be08eb61ccfa12", "scanner": "scanner-primary", "fingerprint": "1c1753a35464fb36", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/electric.e2e.ts"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-795edc78b5294f4e", "level": "error", "message": {"text": "Possible secret in e2e/auth.e2e.ts"}, "properties": {"repobilityId": "13d09eb7dff800de", "scanner": "scanner-primary", "fingerprint": "795edc78b5294f4e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/auth.e2e.ts"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-795edc78b5294f4e", "level": "error", "message": {"text": "Possible secret in e2e/auth.e2e.ts"}, "properties": {"repobilityId": "13d09eb7dff800de", "scanner": "scanner-primary", "fingerprint": "795edc78b5294f4e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/auth.e2e.ts"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-83923c31d8a22543", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "a443a091293842f5", "scanner": "scanner-primary", "fingerprint": "83923c31d8a22543", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/regen-visual-snapshots.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68a2b8f5c8cd6b53", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0036b33690fe05ae", "scanner": "scanner-primary", "fingerprint": "68a2b8f5c8cd6b53", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b9fff3521ac665a", "level": "error", "message": {"text": "pull_request_target workflow appears to check out untrusted PR code"}, "properties": {"repobilityId": "c45b4d6f9384482b", "scanner": "scanner-primary", "fingerprint": "1b9fff3521ac665a", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pull-request-target"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dependabot-catalog-autofix.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "c53c79a36f63d0d8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1384ccafca35b738", "level": "note", "message": {"text": "Very large file: apps/server/src/index.ts (1378 lines)"}, "properties": {"repobilityId": "1e6087a1648d7e84", "scanner": "scanner-primary", "fingerprint": "1384ccafca35b738", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ac7db222b16b826", "level": "note", "message": {"text": "Very large file: apps/server/src/routes/webhooks.ts (3665 lines)"}, "properties": {"repobilityId": "a9feffb853ed77f9", "scanner": "scanner-primary", "fingerprint": "6ac7db222b16b826", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-298698ed8db18108", "level": "note", "message": {"text": "Very large file: apps/server/src/routes/billing.ts (2678 lines)"}, "properties": {"repobilityId": "99796555a600c1e1", "scanner": "scanner-primary", "fingerprint": "298698ed8db18108", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b76344e653c4bda5", "level": "note", "message": {"text": "Very large file: apps/server/src/routes/__tests__/billing-comprehensive.test.ts (1507 lines)"}, "properties": {"repobilityId": "ff9ae9ad14ec16c0", "scanner": "scanner-primary", "fingerprint": "b76344e653c4bda5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-848a0f006ca69035", "level": "note", "message": {"text": "Very large file: scripts/validate/claim-drift.ts (2062 lines)"}, "properties": {"repobilityId": "acdec2313331311e", "scanner": "scanner-primary", "fingerprint": "848a0f006ca69035", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c07eaed441a3d30", "level": "note", "message": {"text": "Very large file: packages/db/src/types/database.ts (1564 lines)"}, "properties": {"repobilityId": "2de985bb807de2c5", "scanner": "scanner-primary", "fingerprint": "6c07eaed441a3d30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-823a5e335fe9a360", "level": "note", "message": {"text": "Very large file: packages/contracts/src/generated/contracts.ts (2225 lines)"}, "properties": {"repobilityId": "759c6b77d1c5301b", "scanner": "scanner-primary", "fingerprint": "823a5e335fe9a360", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f1193c21c61dd97", "level": "note", "message": {"text": "Very large file: packages/contracts/src/generated/zod-schemas.ts (2224 lines)"}, "properties": {"repobilityId": "0e3fb8b1afea79e4", "scanner": "scanner-primary", "fingerprint": "0f1193c21c61dd97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c69f0b4f79af852d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/docs/package.json"}, "properties": {"repobilityId": "aef63841a7a897be", "scanner": "scanner-primary", "fingerprint": "c69f0b4f79af852d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/docs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f6d9aaea4f8a426", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/marketing/package.json"}, "properties": {"repobilityId": "c5cbcc1a970dc1e0", "scanner": "scanner-primary", "fingerprint": "9f6d9aaea4f8a426", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/marketing/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c30f715681a4005", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/admin/package.json"}, "properties": {"repobilityId": "17d56c8f05bdd359", "scanner": "scanner-primary", "fingerprint": "5c30f715681a4005", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/admin/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f12bbcc60e1f76c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/server/package.json"}, "properties": {"repobilityId": "16bf11fe30b0b8cc", "scanner": "scanner-primary", "fingerprint": "5f12bbcc60e1f76c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b52f3d5e0999caa", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/security/package.json"}, "properties": {"repobilityId": "4d89c300fd2f7300", "scanner": "scanner-primary", "fingerprint": "4b52f3d5e0999caa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/security/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fede29967ed5772", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/engines/package.json"}, "properties": {"repobilityId": "7be2f6ffe67e7f5a", "scanner": "scanner-primary", "fingerprint": "1fede29967ed5772", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engines/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-884ad368e0d3295e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/router/package.json"}, "properties": {"repobilityId": "ed3bba72b6256804", "scanner": "scanner-primary", "fingerprint": "884ad368e0d3295e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/router/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2dd77b00676ec847", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sync/package.json"}, "properties": {"repobilityId": "0f6c22ce005aadeb", "scanner": "scanner-primary", "fingerprint": "2dd77b00676ec847", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sync/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80f569ae36a3e3bf", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ai/package.json"}, "properties": {"repobilityId": "2d5eb1212f62ce31", "scanner": "scanner-primary", "fingerprint": "80f569ae36a3e3bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ai/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eddecaa766cadff2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/config/package.json"}, "properties": {"repobilityId": "03931bf3537e3eaf", "scanner": "scanner-primary", "fingerprint": "eddecaa766cadff2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/config/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41b225e183229484", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/auth/package.json"}, "properties": {"repobilityId": "c022328d0892fb4d", "scanner": "scanner-primary", "fingerprint": "41b225e183229484", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/auth/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4dba29e0ee46f793", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/create-revealui/package.json"}, "properties": {"repobilityId": "ca4f4d3886cd7a48", "scanner": "scanner-primary", "fingerprint": "4dba29e0ee46f793", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/create-revealui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9c03e4b51641936", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/mcp/package.json"}, "properties": {"repobilityId": "7b57a55f1ea73746", "scanner": "scanner-primary", "fingerprint": "b9c03e4b51641936", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mcp/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-332c996d13baab17", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/test/package.json"}, "properties": {"repobilityId": "3bf64e6f9babe1cd", "scanner": "scanner-primary", "fingerprint": "332c996d13baab17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/test/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-29b547b3cb4d6b10", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/resilience/package.json"}, "properties": {"repobilityId": "47b943e82c8b70b5", "scanner": "scanner-primary", "fingerprint": "29b547b3cb4d6b10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/resilience/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36e513ed369dc5f7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/scripts/package.json"}, "properties": {"repobilityId": "7ab183ac03f0ec57", "scanner": "scanner-primary", "fingerprint": "36e513ed369dc5f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scripts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c2e3196a4ef0cdd", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/package.json"}, "properties": {"repobilityId": "2faf23490612d7a6", "scanner": "scanner-primary", "fingerprint": "8c2e3196a4ef0cdd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22008884ff4ef1be", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter/package.json"}, "properties": {"repobilityId": "d76793a86ee90132", "scanner": "scanner-primary", "fingerprint": "22008884ff4ef1be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/templates/starter/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1119f3cda9953b0e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/basic-blog/package.json"}, "properties": {"repobilityId": "6c6b3c4d8cbed43f", "scanner": "scanner-primary", "fingerprint": "1119f3cda9953b0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/templates/basic-blog/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8cfa63b58cf567f3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/portfolio/package.json"}, "properties": {"repobilityId": "8829b2a635967cd3", "scanner": "scanner-primary", "fingerprint": "8cfa63b58cf567f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/templates/portfolio/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b53282d5c8c6c14", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/starter-native/package.json"}, "properties": {"repobilityId": "c42efc5e2fbd4db0", "scanner": "scanner-primary", "fingerprint": "2b53282d5c8c6c14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/templates/starter-native/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3fbed2d3fdce65f6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cli/templates/e-commerce/package.json"}, "properties": {"repobilityId": "c6ad7eac48d17257", "scanner": "scanner-primary", "fingerprint": "3fbed2d3fdce65f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cli/templates/e-commerce/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47edb5907af5997f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/utils/package.json"}, "properties": {"repobilityId": "64857de4b757dead", "scanner": "scanner-primary", "fingerprint": "47edb5907af5997f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17758973a65e7db1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cache/package.json"}, "properties": {"repobilityId": "7582a0b29850ef6b", "scanner": "scanner-primary", "fingerprint": "17758973a65e7db1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cache/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84e8fb7f82506019", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/harnesses/package.json"}, "properties": {"repobilityId": "3951b9525f41f9c1", "scanner": "scanner-primary", "fingerprint": "84e8fb7f82506019", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/harnesses/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-86833cb46f68d46c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/revealui/package.json"}, "properties": {"repobilityId": "dd1d7e8534eac951", "scanner": "scanner-primary", "fingerprint": "86833cb46f68d46c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/revealui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-889092dbc9ab7483", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/dev/package.json"}, "properties": {"repobilityId": "3e85db55874f1a72", "scanner": "scanner-primary", "fingerprint": "889092dbc9ab7483", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/dev/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5d46994f67835d9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/services/package.json"}, "properties": {"repobilityId": "5544cf3ede5c1b69", "scanner": "scanner-primary", "fingerprint": "a5d46994f67835d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/services/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b16ae2bd0fca524", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/db/package.json"}, "properties": {"repobilityId": "2bddd295d559a9b6", "scanner": "scanner-primary", "fingerprint": "7b16ae2bd0fca524", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28e92806c0db3cd2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "properties": {"repobilityId": "8640e46be7e3f9b2", "scanner": "scanner-primary", "fingerprint": "28e92806c0db3cd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eeba9be7881f7313", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/paywall/package.json"}, "properties": {"repobilityId": "ba3e76f40c8fb173", "scanner": "scanner-primary", "fingerprint": "eeba9be7881f7313", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/paywall/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f85d8f0719e22fa8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/contracts/package.json"}, "properties": {"repobilityId": "9533b27beaa7d171", "scanner": "scanner-primary", "fingerprint": "f85d8f0719e22fa8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/contracts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9e7525cb05ab3fd8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/setup/package.json"}, "properties": {"repobilityId": "f7d3abcdc6d28164", "scanner": "scanner-primary", "fingerprint": "9e7525cb05ab3fd8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/setup/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e1311bfab7073fa", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/presentation/package.json"}, "properties": {"repobilityId": "a1ee7d9eee4377c7", "scanner": "scanner-primary", "fingerprint": "7e1311bfab7073fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/presentation/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e52cabd5cdfdc20", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/openapi/package.json"}, "properties": {"repobilityId": "dd7a5e8d6782b253", "scanner": "scanner-primary", "fingerprint": "7e52cabd5cdfdc20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/openapi/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "099181557ca38a23", "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": "5150bd143256a581", "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": "b205b6bc6f852964", "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": "8049b32b7afeb62f", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "23c9154f2e1cef58", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "6155704f854daab2", "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": "0dc20013faa2ede9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-37582e55e2b39016", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/docs/vitest.config.ts:22"}, "properties": {"repobilityId": "88c5dab368fd004b", "scanner": "scanner-primary", "fingerprint": "37582e55e2b39016", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7286ac165b4e85ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/docs/scripts/prune-non-public.mjs:5"}, "properties": {"repobilityId": "a5d126c072c9b6d7", "scanner": "scanner-primary", "fingerprint": "7286ac165b4e85ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca435d4c698c1553", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/docs/scripts/served-docs.mjs:3"}, "properties": {"repobilityId": "af09ed7efe98002f", "scanner": "scanner-primary", "fingerprint": "ca435d4c698c1553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16b4cca73e8fd6fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/docs/app/App.tsx:90"}, "properties": {"repobilityId": "3922ed7d1071281d", "scanner": "scanner-primary", "fingerprint": "16b4cca73e8fd6fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c1f153d1cfc23c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/docs/app/utils/markdown.tsx:95"}, "properties": {"repobilityId": "607a6f7cc67935d5", "scanner": "scanner-primary", "fingerprint": "4c1f153d1cfc23c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d19b78880bc1ab4b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/docs/app/lib/search-index.ts:189"}, "properties": {"repobilityId": "553ecd4957b065ea", "scanner": "scanner-primary", "fingerprint": "d19b78880bc1ab4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d2207363b340014", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/marketing/app/__tests__/agency-engagement-ladder.test.ts:97"}, "properties": {"repobilityId": "1b6bc556939efcbf", "scanner": "scanner-primary", "fingerprint": "9d2207363b340014", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f085e84bfcc25126", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/marketing/app/components/landing/Fork.tsx:5"}, "properties": {"repobilityId": "949fc98131299864", "scanner": "scanner-primary", "fingerprint": "f085e84bfcc25126", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-794fd1fe1969809d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/marketing/app/routes/StatusPage.tsx:122"}, "properties": {"repobilityId": "7d6d5e850a157ea5", "scanner": "scanner-primary", "fingerprint": "794fd1fe1969809d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-13603ffe24b937ea", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/primitives.ts:1"}, "properties": {"repobilityId": "b6a05633cc3c396e", "scanner": "scanner-primary", "fingerprint": "13603ffe24b937ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-417c857b6ea5435c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators-how-it-works.ts:9"}, "properties": {"repobilityId": "0a3ba9da7d593ddc", "scanner": "scanner-primary", "fingerprint": "417c857b6ea5435c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-706a9b38cb7ac3a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/marketing/app/content/persona.ts:1"}, "properties": {"repobilityId": "d3776275d41e6aad", "scanner": "scanner-primary", "fingerprint": "706a9b38cb7ac3a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-807468d7d03d95b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/marketing/app/content/marketplace.ts:1"}, "properties": {"repobilityId": "863686fa62786b36", "scanner": "scanner-primary", "fingerprint": "807468d7d03d95b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-deb11a4dc4b502b1", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/products.ts:3"}, "properties": {"repobilityId": "0e935caf3c86343d", "scanner": "scanner-primary", "fingerprint": "deb11a4dc4b502b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53231c3679e9c1e1", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/marketing/app/content/home.ts:1"}, "properties": {"repobilityId": "ad7aa5a2ebedef79", "scanner": "scanner-primary", "fingerprint": "53231c3679e9c1e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6033503ab7d09b6", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/pricing.ts:140"}, "properties": {"repobilityId": "46e49071724bf6e5", "scanner": "scanner-primary", "fingerprint": "e6033503ab7d09b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb6dd8b00c3db41e", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/marketing/app/content/site.ts:1"}, "properties": {"repobilityId": "5deb04689312d792", "scanner": "scanner-primary", "fingerprint": "bb6dd8b00c3db41e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-785ea3a13162f237", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/marketing/app/content/for-operators.ts:1"}, "properties": {"repobilityId": "9a40fe22a9209660", "scanner": "scanner-primary", "fingerprint": "785ea3a13162f237", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c91bc6716d9a60a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/marketing/app/content/fair-source.ts:1"}, "properties": {"repobilityId": "535f2ba4476e70b3", "scanner": "scanner-primary", "fingerprint": "c91bc6716d9a60a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5e33b6dd729cfd7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/marketing/app/content/for-operators-managed.ts:4"}, "properties": {"repobilityId": "78eeeaffe1cafbd5", "scanner": "scanner-primary", "fingerprint": "d5e33b6dd729cfd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c9431ea0afd85b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/tailwind.config.ts:12"}, "properties": {"repobilityId": "0a0d391edc21d0e0", "scanner": "scanner-primary", "fingerprint": "b1c9431ea0afd85b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b614cccdd72ccb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/revealui.config.ts:40"}, "properties": {"repobilityId": "47805e469cf3bb51", "scanner": "scanner-primary", "fingerprint": "7b614cccdd72ccb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acd5198ed2dcd330", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/next.config.mjs:88"}, "properties": {"repobilityId": "2fdbf99bd55177b9", "scanner": "scanner-primary", "fingerprint": "acd5198ed2dcd330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fdeb089748a7ef9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/vitest.config.ts:33"}, "properties": {"repobilityId": "305077b8ecca8d41", "scanner": "scanner-primary", "fingerprint": "1fdeb089748a7ef9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3240f9ef41fb563", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/public/sw.js:124"}, "properties": {"repobilityId": "6fcffe26db37e434", "scanner": "scanner-primary", "fingerprint": "a3240f9ef41fb563", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2510eccbea9dcc8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/instrumentation.ts:34"}, "properties": {"repobilityId": "096c0b6686652e64", "scanner": "scanner-primary", "fingerprint": "f2510eccbea9dcc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf44155589270a7e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/instrumentation.ts:164"}, "properties": {"repobilityId": "ee57b4bc1537ecac", "scanner": "scanner-primary", "fingerprint": "bf44155589270a7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0b430c58dfa36a6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/proxy.ts:9"}, "properties": {"repobilityId": "ba4799f281634549", "scanner": "scanner-primary", "fingerprint": "a0b430c58dfa36a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3df60ea2c7d26b59", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-auth-redirect.test.ts:19"}, "properties": {"repobilityId": "9597e5cf38d63bab", "scanner": "scanner-primary", "fingerprint": "3df60ea2c7d26b59", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-674efc520e51321e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/__tests__/proxy-csp.test.ts:20"}, "properties": {"repobilityId": "eda4ff2cb0efac7e", "scanner": "scanner-primary", "fingerprint": "674efc520e51321e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef05ff32df1a631c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/__tests__/auth/access-control.test.ts:320"}, "properties": {"repobilityId": "eee31d6a7979cd67", "scanner": "scanner-primary", "fingerprint": "ef05ff32df1a631c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bdf8e6cd55bb142", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/__tests__/utils/admin-test-utils.ts:193"}, "properties": {"repobilityId": "7400ec1ce7d82ada", "scanner": "scanner-primary", "fingerprint": "4bdf8e6cd55bb142", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d1b24371215b875", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/app/global-error.tsx:20"}, "properties": {"repobilityId": "c58d567ecff738ac", "scanner": "scanner-primary", "fingerprint": "3d1b24371215b875", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70e52ced93870b14", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/globals/[slug]/route.ts:36"}, "properties": {"repobilityId": "c83c8a5a7dcfcc11", "scanner": "scanner-primary", "fingerprint": "70e52ced93870b14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5be0916ee038fccc", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/admin/src/app/api/auth/sign-up/route.ts:202"}, "properties": {"repobilityId": "d1b320bdd4b1d246", "scanner": "scanner-primary", "fingerprint": "5be0916ee038fccc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46ba291406a6de8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/callback/[provider]/route.ts:87"}, "properties": {"repobilityId": "de4e5b6bae9ee495", "scanner": "scanner-primary", "fingerprint": "46ba291406a6de8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2da70eea39c52c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/auth/password-reset/route.ts:70"}, "properties": {"repobilityId": "56d1946ae11499c6", "scanner": "scanner-primary", "fingerprint": "a2da70eea39c52c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-680ba47bbbb642cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/media/route.ts:45"}, "properties": {"repobilityId": "406f625eb6e7c76e", "scanner": "scanner-primary", "fingerprint": "680ba47bbbb642cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18f1972e51082c7f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/admin/src/app/api/mcp/oauth/__tests__/oauth-routes.test.ts:63"}, "properties": {"repobilityId": "b4e7a1c1feb64f9e", "scanner": "scanner-primary", "fingerprint": "18f1972e51082c7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2d63c703f0a969b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/app/api/mcp/remote-servers/[server]/get-prompt/route.ts:30"}, "properties": {"repobilityId": "2fe54f7199fa6f1b", "scanner": "scanner-primary", "fingerprint": "d2d63c703f0a969b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c749fb26acb3d07", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/app/api/gdpr/delete/route.ts:67"}, "properties": {"repobilityId": "4f7a0fe847b3ab32", "scanner": "scanner-primary", "fingerprint": "8c749fb26acb3d07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16cbc1f9e67ebf42", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/api/collections/[collection]/[id]/route.ts:30"}, "properties": {"repobilityId": "7884486927bb2404", "scanner": "scanner-primary", "fingerprint": "16cbc1f9e67ebf42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-488fcdbfc6f650c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/app/api/setup/route.ts:80"}, "properties": {"repobilityId": "bdfbe7620fb97dd7", "scanner": "scanner-primary", "fingerprint": "488fcdbfc6f650c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de76807e90735b36", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/earnings/page.tsx:41"}, "properties": {"repobilityId": "f63245d1156b5862", "scanner": "scanner-primary", "fingerprint": "de76807e90735b36", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-67162065de063669", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/marketplace/[agentId]/page.tsx:69"}, "properties": {"repobilityId": "2d95f6af642cb0f7", "scanner": "scanner-primary", "fingerprint": "67162065de063669", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b87c6d5f0689d647", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/media/page.tsx:65"}, "properties": {"repobilityId": "810b7370c649c920", "scanner": "scanner-primary", "fingerprint": "b87c6d5f0689d647", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d56eaa503991a1da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agent-tasks/page.tsx:116"}, "properties": {"repobilityId": "06a7168b81075ce5", "scanner": "scanner-primary", "fingerprint": "d56eaa503991a1da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a759e647ef2d6113", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/agents/page.tsx:70"}, "properties": {"repobilityId": "a4102881ac7a1bd1", "scanner": "scanner-primary", "fingerprint": "a759e647ef2d6113", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca242a8b27650418", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(backend)/upgrade/page.tsx:22"}, "properties": {"repobilityId": "b7c80b43eaea30dc", "scanner": "scanner-primary", "fingerprint": "ca242a8b27650418", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1abbb1a82bf0ffd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/app/(frontend)/layout.tsx:133"}, "properties": {"repobilityId": "e06dcc078aaa2fe9", "scanner": "scanner-primary", "fingerprint": "c1abbb1a82bf0ffd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b5b2a4521877675", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/billing/page.tsx:96"}, "properties": {"repobilityId": "0f6c6518630f479f", "scanner": "scanner-primary", "fingerprint": "9b5b2a4521877675", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d35a3f9552f87893", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/app/(frontend)/account/license/page.tsx:69"}, "properties": {"repobilityId": "85fd519e8ee2172f", "scanner": "scanner-primary", "fingerprint": "d35a3f9552f87893", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-131f148b2d78dc5b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/utils/csrf.ts:51"}, "properties": {"repobilityId": "37a791b195aa61a6", "scanner": "scanner-primary", "fingerprint": "131f148b2d78dc5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f374dc83a817490", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/utils/env-validation.ts:53"}, "properties": {"repobilityId": "eabaaf6132551652", "scanner": "scanner-primary", "fingerprint": "6f374dc83a817490", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163caa6529bcedb1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/AdminBar/index.tsx:165"}, "properties": {"repobilityId": "8425c951ef1e20d5", "scanner": "scanner-primary", "fingerprint": "163caa6529bcedb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a4ffcd3ba3cc4e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234"}, "properties": {"repobilityId": "a59bc69fdad5ea4d", "scanner": "scanner-primary", "fingerprint": "5a4ffcd3ba3cc4e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd819a1f7269478f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/CustomerSelect/index.tsx:6"}, "properties": {"repobilityId": "ff510252978ee968", "scanner": "scanner-primary", "fingerprint": "cd819a1f7269478f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6039e82db95ef944", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/PageRange/index.tsx:61"}, "properties": {"repobilityId": "e60c143671b2fd7e", "scanner": "scanner-primary", "fingerprint": "6039e82db95ef944", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-232f46657afb9e67", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/index.tsx:48"}, "properties": {"repobilityId": "15fdaa500710c7e9", "scanner": "scanner-primary", "fingerprint": "232f46657afb9e67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98edb9b80c4fa4d7", "level": "none", "message": {"text": "Commented-code block (29 lines) in apps/admin/src/lib/components/Media/types.ts:56"}, "properties": {"repobilityId": "6765d65a613c6d1a", "scanner": "scanner-primary", "fingerprint": "98edb9b80c4fa4d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-287222b84ef8aa79", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/components/Media/ImageMedia/index.tsx:80"}, "properties": {"repobilityId": "b4975c5a6deeff1f", "scanner": "scanner-primary", "fingerprint": "287222b84ef8aa79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62a6cde881b3da49", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:70"}, "properties": {"repobilityId": "3f29a1fc3a71b7c6", "scanner": "scanner-primary", "fingerprint": "62a6cde881b3da49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-956450298bc6e871", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11"}, "properties": {"repobilityId": "bdc11781254b2fe6", "scanner": "scanner-primary", "fingerprint": "956450298bc6e871", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-516fe68856a6b0fd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Products/hooks/beforeChange.ts:136"}, "properties": {"repobilityId": "d23b696685ffed92", "scanner": "scanner-primary", "fingerprint": "516fe68856a6b0fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8fef9dce04e2c268", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12"}, "properties": {"repobilityId": "7b46ee01ddebc698", "scanner": "scanner-primary", "fingerprint": "8fef9dce04e2c268", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab92c2d559995ad8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/admin/src/lib/collections/Prices/hooks/beforeChange.ts:30"}, "properties": {"repobilityId": "60af263921b4e4b8", "scanner": "scanner-primary", "fingerprint": "ab92c2d559995ad8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4211e54afd038e46", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/admin/src/lib/hooks/ensureFirstUserIsSuperAdmin.ts:41"}, "properties": {"repobilityId": "015478c5a588a313", "scanner": "scanner-primary", "fingerprint": "4211e54afd038e46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b97704ca473ca3cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/lib/hooks/customersProxy.ts:158"}, "properties": {"repobilityId": "f2e454d5a9c7da28", "scanner": "scanner-primary", "fingerprint": "b97704ca473ca3cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49a3dea0fee39105", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/admin/src/lib/features/label/feature.client.ts:3"}, "properties": {"repobilityId": "0891a583e4e773a3", "scanner": "scanner-primary", "fingerprint": "49a3dea0fee39105", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60b718e375b9db1d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/admin/src/lib/features/label/nodes/LabelNode.tsx:135"}, "properties": {"repobilityId": "0cb779b66cdced8b", "scanner": "scanner-primary", "fingerprint": "60b718e375b9db1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66a162db3acc08bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/tsup.config.ts:20"}, "properties": {"repobilityId": "1dca08901f24c306", "scanner": "scanner-primary", "fingerprint": "66a162db3acc08bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10af25cc0823a334", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/vitest.config.ts:8"}, "properties": {"repobilityId": "838b32987ddab43d", "scanner": "scanner-primary", "fingerprint": "10af25cc0823a334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f3cc9aa7927c7b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/index.ts:129"}, "properties": {"repobilityId": "3250bf87fb43a507", "scanner": "scanner-primary", "fingerprint": "1f3cc9aa7927c7b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-247de067984661aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/worker.ts:3"}, "properties": {"repobilityId": "0a2c2b18ad4e5261", "scanner": "scanner-primary", "fingerprint": "247de067984661aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff45e6040bc9071c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/__tests__/index.startup.test.ts:79"}, "properties": {"repobilityId": "7d761899c66ac045", "scanner": "scanner-primary", "fingerprint": "ff45e6040bc9071c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52c80cc2d4fd2319", "level": "note", "message": {"text": "Legacy-named symbol `sub_old` in apps/server/src/__tests__/concurrency/billing-concurrent.test.ts:770"}, "properties": {"repobilityId": "ff1b70c7c747ca23", "scanner": "scanner-primary", "fingerprint": "52c80cc2d4fd2319", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-710ad9f3b1328bc9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/error.ts:71"}, "properties": {"repobilityId": "0921fe29ee909dc0", "scanner": "scanner-primary", "fingerprint": "710ad9f3b1328bc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8974928c72ad2bf8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/task-quota.ts:114"}, "properties": {"repobilityId": "54ccba71ee1e3103", "scanner": "scanner-primary", "fingerprint": "8974928c72ad2bf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3761120887972d31", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/domain-validation.test.ts:7"}, "properties": {"repobilityId": "10fe95d2ebd1f623", "scanner": "scanner-primary", "fingerprint": "3761120887972d31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00c69d00b484e629", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/middleware/__tests__/rate-limit.test.ts:146"}, "properties": {"repobilityId": "1616b4760c023c33", "scanner": "scanner-primary", "fingerprint": "00c69d00b484e629", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6f237311a6f88dc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/internal-admin-client.ts:57"}, "properties": {"repobilityId": "1207f49e8c2593f1", "scanner": "scanner-primary", "fingerprint": "f6f237311a6f88dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdbeb0e3277edd4d", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/server/src/lib/validate-startup.ts:107"}, "properties": {"repobilityId": "dce66d78a80dfe5f", "scanner": "scanner-primary", "fingerprint": "cdbeb0e3277edd4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df565d8f928eabe4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/lib/agent-dispatcher.ts:50"}, "properties": {"repobilityId": "39552e36ecdcd7e0", "scanner": "scanner-primary", "fingerprint": "df565d8f928eabe4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4a6bd9af87c74bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/agent-dispatcher.ts:125"}, "properties": {"repobilityId": "59e75db3594206b8", "scanner": "scanner-primary", "fingerprint": "f4a6bd9af87c74bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99b67e599119977e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/lib/webhook-replay.ts:10"}, "properties": {"repobilityId": "e731a51a2fda5c0d", "scanner": "scanner-primary", "fingerprint": "99b67e599119977e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b89245c21c58449", "level": "note", "message": {"text": "Legacy-named symbol `cus_legacy` in apps/server/src/lib/__tests__/billing-status.test.ts:54"}, "properties": {"repobilityId": "f1525c145ee478bc", "scanner": "scanner-primary", "fingerprint": "9b89245c21c58449", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d171a8f956960dd2", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/lib/__tests__/request-context.test.ts:49"}, "properties": {"repobilityId": "a80fa3fda5111700", "scanner": "scanner-primary", "fingerprint": "d171a8f956960dd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c29dd9c3ad75ef9", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/server/src/routes/webhooks.ts:656"}, "properties": {"repobilityId": "3f016c57618d7d5d", "scanner": "scanner-primary", "fingerprint": "0c29dd9c3ad75ef9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3efffb5175211819", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/routes/billing.ts:127"}, "properties": {"repobilityId": "cab1187b14dfd50e", "scanner": "scanner-primary", "fingerprint": "3efffb5175211819", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55ed20efd9591f7a", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/server/src/routes/og.ts:35"}, "properties": {"repobilityId": "d98cbe9f54c9a389", "scanner": "scanner-primary", "fingerprint": "55ed20efd9591f7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-defcfae0a11f1def", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/routes/agent-stream.ts:220"}, "properties": {"repobilityId": "81393d0081148355", "scanner": "scanner-primary", "fingerprint": "defcfae0a11f1def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-783763ff6621a0e6", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/server/src/routes/pricing.ts:23"}, "properties": {"repobilityId": "576516f388c68307", "scanner": "scanner-primary", "fingerprint": "783763ff6621a0e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fb02dbd95cc71a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/contact.ts:30"}, "properties": {"repobilityId": "d4394e560b6ce412", "scanner": "scanner-primary", "fingerprint": "0fb02dbd95cc71a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e93e788d2578f3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/agent-stream-success.test.ts:250"}, "properties": {"repobilityId": "66afd2a05bddbe7d", "scanner": "scanner-primary", "fingerprint": "8e93e788d2578f3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22536c145d9ee5dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:207"}, "properties": {"repobilityId": "6a7acc5bcabc2240", "scanner": "scanner-primary", "fingerprint": "22536c145d9ee5dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f1883d40614c454", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:255"}, "properties": {"repobilityId": "bdeb099b6ed67859", "scanner": "scanner-primary", "fingerprint": "7f1883d40614c454", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40ae1033ccb935aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/inference-config.test.ts:400"}, "properties": {"repobilityId": "7432d3f8508bfb45", "scanner": "scanner-primary", "fingerprint": "40ae1033ccb935aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0fba5052dd0bb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/pricing-edge.test.ts:42"}, "properties": {"repobilityId": "8ecf07c751361659", "scanner": "scanner-primary", "fingerprint": "3c0fba5052dd0bb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba13dcbe8619f713", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/webhook-signature-replay.test.ts:857"}, "properties": {"repobilityId": "60256bcc242d7dbe", "scanner": "scanner-primary", "fingerprint": "ba13dcbe8619f713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0d105d8fddfb4ea", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/server/src/routes/__tests__/webhook-safety.test.ts:922"}, "properties": {"repobilityId": "2c659a1baf9157f8", "scanner": "scanner-primary", "fingerprint": "d0d105d8fddfb4ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6073e206b2e2d2a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/og.test.ts:4"}, "properties": {"repobilityId": "045da967fc30faed", "scanner": "scanner-primary", "fingerprint": "6073e206b2e2d2a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb236acebd62787b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/rag-index.test.ts:99"}, "properties": {"repobilityId": "a0ce9617d938d864", "scanner": "scanner-primary", "fingerprint": "cb236acebd62787b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6bb064264f424910", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:104"}, "properties": {"repobilityId": "e1628cc0200d6201", "scanner": "scanner-primary", "fingerprint": "6bb064264f424910", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5334d53b9adc1891", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:118"}, "properties": {"repobilityId": "4102f5093cb705d3", "scanner": "scanner-primary", "fingerprint": "5334d53b9adc1891", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fa98cf7d4951d12", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/billing-lifecycle.test.ts:506"}, "properties": {"repobilityId": "40e01a090c743d48", "scanner": "scanner-primary", "fingerprint": "7fa98cf7d4951d12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e60551c3f91ddfbe", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/devkit.test.ts:281"}, "properties": {"repobilityId": "6dd5a5ca3cc589c7", "scanner": "scanner-primary", "fingerprint": "e60551c3f91ddfbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96d4ed8ac3899628", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/agent-tasks.test.ts:349"}, "properties": {"repobilityId": "3c8a1ad082c3decc", "scanner": "scanner-primary", "fingerprint": "96d4ed8ac3899628", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6117e65b48bf470", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/billing-pending-change.test.ts:531"}, "properties": {"repobilityId": "01ea971127140aa5", "scanner": "scanner-primary", "fingerprint": "c6117e65b48bf470", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8289722c6e7ac972", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/routes/__tests__/billing-metered-checkout.test.ts:357"}, "properties": {"repobilityId": "138551652d316205", "scanner": "scanner-primary", "fingerprint": "8289722c6e7ac972", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d25451cac21ccf0", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:442"}, "properties": {"repobilityId": "bdb2c47ef4eae00b", "scanner": "scanner-primary", "fingerprint": "1d25451cac21ccf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3a639bbb572446f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/__tests__/marketplace.test.ts:112"}, "properties": {"repobilityId": "43780c42954de23e", "scanner": "scanner-primary", "fingerprint": "c3a639bbb572446f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7cbf8f10466cc46", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/__tests__/marketplace.test.ts:126"}, "properties": {"repobilityId": "32e800a2133a34fc", "scanner": "scanner-primary", "fingerprint": "f7cbf8f10466cc46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55f08feb0cadb490", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/coordination.test.ts:56"}, "properties": {"repobilityId": "772b81ad2c5d92ad", "scanner": "scanner-primary", "fingerprint": "55f08feb0cadb490", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-494c10fa72857b5b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/routes/admin/__tests__/observability-jobs.test.ts:14"}, "properties": {"repobilityId": "afd9c58425af2526", "scanner": "scanner-primary", "fingerprint": "494c10fa72857b5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b6a40716e5e9033", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/admin/__tests__/observability-jobs.test.ts:60"}, "properties": {"repobilityId": "de9d07045910b79c", "scanner": "scanner-primary", "fingerprint": "7b6a40716e5e9033", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5defd4814a4ed1b4", "level": "note", "message": {"text": "Legacy-named symbol `evt_old` in apps/server/src/routes/cron/drain-unreconciled.test.ts:216"}, "properties": {"repobilityId": "70b64b4b1fb764b2", "scanner": "scanner-primary", "fingerprint": "5defd4814a4ed1b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a27225d650623f03", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/cron/drain-unreconciled.test.ts:4"}, "properties": {"repobilityId": "0bf3d53d30e7d4a6", "scanner": "scanner-primary", "fingerprint": "a27225d650623f03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-323cd9422df12495", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/drain-unreconciled.test.ts:99"}, "properties": {"repobilityId": "1189bcf4081c9d25", "scanner": "scanner-primary", "fingerprint": "323cd9422df12495", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc268653ad61f696", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/cron/reconcile-customers.ts:104"}, "properties": {"repobilityId": "475dadd6a356c6cb", "scanner": "scanner-primary", "fingerprint": "fc268653ad61f696", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86d3324f295ba1d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/routes/cron/billing-readiness.ts:151"}, "properties": {"repobilityId": "240aa5ad67880375", "scanner": "scanner-primary", "fingerprint": "86d3324f295ba1d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9130afe0b3681ee8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/reconcile-subscriptions.test.ts:67"}, "properties": {"repobilityId": "6e26e452ecc1c43a", "scanner": "scanner-primary", "fingerprint": "9130afe0b3681ee8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-077def3cec0f7967", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/server/src/routes/cron/dispatch.ts:53"}, "properties": {"repobilityId": "8498382b8b0500f9", "scanner": "scanner-primary", "fingerprint": "077def3cec0f7967", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c3f459847927ed9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/server/src/routes/cron/__tests__/reconcile-customers.test.ts:134"}, "properties": {"repobilityId": "76810b271ccd974c", "scanner": "scanner-primary", "fingerprint": "3c3f459847927ed9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93cc981990db880f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/routes/content/media.ts:341"}, "properties": {"repobilityId": "6a99154967fa697d", "scanner": "scanner-primary", "fingerprint": "93cc981990db880f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd2cb6b8b1b33c63", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/server/src/collab/provenance-logger.ts:63"}, "properties": {"repobilityId": "08b5f8ca5ec89151", "scanner": "scanner-primary", "fingerprint": "dd2cb6b8b1b33c63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f93c5fce35e99a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/services/revmarket-executor.ts:215"}, "properties": {"repobilityId": "f9033827913f6130", "scanner": "scanner-primary", "fingerprint": "2f93c5fce35e99a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ee1732f4e938c93", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/server/src/services/revmarket-sandbox/__test-runners__/memory-bomb.mjs:5"}, "properties": {"repobilityId": "1a3f29bac3989339", "scanner": "scanner-primary", "fingerprint": "7ee1732f4e938c93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-730057d84155a628", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/server/src/jobs/agent-dispatch.ts:80"}, "properties": {"repobilityId": "874fbc31e8817cbd", "scanner": "scanner-primary", "fingerprint": "730057d84155a628", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b91de2f0eec134b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/security/__tests__/rotate-kek.test.ts:17"}, "properties": {"repobilityId": "26ca5029acaa67c5", "scanner": "scanner-primary", "fingerprint": "b91de2f0eec134b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fda43b991b991e1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/electric-latency-probe/probe.ts:277"}, "properties": {"repobilityId": "68bd79b1f577fc55", "scanner": "scanner-primary", "fingerprint": "7fda43b991b991e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97cdb90780e3eb4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/admin/bootstrap.ts:56"}, "properties": {"repobilityId": "1759aacefca952b0", "scanner": "scanner-primary", "fingerprint": "97cdb90780e3eb4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-052b750f3a88ef66", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validate/claim-drift.ts:32"}, "properties": {"repobilityId": "224f24fa0942d74d", "scanner": "scanner-primary", "fingerprint": "052b750f3a88ef66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fac97dbba5ebc78", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validate/raw-sql.ts:340"}, "properties": {"repobilityId": "ed3ab52ee324f64a", "scanner": "scanner-primary", "fingerprint": "5fac97dbba5ebc78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec95f4c9d8fabc8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/validate/prod-env.ts:131"}, "properties": {"repobilityId": "2e5f343b324a3f37", "scanner": "scanner-primary", "fingerprint": "7ec95f4c9d8fabc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b1d72e7d1247ee0", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validate/marketing-voice.ts:52"}, "properties": {"repobilityId": "5915c1ae30f00d21", "scanner": "scanner-primary", "fingerprint": "1b1d72e7d1247ee0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd69ec5035f06853", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/validate/__tests__/prod-env.test.ts:269"}, "properties": {"repobilityId": "65d0e74d8a1df099", "scanner": "scanner-primary", "fingerprint": "cd69ec5035f06853", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6c0d928694ebb34", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/setup/seed-stripe.ts:44"}, "properties": {"repobilityId": "e340cad55015c4bf", "scanner": "scanner-primary", "fingerprint": "d6c0d928694ebb34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4de2696143e2a108", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/security/tsup.config.ts:4"}, "properties": {"repobilityId": "310975fce77ce116", "scanner": "scanner-primary", "fingerprint": "4de2696143e2a108", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ba0954beb504997", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/security/src/auth.ts:99"}, "properties": {"repobilityId": "5f15b7cbc75d5ae8", "scanner": "scanner-primary", "fingerprint": "7ba0954beb504997", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc95f7e0f21f95d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/security/src/sanitize.ts:19"}, "properties": {"repobilityId": "755d93a2a815e96f", "scanner": "scanner-primary", "fingerprint": "cc95f7e0f21f95d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc19397d4f5b89ae", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/security/src/__tests__/request-ip.test.ts:24"}, "properties": {"repobilityId": "c6099184fc1a3779", "scanner": "scanner-primary", "fingerprint": "dc19397d4f5b89ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-044044f42954e2f3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/router/src/index.ts:26"}, "properties": {"repobilityId": "a5a40cfeb25fb7bc", "scanner": "scanner-primary", "fingerprint": "044044f42954e2f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8726d184c61d27da", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/router/src/router.ts:18"}, "properties": {"repobilityId": "91d4410e1d909684", "scanner": "scanner-primary", "fingerprint": "8726d184c61d27da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-443b679a6f8a60af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sync/src/fetch-with-timeout.ts:26"}, "properties": {"repobilityId": "d9259a3205421817", "scanner": "scanner-primary", "fingerprint": "443b679a6f8a60af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4f1f479e9940bc09", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/ai/src/__tests__/integration/crdt-persistence.test.ts:170"}, "properties": {"repobilityId": "a0cc86c47101daeb", "scanner": "scanner-primary", "fingerprint": "4f1f479e9940bc09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-314057f2bf2c9165", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ai/src/__tests__/integration/persistence-regression.test.ts:44"}, "properties": {"repobilityId": "9628a6debd4bf16b", "scanner": "scanner-primary", "fingerprint": "314057f2bf2c9165", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c9224ae63d704dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ai/src/__tests__/tools/mcp-events.test.ts:343"}, "properties": {"repobilityId": "78c6ebca487d5f66", "scanner": "scanner-primary", "fingerprint": "4c9224ae63d704dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d72fefa0504bc577", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/client/hooks/useAgentStream.ts:275"}, "properties": {"repobilityId": "3a3288953c6799e5", "scanner": "scanner-primary", "fingerprint": "d72fefa0504bc577", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-10e38f32bc51576b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.test.ts:86"}, "properties": {"repobilityId": "238cd5f0005f9db4", "scanner": "scanner-primary", "fingerprint": "10e38f32bc51576b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d1acab752f98dfc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/ai/src/tools/ticket-tools.ts:80"}, "properties": {"repobilityId": "f35e1971c80461c0", "scanner": "scanner-primary", "fingerprint": "4d1acab752f98dfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cad9d52b1a87047c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/openai-compat.ts:91"}, "properties": {"repobilityId": "0239a44606bb6974", "scanner": "scanner-primary", "fingerprint": "cad9d52b1a87047c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8241e223cb9bd93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/inference-snaps.ts:83"}, "properties": {"repobilityId": "c6d96f64b954a1ba", "scanner": "scanner-primary", "fingerprint": "d8241e223cb9bd93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cf9cd0a9f2168c4b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ai/src/llm/providers/ollama.ts:64"}, "properties": {"repobilityId": "b44af36702ed9d80", "scanner": "scanner-primary", "fingerprint": "cf9cd0a9f2168c4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c5210a86e1116a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/config/src/schema.ts:84"}, "properties": {"repobilityId": "4d85cf60a4c4eb2b", "scanner": "scanner-primary", "fingerprint": "3c5210a86e1116a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-327eecbd669236cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/config/src/index.ts:128"}, "properties": {"repobilityId": "623688de8dde692f", "scanner": "scanner-primary", "fingerprint": "327eecbd669236cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eca8f774f115aa1d", "level": "note", "message": {"text": "Legacy-named symbol `envWithDeprecated` in packages/config/src/__tests__/config.test.ts:246"}, "properties": {"repobilityId": "6d8ffd6c9efd4ff8", "scanner": "scanner-primary", "fingerprint": "eca8f774f115aa1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7259b304c7791909", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/usePasskey.ts:119"}, "properties": {"repobilityId": "48750670755c5843", "scanner": "scanner-primary", "fingerprint": "7259b304c7791909", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-74fd924948bf8bfe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/react/__tests__/usePasskey.test.tsx:110"}, "properties": {"repobilityId": "e651a66cd1ba91ac", "scanner": "scanner-primary", "fingerprint": "74fd924948bf8bfe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d963629802ac281", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/auth/src/server/oauth.ts:265"}, "properties": {"repobilityId": "3c8659fa070775ac", "scanner": "scanner-primary", "fingerprint": "4d963629802ac281", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fe0f29344d3e76a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/auth/src/server/providers/github.ts:114"}, "properties": {"repobilityId": "ce25601f77b8b22e", "scanner": "scanner-primary", "fingerprint": "7fe0f29344d3e76a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35c1f043314325c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/auth/src/server/providers/google.ts:99"}, "properties": {"repobilityId": "40ab8550a0bfb7ea", "scanner": "scanner-primary", "fingerprint": "35c1f043314325c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e57943e63953166", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mcp/__tests__/revealui-content-factory.integration.test.ts:134"}, "properties": {"repobilityId": "88f214feb613fa84", "scanner": "scanner-primary", "fingerprint": "4e57943e63953166", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66381dd98d62e563", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/mcp/__tests__/remote-client.test.ts:23"}, "properties": {"repobilityId": "c3528aaae2536eb5", "scanner": "scanner-primary", "fingerprint": "66381dd98d62e563", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf506f9c5c852cda", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/__tests__/streamable-http.integration.test.ts:237"}, "properties": {"repobilityId": "bd5229f1d9041650", "scanner": "scanner-primary", "fingerprint": "bf506f9c5c852cda", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-497b3dc4da20ced0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mcp/__tests__/mcp-document-operations.integration.test.ts:12"}, "properties": {"repobilityId": "82b133976cba6cca", "scanner": "scanner-primary", "fingerprint": "497b3dc4da20ced0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-135581aeab9392d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mcp/src/__tests__/contracts-server.test.ts:31"}, "properties": {"repobilityId": "ac19b59634515bc8", "scanner": "scanner-primary", "fingerprint": "135581aeab9392d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f03bd824411884c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/_email-provider.ts:67"}, "properties": {"repobilityId": "423ebcb7aef5c676", "scanner": "scanner-primary", "fingerprint": "f03bd824411884c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-727e2d379d28a2b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-stripe.ts:66"}, "properties": {"repobilityId": "8676786711189997", "scanner": "scanner-primary", "fingerprint": "727e2d379d28a2b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e711dd93ae78886", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/adapter.ts:489"}, "properties": {"repobilityId": "0d00b1f7c514f9d3", "scanner": "scanner-primary", "fingerprint": "3e711dd93ae78886", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8381d17503cfa74a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/mcp/src/servers/revealui-memory.ts:70"}, "properties": {"repobilityId": "8f9dfc8fef6bcc89", "scanner": "scanner-primary", "fingerprint": "8381d17503cfa74a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0a846f0fefb600eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mcp/src/servers/supabase.ts:27"}, "properties": {"repobilityId": "4873fcaec8ac49ae", "scanner": "scanner-primary", "fingerprint": "0a846f0fefb600eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41142ad46f1e5904", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/test/src/integration/auth/session-cleanup.integration.test.ts:153"}, "properties": {"repobilityId": "67b6c54931e900dc", "scanner": "scanner-primary", "fingerprint": "41142ad46f1e5904", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a142010b45eccd6", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/test/src/integration/auth/brute-force.integration.test.ts:44"}, "properties": {"repobilityId": "0828ef41c805ef73", "scanner": "scanner-primary", "fingerprint": "2a142010b45eccd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6124ca0371d660cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/test/src/integration/auth/rate-limiting.integration.test.ts:42"}, "properties": {"repobilityId": "17ea3d30b9edced9", "scanner": "scanner-primary", "fingerprint": "6124ca0371d660cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdacc6d18d414429", "level": "note", "message": {"text": "Legacy-named symbol `evt_old` in packages/test/src/integration/database/operational-retention.integration.test.ts:170"}, "properties": {"repobilityId": "156f5750342983da", "scanner": "scanner-primary", "fingerprint": "bdacc6d18d414429", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4c4c2b0d461986e7", "level": "note", "message": {"text": "Legacy-named symbol `evt_test_old` in packages/test/src/integration/services/webhook-handling.integration.test.ts:117"}, "properties": {"repobilityId": "de5d294d1cf88c60", "scanner": "scanner-primary", "fingerprint": "4c4c2b0d461986e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-858f57be5ce205fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/test/src/utils/test-hooks.ts:50"}, "properties": {"repobilityId": "e5ef8685d8788bf1", "scanner": "scanner-primary", "fingerprint": "858f57be5ce205fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbcd2dceefe85435", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/test/src/utils/integration-helpers.ts:168"}, "properties": {"repobilityId": "c414bdab071891f7", "scanner": "scanner-primary", "fingerprint": "bbcd2dceefe85435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b11fb4e47db3a44", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/test/src/patterns/payments.test.example.ts:23"}, "properties": {"repobilityId": "76a51dd71b226e12", "scanner": "scanner-primary", "fingerprint": "0b11fb4e47db3a44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e59b5e4da6ed79a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/retry.ts:166"}, "properties": {"repobilityId": "2b7a91814245cf81", "scanner": "scanner-primary", "fingerprint": "4e59b5e4da6ed79a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1e9ad4aa2d70527c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/resilience/src/circuit-breaker.ts:454"}, "properties": {"repobilityId": "cb0e55896ef31304", "scanner": "scanner-primary", "fingerprint": "1e9ad4aa2d70527c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e7719d6a2e8925a2", "level": "note", "message": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/index.ts:241"}, "properties": {"repobilityId": "328b6322eae0f8ae", "scanner": "scanner-primary", "fingerprint": "e7719d6a2e8925a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6734c1cc9057201a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/scripts/parallel.ts:358"}, "properties": {"repobilityId": "cc98ed08a6f40986", "scanner": "scanner-primary", "fingerprint": "6734c1cc9057201a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7ce2e19cf70c341", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in packages/scripts/registry/script-metadata.ts:186"}, "properties": {"repobilityId": "2370178cb178877f", "scanner": "scanner-primary", "fingerprint": "c7ce2e19cf70c341", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b4d3921008083ba0", "level": "note", "message": {"text": "Legacy-named symbol `scriptsDeprecated` in packages/scripts/registry/script-registry.ts:322"}, "properties": {"repobilityId": "d342b1e59b6237aa", "scanner": "scanner-primary", "fingerprint": "b4d3921008083ba0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-201c0e57b90c76b8", "level": "note", "message": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/documentation-validator.ts:89"}, "properties": {"repobilityId": "552fad0687699f9a", "scanner": "scanner-primary", "fingerprint": "201c0e57b90c76b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e8b800c8b317e3f2", "level": "note", "message": {"text": "Legacy-named symbol `validateDeprecated` in packages/scripts/validators/index.ts:22"}, "properties": {"repobilityId": "5053f910da2f04a1", "scanner": "scanner-primary", "fingerprint": "e8b800c8b317e3f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-030584346d23a3c3", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/cli/templates/starter/src/seed.ts:16"}, "properties": {"repobilityId": "31933a7bb6490940", "scanner": "scanner-primary", "fingerprint": "030584346d23a3c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4444ffb17d862a2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/basic-blog/src/seed.ts:56"}, "properties": {"repobilityId": "587f6552d61985ee", "scanner": "scanner-primary", "fingerprint": "4444ffb17d862a2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d3f6b9e48e262aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/portfolio/src/seed.ts:56"}, "properties": {"repobilityId": "044dda4522b6d574", "scanner": "scanner-primary", "fingerprint": "1d3f6b9e48e262aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6c4a7a5d833f1b29", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/cli/templates/starter-native/src/seed.ts:16"}, "properties": {"repobilityId": "bf72c078eeeb4ac5", "scanner": "scanner-primary", "fingerprint": "6c4a7a5d833f1b29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ded6c8a85abd119", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cli/templates/e-commerce/src/seed.ts:55"}, "properties": {"repobilityId": "b77a405964e95143", "scanner": "scanner-primary", "fingerprint": "9ded6c8a85abd119", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0773373002ab1a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/cache/src/edge-cache.ts:136"}, "properties": {"repobilityId": "998e41dea2e6d767", "scanner": "scanner-primary", "fingerprint": "a0773373002ab1a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6aaa00f1bd823e05", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/cache/src/__tests__/adapters-supplemental.test.ts:110"}, "properties": {"repobilityId": "0756a314acb67eff", "scanner": "scanner-primary", "fingerprint": "6aaa00f1bd823e05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f9e991ec3d7d7c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/harnesses/src/cli.ts:296"}, "properties": {"repobilityId": "6ae688cb0f87380f", "scanner": "scanner-primary", "fingerprint": "3f9e991ec3d7d7c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1b466c8a85f9fed", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/dev/src/code-validator/__tests__/validator.test.ts:115"}, "properties": {"repobilityId": "12d6e743744cb3a1", "scanner": "scanner-primary", "fingerprint": "b1b466c8a85f9fed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-113f1c5a1d40840d", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/services/vitest.config.ts:33"}, "properties": {"repobilityId": "1928c27273cd554f", "scanner": "scanner-primary", "fingerprint": "113f1c5a1d40840d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-299e26ba70470ec3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/services/__tests__/stripe-api-methods.test.ts:324"}, "properties": {"repobilityId": "30a04b9e62260ee1", "scanner": "scanner-primary", "fingerprint": "299e26ba70470ec3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26865615295d9810", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/services/src/email/index.ts:135"}, "properties": {"repobilityId": "abd1dc374206d9fe", "scanner": "scanner-primary", "fingerprint": "26865615295d9810", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76488486d31059b4", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/services/src/stripe/mode.ts:5"}, "properties": {"repobilityId": "6c0fff061523a020", "scanner": "scanner-primary", "fingerprint": "76488486d31059b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97acd98f88f7aa86", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/services/src/stripe/stripeClient.ts:42"}, "properties": {"repobilityId": "ed1a8ab8caeee1ea", "scanner": "scanner-primary", "fingerprint": "97acd98f88f7aa86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-433bab81f5cd1a31", "level": "note", "message": {"text": "Legacy-named symbol `encUnderOld` in packages/db/src/__tests__/crypto.test.ts:557"}, "properties": {"repobilityId": "18c54ae3720b82fe", "scanner": "scanner-primary", "fingerprint": "433bab81f5cd1a31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a55a1659c8349696", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/__tests__/crypto.test.ts:455"}, "properties": {"repobilityId": "f21c028a4e70c168", "scanner": "scanner-primary", "fingerprint": "a55a1659c8349696", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-666e40e70c90d2ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/types/extract-relationships.ts:593"}, "properties": {"repobilityId": "97e591e5474f89e9", "scanner": "scanner-primary", "fingerprint": "666e40e70c90d2ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eec426a6872c8b04", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/db/src/types/__tests__/discover-units.test.ts:498"}, "properties": {"repobilityId": "f9b119fbd869b9ed", "scanner": "scanner-primary", "fingerprint": "eec426a6872c8b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac4adcada22ab9e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/client/index.ts:206"}, "properties": {"repobilityId": "e52cdaa1765e8d64", "scanner": "scanner-primary", "fingerprint": "ac4adcada22ab9e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa6ae6df425d7995", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/src/schema/users.ts:104"}, "properties": {"repobilityId": "643a60d1dc857f74", "scanner": "scanner-primary", "fingerprint": "aa6ae6df425d7995", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e008d27ba8b1dc19", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/db/src/jobs/enqueue.ts:161"}, "properties": {"repobilityId": "67604e3917e075ed", "scanner": "scanner-primary", "fingerprint": "e008d27ba8b1dc19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1a96e0375de64d10", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/index.ts:191"}, "properties": {"repobilityId": "2fec4aa4d1e00a35", "scanner": "scanner-primary", "fingerprint": "1a96e0375de64d10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9c1e052657682f2", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/core/src/revforge-license.ts:123"}, "properties": {"repobilityId": "a5842c4f552d255a", "scanner": "scanner-primary", "fingerprint": "d9c1e052657682f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef2b1bf8f7321e60", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/license.ts:281"}, "properties": {"repobilityId": "ced9b3d6ad5eaa2d", "scanner": "scanner-primary", "fingerprint": "ef2b1bf8f7321e60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb8769f731250224", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/__tests__/extraction-quality.test.ts:191"}, "properties": {"repobilityId": "c1d8c1afa8f5bfab", "scanner": "scanner-primary", "fingerprint": "eb8769f731250224", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd99f309636518ec", "level": "note", "message": {"text": "Legacy-named symbol `cus_legacy` in packages/core/src/__tests__/license.test.ts:190"}, "properties": {"repobilityId": "aa92982c0ebf5fcc", "scanner": "scanner-primary", "fingerprint": "bd99f309636518ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b4bec66a36db3d9", "level": "note", "message": {"text": "Legacy-named symbol `collection_v2` in packages/core/src/__tests__/security/injection-prevention.test.ts:87"}, "properties": {"repobilityId": "bc99714a3025151c", "scanner": "scanner-primary", "fingerprint": "9b4bec66a36db3d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ccc5fd7fa4578191", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/__tests__/concurrency/race-conditions.test.ts:47"}, "properties": {"repobilityId": "cba936e2332721eb", "scanner": "scanner-primary", "fingerprint": "ccc5fd7fa4578191", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d5a3aed5941a22b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/richtext/exports/server/rsc.tsx:8"}, "properties": {"repobilityId": "d8a0694720645fd6", "scanner": "scanner-primary", "fingerprint": "d5a3aed5941a22b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5da935479dec07b5", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/core/src/fields/hooks/afterRead/promise.ts:59"}, "properties": {"repobilityId": "deaec35ffc74da88", "scanner": "scanner-primary", "fingerprint": "5da935479dec07b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a77d1cebd461c745", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/types/index.ts:291"}, "properties": {"repobilityId": "1a270f193caf26c2", "scanner": "scanner-primary", "fingerprint": "a77d1cebd461c745", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6f0bf0afa71839a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/richtext/components/__tests__/upload.test.ts:6"}, "properties": {"repobilityId": "2c3a98ca401a867b", "scanner": "scanner-primary", "fingerprint": "d6f0bf0afa71839a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d902ab527f59710f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/client/admin/utils/csrf.ts:39"}, "properties": {"repobilityId": "6aaaf94a75a404db", "scanner": "scanner-primary", "fingerprint": "d902ab527f59710f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-83bc1bc590c1d5dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/generated/types/index.ts:16"}, "properties": {"repobilityId": "0493aae0b99a8cab", "scanner": "scanner-primary", "fingerprint": "83bc1bc590c1d5dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-905022f8d5c202a4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/cache.ts:12"}, "properties": {"repobilityId": "d2180598499b636c", "scanner": "scanner-primary", "fingerprint": "905022f8d5c202a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d6cffe4e48987c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/request-context.ts:204"}, "properties": {"repobilityId": "6c06db80aa4731f7", "scanner": "scanner-primary", "fingerprint": "6d6cffe4e48987c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-726495decff332c9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/utils/__tests__/cache.test.ts:30"}, "properties": {"repobilityId": "24dcfc6d333bf354", "scanner": "scanner-primary", "fingerprint": "726495decff332c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9310b1970b8dc66c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/observability/alerts.ts:240"}, "properties": {"repobilityId": "f2cb9455932ae433", "scanner": "scanner-primary", "fingerprint": "9310b1970b8dc66c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d508c9a587cfa087", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/core/src/observability/__tests__/metrics.test.ts:484"}, "properties": {"repobilityId": "0b1ec4ea813ef294", "scanner": "scanner-primary", "fingerprint": "d508c9a587cfa087", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59b7df04a038c520", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/collections/operations/findById.ts:56"}, "properties": {"repobilityId": "1dcb76974a679269", "scanner": "scanner-primary", "fingerprint": "59b7df04a038c520", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08b5475d7066f87a", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/core/src/collections/operations/sqlAdapter.ts:107"}, "properties": {"repobilityId": "ce0b3e57e45c61d9", "scanner": "scanner-primary", "fingerprint": "08b5475d7066f87a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab601c7209e29fba", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/collections/operations/create.ts:162"}, "properties": {"repobilityId": "4947c26204f69190", "scanner": "scanner-primary", "fingerprint": "ab601c7209e29fba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0d131a7d7a55ad8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/collections/operations/__tests__/access-enforcement.test.ts:809"}, "properties": {"repobilityId": "2e192f8088100098", "scanner": "scanner-primary", "fingerprint": "b0d131a7d7a55ad8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bb902ba0d0ae3e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/nextjs/index.ts:3"}, "properties": {"repobilityId": "fffe762d1cbd7642", "scanner": "scanner-primary", "fingerprint": "9bb902ba0d0ae3e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05a818186eecf091", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/queries/queryBuilder.ts:68"}, "properties": {"repobilityId": "d3d8bd2b7153535d", "scanner": "scanner-primary", "fingerprint": "05a818186eecf091", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c50faec62ffc182", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/core/src/storage/r2.ts:105"}, "properties": {"repobilityId": "2ffee0e3601c6de3", "scanner": "scanner-primary", "fingerprint": "4c50faec62ffc182", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d4fe21c54378d45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/core/src/storage/r2.ts:110"}, "properties": {"repobilityId": "27df6ef98166a164", "scanner": "scanner-primary", "fingerprint": "6d4fe21c54378d45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ddd3e33a61e54bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/index.ts:22"}, "properties": {"repobilityId": "1bf267033edff6e1", "scanner": "scanner-primary", "fingerprint": "9ddd3e33a61e54bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a40d9d2b6a552c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/PaywallProvider.tsx:34"}, "properties": {"repobilityId": "21b8cfef1b02cf6f", "scanner": "scanner-primary", "fingerprint": "5a40d9d2b6a552c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-882abdb2a824e12a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/paywall/src/client/upgrade-aware-fetch.ts:47"}, "properties": {"repobilityId": "94484b3483d2f922", "scanner": "scanner-primary", "fingerprint": "882abdb2a824e12a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4785ae9184be52c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/contracts/src/pricing.ts:165"}, "properties": {"repobilityId": "98a4bab5dcfcb0a1", "scanner": "scanner-primary", "fingerprint": "4785ae9184be52c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40bd9443ff48fd0d", "level": "note", "message": {"text": "Legacy-named symbol `agt_legacy` in packages/contracts/src/__tests__/agent-pricing.test.ts:96"}, "properties": {"repobilityId": "4f6fc16f1321016e", "scanner": "scanner-primary", "fingerprint": "40bd9443ff48fd0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7063c4a40a39036f", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/setup/src/__tests__/bootstrap.test.ts:146"}, "properties": {"repobilityId": "e0216b1284845cf0", "scanner": "scanner-primary", "fingerprint": "7063c4a40a39036f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3df8d4d5f9274cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/setup/src/bootstrap/index.ts:183"}, "properties": {"repobilityId": "82b512200a3b7a3a", "scanner": "scanner-primary", "fingerprint": "e3df8d4d5f9274cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2979f44862f6414", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/presentation/src/server.ts:11"}, "properties": {"repobilityId": "7b6ca40653d7662c", "scanner": "scanner-primary", "fingerprint": "b2979f44862f6414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12f6ce72fe39b3e1", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/presentation/src/__tests__/tokens.contract.test.ts:44"}, "properties": {"repobilityId": "c26122f9da451193", "scanner": "scanner-primary", "fingerprint": "12f6ce72fe39b3e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02d8beb9ae27563b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/openapi/scripts/emit-from-mcp.ts:100"}, "properties": {"repobilityId": "42fa12f9eff448aa", "scanner": "scanner-primary", "fingerprint": "02d8beb9ae27563b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0798f43294a59a5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/openapi/src/__tests__/emit-from-mcp.test.ts:53"}, "properties": {"repobilityId": "4977a067dbf55136", "scanner": "scanner-primary", "fingerprint": "0798f43294a59a5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf5e0bcfa7e5749b", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/smoke.e2e.ts:132"}, "properties": {"repobilityId": "87fedb571c3e02de", "scanner": "scanner-primary", "fingerprint": "bf5e0bcfa7e5749b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ece469775f67d011", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/billing-funnel.e2e.ts:130"}, "properties": {"repobilityId": "e8d3ede15b5a716d", "scanner": "scanner-primary", "fingerprint": "ece469775f67d011", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8660ec72a3ca3311", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/billing-funnel.e2e.ts:132"}, "properties": {"repobilityId": "eb3fb881823a5413", "scanner": "scanner-primary", "fingerprint": "8660ec72a3ca3311", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ad896bb52748b983", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/content.e2e.ts:54"}, "properties": {"repobilityId": "8038f816ffc34d0c", "scanner": "scanner-primary", "fingerprint": "ad896bb52748b983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f98463ffbef65625", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/utils/db-helpers.ts:327"}, "properties": {"repobilityId": "c1e1bfe90663af8a", "scanner": "scanner-primary", "fingerprint": "f98463ffbef65625", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55bb41278814344e", "level": "note", "message": {"text": "231 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1591a9e671cb8254", "scanner": "scanner-primary", "fingerprint": "55bb41278814344e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-58089577c2ad502e", "level": "error", "message": {"text": "Dangling fetch: HEAD /${section}/${file}.md (apps/docs/app/utils/file-discovery.ts:55)"}, "properties": {"repobilityId": "c324c295e0b94421", "scanner": "scanner-primary", "fingerprint": "58089577c2ad502e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5584f3e5a068022a", "level": "error", "message": {"text": "Dangling fetch: HEAD /${section}/${pkg}/README.md (apps/docs/app/utils/file-discovery.ts:76)"}, "properties": {"repobilityId": "499ba7b1d78f02d3", "scanner": "scanner-primary", "fingerprint": "5584f3e5a068022a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-21a92b4614a09400", "level": "error", "message": {"text": "Dangling fetch: GET /${file} (apps/docs/app/lib/search-index.ts:189)"}, "properties": {"repobilityId": "509b5420ba64bccf", "scanner": "scanner-primary", "fingerprint": "21a92b4614a09400", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-968905b7b1bae306", "level": "error", "message": {"text": "Dangling fetch: PUT https://sentry.io/api/0/projects/${process.env.SENTRY_ORG}/${process.env.SENTRY_PROJECT}/users/${ident}/forget/ (apps/admin/src/app/api/gdpr/delete/route.ts:198)"}, "properties": {"repobilityId": "403cde01a97aeb5a", "scanner": "scanner-primary", "fingerprint": "968905b7b1bae306", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e982e1cb77913fa6", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/mfa/status (apps/admin/src/app/(backend)/settings/security/page.tsx:120)"}, "properties": {"repobilityId": "d012f89de3c91b78", "scanner": "scanner-primary", "fingerprint": "e982e1cb77913fa6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d169d8053b6eec27", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/passkey/list (apps/admin/src/app/(backend)/settings/security/page.tsx:132)"}, "properties": {"repobilityId": "141176090478de9a", "scanner": "scanner-primary", "fingerprint": "d169d8053b6eec27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fed5b8e2effe1bd4", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/sessions (apps/admin/src/app/(backend)/settings/security/page.tsx:144)"}, "properties": {"repobilityId": "51354a55aec2bc7c", "scanner": "scanner-primary", "fingerprint": "fed5b8e2effe1bd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a7fdd08c334b39b8", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/api-keys (apps/admin/src/app/(backend)/settings/api-keys/page.tsx:56)"}, "properties": {"repobilityId": "734882449f392a69", "scanner": "scanner-primary", "fingerprint": "a7fdd08c334b39b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-96ad47e18be3480f", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/settings/account/page.tsx:134)"}, "properties": {"repobilityId": "4c09070884fbe82f", "scanner": "scanner-primary", "fingerprint": "96ad47e18be3480f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-41dfe60e25a69aa1", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/refunds/page.tsx:124)"}, "properties": {"repobilityId": "989e2ece16ecfcf4", "scanner": "scanner-primary", "fingerprint": "41dfe60e25a69aa1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c98adb748182946b", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/mcp/page.tsx:46)"}, "properties": {"repobilityId": "8c937e0477db9a3c", "scanner": "scanner-primary", "fingerprint": "c98adb748182946b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8667bd3c460297ce", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/collections (apps/admin/src/app/(backend)/mcp/page.tsx:64)"}, "properties": {"repobilityId": "5240c17b473d369c", "scanner": "scanner-primary", "fingerprint": "8667bd3c460297ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d30167d3c167bc49", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers?tenant=${encodeURIComponent(tenantId)} (apps/admin/src/app/(backend)/mcp/page.tsx:83)"}, "properties": {"repobilityId": "d7bf5944c873bf77", "scanner": "scanner-primary", "fingerprint": "d30167d3c167bc49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ebcb8bc80b61f6c5", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/tools?tenant=${encodeURIComponent(tenant)} (apps/admin/src/app/(backend)/mcp/inspect/page.tsx:67)"}, "properties": {"repobilityId": "d429591d49d95a79", "scanner": "scanner-primary", "fingerprint": "ebcb8bc80b61f6c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0f315594224b3c0", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers (apps/admin/src/app/(backend)/agents/page.tsx:185)"}, "properties": {"repobilityId": "6868ad150a2278db", "scanner": "scanner-primary", "fingerprint": "c0f315594224b3c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a560f5b524c8e388", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/app/(backend)/upgrade/page.tsx:22)"}, "properties": {"repobilityId": "d2297de7e4d392db", "scanner": "scanner-primary", "fingerprint": "a560f5b524c8e388", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb047e8622bb9ef1", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:58)"}, "properties": {"repobilityId": "4e069ee2f361b0b0", "scanner": "scanner-primary", "fingerprint": "fb047e8622bb9ef1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb462f6d108511b6", "level": "error", "message": {"text": "Dangling fetch: PUT /api/auth/password-reset (apps/admin/src/app/(frontend)/reset-password/ResetPasswordForm.tsx:155)"}, "properties": {"repobilityId": "0f8ca922d2397755", "scanner": "scanner-primary", "fingerprint": "eb462f6d108511b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-da3c082385fdff2c", "level": "error", "message": {"text": "Dangling fetch: POST /api/setup (apps/admin/src/app/(frontend)/setup/SetupForm.tsx:35)"}, "properties": {"repobilityId": "57ee7767a46d23c3", "scanner": "scanner-primary", "fingerprint": "da3c082385fdff2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e3a09d30c86b665", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/me (apps/admin/src/lib/components/AdminBar/index.tsx:40)"}, "properties": {"repobilityId": "aa8e20829b1e88df", "scanner": "scanner-primary", "fingerprint": "3e3a09d30c86b665", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c44215ea98b55cb6", "level": "error", "message": {"text": "Dangling fetch: GET /next/exit-preview (apps/admin/src/lib/components/AdminBar/index.tsx:165)"}, "properties": {"repobilityId": "8c03180725ecaa40", "scanner": "scanner-primary", "fingerprint": "c44215ea98b55cb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee8181a5849334db", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/prompts?tenant=${encodeURIComponent(tenant)} (apps/admin/src/lib/components/mcp/prompts-panel.tsx:52)"}, "properties": {"repobilityId": "55fb06ee49c5f0fa", "scanner": "scanner-primary", "fingerprint": "ee8181a5849334db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d56f5b855c49cc4", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/complete (apps/admin/src/lib/components/mcp/prompts-panel.tsx:237)"}, "properties": {"repobilityId": "b03d894755f922bb", "scanner": "scanner-primary", "fingerprint": "3d56f5b855c49cc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4224413c4b2acfc7", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/remote-servers/${encodeURIComponent(server)}/call-tool-stream (apps/admin/src/lib/components/mcp/streaming-tool-card.tsx:234)"}, "properties": {"repobilityId": "11e855283a2b9de1", "scanner": "scanner-primary", "fingerprint": "4224413c4b2acfc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab63e1c4e8368fd3", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resources?tenant=${encodeURIComponent(tenant)} (apps/admin/src/lib/components/mcp/resources-panel.tsx:46)"}, "properties": {"repobilityId": "e7a6ff2800fbb702", "scanner": "scanner-primary", "fingerprint": "ab63e1c4e8368fd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12a9570e698a832a", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/resource?tenant=${encodeURIComponent(tenant)}&uri=${encodeURIComponent(uri)} (apps/admin/src/lib/components/mcp/resources-panel.tsx:75)"}, "properties": {"repobilityId": "a409e5b9c02998cc", "scanner": "scanner-primary", "fingerprint": "12a9570e698a832a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab3760f4ee4428f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=${r} (apps/admin/src/lib/components/mcp/usage-dashboard.tsx:104)"}, "properties": {"repobilityId": "d474a4306d589883", "scanner": "scanner-primary", "fingerprint": "ab3760f4ee4428f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0bc34b1fadeb9dd", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/remote-servers/${encodeURIComponent(server)}/log-stream?tenant=${encodeURIComponent(tenant)}&level=${level} (apps/admin/src/lib/components/mcp/logs-panel.tsx:61)"}, "properties": {"repobilityId": "51ef6d6d78c437c0", "scanner": "scanner-primary", "fingerprint": "d0bc34b1fadeb9dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2820ef9d2a295d71", "level": "error", "message": {"text": "Dangling fetch: GET /api/stripe/customers (apps/admin/src/lib/components/CustomerSelect/index.tsx:6)"}, "properties": {"repobilityId": "e6342a54a1c41989", "scanner": "scanner-primary", "fingerprint": "2820ef9d2a295d71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b87f15fdb8b3571e", "level": "error", "message": {"text": "Dangling fetch: GET /api/health-monitoring (apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:30)"}, "properties": {"repobilityId": "9bd791b1bfe17b7e", "scanner": "scanner-primary", "fingerprint": "b87f15fdb8b3571e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93e6b0ba4f4dffb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/health-monitoring/processes?${params.toString()} (apps/admin/src/lib/components/SystemHealthMonitor/index.tsx:70)"}, "properties": {"repobilityId": "0d4fb013cb71032a", "scanner": "scanner-primary", "fingerprint": "93e6b0ba4f4dffb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83431debcf1b6d51", "level": "error", "message": {"text": "Dangling fetch: GET /api/conversations/${conversationId}/messages (apps/admin/src/lib/components/Agent/index.tsx:503)"}, "properties": {"repobilityId": "523c1ef8836f0303", "scanner": "scanner-primary", "fingerprint": "83431debcf1b6d51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a8facbfef0cfc18d", "level": "error", "message": {"text": "Dangling fetch: GET /api/stripe/products (apps/admin/src/lib/collections/Products/ui/ProductSelect.tsx:11)"}, "properties": {"repobilityId": "d7a91b406bc76ff0", "scanner": "scanner-primary", "fingerprint": "a8facbfef0cfc18d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-baf15b8f0d11d884", "level": "error", "message": {"text": "Dangling fetch: GET /api/stripe/prices (apps/admin/src/lib/collections/Prices/ui/PricesSelect.tsx:12)"}, "properties": {"repobilityId": "1b5f5f2cbf9a4187", "scanner": "scanner-primary", "fingerprint": "baf15b8f0d11d884", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c00e669bebc4e7f3", "level": "error", "message": {"text": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:294)"}, "properties": {"repobilityId": "f0d142e650ab8e80", "scanner": "scanner-primary", "fingerprint": "c00e669bebc4e7f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff95b94aa09b94cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:307)"}, "properties": {"repobilityId": "2e2e6fc0256c89db", "scanner": "scanner-primary", "fingerprint": "ff95b94aa09b94cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2080ff3e3bee28cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets/boards (apps/server/__tests__/api-endpoints.test.ts:315)"}, "properties": {"repobilityId": "657811f22f0ce329", "scanner": "scanner-primary", "fingerprint": "2080ff3e3bee28cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ee287bf2c5f2d43", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/boards/board-1 (apps/server/__tests__/api-endpoints.test.ts:326)"}, "properties": {"repobilityId": "9855dc9db65170bf", "scanner": "scanner-primary", "fingerprint": "1ee287bf2c5f2d43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7012cce3c30f320", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/boards/nonexistent (apps/server/__tests__/api-endpoints.test.ts:333)"}, "properties": {"repobilityId": "85ffd9a1f6a66ab1", "scanner": "scanner-primary", "fingerprint": "b7012cce3c30f320", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71590bfbc38d6cbb", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:346)"}, "properties": {"repobilityId": "3ba12d200af55528", "scanner": "scanner-primary", "fingerprint": "71590bfbc38d6cbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d78209b36bf56e0", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets/boards/board-1/tickets (apps/server/__tests__/api-endpoints.test.ts:354)"}, "properties": {"repobilityId": "62ea4a650180bcaa", "scanner": "scanner-primary", "fingerprint": "0d78209b36bf56e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-932e09b51bb7cf96", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/tickets/ticket-1 (apps/server/__tests__/api-endpoints.test.ts:365)"}, "properties": {"repobilityId": "49d8eacc3c368c14", "scanner": "scanner-primary", "fingerprint": "932e09b51bb7cf96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63ee2774ce6d681b", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/tickets/nonexistent (apps/server/__tests__/api-endpoints.test.ts:372)"}, "properties": {"repobilityId": "c4ad6f1c6f8fbfa1", "scanner": "scanner-primary", "fingerprint": "63ee2774ce6d681b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-77760870fe039e19", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets/tickets/ticket-1/move (apps/server/__tests__/api-endpoints.test.ts:379)"}, "properties": {"repobilityId": "e06d3eddc8ceb1f4", "scanner": "scanner-primary", "fingerprint": "77760870fe039e19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-671c77bfc6fc04be", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:396)"}, "properties": {"repobilityId": "7a1c0db0bf702554", "scanner": "scanner-primary", "fingerprint": "671c77bfc6fc04be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d42ce9869b92e66", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets/tickets/ticket-1/comments (apps/server/__tests__/api-endpoints.test.ts:404)"}, "properties": {"repobilityId": "81be6ec6da429e29", "scanner": "scanner-primary", "fingerprint": "3d42ce9869b92e66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-873a76f4f53bfdc4", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:421)"}, "properties": {"repobilityId": "daeceb8b66f67f2a", "scanner": "scanner-primary", "fingerprint": "873a76f4f53bfdc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08fbd9f1517dc5c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets/labels (apps/server/__tests__/api-endpoints.test.ts:429)"}, "properties": {"repobilityId": "8aa351f372280afe", "scanner": "scanner-primary", "fingerprint": "08fbd9f1517dc5c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cd41a8ac5ed62b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance (apps/server/__tests__/api-endpoints.test.ts:446)"}, "properties": {"repobilityId": "7a61cf701981952d", "scanner": "scanner-primary", "fingerprint": "0cd41a8ac5ed62b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-311905f8e903766e", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance?authorType=ai_generated (apps/server/__tests__/api-endpoints.test.ts:454)"}, "properties": {"repobilityId": "82976a10c5af2f88", "scanner": "scanner-primary", "fingerprint": "311905f8e903766e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6320ef9276be0ed1", "level": "error", "message": {"text": "Dangling fetch: POST /api/provenance (apps/server/__tests__/api-endpoints.test.ts:461)"}, "properties": {"repobilityId": "e16e2647e0c25a86", "scanner": "scanner-primary", "fingerprint": "6320ef9276be0ed1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-059285e98558aa02", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:478)"}, "properties": {"repobilityId": "c089d222fe7079ab", "scanner": "scanner-primary", "fingerprint": "059285e98558aa02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03e132ce7b46bd41", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance/nonexistent (apps/server/__tests__/api-endpoints.test.ts:485)"}, "properties": {"repobilityId": "52faa05417542bea", "scanner": "scanner-primary", "fingerprint": "03e132ce7b46bd41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6faab3c6206d831", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:492)"}, "properties": {"repobilityId": "05d9e4caef1c015f", "scanner": "scanner-primary", "fingerprint": "e6faab3c6206d831", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd9a11fe4f673fb3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/provenance/prov-1 (apps/server/__tests__/api-endpoints.test.ts:503)"}, "properties": {"repobilityId": "6bb785bc4cfe757f", "scanner": "scanner-primary", "fingerprint": "cd9a11fe4f673fb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80c00752a6399ad9", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance/stats (apps/server/__tests__/api-endpoints.test.ts:512)"}, "properties": {"repobilityId": "fa1bce1b814f76f8", "scanner": "scanner-primary", "fingerprint": "80c00752a6399ad9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20f2ffcf0b535c47", "level": "error", "message": {"text": "Dangling fetch: POST /api/provenance/prov-1/review (apps/server/__tests__/api-endpoints.test.ts:521)"}, "properties": {"repobilityId": "bae2163b00d97759", "scanner": "scanner-primary", "fingerprint": "20f2ffcf0b535c47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ae00f1394baaed4", "level": "error", "message": {"text": "Dangling fetch: GET /api/provenance/prov-1/reviews (apps/server/__tests__/api-endpoints.test.ts:536)"}, "properties": {"repobilityId": "2addf1d4dd3894c4", "scanner": "scanner-primary", "fingerprint": "8ae00f1394baaed4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-791b639eefac1a7f", "level": "error", "message": {"text": "Dangling fetch: GET /health (apps/server/__tests__/api-endpoints.test.ts:550)"}, "properties": {"repobilityId": "629bc895b9f43fbe", "scanner": "scanner-primary", "fingerprint": "791b639eefac1a7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b21d5ecec28d3a1c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:56)"}, "properties": {"repobilityId": "813160abc1440aea", "scanner": "scanner-primary", "fingerprint": "b21d5ecec28d3a1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c26d87521bceba22", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:68)"}, "properties": {"repobilityId": "c086d7a9d0ddf86d", "scanner": "scanner-primary", "fingerprint": "c26d87521bceba22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dc8c8e07467aab63", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:77)"}, "properties": {"repobilityId": "caa0791bbf9d13d3", "scanner": "scanner-primary", "fingerprint": "dc8c8e07467aab63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-956029062c64cf45", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:88)"}, "properties": {"repobilityId": "cd2493d606e03e8e", "scanner": "scanner-primary", "fingerprint": "956029062c64cf45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9cf693598229d12b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:99)"}, "properties": {"repobilityId": "b7418c410d18c60b", "scanner": "scanner-primary", "fingerprint": "9cf693598229d12b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07a036554c417ee3", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:109)"}, "properties": {"repobilityId": "4f6a9bf7c803ef21", "scanner": "scanner-primary", "fingerprint": "07a036554c417ee3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0eacfe351c294332", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:119)"}, "properties": {"repobilityId": "57de24e1c2957ecf", "scanner": "scanner-primary", "fingerprint": "0eacfe351c294332", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45df5fbf68f7ad72", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:129)"}, "properties": {"repobilityId": "4d4bb473c07fe85d", "scanner": "scanner-primary", "fingerprint": "45df5fbf68f7ad72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-51a5578dd077b90c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:140)"}, "properties": {"repobilityId": "fbc48c0053fd054f", "scanner": "scanner-primary", "fingerprint": "51a5578dd077b90c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d3b468d92538d007", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:150)"}, "properties": {"repobilityId": "9b094c6f549d1c32", "scanner": "scanner-primary", "fingerprint": "d3b468d92538d007", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1bcfd29afd66eb51", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:158)"}, "properties": {"repobilityId": "61ed81100d76dbdf", "scanner": "scanner-primary", "fingerprint": "1bcfd29afd66eb51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ad62ea6a1c3101a", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:167)"}, "properties": {"repobilityId": "b870f945eefe8214", "scanner": "scanner-primary", "fingerprint": "1ad62ea6a1c3101a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d725f210f5295964", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:175)"}, "properties": {"repobilityId": "3af350e27398cab5", "scanner": "scanner-primary", "fingerprint": "d725f210f5295964", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4be6d2c7996f9001", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:184)"}, "properties": {"repobilityId": "b2fb13bb2f1b244a", "scanner": "scanner-primary", "fingerprint": "4be6d2c7996f9001", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8bfa39531a0db1d0", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:205)"}, "properties": {"repobilityId": "096675e3aa3690b0", "scanner": "scanner-primary", "fingerprint": "8bfa39531a0db1d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2bfb474b94a7432", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:213)"}, "properties": {"repobilityId": "82c8cea0ca7aee3f", "scanner": "scanner-primary", "fingerprint": "a2bfb474b94a7432", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d6dbd46d980b0a45", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:223)"}, "properties": {"repobilityId": "f1448a46446899d2", "scanner": "scanner-primary", "fingerprint": "d6dbd46d980b0a45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4663e4f45a7d158a", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:234)"}, "properties": {"repobilityId": "093068918314595b", "scanner": "scanner-primary", "fingerprint": "4663e4f45a7d158a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-55518356d942949f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:245)"}, "properties": {"repobilityId": "6192d9c1d92b108c", "scanner": "scanner-primary", "fingerprint": "55518356d942949f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-071b99dedc10dcfd", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:254)"}, "properties": {"repobilityId": "d0d0df303a4def44", "scanner": "scanner-primary", "fingerprint": "071b99dedc10dcfd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68ce2cb352f20c8e", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:269)"}, "properties": {"repobilityId": "fde88699c73cfd87", "scanner": "scanner-primary", "fingerprint": "68ce2cb352f20c8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f515a5259be09216", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:286)"}, "properties": {"repobilityId": "af00299770387ace", "scanner": "scanner-primary", "fingerprint": "f515a5259be09216", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-11cd06ee2f392735", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/tenant.test.ts:294)"}, "properties": {"repobilityId": "5d6698ae9987b97e", "scanner": "scanner-primary", "fingerprint": "11cd06ee2f392735", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c86fa3c14879bfd4", "level": "error", "message": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:319)"}, "properties": {"repobilityId": "9e45a8b0fe4fef85", "scanner": "scanner-primary", "fingerprint": "c86fa3c14879bfd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3eadb9c9b6a7a4aa", "level": "error", "message": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:327)"}, "properties": {"repobilityId": "33be9dc41355a3dc", "scanner": "scanner-primary", "fingerprint": "3eadb9c9b6a7a4aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ba1ad4ee028b27a", "level": "error", "message": {"text": "Dangling fetch: GET /require-tenant (apps/server/src/middleware/__tests__/tenant.test.ts:346)"}, "properties": {"repobilityId": "55477e66e18eb74f", "scanner": "scanner-primary", "fingerprint": "5ba1ad4ee028b27a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5a20dd97b207205", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:51)"}, "properties": {"repobilityId": "f262836d81263c83", "scanner": "scanner-primary", "fingerprint": "e5a20dd97b207205", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d187b95b456fc1e", "level": "error", "message": {"text": "Dangling fetch: POST /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:73)"}, "properties": {"repobilityId": "2d1b7c91c800e090", "scanner": "scanner-primary", "fingerprint": "0d187b95b456fc1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-007d473023e49ad6", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:90)"}, "properties": {"repobilityId": "31020dbfed7fba65", "scanner": "scanner-primary", "fingerprint": "007d473023e49ad6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-450318f21b0ae3db", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:104)"}, "properties": {"repobilityId": "8794995521fbd04f", "scanner": "scanner-primary", "fingerprint": "450318f21b0ae3db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-772e5ffb61477785", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:113)"}, "properties": {"repobilityId": "db345e38c84e65f6", "scanner": "scanner-primary", "fingerprint": "772e5ffb61477785", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb5b8fa0fce8e3d7", "level": "error", "message": {"text": "Dangling fetch: GET /api/tickets (apps/server/src/middleware/__tests__/audit.test.ts:125)"}, "properties": {"repobilityId": "bc2bb58ce22f820d", "scanner": "scanner-primary", "fingerprint": "cb5b8fa0fce8e3d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1029c4b666790db1", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:62)"}, "properties": {"repobilityId": "f571828d2114b340", "scanner": "scanner-primary", "fingerprint": "1029c4b666790db1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e01499146830ac40", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:74)"}, "properties": {"repobilityId": "d687647ace266754", "scanner": "scanner-primary", "fingerprint": "e01499146830ac40", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b05377dc4e566216", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:86)"}, "properties": {"repobilityId": "9c2f72b12bbe7128", "scanner": "scanner-primary", "fingerprint": "b05377dc4e566216", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8b83032051e7f34", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:98)"}, "properties": {"repobilityId": "7ea0c9dc57ef02fc", "scanner": "scanner-primary", "fingerprint": "b8b83032051e7f34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-078132c7afef91cf", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:112)"}, "properties": {"repobilityId": "a725d23daa0eb5e0", "scanner": "scanner-primary", "fingerprint": "078132c7afef91cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df0f08dba1b06b5f", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:126)"}, "properties": {"repobilityId": "354356ec38948a68", "scanner": "scanner-primary", "fingerprint": "df0f08dba1b06b5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ebac2fd322e4e75", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:138)"}, "properties": {"repobilityId": "fc61b014551469f4", "scanner": "scanner-primary", "fingerprint": "2ebac2fd322e4e75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18d4cca14af6530b", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/domain-validation.test.ts:149)"}, "properties": {"repobilityId": "091ccc347ed644ad", "scanner": "scanner-primary", "fingerprint": "18d4cca14af6530b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99e0fe731ed637c7", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:83)"}, "properties": {"repobilityId": "1b2fe1d8dcd551e0", "scanner": "scanner-primary", "fingerprint": "99e0fe731ed637c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3617dc53e28ce3f", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:95)"}, "properties": {"repobilityId": "3f275297f5e90e90", "scanner": "scanner-primary", "fingerprint": "c3617dc53e28ce3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e981f94f116632fc", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:114)"}, "properties": {"repobilityId": "3db3cf9c885b1cca", "scanner": "scanner-primary", "fingerprint": "e981f94f116632fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb16e2d79421d04a", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:141)"}, "properties": {"repobilityId": "d55af12fd6f41abb", "scanner": "scanner-primary", "fingerprint": "fb16e2d79421d04a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63229ec5d7ba06b3", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:164)"}, "properties": {"repobilityId": "a5a0cd859a3241cd", "scanner": "scanner-primary", "fingerprint": "63229ec5d7ba06b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0136248797a4f323", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:168)"}, "properties": {"repobilityId": "6a1665c970d4cec5", "scanner": "scanner-primary", "fingerprint": "0136248797a4f323", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f18d0493ed283b1", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:184)"}, "properties": {"repobilityId": "c21af4aad77ed98c", "scanner": "scanner-primary", "fingerprint": "1f18d0493ed283b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d0cd8d5a8f672c3", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:204)"}, "properties": {"repobilityId": "61c5355a5565a4c0", "scanner": "scanner-primary", "fingerprint": "8d0cd8d5a8f672c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ceb73c14a0bdf7a", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:225)"}, "properties": {"repobilityId": "37e57bf2ab0e5fd4", "scanner": "scanner-primary", "fingerprint": "5ceb73c14a0bdf7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2635966861e26e57", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:246)"}, "properties": {"repobilityId": "23084006faae2b94", "scanner": "scanner-primary", "fingerprint": "2635966861e26e57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2722d02ee960e230", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/support-expiry.test.ts:253)"}, "properties": {"repobilityId": "656f9045492209bf", "scanner": "scanner-primary", "fingerprint": "2722d02ee960e230", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b6db4e4e10287426", "level": "error", "message": {"text": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:37)"}, "properties": {"repobilityId": "e063702e8dc93c34", "scanner": "scanner-primary", "fingerprint": "b6db4e4e10287426", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-529812b8a921dfd6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:42)"}, "properties": {"repobilityId": "80ce0946b603bf3f", "scanner": "scanner-primary", "fingerprint": "529812b8a921dfd6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-33517864a63f1ba3", "level": "error", "message": {"text": "Dangling fetch: POST /api/content/media (apps/server/src/middleware/__tests__/body-limits.test.ts:50)"}, "properties": {"repobilityId": "28b401c3453e1bfc", "scanner": "scanner-primary", "fingerprint": "33517864a63f1ba3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bfa0af42751dabae", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/content/media/abc (apps/server/src/middleware/__tests__/body-limits.test.ts:56)"}, "properties": {"repobilityId": "bb55b42828405e3e", "scanner": "scanner-primary", "fingerprint": "bfa0af42751dabae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eeb8ee99b80c3cdf", "level": "error", "message": {"text": "Dangling fetch: POST /api/other (apps/server/src/middleware/__tests__/body-limits.test.ts:65)"}, "properties": {"repobilityId": "be6318e11a6f37e2", "scanner": "scanner-primary", "fingerprint": "eeb8ee99b80c3cdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d5312d0e7050f8f", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:78)"}, "properties": {"repobilityId": "76d24aff87aaa867", "scanner": "scanner-primary", "fingerprint": "8d5312d0e7050f8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-57e5eb164cc73e03", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:92)"}, "properties": {"repobilityId": "0fcf8b6bedf9d29b", "scanner": "scanner-primary", "fingerprint": "57e5eb164cc73e03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bcb8402bf732aba8", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:107)"}, "properties": {"repobilityId": "59985476d8fd1a0e", "scanner": "scanner-primary", "fingerprint": "bcb8402bf732aba8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-33228ca402e518d9", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:119)"}, "properties": {"repobilityId": "5ed60625c6b683c5", "scanner": "scanner-primary", "fingerprint": "33228ca402e518d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71e19c0d0a8d2849", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:135)"}, "properties": {"repobilityId": "4a81f9393a197b68", "scanner": "scanner-primary", "fingerprint": "71e19c0d0a8d2849", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae872e0c17da17b9", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:139)"}, "properties": {"repobilityId": "741500fcc52f2bb1", "scanner": "scanner-primary", "fingerprint": "ae872e0c17da17b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-204487832f11c706", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:151)"}, "properties": {"repobilityId": "06b3ab88186ab882", "scanner": "scanner-primary", "fingerprint": "204487832f11c706", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd5d74c11a81e094", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:169)"}, "properties": {"repobilityId": "a6251afd9a5e867b", "scanner": "scanner-primary", "fingerprint": "bd5d74c11a81e094", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4166e7db3bcb90c7", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:177)"}, "properties": {"repobilityId": "215cf6381a00733d", "scanner": "scanner-primary", "fingerprint": "4166e7db3bcb90c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98a4829e88dc8a7c", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:191)"}, "properties": {"repobilityId": "7a1aaf22e3d9778e", "scanner": "scanner-primary", "fingerprint": "98a4829e88dc8a7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-518e8e4c5f2ec5fb", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:205)"}, "properties": {"repobilityId": "0c6c74145995adeb", "scanner": "scanner-primary", "fingerprint": "518e8e4c5f2ec5fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8222b755bc263084", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:237)"}, "properties": {"repobilityId": "73615261d69d7ad7", "scanner": "scanner-primary", "fingerprint": "8222b755bc263084", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ec85ec23e6e865c", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:243)"}, "properties": {"repobilityId": "e57880b08ee57ccd", "scanner": "scanner-primary", "fingerprint": "2ec85ec23e6e865c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c464a1ebcc7f246", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:250)"}, "properties": {"repobilityId": "0f210738563ffebc", "scanner": "scanner-primary", "fingerprint": "9c464a1ebcc7f246", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-740230c206a67c99", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:274)"}, "properties": {"repobilityId": "cdd6bf4aaa164f2c", "scanner": "scanner-primary", "fingerprint": "740230c206a67c99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7e84b2df113ea99", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/license-status.test.ts:281)"}, "properties": {"repobilityId": "a7ff2804099b607c", "scanner": "scanner-primary", "fingerprint": "e7e84b2df113ea99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98d177cf2973acf2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:72)"}, "properties": {"repobilityId": "d8239084fccbec6f", "scanner": "scanner-primary", "fingerprint": "98d177cf2973acf2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20c263acfffef5d4", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:85)"}, "properties": {"repobilityId": "69d2d81192a47bae", "scanner": "scanner-primary", "fingerprint": "20c263acfffef5d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7c34774a0408f5a2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:108)"}, "properties": {"repobilityId": "a001a314a8b14e6e", "scanner": "scanner-primary", "fingerprint": "7c34774a0408f5a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0dd240c70672224d", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/entitlements.test.ts:123)"}, "properties": {"repobilityId": "f067ba7692abeabb", "scanner": "scanner-primary", "fingerprint": "0dd240c70672224d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3deb6b5623701f7e", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:83)"}, "properties": {"repobilityId": "fd40f1f7da8eb9d4", "scanner": "scanner-primary", "fingerprint": "3deb6b5623701f7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aabad6ae39a0bb76", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:95)"}, "properties": {"repobilityId": "c34c076facb9c833", "scanner": "scanner-primary", "fingerprint": "aabad6ae39a0bb76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e4576b64df7eeda", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:107)"}, "properties": {"repobilityId": "4581f65fb75b1bc9", "scanner": "scanner-primary", "fingerprint": "3e4576b64df7eeda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6237560ac5f7e867", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:122)"}, "properties": {"repobilityId": "9e66feb458a5ee6e", "scanner": "scanner-primary", "fingerprint": "6237560ac5f7e867", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f4abfec48c56552", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:132)"}, "properties": {"repobilityId": "758ef56883e0c70a", "scanner": "scanner-primary", "fingerprint": "2f4abfec48c56552", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-04f0471a7c1421ed", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:148)"}, "properties": {"repobilityId": "0897a3b6b6089378", "scanner": "scanner-primary", "fingerprint": "04f0471a7c1421ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba05d22ddb65a6d2", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:158)"}, "properties": {"repobilityId": "6aa2199d0f592f80", "scanner": "scanner-primary", "fingerprint": "ba05d22ddb65a6d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-080d825dfe8fe330", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:166)"}, "properties": {"repobilityId": "58e68d433b895479", "scanner": "scanner-primary", "fingerprint": "080d825dfe8fe330", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-edca288dd410a1a3", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:193)"}, "properties": {"repobilityId": "a383d2985c51f81b", "scanner": "scanner-primary", "fingerprint": "edca288dd410a1a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-06497976477613de", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:207)"}, "properties": {"repobilityId": "0258f3b10e5f3348", "scanner": "scanner-primary", "fingerprint": "06497976477613de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59c03a4ca3747349", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:219)"}, "properties": {"repobilityId": "1da16e4143bec891", "scanner": "scanner-primary", "fingerprint": "59c03a4ca3747349", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a7df1e3181b64f30", "level": "error", "message": {"text": "Dangling fetch: GET /protected/resource (apps/server/src/middleware/__tests__/license.test.ts:231)"}, "properties": {"repobilityId": "b1ec7b9ccabbdbec", "scanner": "scanner-primary", "fingerprint": "a7df1e3181b64f30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26e7e152a27f4332", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:35)"}, "properties": {"repobilityId": "82b706b954bd96bb", "scanner": "scanner-primary", "fingerprint": "26e7e152a27f4332", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-989bc48c92091f75", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:48)"}, "properties": {"repobilityId": "46be02e9cba743e5", "scanner": "scanner-primary", "fingerprint": "989bc48c92091f75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b67396282b84e73", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:66)"}, "properties": {"repobilityId": "627c7ce2bb69ff10", "scanner": "scanner-primary", "fingerprint": "1b67396282b84e73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef127999766e8b15", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/db.test.ts:84)"}, "properties": {"repobilityId": "d54c86053dd9f4f3", "scanner": "scanner-primary", "fingerprint": "ef127999766e8b15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6b68485b8e73980c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:56)"}, "properties": {"repobilityId": "391ac6f2675f1a24", "scanner": "scanner-primary", "fingerprint": "6b68485b8e73980c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c368acf525271af2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:68)"}, "properties": {"repobilityId": "ec52ec9841e7a49b", "scanner": "scanner-primary", "fingerprint": "c368acf525271af2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f62bcefe74f585e3", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:80)"}, "properties": {"repobilityId": "6403b9d8541576b1", "scanner": "scanner-primary", "fingerprint": "f62bcefe74f585e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10b41d8d02692341", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:92)"}, "properties": {"repobilityId": "888a69ad0bfe08dc", "scanner": "scanner-primary", "fingerprint": "10b41d8d02692341", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-120fc6e465f9e32f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:105)"}, "properties": {"repobilityId": "dbf09a9c4324fb90", "scanner": "scanner-primary", "fingerprint": "120fc6e465f9e32f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7e92560ff39feeb3", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:118)"}, "properties": {"repobilityId": "7c058cf4d4db6fe9", "scanner": "scanner-primary", "fingerprint": "7e92560ff39feeb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44eea54bf85d6fae", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:137)"}, "properties": {"repobilityId": "bba551c6c2f35899", "scanner": "scanner-primary", "fingerprint": "44eea54bf85d6fae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ce899d466a844a02", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:157)"}, "properties": {"repobilityId": "8eb77e51d9048bc2", "scanner": "scanner-primary", "fingerprint": "ce899d466a844a02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6613c68795f7863f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:178)"}, "properties": {"repobilityId": "9622b5edcf6c8b45", "scanner": "scanner-primary", "fingerprint": "6613c68795f7863f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-541e2409320c06db", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:196)"}, "properties": {"repobilityId": "dca91bca9cd9acb3", "scanner": "scanner-primary", "fingerprint": "541e2409320c06db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2445839db76aa26a", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:211)"}, "properties": {"repobilityId": "1024a35774035639", "scanner": "scanner-primary", "fingerprint": "2445839db76aa26a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4e492a65455fd760", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:225)"}, "properties": {"repobilityId": "a9cbc91581b5fede", "scanner": "scanner-primary", "fingerprint": "4e492a65455fd760", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7513a3a22d3172ee", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:240)"}, "properties": {"repobilityId": "33d849c4e812f6f0", "scanner": "scanner-primary", "fingerprint": "7513a3a22d3172ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8335ad5c15c5387c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:268)"}, "properties": {"repobilityId": "e1125d94f33ad152", "scanner": "scanner-primary", "fingerprint": "8335ad5c15c5387c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fc284a517fd80c0", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:286)"}, "properties": {"repobilityId": "d2bdfcf6eb1dacd0", "scanner": "scanner-primary", "fingerprint": "9fc284a517fd80c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e65b45d11ccf31db", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:303)"}, "properties": {"repobilityId": "c2fd7edb2b51d249", "scanner": "scanner-primary", "fingerprint": "e65b45d11ccf31db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8a91b2471e407d1", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:316)"}, "properties": {"repobilityId": "3653314b550a4794", "scanner": "scanner-primary", "fingerprint": "a8a91b2471e407d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb59fa031011ae27", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/rate-limit.test.ts:329)"}, "properties": {"repobilityId": "9936142d0c7b9ca8", "scanner": "scanner-primary", "fingerprint": "bb59fa031011ae27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98611f8243354ddb", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:117)"}, "properties": {"repobilityId": "1d89a6ea23c50a5d", "scanner": "scanner-primary", "fingerprint": "98611f8243354ddb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ab31423ec7b0315", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:133)"}, "properties": {"repobilityId": "e06fcc42ca691c14", "scanner": "scanner-primary", "fingerprint": "8ab31423ec7b0315", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b68ffc97a2f8ecae", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:144)"}, "properties": {"repobilityId": "eb93efb2d6ef584e", "scanner": "scanner-primary", "fingerprint": "b68ffc97a2f8ecae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d47b3fe6f808495", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/middleware/__tests__/chain-integration.test.ts:153)"}, "properties": {"repobilityId": "2eae0ca0deaaf3db", "scanner": "scanner-primary", "fingerprint": "7d47b3fe6f808495", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c98c296ea520fca1", "level": "error", "message": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:184)"}, "properties": {"repobilityId": "ff7dae1bc7e130a9", "scanner": "scanner-primary", "fingerprint": "c98c296ea520fca1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95ee737f4137ee90", "level": "error", "message": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:194)"}, "properties": {"repobilityId": "146b880d0170f8dd", "scanner": "scanner-primary", "fingerprint": "95ee737f4137ee90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52ce520aefcef8a5", "level": "error", "message": {"text": "Dangling fetch: GET /admin-only (apps/server/src/middleware/__tests__/chain-integration.test.ts:207)"}, "properties": {"repobilityId": "e33954250bbd1fb7", "scanner": "scanner-primary", "fingerprint": "52ce520aefcef8a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea94767aa07e2434", "level": "error", "message": {"text": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:233)"}, "properties": {"repobilityId": "00446a4808216250", "scanner": "scanner-primary", "fingerprint": "ea94767aa07e2434", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7fc2e14af001f3ff", "level": "error", "message": {"text": "Dangling fetch: GET /api/public/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:244)"}, "properties": {"repobilityId": "a7aa5725c71355f8", "scanner": "scanner-primary", "fingerprint": "7fc2e14af001f3ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-063b7f2283c65757", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:255)"}, "properties": {"repobilityId": "fc73b770c9d06243", "scanner": "scanner-primary", "fingerprint": "063b7f2283c65757", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eca6757fc0d0db66", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/data (apps/server/src/middleware/__tests__/chain-integration.test.ts:264)"}, "properties": {"repobilityId": "3f1ef077967c2dfd", "scanner": "scanner-primary", "fingerprint": "eca6757fc0d0db66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56bed92c3f7503e9", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/checkout (apps/server/src/middleware/__tests__/chain-integration.test.ts:308)"}, "properties": {"repobilityId": "f62cfc0309dd7a30", "scanner": "scanner-primary", "fingerprint": "56bed92c3f7503e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0bdc23a43da00b07", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/chain-integration.test.ts:333)"}, "properties": {"repobilityId": "3bafbfe158869942", "scanner": "scanner-primary", "fingerprint": "0bdc23a43da00b07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8236a5775a364f56", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/csrf.test.ts:112)"}, "properties": {"repobilityId": "a957514bd9ed795c", "scanner": "scanner-primary", "fingerprint": "8236a5775a364f56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17127239f8ee151e", "level": "error", "message": {"text": "Dangling fetch: HEAD /test (apps/server/src/middleware/__tests__/csrf.test.ts:118)"}, "properties": {"repobilityId": "d2e1beff4b4a5e05", "scanner": "scanner-primary", "fingerprint": "17127239f8ee151e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ffbc163700e9c7e9", "level": "error", "message": {"text": "Dangling fetch: OPTIONS /test (apps/server/src/middleware/__tests__/csrf.test.ts:124)"}, "properties": {"repobilityId": "d62ca8c6850baa68", "scanner": "scanner-primary", "fingerprint": "ffbc163700e9c7e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f01c0c57b1f1a34a", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:132)"}, "properties": {"repobilityId": "c4997ee2cfb79c1a", "scanner": "scanner-primary", "fingerprint": "f01c0c57b1f1a34a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80169c1844a982ef", "level": "error", "message": {"text": "Dangling fetch: POST /api/webhooks/stripe (apps/server/src/middleware/__tests__/csrf.test.ts:143)"}, "properties": {"repobilityId": "de4595740e7316b8", "scanner": "scanner-primary", "fingerprint": "80169c1844a982ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-722342ffc37c15fa", "level": "error", "message": {"text": "Dangling fetch: POST /.well-known/agent.json (apps/server/src/middleware/__tests__/csrf.test.ts:155)"}, "properties": {"repobilityId": "5bf9c7a141b2fef6", "scanner": "scanner-primary", "fingerprint": "722342ffc37c15fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb31b7c9c860719b", "level": "error", "message": {"text": "Dangling fetch: POST /custom/exempt/hook (apps/server/src/middleware/__tests__/csrf.test.ts:167)"}, "properties": {"repobilityId": "470b9e40db56337b", "scanner": "scanner-primary", "fingerprint": "cb31b7c9c860719b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-390d6f6c02511d08", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:187)"}, "properties": {"repobilityId": "c9b2d3c1ab76e92c", "scanner": "scanner-primary", "fingerprint": "390d6f6c02511d08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b92ce0ea675df65", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:207)"}, "properties": {"repobilityId": "ee458c3c04ab8882", "scanner": "scanner-primary", "fingerprint": "3b92ce0ea675df65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a2dc21c765aab56", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:227)"}, "properties": {"repobilityId": "e085c3ca2bda2bbe", "scanner": "scanner-primary", "fingerprint": "4a2dc21c765aab56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f05fa9861091ffdc", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:247)"}, "properties": {"repobilityId": "da98a3b590f1e850", "scanner": "scanner-primary", "fingerprint": "f05fa9861091ffdc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b9bbfb895222599a", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:274)"}, "properties": {"repobilityId": "cb7b846acad0ee9d", "scanner": "scanner-primary", "fingerprint": "b9bbfb895222599a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-891b15787acd2313", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:301)"}, "properties": {"repobilityId": "4ef5e8b77527f6eb", "scanner": "scanner-primary", "fingerprint": "891b15787acd2313", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ec8d63bdf45c36ed", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:325)"}, "properties": {"repobilityId": "0580057707ce799e", "scanner": "scanner-primary", "fingerprint": "ec8d63bdf45c36ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7d811e89b3fc0c7", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:345)"}, "properties": {"repobilityId": "31611dba8a278c9d", "scanner": "scanner-primary", "fingerprint": "b7d811e89b3fc0c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8c0efdd092c606b", "level": "error", "message": {"text": "Dangling fetch: DELETE /test (apps/server/src/middleware/__tests__/csrf.test.ts:368)"}, "properties": {"repobilityId": "9130c0faa317115d", "scanner": "scanner-primary", "fingerprint": "a8c0efdd092c606b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5649e173306f175d", "level": "error", "message": {"text": "Dangling fetch: POST /test (apps/server/src/middleware/__tests__/csrf.test.ts:392)"}, "properties": {"repobilityId": "e75b53d3ce51a3c9", "scanner": "scanner-primary", "fingerprint": "5649e173306f175d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f536f7b9247aa93f", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:53)"}, "properties": {"repobilityId": "96798d927cada5f0", "scanner": "scanner-primary", "fingerprint": "f536f7b9247aa93f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df2d7d1e367804cb", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:60)"}, "properties": {"repobilityId": "5e165ac4871d597f", "scanner": "scanner-primary", "fingerprint": "df2d7d1e367804cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cf697b35664810ff", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:66)"}, "properties": {"repobilityId": "7badab2b72dbb558", "scanner": "scanner-primary", "fingerprint": "cf697b35664810ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3fb163dc385f3276", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:76)"}, "properties": {"repobilityId": "a09af42da6f80a14", "scanner": "scanner-primary", "fingerprint": "3fb163dc385f3276", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-deac3394c56b34cd", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:85)"}, "properties": {"repobilityId": "840f31bf72522556", "scanner": "scanner-primary", "fingerprint": "deac3394c56b34cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5dd9ea7f6848f108", "level": "error", "message": {"text": "Dangling fetch: POST /billing-handler (apps/server/src/middleware/__tests__/account-owner.test.ts:101)"}, "properties": {"repobilityId": "939de9d82cf95d8a", "scanner": "scanner-primary", "fingerprint": "5dd9ea7f6848f108", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ecd0fb4d68b00ab1", "level": "error", "message": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:109)"}, "properties": {"repobilityId": "7abeb4803bfb271c", "scanner": "scanner-primary", "fingerprint": "ecd0fb4d68b00ab1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-658bc8cf5cc950fd", "level": "error", "message": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:116)"}, "properties": {"repobilityId": "2cf305409c263ce4", "scanner": "scanner-primary", "fingerprint": "658bc8cf5cc950fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-76784cbc97b7367c", "level": "error", "message": {"text": "Dangling fetch: POST /billing-mutation (apps/server/src/middleware/__tests__/account-owner.test.ts:122)"}, "properties": {"repobilityId": "d7c8a539e78727c7", "scanner": "scanner-primary", "fingerprint": "76784cbc97b7367c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-60cc9c2e590499d6", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:49)"}, "properties": {"repobilityId": "2d6520a467d62e89", "scanner": "scanner-primary", "fingerprint": "60cc9c2e590499d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e0778db668794ed", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:68)"}, "properties": {"repobilityId": "fb1556cf3a972bee", "scanner": "scanner-primary", "fingerprint": "9e0778db668794ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ca525582fdb56ae1", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:87)"}, "properties": {"repobilityId": "11de80325b962c17", "scanner": "scanner-primary", "fingerprint": "ca525582fdb56ae1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c978cef13253c11", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:102)"}, "properties": {"repobilityId": "f08af329c6b6cf95", "scanner": "scanner-primary", "fingerprint": "5c978cef13253c11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f7c0faecd28ded9", "level": "error", "message": {"text": "Dangling fetch: GET /resource (apps/server/src/middleware/__tests__/tiered-rate-limit.test.ts:117)"}, "properties": {"repobilityId": "27e2fe2faa575292", "scanner": "scanner-primary", "fingerprint": "3f7c0faecd28ded9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86463186d889872e", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:99)"}, "properties": {"repobilityId": "cbb8480383511007", "scanner": "scanner-primary", "fingerprint": "86463186d889872e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e4d5b432f4b5469", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:109)"}, "properties": {"repobilityId": "3b58f0cd685d5359", "scanner": "scanner-primary", "fingerprint": "1e4d5b432f4b5469", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c224136b8277004b", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:122)"}, "properties": {"repobilityId": "2c25e1be73e63e76", "scanner": "scanner-primary", "fingerprint": "c224136b8277004b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3cb872d7a75a3f71", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/middleware/__tests__/resource-limits.test.ts:143)"}, "properties": {"repobilityId": "a48dc199da306e37", "scanner": "scanner-primary", "fingerprint": "3cb872d7a75a3f71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09cc8786b0d0b69f", "level": "error", "message": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:157)"}, "properties": {"repobilityId": "085015252ea5e5e0", "scanner": "scanner-primary", "fingerprint": "09cc8786b0d0b69f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f67323f5a79aed0a", "level": "error", "message": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:167)"}, "properties": {"repobilityId": "ae858aa74e24386b", "scanner": "scanner-primary", "fingerprint": "f67323f5a79aed0a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d479b8a839d8dc7d", "level": "error", "message": {"text": "Dangling fetch: POST /users (apps/server/src/middleware/__tests__/resource-limits.test.ts:180)"}, "properties": {"repobilityId": "64b290794fd7e870", "scanner": "scanner-primary", "fingerprint": "d479b8a839d8dc7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d658fa67274c1437", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:193)"}, "properties": {"repobilityId": "a2c8a0ea9d02b541", "scanner": "scanner-primary", "fingerprint": "d658fa67274c1437", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7fa7a2edc469e8b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:202)"}, "properties": {"repobilityId": "4e9cba77ffa04f3a", "scanner": "scanner-primary", "fingerprint": "b7fa7a2edc469e8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-313b2b46d1db799a", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:218)"}, "properties": {"repobilityId": "4e3a134e3c167639", "scanner": "scanner-primary", "fingerprint": "313b2b46d1db799a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-50758b2a29d3de5f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:229)"}, "properties": {"repobilityId": "9a659fd65d0cf4c6", "scanner": "scanner-primary", "fingerprint": "50758b2a29d3de5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f23d169b2d3af299", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:239)"}, "properties": {"repobilityId": "949c64339162a5cd", "scanner": "scanner-primary", "fingerprint": "f23d169b2d3af299", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-090a26c50a76d335", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:248)"}, "properties": {"repobilityId": "cdefd8c584cab591", "scanner": "scanner-primary", "fingerprint": "090a26c50a76d335", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-435a68e96166a08b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:265)"}, "properties": {"repobilityId": "3b9d27024fc85c97", "scanner": "scanner-primary", "fingerprint": "435a68e96166a08b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4709296e01828924", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:281)"}, "properties": {"repobilityId": "ea86e96bb4b5e99b", "scanner": "scanner-primary", "fingerprint": "4709296e01828924", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-979a4e091b7f752f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:296)"}, "properties": {"repobilityId": "23f9166e43443a0d", "scanner": "scanner-primary", "fingerprint": "979a4e091b7f752f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e2a188b6664e1291", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:308)"}, "properties": {"repobilityId": "56839a272a4374f8", "scanner": "scanner-primary", "fingerprint": "e2a188b6664e1291", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebe12750bfe1faa9", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:319)"}, "properties": {"repobilityId": "bde8ece7a4f049e2", "scanner": "scanner-primary", "fingerprint": "ebe12750bfe1faa9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-77b6c7f6bd75be63", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:337)"}, "properties": {"repobilityId": "2c279636798fd841", "scanner": "scanner-primary", "fingerprint": "77b6c7f6bd75be63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9ed64b0bd0ca3eb6", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:346)"}, "properties": {"repobilityId": "9d3e156344eef7e8", "scanner": "scanner-primary", "fingerprint": "9ed64b0bd0ca3eb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e515c38adfa6344", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:362)"}, "properties": {"repobilityId": "9dc56cebcb7df26a", "scanner": "scanner-primary", "fingerprint": "1e515c38adfa6344", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3cdbb6419d11a17", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:378)"}, "properties": {"repobilityId": "eab2283dc3b7a9fc", "scanner": "scanner-primary", "fingerprint": "b3cdbb6419d11a17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-29fea21bd6ab9603", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:388)"}, "properties": {"repobilityId": "349f0910bb8c50fb", "scanner": "scanner-primary", "fingerprint": "29fea21bd6ab9603", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5777a4d92874feb5", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:400)"}, "properties": {"repobilityId": "35c912fa54f840bc", "scanner": "scanner-primary", "fingerprint": "5777a4d92874feb5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1519ddcca71385d1", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:410)"}, "properties": {"repobilityId": "355ad077baf94b47", "scanner": "scanner-primary", "fingerprint": "1519ddcca71385d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e87b6e569967f77", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:422)"}, "properties": {"repobilityId": "74ec2874f4248356", "scanner": "scanner-primary", "fingerprint": "1e87b6e569967f77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-802d91fdd2fbbdfb", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:449)"}, "properties": {"repobilityId": "569b463dfbc5e82f", "scanner": "scanner-primary", "fingerprint": "802d91fdd2fbbdfb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a9f048149888ab1a", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:464)"}, "properties": {"repobilityId": "61f496517fac0cc5", "scanner": "scanner-primary", "fingerprint": "a9f048149888ab1a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fbab522c6a02b8f9", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:480)"}, "properties": {"repobilityId": "fba41a5ee7458bfd", "scanner": "scanner-primary", "fingerprint": "fbab522c6a02b8f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-659f40d3b9321b17", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:493)"}, "properties": {"repobilityId": "5466d6d3dcd7b9fd", "scanner": "scanner-primary", "fingerprint": "659f40d3b9321b17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d7c353625910f8be", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:517)"}, "properties": {"repobilityId": "e920e4b68ce8153e", "scanner": "scanner-primary", "fingerprint": "d7c353625910f8be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db65102e9d6a9543", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:528)"}, "properties": {"repobilityId": "e0203e385a01832f", "scanner": "scanner-primary", "fingerprint": "db65102e9d6a9543", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-628cdb9a4d30fdd8", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:546)"}, "properties": {"repobilityId": "caf9ef33734f161a", "scanner": "scanner-primary", "fingerprint": "628cdb9a4d30fdd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-087de0b008b80471", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:557)"}, "properties": {"repobilityId": "da0be61471659420", "scanner": "scanner-primary", "fingerprint": "087de0b008b80471", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d09f9822ecfcc88c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota.test.ts:570)"}, "properties": {"repobilityId": "0c6762999ac32d11", "scanner": "scanner-primary", "fingerprint": "d09f9822ecfcc88c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-64998b2d3ea17ce6", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:62)"}, "properties": {"repobilityId": "18200a5f7f9a43c9", "scanner": "scanner-primary", "fingerprint": "64998b2d3ea17ce6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72ec568548d99282", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:77)"}, "properties": {"repobilityId": "5e73f6d824ef0836", "scanner": "scanner-primary", "fingerprint": "72ec568548d99282", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-64850d0499209e4c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:90)"}, "properties": {"repobilityId": "9baa4983b3d91ba4", "scanner": "scanner-primary", "fingerprint": "64850d0499209e4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e64c8d2af73c99b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:106)"}, "properties": {"repobilityId": "7ff5bc8909c38a36", "scanner": "scanner-primary", "fingerprint": "2e64c8d2af73c99b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ac3d5e3bc90787e", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:122)"}, "properties": {"repobilityId": "e81d5fb70df160f0", "scanner": "scanner-primary", "fingerprint": "5ac3d5e3bc90787e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f529d71a043ae57", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:145)"}, "properties": {"repobilityId": "ea8eca059a69ea1c", "scanner": "scanner-primary", "fingerprint": "8f529d71a043ae57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-285eec8950d5b9eb", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:175)"}, "properties": {"repobilityId": "cea93dfb312776fd", "scanner": "scanner-primary", "fingerprint": "285eec8950d5b9eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-428a2adf543c2351", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:189)"}, "properties": {"repobilityId": "0266fee1e4966638", "scanner": "scanner-primary", "fingerprint": "428a2adf543c2351", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b41d7828c1342ee5", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:209)"}, "properties": {"repobilityId": "50027f54b699546e", "scanner": "scanner-primary", "fingerprint": "b41d7828c1342ee5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f71f63398cdbd34b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:231)"}, "properties": {"repobilityId": "d30a7ad81ec75bec", "scanner": "scanner-primary", "fingerprint": "f71f63398cdbd34b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a6fd3924b21d4893", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:240)"}, "properties": {"repobilityId": "595a3ac5cebd6e55", "scanner": "scanner-primary", "fingerprint": "a6fd3924b21d4893", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3fba04620674c312", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:251)"}, "properties": {"repobilityId": "4d710726740d8ef0", "scanner": "scanner-primary", "fingerprint": "3fba04620674c312", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfcd6676547b2a59", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:260)"}, "properties": {"repobilityId": "b31c63bad0479294", "scanner": "scanner-primary", "fingerprint": "cfcd6676547b2a59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d46f57dd1e73e32b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/auth.test.ts:269)"}, "properties": {"repobilityId": "0249eecac0af0b68", "scanner": "scanner-primary", "fingerprint": "d46f57dd1e73e32b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e5fce229706054f", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:143)"}, "properties": {"repobilityId": "edce34a6cd2b17be", "scanner": "scanner-primary", "fingerprint": "5e5fce229706054f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18931c5dd574a7b3", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:152)"}, "properties": {"repobilityId": "ca20850f8a250ef6", "scanner": "scanner-primary", "fingerprint": "18931c5dd574a7b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09b7a7229c5fac41", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:161)"}, "properties": {"repobilityId": "d7922c18d512912d", "scanner": "scanner-primary", "fingerprint": "09b7a7229c5fac41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a8d8a51f3a33ac4", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:174)"}, "properties": {"repobilityId": "f59317fdcf8329da", "scanner": "scanner-primary", "fingerprint": "2a8d8a51f3a33ac4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-769f78c3b4f39d46", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/task-quota-atomic-credit.test.ts:189)"}, "properties": {"repobilityId": "08c8b3b531919607", "scanner": "scanner-primary", "fingerprint": "769f78c3b4f39d46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4de5abac327ed316", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:58)"}, "properties": {"repobilityId": "3c783d946e7e382a", "scanner": "scanner-primary", "fingerprint": "4de5abac327ed316", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef3d7ba96e9d4f86", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:72)"}, "properties": {"repobilityId": "e1b15f9cb45fce5e", "scanner": "scanner-primary", "fingerprint": "ef3d7ba96e9d4f86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2cdaf2cc451eb65", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:84)"}, "properties": {"repobilityId": "f81bd63e11a9d9a4", "scanner": "scanner-primary", "fingerprint": "f2cdaf2cc451eb65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f8e48abccd23cbcd", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:96)"}, "properties": {"repobilityId": "6870f23d55acebbf", "scanner": "scanner-primary", "fingerprint": "f8e48abccd23cbcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-124438058ff84d60", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:106)"}, "properties": {"repobilityId": "3af389dff675fa06", "scanner": "scanner-primary", "fingerprint": "124438058ff84d60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c1ed50c1562e5538", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:117)"}, "properties": {"repobilityId": "49fe9eb891fb5813", "scanner": "scanner-primary", "fingerprint": "c1ed50c1562e5538", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e0012580e53469c", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:128)"}, "properties": {"repobilityId": "9bd8efb64b55387b", "scanner": "scanner-primary", "fingerprint": "1e0012580e53469c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80bc1f69254952f2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:139)"}, "properties": {"repobilityId": "ed6e62e8e2664f5c", "scanner": "scanner-primary", "fingerprint": "80bc1f69254952f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-81f0a495b92be856", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:154)"}, "properties": {"repobilityId": "4ca210b3b4a3cbd7", "scanner": "scanner-primary", "fingerprint": "81f0a495b92be856", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f4eb8a35d4f7334", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:173)"}, "properties": {"repobilityId": "8b32ef23c5ecaa63", "scanner": "scanner-primary", "fingerprint": "5f4eb8a35d4f7334", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-835fb10a8f123da1", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:193)"}, "properties": {"repobilityId": "bac35fd22aeec991", "scanner": "scanner-primary", "fingerprint": "835fb10a8f123da1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ad60d5c1e2d7463", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:209)"}, "properties": {"repobilityId": "228b21b837e4494e", "scanner": "scanner-primary", "fingerprint": "0ad60d5c1e2d7463", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-caa5e9b22d15c3f9", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:222)"}, "properties": {"repobilityId": "5d82acc06b5b2357", "scanner": "scanner-primary", "fingerprint": "caa5e9b22d15c3f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ea5372ab3645db2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:235)"}, "properties": {"repobilityId": "843d6f2ebdc40ea2", "scanner": "scanner-primary", "fingerprint": "3ea5372ab3645db2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-46e019f1a7c4d9d5", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:248)"}, "properties": {"repobilityId": "bd6c104573093d3e", "scanner": "scanner-primary", "fingerprint": "46e019f1a7c4d9d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ece4a0660d46fb5", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:260)"}, "properties": {"repobilityId": "3eb4d67c11d36a49", "scanner": "scanner-primary", "fingerprint": "0ece4a0660d46fb5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d05dc54dfe6f0945", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:271)"}, "properties": {"repobilityId": "75ba1427160806a9", "scanner": "scanner-primary", "fingerprint": "d05dc54dfe6f0945", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dc8842770eadd190", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:284)"}, "properties": {"repobilityId": "300b8e7efac59fe8", "scanner": "scanner-primary", "fingerprint": "dc8842770eadd190", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99db198c0b214328", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:298)"}, "properties": {"repobilityId": "555061ad55cbdb52", "scanner": "scanner-primary", "fingerprint": "99db198c0b214328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18b3e413d1335ea1", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/error.test.ts:309)"}, "properties": {"repobilityId": "9ca84bc773602b50", "scanner": "scanner-primary", "fingerprint": "18b3e413d1335ea1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6db53a339e49552b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:17)"}, "properties": {"repobilityId": "1a1d3e028d6eef9a", "scanner": "scanner-primary", "fingerprint": "6db53a339e49552b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-855c248f723d623e", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:31)"}, "properties": {"repobilityId": "84fb3cc3bee1e7fa", "scanner": "scanner-primary", "fingerprint": "855c248f723d623e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf0a4ed21ec64459", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:44)"}, "properties": {"repobilityId": "f862761f8a0a3239", "scanner": "scanner-primary", "fingerprint": "bf0a4ed21ec64459", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-39c9e430dcf942b2", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:56)"}, "properties": {"repobilityId": "3a114533c57b041b", "scanner": "scanner-primary", "fingerprint": "39c9e430dcf942b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1913b54f8c42e929", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:68)"}, "properties": {"repobilityId": "8dd9567f2c8bcef1", "scanner": "scanner-primary", "fingerprint": "1913b54f8c42e929", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-657b150e30478c50", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:69)"}, "properties": {"repobilityId": "ef7d99bc7a23fe48", "scanner": "scanner-primary", "fingerprint": "657b150e30478c50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c1f1d34b71fbca2b", "level": "error", "message": {"text": "Dangling fetch: GET /test (apps/server/src/middleware/__tests__/request-id.test.ts:86)"}, "properties": {"repobilityId": "432c6da62ddfe421", "scanner": "scanner-primary", "fingerprint": "c1f1d34b71fbca2b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a89dc0e2301c680d", "level": "error", "message": {"text": "Dangling fetch: GET /ctx (apps/server/src/lib/__tests__/request-context.test.ts:14)"}, "properties": {"repobilityId": "dc5d092dfcee683e", "scanner": "scanner-primary", "fingerprint": "a89dc0e2301c680d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7e1a2c12ecd960a", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:201)"}, "properties": {"repobilityId": "1171178639f0f21f", "scanner": "scanner-primary", "fingerprint": "e7e1a2c12ecd960a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e096c5e35d5ec730", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:219)"}, "properties": {"repobilityId": "c8fad74667ec355e", "scanner": "scanner-primary", "fingerprint": "e096c5e35d5ec730", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-36e4b9e4d712d460", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:227)"}, "properties": {"repobilityId": "9b36c0897c2fc453", "scanner": "scanner-primary", "fingerprint": "36e4b9e4d712d460", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-abba02d2121c7f7a", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:237)"}, "properties": {"repobilityId": "7095db6c4c2f50ff", "scanner": "scanner-primary", "fingerprint": "abba02d2121c7f7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5550adad952ef9b2", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:334)"}, "properties": {"repobilityId": "d53d6444a1f71e0f", "scanner": "scanner-primary", "fingerprint": "5550adad952ef9b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80b787f471f2a0c1", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:350)"}, "properties": {"repobilityId": "7594856f02349fd2", "scanner": "scanner-primary", "fingerprint": "80b787f471f2a0c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a712d695b07e084", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/server/src/routes/__tests__/dunning-lifecycle.pglite.test.ts:365)"}, "properties": {"repobilityId": "43108430c00c8615", "scanner": "scanner-primary", "fingerprint": "4a712d695b07e084", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13bd834c07c80354", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:93)"}, "properties": {"repobilityId": "d24eea76ca1a2b6b", "scanner": "scanner-primary", "fingerprint": "13bd834c07c80354", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-253b421caf1e2739", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history?days=14 (apps/server/src/routes/__tests__/rotation.test.ts:133)"}, "properties": {"repobilityId": "8bdfe35d45f0e948", "scanner": "scanner-primary", "fingerprint": "253b421caf1e2739", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12d06f5b77f3edd8", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:165)"}, "properties": {"repobilityId": "fb0f12194d0db567", "scanner": "scanner-primary", "fingerprint": "12d06f5b77f3edd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13ac03e9e83ad3af", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:178)"}, "properties": {"repobilityId": "05e2d3c53388ab37", "scanner": "scanner-primary", "fingerprint": "13ac03e9e83ad3af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e5d6eba1dcbe98a", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history?days=0 (apps/server/src/routes/__tests__/rotation.test.ts:189)"}, "properties": {"repobilityId": "b2fd5099051b6e3a", "scanner": "scanner-primary", "fingerprint": "0e5d6eba1dcbe98a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c96e83af0ced8acc", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history?days=400 (apps/server/src/routes/__tests__/rotation.test.ts:198)"}, "properties": {"repobilityId": "47ecbcea55c1d43b", "scanner": "scanner-primary", "fingerprint": "c96e83af0ced8acc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd907e66c4a4315a", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:217)"}, "properties": {"repobilityId": "2c41ee075e24bbd5", "scanner": "scanner-primary", "fingerprint": "fd907e66c4a4315a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a360aac2cb94142", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:248)"}, "properties": {"repobilityId": "2cf0594788b00ca2", "scanner": "scanner-primary", "fingerprint": "4a360aac2cb94142", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-64429a6a84e87964", "level": "error", "message": {"text": "Dangling fetch: GET /rotation/history (apps/server/src/routes/__tests__/rotation.test.ts:262)"}, "properties": {"repobilityId": "60446f6c857668ac", "scanner": "scanner-primary", "fingerprint": "64429a6a84e87964", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-76926642eed64dd5", "level": "error", "message": {"text": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-pglite.test.ts:151)"}, "properties": {"repobilityId": "fc7d553be0015daa", "scanner": "scanner-primary", "fingerprint": "76926642eed64dd5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e7ab612769993d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/doc-123 (apps/server/src/routes/__tests__/agent-collab.test.ts:374)"}, "properties": {"repobilityId": "0e3489cdb85b4195", "scanner": "scanner-primary", "fingerprint": "8e7ab612769993d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8d1417fef31d05b", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/nonexistent-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:394)"}, "properties": {"repobilityId": "b7f0a27818a7646d", "scanner": "scanner-primary", "fingerprint": "c8d1417fef31d05b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87b3f54199a8284f", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/large-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:416)"}, "properties": {"repobilityId": "631bd3943fe69950", "scanner": "scanner-primary", "fingerprint": "87b3f54199a8284f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1cb47903d4b19115", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:436)"}, "properties": {"repobilityId": "4ac107a3a6719346", "scanner": "scanner-primary", "fingerprint": "1cb47903d4b19115", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5647c0bdcf1c5171", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/error-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:450)"}, "properties": {"repobilityId": "8e8ae80d083991d8", "scanner": "scanner-primary", "fingerprint": "5647c0bdcf1c5171", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bda6869b453d3407", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/valid-doc (apps/server/src/routes/__tests__/agent-collab.test.ts:468)"}, "properties": {"repobilityId": "fc98055cebfa60d4", "scanner": "scanner-primary", "fingerprint": "bda6869b453d3407", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59148b6923a42799", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:170)"}, "properties": {"repobilityId": "453c1e2f6f5cca7f", "scanner": "scanner-primary", "fingerprint": "59148b6923a42799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18b0f0d181f66174", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:183)"}, "properties": {"repobilityId": "1da0ec3aebbb0268", "scanner": "scanner-primary", "fingerprint": "18b0f0d181f66174", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e791f8d996c5fa6c", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:194)"}, "properties": {"repobilityId": "fa9386d6e32e85d5", "scanner": "scanner-primary", "fingerprint": "e791f8d996c5fa6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91d20adc356a865a", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:207)"}, "properties": {"repobilityId": "74f02aaf27b0718c", "scanner": "scanner-primary", "fingerprint": "91d20adc356a865a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-742483346523cf1e", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:224)"}, "properties": {"repobilityId": "c9f03bc2e1c7de7f", "scanner": "scanner-primary", "fingerprint": "742483346523cf1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a3705bc15b80d06", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:234)"}, "properties": {"repobilityId": "474f4a93e7d3985a", "scanner": "scanner-primary", "fingerprint": "4a3705bc15b80d06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bcb1c6585a7a2f18", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:246)"}, "properties": {"repobilityId": "d9734efeb96e1e59", "scanner": "scanner-primary", "fingerprint": "bcb1c6585a7a2f18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a3d9360f388e406d", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:258)"}, "properties": {"repobilityId": "370a8d40791928df", "scanner": "scanner-primary", "fingerprint": "a3d9360f388e406d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b01944f10d638922", "level": "error", "message": {"text": "Dangling fetch: GET /ready (apps/server/src/routes/__tests__/health.test.ts:269)"}, "properties": {"repobilityId": "add0ade8b685ef28", "scanner": "scanner-primary", "fingerprint": "b01944f10d638922", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b42a3878562ce1f", "level": "error", "message": {"text": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:279)"}, "properties": {"repobilityId": "366c60b801003b0a", "scanner": "scanner-primary", "fingerprint": "0b42a3878562ce1f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc642e4b5b295028", "level": "error", "message": {"text": "Dangling fetch: GET /live (apps/server/src/routes/__tests__/health.test.ts:287)"}, "properties": {"repobilityId": "4ecc25977f3e7c04", "scanner": "scanner-primary", "fingerprint": "bc642e4b5b295028", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c13795568650bdb6", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:309)"}, "properties": {"repobilityId": "73637400493d86b7", "scanner": "scanner-primary", "fingerprint": "c13795568650bdb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b39c596f8fca33c", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:315)"}, "properties": {"repobilityId": "8273942cacbe5078", "scanner": "scanner-primary", "fingerprint": "4b39c596f8fca33c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b66f7465962cf4a9", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:323)"}, "properties": {"repobilityId": "d97ba4bab5964d22", "scanner": "scanner-primary", "fingerprint": "b66f7465962cf4a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13b30405cabb1b61", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:331)"}, "properties": {"repobilityId": "a79997297756f142", "scanner": "scanner-primary", "fingerprint": "13b30405cabb1b61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d42ccc6e4b92602", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:339)"}, "properties": {"repobilityId": "9d39b91e42e21a2f", "scanner": "scanner-primary", "fingerprint": "2d42ccc6e4b92602", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-19c3a481498b786f", "level": "error", "message": {"text": "Dangling fetch: GET /metrics (apps/server/src/routes/__tests__/health.test.ts:348)"}, "properties": {"repobilityId": "16e13d87acf50fd1", "scanner": "scanner-primary", "fingerprint": "19c3a481498b786f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cf0ea41737f4ee1", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:368)"}, "properties": {"repobilityId": "383be0ce4c013372", "scanner": "scanner-primary", "fingerprint": "0cf0ea41737f4ee1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5f14dbf62bf569c", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:374)"}, "properties": {"repobilityId": "9bab270af088a332", "scanner": "scanner-primary", "fingerprint": "f5f14dbf62bf569c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-999ce37afabb11df", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/json (apps/server/src/routes/__tests__/health.test.ts:382)"}, "properties": {"repobilityId": "85be52074294646d", "scanner": "scanner-primary", "fingerprint": "999ce37afabb11df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a59f0c4ddfd0cf2c", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:full (apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:183)"}, "properties": {"repobilityId": "74007c7fe82d58f1", "scanner": "scanner-primary", "fingerprint": "a59f0c4ddfd0cf2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74f15609a22e2c16", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint= (apps/server/src/routes/__tests__/terminal-auth-edge.test.ts:319)"}, "properties": {"repobilityId": "22534913ea231df9", "scanner": "scanner-primary", "fingerprint": "74f15609a22e2c16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-55494bc8b1994aaf", "level": "error", "message": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:101)"}, "properties": {"repobilityId": "97ca1467e4cda6a7", "scanner": "scanner-primary", "fingerprint": "55494bc8b1994aaf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3447d3caaf65fc74", "level": "error", "message": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:113)"}, "properties": {"repobilityId": "99be2bed7c77bea2", "scanner": "scanner-primary", "fingerprint": "3447d3caaf65fc74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bfdf7a0049959ae4", "level": "error", "message": {"text": "Dangling fetch: GET /products (apps/server/src/routes/__tests__/products.test.ts:125)"}, "properties": {"repobilityId": "f422b55747cb053e", "scanner": "scanner-primary", "fingerprint": "bfdf7a0049959ae4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-019d214e81285f9a", "level": "error", "message": {"text": "Dangling fetch: GET /products?limit=10&offset=20 (apps/server/src/routes/__tests__/products.test.ts:134)"}, "properties": {"repobilityId": "2b9bba3ad1256dae", "scanner": "scanner-primary", "fingerprint": "019d214e81285f9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e654397fea6e5e77", "level": "error", "message": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:151)"}, "properties": {"repobilityId": "a5dd9d64ed286a79", "scanner": "scanner-primary", "fingerprint": "e654397fea6e5e77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5045857b3a96364c", "level": "error", "message": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:169)"}, "properties": {"repobilityId": "1df059d02ce44d5c", "scanner": "scanner-primary", "fingerprint": "5045857b3a96364c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2b0467c0f4736963", "level": "error", "message": {"text": "Dangling fetch: POST /products (apps/server/src/routes/__tests__/products.test.ts:179)"}, "properties": {"repobilityId": "49c8c42713aa789d", "scanner": "scanner-primary", "fingerprint": "2b0467c0f4736963", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-78abe0a9388d523c", "level": "error", "message": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:196)"}, "properties": {"repobilityId": "cbe389243d4d3461", "scanner": "scanner-primary", "fingerprint": "78abe0a9388d523c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-88a312453c81189a", "level": "error", "message": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:206)"}, "properties": {"repobilityId": "e709a56f2394eb87", "scanner": "scanner-primary", "fingerprint": "88a312453c81189a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4381eb0de4c8f42a", "level": "error", "message": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:213)"}, "properties": {"repobilityId": "c31d51f23908baaf", "scanner": "scanner-primary", "fingerprint": "4381eb0de4c8f42a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ac7dea12cf3f024", "level": "error", "message": {"text": "Dangling fetch: GET /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:220)"}, "properties": {"repobilityId": "8d2b4c4f68054da5", "scanner": "scanner-primary", "fingerprint": "2ac7dea12cf3f024", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f35459a70b2e7f8a", "level": "error", "message": {"text": "Dangling fetch: GET /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:229)"}, "properties": {"repobilityId": "ed752310673d3a1f", "scanner": "scanner-primary", "fingerprint": "f35459a70b2e7f8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a5832ac5ccb2fa1", "level": "error", "message": {"text": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:245)"}, "properties": {"repobilityId": "f8dfbd23ebccc495", "scanner": "scanner-primary", "fingerprint": "3a5832ac5ccb2fa1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a27939f48a05b5ff", "level": "error", "message": {"text": "Dangling fetch: PATCH /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:258)"}, "properties": {"repobilityId": "c1846f7e263bee84", "scanner": "scanner-primary", "fingerprint": "a27939f48a05b5ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95b36bf680126f34", "level": "error", "message": {"text": "Dangling fetch: PATCH /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:269)"}, "properties": {"repobilityId": "16e560539cbe26a2", "scanner": "scanner-primary", "fingerprint": "95b36bf680126f34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-835abce2d6f0f11c", "level": "error", "message": {"text": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:287)"}, "properties": {"repobilityId": "d3c6d07ebf167ea8", "scanner": "scanner-primary", "fingerprint": "835abce2d6f0f11c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-70e6302222a250a8", "level": "error", "message": {"text": "Dangling fetch: DELETE /products/product-1 (apps/server/src/routes/__tests__/products.test.ts:296)"}, "properties": {"repobilityId": "643b0bddb305c20c", "scanner": "scanner-primary", "fingerprint": "70e6302222a250a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9eaa070800abef77", "level": "error", "message": {"text": "Dangling fetch: DELETE /products/nonexistent (apps/server/src/routes/__tests__/products.test.ts:303)"}, "properties": {"repobilityId": "c316c86cdce871a9", "scanner": "scanner-primary", "fingerprint": "9eaa070800abef77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c5b14378061791fd", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/boundary-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:199)"}, "properties": {"repobilityId": "46107b6c4322de0f", "scanner": "scanner-primary", "fingerprint": "c5b14378061791fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b9b85a76fffef40f", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/empty-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:218)"}, "properties": {"repobilityId": "7a90116fec7ffc8b", "scanner": "scanner-primary", "fingerprint": "b9b85a76fffef40f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7ce521fc387fcde", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/agent/snapshot/collab-doc (apps/server/src/routes/__tests__/agent-collab-edge.test.ts:255)"}, "properties": {"repobilityId": "9c6e7d826592aaad", "scanner": "scanner-primary", "fingerprint": "f7ce521fc387fcde", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97addbb0462f27a8", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:232)"}, "properties": {"repobilityId": "70cf1dad00aac969", "scanner": "scanner-primary", "fingerprint": "97addbb0462f27a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1c33626f47f16c93", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:247)"}, "properties": {"repobilityId": "33972e6a1fbb4c64", "scanner": "scanner-primary", "fingerprint": "1c33626f47f16c93", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f71b4b109f8a172", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:267)"}, "properties": {"repobilityId": "efd7cfef0e5e6e82", "scanner": "scanner-primary", "fingerprint": "0f71b4b109f8a172", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86d43f3e0aaf2097", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content-xss.test.ts:279)"}, "properties": {"repobilityId": "a5fd297a80bab161", "scanner": "scanner-primary", "fingerprint": "86d43f3e0aaf2097", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb02600fddd8d461", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:302)"}, "properties": {"repobilityId": "d3624b41fc812785", "scanner": "scanner-primary", "fingerprint": "eb02600fddd8d461", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea162ad5125ec21d", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content-xss.test.ts:315)"}, "properties": {"repobilityId": "235a3913fba0cb73", "scanner": "scanner-primary", "fingerprint": "ea162ad5125ec21d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22a42a0657f9c57f", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content-xss.test.ts:334)"}, "properties": {"repobilityId": "3012fffb6e1ee065", "scanner": "scanner-primary", "fingerprint": "22a42a0657f9c57f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-314bfc5c29076023", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:359)"}, "properties": {"repobilityId": "173fb7730bea8b65", "scanner": "scanner-primary", "fingerprint": "314bfc5c29076023", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e91f66a2b7281aa0", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content-xss.test.ts:388)"}, "properties": {"repobilityId": "f46cc4fc2014bd41", "scanner": "scanner-primary", "fingerprint": "e91f66a2b7281aa0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f92dc6c627d4c46", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:410)"}, "properties": {"repobilityId": "379a79a17b940a4d", "scanner": "scanner-primary", "fingerprint": "1f92dc6c627d4c46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4269773b49472c7f", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:426)"}, "properties": {"repobilityId": "99c061898b2e8f91", "scanner": "scanner-primary", "fingerprint": "4269773b49472c7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e8460cb59b4a39b", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:441)"}, "properties": {"repobilityId": "7d7246c7468a1960", "scanner": "scanner-primary", "fingerprint": "5e8460cb59b4a39b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c85143d0f39e557e", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:457)"}, "properties": {"repobilityId": "278d94a8658692f7", "scanner": "scanner-primary", "fingerprint": "c85143d0f39e557e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-efd9606c38746001", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:468)"}, "properties": {"repobilityId": "e9daa18a2a5a02bb", "scanner": "scanner-primary", "fingerprint": "efd9606c38746001", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a9af0e1c94999a8d", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:482)"}, "properties": {"repobilityId": "b2ecb2df414dd1c1", "scanner": "scanner-primary", "fingerprint": "a9af0e1c94999a8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-740cf9f8158fe625", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content-xss.test.ts:498)"}, "properties": {"repobilityId": "e6da3e343dad72a5", "scanner": "scanner-primary", "fingerprint": "740cf9f8158fe625", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9def10c55853587e", "level": "error", "message": {"text": "Dangling fetch: POST /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:158)"}, "properties": {"repobilityId": "7f41895e5eb2dfb2", "scanner": "scanner-primary", "fingerprint": "9def10c55853587e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17e10ac1cb0cb5f8", "level": "error", "message": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:263)"}, "properties": {"repobilityId": "8b962c5685b6f20d", "scanner": "scanner-primary", "fingerprint": "17e10ac1cb0cb5f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1accb098d7f55bac", "level": "error", "message": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:272)"}, "properties": {"repobilityId": "101fec9eccd9b3ac", "scanner": "scanner-primary", "fingerprint": "1accb098d7f55bac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-abd817e85c64c953", "level": "error", "message": {"text": "Dangling fetch: GET /media?mimeType=image (apps/server/src/routes/__tests__/content-media-upload.test.ts:281)"}, "properties": {"repobilityId": "97b4d3fc14b7fa40", "scanner": "scanner-primary", "fingerprint": "abd817e85c64c953", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c1f3f5a98fdc4c67", "level": "error", "message": {"text": "Dangling fetch: GET /media?limit=10&offset=20 (apps/server/src/routes/__tests__/content-media-upload.test.ts:290)"}, "properties": {"repobilityId": "abe695e6f131792f", "scanner": "scanner-primary", "fingerprint": "c1f3f5a98fdc4c67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98009e18cf2ae28f", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:310)"}, "properties": {"repobilityId": "b6a9d384063e77b0", "scanner": "scanner-primary", "fingerprint": "98009e18cf2ae28f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d44d34ea491dce6", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:324)"}, "properties": {"repobilityId": "dc0e85c2f6938ff5", "scanner": "scanner-primary", "fingerprint": "2d44d34ea491dce6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d14ed80951cdfa52", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:332)"}, "properties": {"repobilityId": "0c6537c928f3ffe2", "scanner": "scanner-primary", "fingerprint": "d14ed80951cdfa52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6e25be594384a3e", "level": "error", "message": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content-media-upload.test.ts:348)"}, "properties": {"repobilityId": "9e4f54beb484fa06", "scanner": "scanner-primary", "fingerprint": "e6e25be594384a3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01ddaa5eaa8f502b", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:362)"}, "properties": {"repobilityId": "28a26bc8694675fd", "scanner": "scanner-primary", "fingerprint": "01ddaa5eaa8f502b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-65222f611393a42b", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:369)"}, "properties": {"repobilityId": "92d0f28e67fa29f3", "scanner": "scanner-primary", "fingerprint": "65222f611393a42b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4e9cdfad705146b0", "level": "error", "message": {"text": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:379)"}, "properties": {"repobilityId": "cee93c0571766e5e", "scanner": "scanner-primary", "fingerprint": "4e9cdfad705146b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a0ffd36b50f419c", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:390)"}, "properties": {"repobilityId": "e5221bd14ae3e609", "scanner": "scanner-primary", "fingerprint": "5a0ffd36b50f419c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d332589819e66d8", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:397)"}, "properties": {"repobilityId": "320c0498604cb445", "scanner": "scanner-primary", "fingerprint": "4d332589819e66d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74fb198f91cdb78b", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:413)"}, "properties": {"repobilityId": "157abc1e65735389", "scanner": "scanner-primary", "fingerprint": "74fb198f91cdb78b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2df72528fb9243ff", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:423)"}, "properties": {"repobilityId": "a082081d601c1ab2", "scanner": "scanner-primary", "fingerprint": "2df72528fb9243ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d610b8cbdb7487ce", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:441)"}, "properties": {"repobilityId": "4ff2308e4c0f5a49", "scanner": "scanner-primary", "fingerprint": "d610b8cbdb7487ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0940607ee0d363a0", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:457)"}, "properties": {"repobilityId": "0e69ffeafee96976", "scanner": "scanner-primary", "fingerprint": "0940607ee0d363a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df6a59457ce9e91a", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:470)"}, "properties": {"repobilityId": "473cf314f190ea6a", "scanner": "scanner-primary", "fingerprint": "df6a59457ce9e91a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d71c36800b958e2", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:490)"}, "properties": {"repobilityId": "8a617480f038baf2", "scanner": "scanner-primary", "fingerprint": "4d71c36800b958e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb37615d4dc43b4f", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/nonexistent (apps/server/src/routes/__tests__/content-media-upload.test.ts:497)"}, "properties": {"repobilityId": "2cdc574e2616d196", "scanner": "scanner-primary", "fingerprint": "fb37615d4dc43b4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e821da2ea355deb3", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:506)"}, "properties": {"repobilityId": "05f73f5946702788", "scanner": "scanner-primary", "fingerprint": "e821da2ea355deb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69dff887722b606a", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content-media-upload.test.ts:513)"}, "properties": {"repobilityId": "0da157eedab26570", "scanner": "scanner-primary", "fingerprint": "69dff887722b606a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86585f2bfa3899ad", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:162)"}, "properties": {"repobilityId": "835285d31d3039b4", "scanner": "scanner-primary", "fingerprint": "86585f2bfa3899ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-598146925c410ac1", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:170)"}, "properties": {"repobilityId": "4dcf4c123490ed30", "scanner": "scanner-primary", "fingerprint": "598146925c410ac1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6238831a3382d20e", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:181)"}, "properties": {"repobilityId": "6d25fafe89a26f1c", "scanner": "scanner-primary", "fingerprint": "6238831a3382d20e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-553c8682762c8f5a", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_no_config (apps/server/src/routes/__tests__/inference-config.test.ts:199)"}, "properties": {"repobilityId": "f52de6935f18e026", "scanner": "scanner-primary", "fingerprint": "553c8682762c8f5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab40a36a9113f42b", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:220)"}, "properties": {"repobilityId": "4575b25e1353c0a5", "scanner": "scanner-primary", "fingerprint": "ab40a36a9113f42b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fcfc1b3edaaef683", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:235)"}, "properties": {"repobilityId": "1705fbccdee254a7", "scanner": "scanner-primary", "fingerprint": "fcfc1b3edaaef683", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f43af5a2065bd578", "level": "error", "message": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:263)"}, "properties": {"repobilityId": "c58ecf8e1ae83873", "scanner": "scanner-primary", "fingerprint": "f43af5a2065bd578", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e466bb79586ed2b", "level": "error", "message": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:286)"}, "properties": {"repobilityId": "471666d0d67e0315", "scanner": "scanner-primary", "fingerprint": "2e466bb79586ed2b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69abaed3b8ba4cd7", "level": "error", "message": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:300)"}, "properties": {"repobilityId": "262d659446d8d638", "scanner": "scanner-primary", "fingerprint": "69abaed3b8ba4cd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c10bd89a8b7c59aa", "level": "error", "message": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:324)"}, "properties": {"repobilityId": "1dbbb75e59f84da2", "scanner": "scanner-primary", "fingerprint": "c10bd89a8b7c59aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5de6004a84bf0148", "level": "error", "message": {"text": "Dangling fetch: PUT /inference/config (apps/server/src/routes/__tests__/inference-config.test.ts:360)"}, "properties": {"repobilityId": "873ca9469edbd110", "scanner": "scanner-primary", "fingerprint": "5de6004a84bf0148", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c743b0b8a8ebba3", "level": "error", "message": {"text": "Dangling fetch: DELETE /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:388)"}, "properties": {"repobilityId": "34d8b63a70a3cb78", "scanner": "scanner-primary", "fingerprint": "3c743b0b8a8ebba3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-79d603dc105e748e", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:422)"}, "properties": {"repobilityId": "be8b2fee81a757c7", "scanner": "scanner-primary", "fingerprint": "79d603dc105e748e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d985384ffeab6e8c", "level": "error", "message": {"text": "Dangling fetch: GET /inference/config?workspaceId=site_xyz (apps/server/src/routes/__tests__/inference-config.test.ts:443)"}, "properties": {"repobilityId": "1c77ead57fb5c1fb", "scanner": "scanner-primary", "fingerprint": "d985384ffeab6e8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91b9838b3ec68c0d", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:383)"}, "properties": {"repobilityId": "22d5c8df800f2943", "scanner": "scanner-primary", "fingerprint": "91b9838b3ec68c0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d983bad07f7df4e8", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent (apps/server/src/routes/__tests__/gdpr.test.ts:389)"}, "properties": {"repobilityId": "33f6b621a0337b99", "scanner": "scanner-primary", "fingerprint": "d983bad07f7df4e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7176098e223580c9", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:400)"}, "properties": {"repobilityId": "056503c3bd32b3bb", "scanner": "scanner-primary", "fingerprint": "7176098e223580c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5eb68a9109d0c3c5", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent/check/invalid (apps/server/src/routes/__tests__/gdpr.test.ts:406)"}, "properties": {"repobilityId": "22871cc5f0881283", "scanner": "scanner-primary", "fingerprint": "5eb68a9109d0c3c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee3952610009306b", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent/check/analytics (apps/server/src/routes/__tests__/gdpr.test.ts:412)"}, "properties": {"repobilityId": "4c2c8c8c28d8a2f3", "scanner": "scanner-primary", "fingerprint": "ee3952610009306b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-513993ad78562d23", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:426)"}, "properties": {"repobilityId": "3e799aa9665efd00", "scanner": "scanner-primary", "fingerprint": "513993ad78562d23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-497716075a69c689", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:433)"}, "properties": {"repobilityId": "580ef46d59491f37", "scanner": "scanner-primary", "fingerprint": "497716075a69c689", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b46f399d3a2b4d4", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:447)"}, "properties": {"repobilityId": "76d8ec7f6b1bf8ec", "scanner": "scanner-primary", "fingerprint": "7b46f399d3a2b4d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95a502fd3e7d401a", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion (apps/server/src/routes/__tests__/gdpr.test.ts:459)"}, "properties": {"repobilityId": "0399205b63848ae6", "scanner": "scanner-primary", "fingerprint": "95a502fd3e7d401a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f971883cbfd0433", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:471)"}, "properties": {"repobilityId": "816f53b582b960d4", "scanner": "scanner-primary", "fingerprint": "0f971883cbfd0433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-82812ffc7f9e1e14", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion/del-missing (apps/server/src/routes/__tests__/gdpr.test.ts:478)"}, "properties": {"repobilityId": "14ebfbb6b881718f", "scanner": "scanner-primary", "fingerprint": "82812ffc7f9e1e14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f374de0d8ce4439a", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:485)"}, "properties": {"repobilityId": "aac98357a03f0ac3", "scanner": "scanner-primary", "fingerprint": "f374de0d8ce4439a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b8715a203335f85", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/deletion/del-1 (apps/server/src/routes/__tests__/gdpr.test.ts:494)"}, "properties": {"repobilityId": "3c02f8d5b6260d92", "scanner": "scanner-primary", "fingerprint": "1b8715a203335f85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45cb83a60c80c4e4", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:506)"}, "properties": {"repobilityId": "da732f5e8fce5749", "scanner": "scanner-primary", "fingerprint": "45cb83a60c80c4e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-96a96596d4223af8", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr.test.ts:512)"}, "properties": {"repobilityId": "7fe936f8f971e959", "scanner": "scanner-primary", "fingerprint": "96a96596d4223af8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0484f9aff5e00f3e", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:233)"}, "properties": {"repobilityId": "bcfd0745468e2c47", "scanner": "scanner-primary", "fingerprint": "0484f9aff5e00f3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a03069a44b5c2be", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:250)"}, "properties": {"repobilityId": "056e6e514dc2367c", "scanner": "scanner-primary", "fingerprint": "2a03069a44b5c2be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a8834b6ce493e65", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:279)"}, "properties": {"repobilityId": "3c992249622d0cc5", "scanner": "scanner-primary", "fingerprint": "4a8834b6ce493e65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0fcd2d67ee8f552c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:297)"}, "properties": {"repobilityId": "5c381893e3c32c2d", "scanner": "scanner-primary", "fingerprint": "0fcd2d67ee8f552c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba929c7b1fc2b367", "level": "error", "message": {"text": "Dangling fetch: DELETE /api-keys/key_nonexistent (apps/server/src/routes/__tests__/api-keys.test.ts:314)"}, "properties": {"repobilityId": "e18c7ca5a90333b7", "scanner": "scanner-primary", "fingerprint": "ba929c7b1fc2b367", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1bbc64e5c960a1d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api-keys/key_abc (apps/server/src/routes/__tests__/api-keys.test.ts:333)"}, "properties": {"repobilityId": "f13aae7c4bbc7a02", "scanner": "scanner-primary", "fingerprint": "e1bbc64e5c960a1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4be39421f5891760", "level": "error", "message": {"text": "Dangling fetch: DELETE /api-keys/key_belongs_to_user1 (apps/server/src/routes/__tests__/api-keys.test.ts:517)"}, "properties": {"repobilityId": "e80dc273b622ddc6", "scanner": "scanner-primary", "fingerprint": "4be39421f5891760", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b380f2215504b2c0", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/server/src/routes/__tests__/api-keys.test.ts:553)"}, "properties": {"repobilityId": "805c23cc4141dff4", "scanner": "scanner-primary", "fingerprint": "b380f2215504b2c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-28812264044db6d9", "level": "error", "message": {"text": "Dangling fetch: GET /boards (apps/server/src/routes/__tests__/tickets.test.ts:245)"}, "properties": {"repobilityId": "10306a11ed81471a", "scanner": "scanner-primary", "fingerprint": "28812264044db6d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eba6796719b4f375", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:269)"}, "properties": {"repobilityId": "ea8a622b29f618a8", "scanner": "scanner-primary", "fingerprint": "eba6796719b4f375", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8526acf5bb7393e3", "level": "error", "message": {"text": "Dangling fetch: GET /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:278)"}, "properties": {"repobilityId": "1d9643cab39e5918", "scanner": "scanner-primary", "fingerprint": "8526acf5bb7393e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3a84db57281d466", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:285)"}, "properties": {"repobilityId": "9448fd349ecf0e3c", "scanner": "scanner-primary", "fingerprint": "b3a84db57281d466", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87f3996d8f4c778b", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:292)"}, "properties": {"repobilityId": "02d8d63cf26d07da", "scanner": "scanner-primary", "fingerprint": "87f3996d8f4c778b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1e098d6946759ae", "level": "error", "message": {"text": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:332)"}, "properties": {"repobilityId": "bc79dcc3913a9329", "scanner": "scanner-primary", "fingerprint": "e1e098d6946759ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ec7600701714c5c4", "level": "error", "message": {"text": "Dangling fetch: DELETE /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:342)"}, "properties": {"repobilityId": "260ee28cae5ea17c", "scanner": "scanner-primary", "fingerprint": "ec7600701714c5c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df42fe7290052d06", "level": "error", "message": {"text": "Dangling fetch: DELETE /boards/no-board (apps/server/src/routes/__tests__/tickets.test.ts:349)"}, "properties": {"repobilityId": "59aac8b59dfa06b3", "scanner": "scanner-primary", "fingerprint": "df42fe7290052d06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52c2a4c5cfb0f113", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1 (apps/server/src/routes/__tests__/tickets.test.ts:356)"}, "properties": {"repobilityId": "1b5e2db71dd04cd3", "scanner": "scanner-primary", "fingerprint": "52c2a4c5cfb0f113", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f4e6d90be4502a49", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:370)"}, "properties": {"repobilityId": "f14746cf5aa890aa", "scanner": "scanner-primary", "fingerprint": "f4e6d90be4502a49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b38a60655bf018d", "level": "error", "message": {"text": "Dangling fetch: GET /boards/missing-board/tickets (apps/server/src/routes/__tests__/tickets.test.ts:380)"}, "properties": {"repobilityId": "5607b4f48f193bcf", "scanner": "scanner-primary", "fingerprint": "1b38a60655bf018d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d070c668b1cc433", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1/tickets (apps/server/src/routes/__tests__/tickets.test.ts:388)"}, "properties": {"repobilityId": "017e8f330b332e2e", "scanner": "scanner-primary", "fingerprint": "6d070c668b1cc433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fddece0f42ee6444", "level": "error", "message": {"text": "Dangling fetch: GET /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:413)"}, "properties": {"repobilityId": "204157b41287be56", "scanner": "scanner-primary", "fingerprint": "fddece0f42ee6444", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e65fe15b59655447", "level": "error", "message": {"text": "Dangling fetch: GET /tickets/missing (apps/server/src/routes/__tests__/tickets.test.ts:422)"}, "properties": {"repobilityId": "f6c464b67d8f1ffe", "scanner": "scanner-primary", "fingerprint": "e65fe15b59655447", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2f6404c0ac79b49", "level": "error", "message": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:469)"}, "properties": {"repobilityId": "76717ff3e62952da", "scanner": "scanner-primary", "fingerprint": "b2f6404c0ac79b49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4de1064725420ca3", "level": "error", "message": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:480)"}, "properties": {"repobilityId": "ec54615bdfe94b9e", "scanner": "scanner-primary", "fingerprint": "4de1064725420ca3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2efc42168a4c282b", "level": "error", "message": {"text": "Dangling fetch: DELETE /tickets/ticket-1 (apps/server/src/routes/__tests__/tickets.test.ts:488)"}, "properties": {"repobilityId": "074247c86c562fa7", "scanner": "scanner-primary", "fingerprint": "2efc42168a4c282b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0dd60c96147e2b4", "level": "error", "message": {"text": "Dangling fetch: GET /tickets/ticket-1/subtasks (apps/server/src/routes/__tests__/tickets.test.ts:534)"}, "properties": {"repobilityId": "1ac1a6187ffeac73", "scanner": "scanner-primary", "fingerprint": "a0dd60c96147e2b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2768b5b91b39d6af", "level": "error", "message": {"text": "Dangling fetch: GET /boards/board-1/columns (apps/server/src/routes/__tests__/tickets.test.ts:550)"}, "properties": {"repobilityId": "2f0a87976c38c625", "scanner": "scanner-primary", "fingerprint": "2768b5b91b39d6af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-041c7ceefadcee27", "level": "error", "message": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:601)"}, "properties": {"repobilityId": "a17a62c2c683c686", "scanner": "scanner-primary", "fingerprint": "041c7ceefadcee27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5139a6e23fb49d70", "level": "error", "message": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:619)"}, "properties": {"repobilityId": "f49d81aa1d7d4477", "scanner": "scanner-primary", "fingerprint": "5139a6e23fb49d70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb81e107fa15ac27", "level": "error", "message": {"text": "Dangling fetch: DELETE /columns/col-1 (apps/server/src/routes/__tests__/tickets.test.ts:635)"}, "properties": {"repobilityId": "4473952a7ce773d4", "scanner": "scanner-primary", "fingerprint": "eb81e107fa15ac27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8a0d2834bd662a19", "level": "error", "message": {"text": "Dangling fetch: GET /tickets/ticket-1/comments (apps/server/src/routes/__tests__/tickets.test.ts:658)"}, "properties": {"repobilityId": "28ad74cffac46eb1", "scanner": "scanner-primary", "fingerprint": "8a0d2834bd662a19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f8e4a6d4520e48ab", "level": "error", "message": {"text": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:741)"}, "properties": {"repobilityId": "3627e75c5863e2d3", "scanner": "scanner-primary", "fingerprint": "f8e4a6d4520e48ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-895b05835b20c833", "level": "error", "message": {"text": "Dangling fetch: DELETE /comments/no-comment (apps/server/src/routes/__tests__/tickets.test.ts:750)"}, "properties": {"repobilityId": "155ff7e843c95c2a", "scanner": "scanner-primary", "fingerprint": "895b05835b20c833", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da40b224c8c75e9a", "level": "error", "message": {"text": "Dangling fetch: DELETE /comments/comment-1 (apps/server/src/routes/__tests__/tickets.test.ts:759)"}, "properties": {"repobilityId": "9eeeb17bff4aa92c", "scanner": "scanner-primary", "fingerprint": "da40b224c8c75e9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c609d50e7ca80f7", "level": "error", "message": {"text": "Dangling fetch: GET /labels (apps/server/src/routes/__tests__/tickets.test.ts:772)"}, "properties": {"repobilityId": "dc5671f32703f8b1", "scanner": "scanner-primary", "fingerprint": "9c609d50e7ca80f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d4bd8a4ee6d894d", "level": "error", "message": {"text": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:814)"}, "properties": {"repobilityId": "1312933472b61587", "scanner": "scanner-primary", "fingerprint": "7d4bd8a4ee6d894d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fdb42e272bd2edd4", "level": "error", "message": {"text": "Dangling fetch: DELETE /labels/no-label (apps/server/src/routes/__tests__/tickets.test.ts:821)"}, "properties": {"repobilityId": "1ecbcfccae282479", "scanner": "scanner-primary", "fingerprint": "fdb42e272bd2edd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fa284d44abb8ad7f", "level": "error", "message": {"text": "Dangling fetch: DELETE /labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:835)"}, "properties": {"repobilityId": "d69b1582bf84c51d", "scanner": "scanner-primary", "fingerprint": "fa284d44abb8ad7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93b06e386e6d422d", "level": "error", "message": {"text": "Dangling fetch: GET /tickets/ticket-1/labels (apps/server/src/routes/__tests__/tickets.test.ts:860)"}, "properties": {"repobilityId": "ef90c3c1f6b2ae51", "scanner": "scanner-primary", "fingerprint": "93b06e386e6d422d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8b08975d54b2cd3", "level": "error", "message": {"text": "Dangling fetch: DELETE /tickets/ticket-1/labels/label-1 (apps/server/src/routes/__tests__/tickets.test.ts:871)"}, "properties": {"repobilityId": "f91b4230772eca25", "scanner": "scanner-primary", "fingerprint": "a8b08975d54b2cd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1860bfc32634273", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/invalid collection! (apps/server/src/routes/__tests__/rag-index.test.ts:65)"}, "properties": {"repobilityId": "b8e08e68409b27e4", "scanner": "scanner-primary", "fingerprint": "d1860bfc32634273", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb71496404b2155a", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/my.collection (apps/server/src/routes/__tests__/rag-index.test.ts:77)"}, "properties": {"repobilityId": "89a25a8d44b733a8", "scanner": "scanner-primary", "fingerprint": "bb71496404b2155a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71411232696d5b60", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/valid-collection_1 (apps/server/src/routes/__tests__/rag-index.test.ts:95)"}, "properties": {"repobilityId": "39420119ee4980ac", "scanner": "scanner-primary", "fingerprint": "71411232696d5b60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3993541e024cd81c", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:118)"}, "properties": {"repobilityId": "6c77f4d0446e46c1", "scanner": "scanner-primary", "fingerprint": "3993541e024cd81c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc2096fddb37fbf5", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/articles (apps/server/src/routes/__tests__/rag-index.test.ts:140)"}, "properties": {"repobilityId": "610080b30cb2d218", "scanner": "scanner-primary", "fingerprint": "cc2096fddb37fbf5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f977320edfe75b52", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:154)"}, "properties": {"repobilityId": "61eda2be9f72719f", "scanner": "scanner-primary", "fingerprint": "f977320edfe75b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f40a8920dd114fce", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:169)"}, "properties": {"repobilityId": "5bda15fd71084537", "scanner": "scanner-primary", "fingerprint": "f40a8920dd114fce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-275e8daf951eee3b", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:189)"}, "properties": {"repobilityId": "16b3e90e1dd9e36c", "scanner": "scanner-primary", "fingerprint": "275e8daf951eee3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97c2768b4a883466", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:210)"}, "properties": {"repobilityId": "82bc034bcfca4338", "scanner": "scanner-primary", "fingerprint": "97c2768b4a883466", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2676bd2d88632105", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:242)"}, "properties": {"repobilityId": "1852c8d7a75e3f78", "scanner": "scanner-primary", "fingerprint": "2676bd2d88632105", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-393213fc0a6a91ca", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/documents (apps/server/src/routes/__tests__/rag-index.test.ts:263)"}, "properties": {"repobilityId": "786b33062c27bf21", "scanner": "scanner-primary", "fingerprint": "393213fc0a6a91ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-24a23aadadf96888", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-2/documents (apps/server/src/routes/__tests__/rag-index.test.ts:283)"}, "properties": {"repobilityId": "1be33f8a045866e7", "scanner": "scanner-primary", "fingerprint": "24a23aadadf96888", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3773c04de72ab787", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-3/documents (apps/server/src/routes/__tests__/rag-index.test.ts:307)"}, "properties": {"repobilityId": "f2002b0ac3607b85", "scanner": "scanner-primary", "fingerprint": "3773c04de72ab787", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0303c27071935676", "level": "error", "message": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-1 (apps/server/src/routes/__tests__/rag-index.test.ts:320)"}, "properties": {"repobilityId": "d2a52424761b4bc3", "scanner": "scanner-primary", "fingerprint": "0303c27071935676", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f489a544f081fb53", "level": "error", "message": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-42 (apps/server/src/routes/__tests__/rag-index.test.ts:332)"}, "properties": {"repobilityId": "ae33d08ded2bb31c", "scanner": "scanner-primary", "fingerprint": "f489a544f081fb53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d525078bd88fa53f", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-1/status (apps/server/src/routes/__tests__/rag-index.test.ts:356)"}, "properties": {"repobilityId": "53f948d404d3a798", "scanner": "scanner-primary", "fingerprint": "d525078bd88fa53f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e781e5a3346dd0bd", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-2/status (apps/server/src/routes/__tests__/rag-index.test.ts:378)"}, "properties": {"repobilityId": "e2bf2a46b29eb8ca", "scanner": "scanner-primary", "fingerprint": "e781e5a3346dd0bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b510341629199b91", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/empty-ws/status (apps/server/src/routes/__tests__/rag-index.test.ts:402)"}, "properties": {"repobilityId": "e7ebb6c0875550bd", "scanner": "scanner-primary", "fingerprint": "b510341629199b91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b76e3d7fc038798", "level": "error", "message": {"text": "Dangling fetch: GET /rag/workspaces/ws-fail/status (apps/server/src/routes/__tests__/rag-index.test.ts:424)"}, "properties": {"repobilityId": "9c61bf3c4a69354e", "scanner": "scanner-primary", "fingerprint": "7b76e3d7fc038798", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f21cd2d4fd44215b", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:516)"}, "properties": {"repobilityId": "79975ffee2d8d7c6", "scanner": "scanner-primary", "fingerprint": "f21cd2d4fd44215b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2fb0550663fd88a9", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:551)"}, "properties": {"repobilityId": "db1fbfe675e3aae9", "scanner": "scanner-primary", "fingerprint": "2fb0550663fd88a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f6200939f974b9d", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:587)"}, "properties": {"repobilityId": "4bcc93792a7e73df", "scanner": "scanner-primary", "fingerprint": "4f6200939f974b9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6da192d7aefa54d5", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:614)"}, "properties": {"repobilityId": "185746336d848f45", "scanner": "scanner-primary", "fingerprint": "6da192d7aefa54d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5dfc64895c37706", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/ws-1/index/posts (apps/server/src/routes/__tests__/rag-index.test.ts:647)"}, "properties": {"repobilityId": "decde2a9f420751c", "scanner": "scanner-primary", "fingerprint": "f5dfc64895c37706", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72b82d4db0d4ae86", "level": "error", "message": {"text": "Dangling fetch: POST /rag/workspaces/my-workspace/index/my-collection (apps/server/src/routes/__tests__/rag-index.test.ts:669)"}, "properties": {"repobilityId": "4eafd39e4ae4f6ef", "scanner": "scanner-primary", "fingerprint": "72b82d4db0d4ae86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-81689ff455622419", "level": "error", "message": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/doc-99 (apps/server/src/routes/__tests__/rag-index.test.ts:689)"}, "properties": {"repobilityId": "0c54adc6c83a0ce1", "scanner": "scanner-primary", "fingerprint": "81689ff455622419", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c0e357befdace6a", "level": "error", "message": {"text": "Dangling fetch: DELETE /rag/workspaces/ws-1/documents/specific-doc-id (apps/server/src/routes/__tests__/rag-index.test.ts:705)"}, "properties": {"repobilityId": "5559ca8284b0e659", "scanner": "scanner-primary", "fingerprint": "3c0e357befdace6a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5b5aa8c344494d9", "level": "error", "message": {"text": "Dangling fetch: GET /stats (apps/server/src/routes/__tests__/code-provenance.test.ts:162)"}, "properties": {"repobilityId": "5c0415257fa45bd3", "scanner": "scanner-primary", "fingerprint": "f5b5aa8c344494d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a5249f76a871fb98", "level": "error", "message": {"text": "Dangling fetch: GET /file/packages%2Fcore%2Fsrc%2Findex.ts (apps/server/src/routes/__tests__/code-provenance.test.ts:175)"}, "properties": {"repobilityId": "6208e9f8444e05c2", "scanner": "scanner-primary", "fingerprint": "a5249f76a871fb98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34ce82b848fd2cbc", "level": "error", "message": {"text": "Dangling fetch: GET /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:187)"}, "properties": {"repobilityId": "0278a3782d5d967b", "scanner": "scanner-primary", "fingerprint": "34ce82b848fd2cbc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aea9fef5d1913ec2", "level": "error", "message": {"text": "Dangling fetch: GET /no-such-id (apps/server/src/routes/__tests__/code-provenance.test.ts:197)"}, "properties": {"repobilityId": "18eacdc82e8914d4", "scanner": "scanner-primary", "fingerprint": "aea9fef5d1913ec2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc23df6a6141bb9b", "level": "error", "message": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:275)"}, "properties": {"repobilityId": "43bfa20e0ecfe99b", "scanner": "scanner-primary", "fingerprint": "bc23df6a6141bb9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-803d27e0454026e5", "level": "error", "message": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:284)"}, "properties": {"repobilityId": "3f1023c78922055a", "scanner": "scanner-primary", "fingerprint": "803d27e0454026e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-453e417b6f688832", "level": "error", "message": {"text": "Dangling fetch: DELETE /prov-1 (apps/server/src/routes/__tests__/code-provenance.test.ts:292)"}, "properties": {"repobilityId": "ef2c23cb77eb1ff4", "scanner": "scanner-primary", "fingerprint": "453e417b6f688832", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-329438b3caa0f8f3", "level": "error", "message": {"text": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:449)"}, "properties": {"repobilityId": "7f5a9021208fa136", "scanner": "scanner-primary", "fingerprint": "329438b3caa0f8f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-faa7bf3dae4523b2", "level": "error", "message": {"text": "Dangling fetch: GET /prov-1/reviews (apps/server/src/routes/__tests__/code-provenance.test.ts:459)"}, "properties": {"repobilityId": "74234007f56f7f9e", "scanner": "scanner-primary", "fingerprint": "faa7bf3dae4523b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a4c2eb02e24d333", "level": "error", "message": {"text": "Dangling fetch: GET /search (apps/server/src/routes/__tests__/search.test.ts:88)"}, "properties": {"repobilityId": "b8e7d0d99a157e86", "scanner": "scanner-primary", "fingerprint": "3a4c2eb02e24d333", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ecd2734dd5e015a", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=a (apps/server/src/routes/__tests__/search.test.ts:93)"}, "properties": {"repobilityId": "6f0e05e1cdf573a3", "scanner": "scanner-primary", "fingerprint": "2ecd2734dd5e015a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-46c8d711accab38b", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=${long} (apps/server/src/routes/__tests__/search.test.ts:99)"}, "properties": {"repobilityId": "fbbda5b36c3963af", "scanner": "scanner-primary", "fingerprint": "46c8d711accab38b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2cae85202038b76", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=${exact}&type=posts (apps/server/src/routes/__tests__/search.test.ts:106)"}, "properties": {"repobilityId": "29e8ba43815335be", "scanner": "scanner-primary", "fingerprint": "c2cae85202038b76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dcc86b11baa8910b", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=invalid (apps/server/src/routes/__tests__/search.test.ts:111)"}, "properties": {"repobilityId": "db82ffec945bc939", "scanner": "scanner-primary", "fingerprint": "dcc86b11baa8910b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10951e7081e74bd0", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:117)"}, "properties": {"repobilityId": "d5c4b89b7ff2897d", "scanner": "scanner-primary", "fingerprint": "10951e7081e74bd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3bbb533e9e181e67", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:123)"}, "properties": {"repobilityId": "091c46359e09e4b6", "scanner": "scanner-primary", "fingerprint": "3bbb533e9e181e67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c76d3e39681eedf8", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:134)"}, "properties": {"repobilityId": "81d6ad5f688745cd", "scanner": "scanner-primary", "fingerprint": "c76d3e39681eedf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b90ff769cd49f9c5", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello (apps/server/src/routes/__tests__/search.test.ts:145)"}, "properties": {"repobilityId": "daa1174620607f58", "scanner": "scanner-primary", "fingerprint": "b90ff769cd49f9c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dfe611fff94d491b", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:157)"}, "properties": {"repobilityId": "70a62d8baa791503", "scanner": "scanner-primary", "fingerprint": "dfe611fff94d491b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a08f003b1d0f6908", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:168)"}, "properties": {"repobilityId": "24a0d113e679af0b", "scanner": "scanner-primary", "fingerprint": "a08f003b1d0f6908", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c50df6133278ce85", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:178)"}, "properties": {"repobilityId": "2245d8af67d79dda", "scanner": "scanner-primary", "fingerprint": "c50df6133278ce85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a843a58087e4cef7", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:189)"}, "properties": {"repobilityId": "233339b62e858406", "scanner": "scanner-primary", "fingerprint": "a843a58087e4cef7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e0001c0830b00db", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:209)"}, "properties": {"repobilityId": "1a1c86572b5b5ce4", "scanner": "scanner-primary", "fingerprint": "2e0001c0830b00db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4b6a38d50580b74", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:217)"}, "properties": {"repobilityId": "d3d10af7b5186860", "scanner": "scanner-primary", "fingerprint": "b4b6a38d50580b74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6a692d87aba8073", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=all (apps/server/src/routes/__tests__/search.test.ts:244)"}, "properties": {"repobilityId": "724b144eff2c5f08", "scanner": "scanner-primary", "fingerprint": "f6a692d87aba8073", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f789515cbaff76a", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:256)"}, "properties": {"repobilityId": "24511c9ee5fcb314", "scanner": "scanner-primary", "fingerprint": "4f789515cbaff76a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c701be747a8b05a", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=5 (apps/server/src/routes/__tests__/search.test.ts:263)"}, "properties": {"repobilityId": "f0ae8151ec6a0850", "scanner": "scanner-primary", "fingerprint": "5c701be747a8b05a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e85cdf9dbd4fe10d", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=999 (apps/server/src/routes/__tests__/search.test.ts:268)"}, "properties": {"repobilityId": "2befa4a1ef8323a1", "scanner": "scanner-primary", "fingerprint": "e85cdf9dbd4fe10d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38b376011f23f838", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=0 (apps/server/src/routes/__tests__/search.test.ts:273)"}, "properties": {"repobilityId": "9cfea84caedb2cbc", "scanner": "scanner-primary", "fingerprint": "38b376011f23f838", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-21966c5a9b4d2a2f", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&offset=40 (apps/server/src/routes/__tests__/search.test.ts:279)"}, "properties": {"repobilityId": "c027d0122f666e15", "scanner": "scanner-primary", "fingerprint": "21966c5a9b4d2a2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f04ca186ad1a978", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&offset=-10 (apps/server/src/routes/__tests__/search.test.ts:284)"}, "properties": {"repobilityId": "d473e4004451b908", "scanner": "scanner-primary", "fingerprint": "2f04ca186ad1a978", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-759fdc0157fb8c7c", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=test&type=posts (apps/server/src/routes/__tests__/search.test.ts:294)"}, "properties": {"repobilityId": "2e5527235fb13531", "scanner": "scanner-primary", "fingerprint": "759fdc0157fb8c7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0661ddf55cd6eee9", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=typescript&type=posts (apps/server/src/routes/__tests__/search.test.ts:309)"}, "properties": {"repobilityId": "2aef7c5bbb28ed19", "scanner": "scanner-primary", "fingerprint": "0661ddf55cd6eee9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bcaaff362576c1be", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=notfound&type=posts (apps/server/src/routes/__tests__/search.test.ts:316)"}, "properties": {"repobilityId": "d00288473e961436", "scanner": "scanner-primary", "fingerprint": "bcaaff362576c1be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c6d42c990f94c9c", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:324)"}, "properties": {"repobilityId": "08af80ee3545816c", "scanner": "scanner-primary", "fingerprint": "2c6d42c990f94c9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea5a949f5c9480af", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:339)"}, "properties": {"repobilityId": "17aeb364998f8d1d", "scanner": "scanner-primary", "fingerprint": "ea5a949f5c9480af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7c1c21784b946423", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:346)"}, "properties": {"repobilityId": "6737d89488aacadc", "scanner": "scanner-primary", "fingerprint": "7c1c21784b946423", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d77fcfbaa0cd0db8", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:354)"}, "properties": {"repobilityId": "b93002095021626f", "scanner": "scanner-primary", "fingerprint": "d77fcfbaa0cd0db8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6be0fedb14718e69", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=ab&type=posts (apps/server/src/routes/__tests__/search.test.ts:365)"}, "properties": {"repobilityId": "c59438c844acf2ff", "scanner": "scanner-primary", "fingerprint": "6be0fedb14718e69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2988f562a59d54cd", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=1 (apps/server/src/routes/__tests__/search.test.ts:373)"}, "properties": {"repobilityId": "796d5b26b5d91045", "scanner": "scanner-primary", "fingerprint": "2988f562a59d54cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16461631f94e18c9", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts&limit=100 (apps/server/src/routes/__tests__/search.test.ts:380)"}, "properties": {"repobilityId": "52de8bc7541632fd", "scanner": "scanner-primary", "fingerprint": "16461631f94e18c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a56e1eae87ea4bcf", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=posts (apps/server/src/routes/__tests__/search.test.ts:397)"}, "properties": {"repobilityId": "308933330b75a90b", "scanner": "scanner-primary", "fingerprint": "a56e1eae87ea4bcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a6cd4e74c6bd89e7", "level": "error", "message": {"text": "Dangling fetch: GET /search?q=hello&type=pages (apps/server/src/routes/__tests__/search.test.ts:409)"}, "properties": {"repobilityId": "6bb19a68b3472e76", "scanner": "scanner-primary", "fingerprint": "a6cd4e74c6bd89e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63baa90fb35f884f", "level": "error", "message": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:98)"}, "properties": {"repobilityId": "a5110174da4524ab", "scanner": "scanner-primary", "fingerprint": "63baa90fb35f884f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ca282546f479ef2e", "level": "error", "message": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:116)"}, "properties": {"repobilityId": "0dee5c71cdfc88db", "scanner": "scanner-primary", "fingerprint": "ca282546f479ef2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e2dcd1f12292655", "level": "error", "message": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:127)"}, "properties": {"repobilityId": "8b9f70b2f99c47ca", "scanner": "scanner-primary", "fingerprint": "1e2dcd1f12292655", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cf90bb178f0ac657", "level": "error", "message": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:138)"}, "properties": {"repobilityId": "f904bc05c5f6d8bc", "scanner": "scanner-primary", "fingerprint": "cf90bb178f0ac657", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-78d74738213230eb", "level": "error", "message": {"text": "Dangling fetch: POST /batch/create (apps/server/src/routes/__tests__/batch.test.ts:155)"}, "properties": {"repobilityId": "11f80d2fa5e477b1", "scanner": "scanner-primary", "fingerprint": "78d74738213230eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b676a58012ad5459", "level": "error", "message": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:182)"}, "properties": {"repobilityId": "0c8d19bee4c6d5ea", "scanner": "scanner-primary", "fingerprint": "b676a58012ad5459", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7f6b4281be2a2940", "level": "error", "message": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:198)"}, "properties": {"repobilityId": "98622428b478c7fd", "scanner": "scanner-primary", "fingerprint": "7f6b4281be2a2940", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a90e620b5c390cc", "level": "error", "message": {"text": "Dangling fetch: POST /batch/update (apps/server/src/routes/__tests__/batch.test.ts:214)"}, "properties": {"repobilityId": "7013ab98a24386eb", "scanner": "scanner-primary", "fingerprint": "7a90e620b5c390cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ac5812a52dc6578", "level": "error", "message": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:237)"}, "properties": {"repobilityId": "7780f1a3f1a8ab03", "scanner": "scanner-primary", "fingerprint": "2ac5812a52dc6578", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f821ab53c43951b1", "level": "error", "message": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:253)"}, "properties": {"repobilityId": "7e42fb862bbd2575", "scanner": "scanner-primary", "fingerprint": "f821ab53c43951b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-905a439741c781e8", "level": "error", "message": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:264)"}, "properties": {"repobilityId": "4af89f0f4aa2a7d6", "scanner": "scanner-primary", "fingerprint": "905a439741c781e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-00cfd58ed5253eae", "level": "error", "message": {"text": "Dangling fetch: POST /batch/delete (apps/server/src/routes/__tests__/batch.test.ts:277)"}, "properties": {"repobilityId": "0a368533b584920c", "scanner": "scanner-primary", "fingerprint": "00cfd58ed5253eae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-039ae6b96f6210b6", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:354)"}, "properties": {"repobilityId": "150445e327960b4c", "scanner": "scanner-primary", "fingerprint": "039ae6b96f6210b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f0123a885ca14d3d", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:366)"}, "properties": {"repobilityId": "e9fd76aff2f2fa92", "scanner": "scanner-primary", "fingerprint": "f0123a885ca14d3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c88631f56c7c6e95", "level": "error", "message": {"text": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:376)"}, "properties": {"repobilityId": "04f03bc88af4c28d", "scanner": "scanner-primary", "fingerprint": "c88631f56c7c6e95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b6e28473f4e1e42d", "level": "error", "message": {"text": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:384)"}, "properties": {"repobilityId": "12dcedac750cfa1e", "scanner": "scanner-primary", "fingerprint": "b6e28473f4e1e42d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c4073830f4145a0", "level": "error", "message": {"text": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:394)"}, "properties": {"repobilityId": "7f991aa80e20db52", "scanner": "scanner-primary", "fingerprint": "3c4073830f4145a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-89f7e12747dc20f8", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:408)"}, "properties": {"repobilityId": "113d6a3f3857bf6f", "scanner": "scanner-primary", "fingerprint": "89f7e12747dc20f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cebfc77697f38c35", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:418)"}, "properties": {"repobilityId": "40f719513d0dca97", "scanner": "scanner-primary", "fingerprint": "cebfc77697f38c35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1fe19d78ae2c5605", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:426)"}, "properties": {"repobilityId": "0793dcd26ab99224", "scanner": "scanner-primary", "fingerprint": "1fe19d78ae2c5605", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7516b28ed5f7e26c", "level": "error", "message": {"text": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:434)"}, "properties": {"repobilityId": "6dac1dabf6b64779", "scanner": "scanner-primary", "fingerprint": "7516b28ed5f7e26c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf37de057ee58201", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:445)"}, "properties": {"repobilityId": "5992e198f3bf3f6a", "scanner": "scanner-primary", "fingerprint": "bf37de057ee58201", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8472bc4a9bc003d", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:461)"}, "properties": {"repobilityId": "f1aebdf3d73fc30c", "scanner": "scanner-primary", "fingerprint": "b8472bc4a9bc003d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-864ecf8578f3471c", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:481)"}, "properties": {"repobilityId": "c61cae65a6bf6046", "scanner": "scanner-primary", "fingerprint": "864ecf8578f3471c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee5e471fa370c673", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:495)"}, "properties": {"repobilityId": "48a0cc845834fa7a", "scanner": "scanner-primary", "fingerprint": "ee5e471fa370c673", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e20327da562fa65", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:509)"}, "properties": {"repobilityId": "e630c2fe349c722b", "scanner": "scanner-primary", "fingerprint": "8e20327da562fa65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-122e3a79598f4cc6", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:523)"}, "properties": {"repobilityId": "ab42a49652ee21d5", "scanner": "scanner-primary", "fingerprint": "122e3a79598f4cc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-293fa0cbac902d99", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:537)"}, "properties": {"repobilityId": "ab72d8862fe65626", "scanner": "scanner-primary", "fingerprint": "293fa0cbac902d99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-66cdd0f3cb1dfad5", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:558)"}, "properties": {"repobilityId": "ac9304d650240ff9", "scanner": "scanner-primary", "fingerprint": "66cdd0f3cb1dfad5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-430a279092256a9a", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:579)"}, "properties": {"repobilityId": "c64bb328f4c087e4", "scanner": "scanner-primary", "fingerprint": "430a279092256a9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d933aacee3791bfa", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:589)"}, "properties": {"repobilityId": "3c7944251af74711", "scanner": "scanner-primary", "fingerprint": "d933aacee3791bfa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8826621adabf2592", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:602)"}, "properties": {"repobilityId": "6ead7ea5cba170f2", "scanner": "scanner-primary", "fingerprint": "8826621adabf2592", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-57d0971244a4e4fa", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:612)"}, "properties": {"repobilityId": "b73650d92f03a130", "scanner": "scanner-primary", "fingerprint": "57d0971244a4e4fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-379fb71e292ab423", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:624)"}, "properties": {"repobilityId": "6c6f1cf842440df5", "scanner": "scanner-primary", "fingerprint": "379fb71e292ab423", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b31dff192f25e585", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:638)"}, "properties": {"repobilityId": "070e8c5c14530299", "scanner": "scanner-primary", "fingerprint": "b31dff192f25e585", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b52994895bf5fd2", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:654)"}, "properties": {"repobilityId": "f0d7c82ac6d201ce", "scanner": "scanner-primary", "fingerprint": "3b52994895bf5fd2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8cee0ae558a8b2a", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:670)"}, "properties": {"repobilityId": "939f9ec45a9f9ee3", "scanner": "scanner-primary", "fingerprint": "e8cee0ae558a8b2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f6179e6e9d065ed", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:697)"}, "properties": {"repobilityId": "9a18071a1cc35cd7", "scanner": "scanner-primary", "fingerprint": "2f6179e6e9d065ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d2d73b9c7851c31", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:721)"}, "properties": {"repobilityId": "17d3625ae0bb6d94", "scanner": "scanner-primary", "fingerprint": "8d2d73b9c7851c31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea8a14afd46b63a8", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:742)"}, "properties": {"repobilityId": "acdb65cadda45c12", "scanner": "scanner-primary", "fingerprint": "ea8a14afd46b63a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-583822608cc5d8dd", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:750)"}, "properties": {"repobilityId": "29fd4c46630ef677", "scanner": "scanner-primary", "fingerprint": "583822608cc5d8dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9417f2b5f52906d", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:767)"}, "properties": {"repobilityId": "90386a4bd0fdb15d", "scanner": "scanner-primary", "fingerprint": "f9417f2b5f52906d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e83a154b7ed1f44", "level": "error", "message": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace-endpoints.test.ts:781)"}, "properties": {"repobilityId": "ac0ecdbf3b255d29", "scanner": "scanner-primary", "fingerprint": "1e83a154b7ed1f44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3aac8af44cc52b90", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:146)"}, "properties": {"repobilityId": "a1437e4d961dc9c2", "scanner": "scanner-primary", "fingerprint": "3aac8af44cc52b90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16fff803de7a3720", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:152)"}, "properties": {"repobilityId": "f3ad120ab0786c68", "scanner": "scanner-primary", "fingerprint": "16fff803de7a3720", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b1f545dcdaeb0cf", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:158)"}, "properties": {"repobilityId": "92a314826a9f6360", "scanner": "scanner-primary", "fingerprint": "7b1f545dcdaeb0cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e727cdcde7ab760d", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:172)"}, "properties": {"repobilityId": "2c195029776d3df7", "scanner": "scanner-primary", "fingerprint": "e727cdcde7ab760d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bbdc3338b0fa7fe7", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:196)"}, "properties": {"repobilityId": "bd6c03e4f5b8b7de", "scanner": "scanner-primary", "fingerprint": "bbdc3338b0fa7fe7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a4ed51a8324567e", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary?days=7 (apps/server/src/routes/__tests__/analytics.test.ts:221)"}, "properties": {"repobilityId": "1b9723760829a143", "scanner": "scanner-primary", "fingerprint": "1a4ed51a8324567e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03f5bb1222cd363e", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary?days=0 (apps/server/src/routes/__tests__/analytics.test.ts:237)"}, "properties": {"repobilityId": "12488bc0b40e186f", "scanner": "scanner-primary", "fingerprint": "03f5bb1222cd363e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7bc707393b5d490", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary?days=400 (apps/server/src/routes/__tests__/analytics.test.ts:244)"}, "properties": {"repobilityId": "19e084556ca18fec", "scanner": "scanner-primary", "fingerprint": "f7bc707393b5d490", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c5fb942365903b1", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:275)"}, "properties": {"repobilityId": "ca63c7616eed6ef7", "scanner": "scanner-primary", "fingerprint": "5c5fb942365903b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1018eb4966c9be9", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/by-meter (apps/server/src/routes/__tests__/analytics.test.ts:294)"}, "properties": {"repobilityId": "97ae5194068262f0", "scanner": "scanner-primary", "fingerprint": "d1018eb4966c9be9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7cf5a703373a006", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/by-source (apps/server/src/routes/__tests__/analytics.test.ts:328)"}, "properties": {"repobilityId": "d1a11762abf7908e", "scanner": "scanner-primary", "fingerprint": "e7cf5a703373a006", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71023dd8e5069be8", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:362)"}, "properties": {"repobilityId": "76815bbfae48d0ab", "scanner": "scanner-primary", "fingerprint": "71023dd8e5069be8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f74582f04ea31ed", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/summary (apps/server/src/routes/__tests__/analytics.test.ts:378)"}, "properties": {"repobilityId": "5e2a104f40edd2ec", "scanner": "scanner-primary", "fingerprint": "5f74582f04ea31ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-824c29e36cd868c6", "level": "error", "message": {"text": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:430)"}, "properties": {"repobilityId": "3e7c9c8ea72162a0", "scanner": "scanner-primary", "fingerprint": "824c29e36cd868c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e789f9e544c5b313", "level": "error", "message": {"text": "Dangling fetch: GET /features (apps/server/src/routes/__tests__/license.test.ts:440)"}, "properties": {"repobilityId": "7dfe0c9a43ef38a7", "scanner": "scanner-primary", "fingerprint": "e789f9e544c5b313", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93d4d880d3eccaec", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:98)"}, "properties": {"repobilityId": "aa47c75b750c3d94", "scanner": "scanner-primary", "fingerprint": "93d4d880d3eccaec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07b121fc191b2c31", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage (apps/server/src/routes/__tests__/mcp-usage.test.ts:109)"}, "properties": {"repobilityId": "29636b4d0d679f01", "scanner": "scanner-primary", "fingerprint": "07b121fc191b2c31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4cd9b22c8478eb1f", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:119)"}, "properties": {"repobilityId": "7e9730d697ef5be3", "scanner": "scanner-primary", "fingerprint": "4cd9b22c8478eb1f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd2eeb2dcd107657", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:148)"}, "properties": {"repobilityId": "3c9cd899b339f8bd", "scanner": "scanner-primary", "fingerprint": "cd2eeb2dcd107657", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-37994f9e8487f378", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:194)"}, "properties": {"repobilityId": "7b4ad6fc7f58a91d", "scanner": "scanner-primary", "fingerprint": "37994f9e8487f378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5aa571fbcc3d9a8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:223)"}, "properties": {"repobilityId": "e0ca6f748f57c750", "scanner": "scanner-primary", "fingerprint": "5aa571fbcc3d9a8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-94da4d560ac6bf94", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:254)"}, "properties": {"repobilityId": "6d1844ebeb904d51", "scanner": "scanner-primary", "fingerprint": "94da4d560ac6bf94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-000ef7cd02e1f392", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=24h (apps/server/src/routes/__tests__/mcp-usage.test.ts:282)"}, "properties": {"repobilityId": "055493ef930dba03", "scanner": "scanner-primary", "fingerprint": "000ef7cd02e1f392", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-30577e9d22406b7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=7d (apps/server/src/routes/__tests__/mcp-usage.test.ts:286)"}, "properties": {"repobilityId": "5e0eabb28b572e69", "scanner": "scanner-primary", "fingerprint": "30577e9d22406b7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08e9ce879ca777da", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/usage?range=999d (apps/server/src/routes/__tests__/mcp-usage.test.ts:297)"}, "properties": {"repobilityId": "0523bbe2828891c2", "scanner": "scanner-primary", "fingerprint": "08e9ce879ca777da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d28804434be478e", "level": "error", "message": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:543)"}, "properties": {"repobilityId": "e82f139823e2e7c9", "scanner": "scanner-primary", "fingerprint": "3d28804434be478e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87fe62f6ee5d2280", "level": "error", "message": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:555)"}, "properties": {"repobilityId": "75857043e8d04689", "scanner": "scanner-primary", "fingerprint": "87fe62f6ee5d2280", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a00dd6e1d3b4a395", "level": "error", "message": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:575)"}, "properties": {"repobilityId": "c71d4ce2cfdadf7e", "scanner": "scanner-primary", "fingerprint": "a00dd6e1d3b4a395", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13d1293f14d802aa", "level": "error", "message": {"text": "Dangling fetch: POST /studio-auth/refresh (apps/server/src/routes/__tests__/studio-auth.test.ts:593)"}, "properties": {"repobilityId": "c0f9b6d1020bfbfc", "scanner": "scanner-primary", "fingerprint": "13d1293f14d802aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa26ebc517860e90", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-stripe-erasure.test.ts:153)"}, "properties": {"repobilityId": "899179fdeae549aa", "scanner": "scanner-primary", "fingerprint": "aa26ebc517860e90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2480252c4a17af1", "level": "error", "message": {"text": "Dangling fetch: POST /waitlist (apps/server/src/routes/__tests__/waitlist.test.ts:55)"}, "properties": {"repobilityId": "67f0acb0d6164d0c", "scanner": "scanner-primary", "fingerprint": "b2480252c4a17af1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfbba6f9abbbd0a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:222)"}, "properties": {"repobilityId": "29072e3e0343c17d", "scanner": "scanner-primary", "fingerprint": "cfbba6f9abbbd0a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-530a69761a0ee837", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-empty (apps/server/src/routes/__tests__/collab.test.ts:231)"}, "properties": {"repobilityId": "a4d7ebe2af951d38", "scanner": "scanner-primary", "fingerprint": "530a69761a0ee837", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03e8b8f1fb2033e8", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-with-data (apps/server/src/routes/__tests__/collab.test.ts:248)"}, "properties": {"repobilityId": "3f417f3a8ce1b54a", "scanner": "scanner-primary", "fingerprint": "03e8b8f1fb2033e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07c6c15c647ac069", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-1 (apps/server/src/routes/__tests__/collab.test.ts:264)"}, "properties": {"repobilityId": "c805f10cf611f38c", "scanner": "scanner-primary", "fingerprint": "07c6c15c647ac069", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a732910a6a74f905", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/shape-doc (apps/server/src/routes/__tests__/collab.test.ts:280)"}, "properties": {"repobilityId": "a328894e91e47d56", "scanner": "scanner-primary", "fingerprint": "a732910a6a74f905", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4570b33af304f61", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:303)"}, "properties": {"repobilityId": "2fea432b36920aa5", "scanner": "scanner-primary", "fingerprint": "c4570b33af304f61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-533d54a740f3e7e9", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/${targetDocId} (apps/server/src/routes/__tests__/collab.test.ts:320)"}, "properties": {"repobilityId": "f99466fe579961fe", "scanner": "scanner-primary", "fingerprint": "533d54a740f3e7e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1956a9a6bbb8a5df", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-roundtrip (apps/server/src/routes/__tests__/collab.test.ts:485)"}, "properties": {"repobilityId": "a59aa8e4f53b43ed", "scanner": "scanner-primary", "fingerprint": "1956a9a6bbb8a5df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87f83863064f07f6", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-nonerror (apps/server/src/routes/__tests__/collab.test.ts:505)"}, "properties": {"repobilityId": "cf3f7767f8688f2d", "scanner": "scanner-primary", "fingerprint": "87f83863064f07f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6dec05e4be049e8", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-a (apps/server/src/routes/__tests__/collab.test.ts:524)"}, "properties": {"repobilityId": "551d296b05b15333", "scanner": "scanner-primary", "fingerprint": "f6dec05e4be049e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7e376e6f38ae7e9a", "level": "error", "message": {"text": "Dangling fetch: GET /api/collab/snapshot/doc-b (apps/server/src/routes/__tests__/collab.test.ts:533)"}, "properties": {"repobilityId": "fb2383f5a9113cb6", "scanner": "scanner-primary", "fingerprint": "7e376e6f38ae7e9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f4a67f090eee8e55", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:151)"}, "properties": {"repobilityId": "e02b5c3fa1c70280", "scanner": "scanner-primary", "fingerprint": "f4a67f090eee8e55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d3be4afa87eaf3e", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:181)"}, "properties": {"repobilityId": "db7627e31e0d3f03", "scanner": "scanner-primary", "fingerprint": "6d3be4afa87eaf3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6400632f5298418c", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:197)"}, "properties": {"repobilityId": "c0cb505d244f3699", "scanner": "scanner-primary", "fingerprint": "6400632f5298418c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a753b9027229e31", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:210)"}, "properties": {"repobilityId": "1ce93139483f5fd0", "scanner": "scanner-primary", "fingerprint": "1a753b9027229e31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd0ee188a4168b5f", "level": "error", "message": {"text": "Dangling fetch: POST /gdpr/deletion (apps/server/src/routes/__tests__/gdpr-integration.test.ts:223)"}, "properties": {"repobilityId": "551c25792a249fb7", "scanner": "scanner-primary", "fingerprint": "fd0ee188a4168b5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f550512921b1c8d", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent/check/marketing (apps/server/src/routes/__tests__/gdpr-edge.test.ts:235)"}, "properties": {"repobilityId": "df964673f97cc44b", "scanner": "scanner-primary", "fingerprint": "2f550512921b1c8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a5ec1b6b35a722d", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/consent/check/${type} (apps/server/src/routes/__tests__/gdpr-edge.test.ts:246)"}, "properties": {"repobilityId": "07158546357761c6", "scanner": "scanner-primary", "fingerprint": "6a5ec1b6b35a722d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-88a1623adea53574", "level": "error", "message": {"text": "Dangling fetch: GET /gdpr/admin/stats (apps/server/src/routes/__tests__/gdpr-edge.test.ts:287)"}, "properties": {"repobilityId": "19de5de58bfd02e7", "scanner": "scanner-primary", "fingerprint": "88a1623adea53574", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5197aa9f26783e02", "level": "error", "message": {"text": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:103)"}, "properties": {"repobilityId": "b0c3002746dcf0c5", "scanner": "scanner-primary", "fingerprint": "5197aa9f26783e02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-094cfeb1e2898fa7", "level": "error", "message": {"text": "Dangling fetch: GET /devkit/profiles (apps/server/src/routes/__tests__/devkit.test.ts:131)"}, "properties": {"repobilityId": "3223c5b61dbf9e85", "scanner": "scanner-primary", "fingerprint": "094cfeb1e2898fa7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db4644924da6c45a", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:281)"}, "properties": {"repobilityId": "6ac8781ef4b0fe9b", "scanner": "scanner-primary", "fingerprint": "db4644924da6c45a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5814488bf92b7e23", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup (apps/server/src/routes/__tests__/terminal-auth.test.ts:291)"}, "properties": {"repobilityId": "78cf7dc79f49f471", "scanner": "scanner-primary", "fingerprint": "5814488bf92b7e23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b1ea39c86796253", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:test (apps/server/src/routes/__tests__/terminal-auth.test.ts:301)"}, "properties": {"repobilityId": "d86917dc724fb4f4", "scanner": "scanner-primary", "fingerprint": "0b1ea39c86796253", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be981ebe510e1796", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:unknown (apps/server/src/routes/__tests__/terminal-auth.test.ts:329)"}, "properties": {"repobilityId": "83ac184739c19c22", "scanner": "scanner-primary", "fingerprint": "be981ebe510e1796", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ac7010c656e7b88", "level": "error", "message": {"text": "Dangling fetch: GET /terminal-auth/lookup?fingerprint=SHA256:known (apps/server/src/routes/__tests__/terminal-auth.test.ts:361)"}, "properties": {"repobilityId": "af36a1130ef59f8e", "scanner": "scanner-primary", "fingerprint": "2ac7010c656e7b88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-761fa2b2ca123d88", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:90)"}, "properties": {"repobilityId": "e73fa2adcd1e9806", "scanner": "scanner-primary", "fingerprint": "761fa2b2ca123d88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-76876238238b5c64", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:96)"}, "properties": {"repobilityId": "972a8cfff6caca22", "scanner": "scanner-primary", "fingerprint": "76876238238b5c64", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e136e1d21186a656", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:105)"}, "properties": {"repobilityId": "b6be9fb67a2cccb6", "scanner": "scanner-primary", "fingerprint": "e136e1d21186a656", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f91e6668e46ad2d4", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:117)"}, "properties": {"repobilityId": "e4ac93609104f2db", "scanner": "scanner-primary", "fingerprint": "f91e6668e46ad2d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb7299936c31eb79", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:135)"}, "properties": {"repobilityId": "49d4aed225c599a9", "scanner": "scanner-primary", "fingerprint": "eb7299936c31eb79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0d46350c3aa7714", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:141)"}, "properties": {"repobilityId": "4c13d902e47f2d84", "scanner": "scanner-primary", "fingerprint": "a0d46350c3aa7714", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b9ef011f7e815352", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:149)"}, "properties": {"repobilityId": "5e4d2c5e53229a64", "scanner": "scanner-primary", "fingerprint": "b9ef011f7e815352", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e4652f1bd261efcd", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-b (apps/server/src/routes/__tests__/users.test.ts:157)"}, "properties": {"repobilityId": "10b1658b9ea4eece", "scanner": "scanner-primary", "fingerprint": "e4652f1bd261efcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d96ac13bdff78a6c", "level": "error", "message": {"text": "Dangling fetch: GET /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:165)"}, "properties": {"repobilityId": "d41e4b144af30d9c", "scanner": "scanner-primary", "fingerprint": "d96ac13bdff78a6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1cc1660b1bb5378", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-a (apps/server/src/routes/__tests__/users.test.ts:173)"}, "properties": {"repobilityId": "db8f2c9b7a704d0c", "scanner": "scanner-primary", "fingerprint": "d1cc1660b1bb5378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f65acce6dedacf1d", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:192)"}, "properties": {"repobilityId": "5fce266c355899b9", "scanner": "scanner-primary", "fingerprint": "f65acce6dedacf1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45365f6af05ff620", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:202)"}, "properties": {"repobilityId": "e9311f10a9fd1622", "scanner": "scanner-primary", "fingerprint": "45365f6af05ff620", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a633abc01190b024", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:214)"}, "properties": {"repobilityId": "d59f73d4f5de4b5a", "scanner": "scanner-primary", "fingerprint": "a633abc01190b024", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20dae87d3add5dc2", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-b (apps/server/src/routes/__tests__/users.test.ts:224)"}, "properties": {"repobilityId": "60e7de9c1e992823", "scanner": "scanner-primary", "fingerprint": "20dae87d3add5dc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72df3a848ed48960", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:236)"}, "properties": {"repobilityId": "2fbfa6301fdfd862", "scanner": "scanner-primary", "fingerprint": "72df3a848ed48960", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-448cefed33ebc294", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:248)"}, "properties": {"repobilityId": "03f36411a5ddb416", "scanner": "scanner-primary", "fingerprint": "448cefed33ebc294", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0c6ee8ec586a71d", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:260)"}, "properties": {"repobilityId": "7cd84bd388d3e74f", "scanner": "scanner-primary", "fingerprint": "a0c6ee8ec586a71d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a33ddf2c94d916da", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:275)"}, "properties": {"repobilityId": "64b42730477de483", "scanner": "scanner-primary", "fingerprint": "a33ddf2c94d916da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25042dfb3b058701", "level": "error", "message": {"text": "Dangling fetch: PATCH /users/user-a (apps/server/src/routes/__tests__/users.test.ts:289)"}, "properties": {"repobilityId": "95dac36f75516f1b", "scanner": "scanner-primary", "fingerprint": "25042dfb3b058701", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-276b25f0b39b33e0", "level": "error", "message": {"text": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:312)"}, "properties": {"repobilityId": "10550748922b0b4c", "scanner": "scanner-primary", "fingerprint": "276b25f0b39b33e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7dc4a421b9fba3b", "level": "error", "message": {"text": "Dangling fetch: DELETE /users/user-b (apps/server/src/routes/__tests__/users.test.ts:318)"}, "properties": {"repobilityId": "8c5ca55d80db828c", "scanner": "scanner-primary", "fingerprint": "e7dc4a421b9fba3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-859e4dbf19bac6d3", "level": "error", "message": {"text": "Dangling fetch: DELETE /users/admin-1 (apps/server/src/routes/__tests__/users.test.ts:324)"}, "properties": {"repobilityId": "42cb854f15df8a6f", "scanner": "scanner-primary", "fingerprint": "859e4dbf19bac6d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a066eecfc0942202", "level": "error", "message": {"text": "Dangling fetch: DELETE /users/user-a (apps/server/src/routes/__tests__/users.test.ts:332)"}, "properties": {"repobilityId": "fe9459a11b6e9930", "scanner": "scanner-primary", "fingerprint": "a066eecfc0942202", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebd8b8dfd60fd692", "level": "error", "message": {"text": "Dangling fetch: DELETE /users/nonexistent (apps/server/src/routes/__tests__/users.test.ts:341)"}, "properties": {"repobilityId": "b348f7d785fa67a8", "scanner": "scanner-primary", "fingerprint": "ebd8b8dfd60fd692", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-28712b300f846dee", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:358)"}, "properties": {"repobilityId": "afc0d71f431cbf79", "scanner": "scanner-primary", "fingerprint": "28712b300f846dee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b02d0537797b8eb6", "level": "error", "message": {"text": "Dangling fetch: GET /users (apps/server/src/routes/__tests__/users.test.ts:367)"}, "properties": {"repobilityId": "664a4cbdf4d6b612", "scanner": "scanner-primary", "fingerprint": "b02d0537797b8eb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d452cfe4c88a4cf", "level": "error", "message": {"text": "Dangling fetch: POST /stripe (apps/server/src/routes/__tests__/webhook-downgrade-cap.test.ts:137)"}, "properties": {"repobilityId": "921e7274ba533043", "scanner": "scanner-primary", "fingerprint": "4d452cfe4c88a4cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-633b3c7f7a1cbc9f", "level": "error", "message": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:115)"}, "properties": {"repobilityId": "021e5e5b49fd1bc0", "scanner": "scanner-primary", "fingerprint": "633b3c7f7a1cbc9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7fa7d18aa0506cfb", "level": "error", "message": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:128)"}, "properties": {"repobilityId": "bb65de1001cd3614", "scanner": "scanner-primary", "fingerprint": "7fa7d18aa0506cfb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bdbc06ead91d1351", "level": "error", "message": {"text": "Dangling fetch: GET /orders (apps/server/src/routes/__tests__/orders.test.ts:137)"}, "properties": {"repobilityId": "272654d7bea97410", "scanner": "scanner-primary", "fingerprint": "bdbc06ead91d1351", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-00ee917cf9f4e369", "level": "error", "message": {"text": "Dangling fetch: GET /orders?limit=5&offset=10 (apps/server/src/routes/__tests__/orders.test.ts:145)"}, "properties": {"repobilityId": "a9fe70d068b8eaf5", "scanner": "scanner-primary", "fingerprint": "00ee917cf9f4e369", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f4df1040f596c4f", "level": "error", "message": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:177)"}, "properties": {"repobilityId": "f965e5791ea7a855", "scanner": "scanner-primary", "fingerprint": "0f4df1040f596c4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6177dcc9e26e4d52", "level": "error", "message": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:198)"}, "properties": {"repobilityId": "cd984ab64e234c1d", "scanner": "scanner-primary", "fingerprint": "6177dcc9e26e4d52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-14717c38e575882e", "level": "error", "message": {"text": "Dangling fetch: POST /orders (apps/server/src/routes/__tests__/orders.test.ts:216)"}, "properties": {"repobilityId": "75d64ebaba9d9e7c", "scanner": "scanner-primary", "fingerprint": "14717c38e575882e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0cfa601a8e85d8e", "level": "error", "message": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:241)"}, "properties": {"repobilityId": "b94e4d1caa263bcc", "scanner": "scanner-primary", "fingerprint": "a0cfa601a8e85d8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8a33f06b2f120013", "level": "error", "message": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:253)"}, "properties": {"repobilityId": "6742aeddde40ad90", "scanner": "scanner-primary", "fingerprint": "8a33f06b2f120013", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92330a15a63c75b7", "level": "error", "message": {"text": "Dangling fetch: GET /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:264)"}, "properties": {"repobilityId": "c6e4e9abd5b0970f", "scanner": "scanner-primary", "fingerprint": "92330a15a63c75b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a5a388397580820", "level": "error", "message": {"text": "Dangling fetch: GET /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:274)"}, "properties": {"repobilityId": "8cfb78c1e0349e99", "scanner": "scanner-primary", "fingerprint": "3a5a388397580820", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-46bc7bb9d39cf603", "level": "error", "message": {"text": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:293)"}, "properties": {"repobilityId": "1ac756dd5a91657a", "scanner": "scanner-primary", "fingerprint": "46bc7bb9d39cf603", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b61511bebc7d7207", "level": "error", "message": {"text": "Dangling fetch: PATCH /orders/order-1 (apps/server/src/routes/__tests__/orders.test.ts:312)"}, "properties": {"repobilityId": "febe9812a30c8b07", "scanner": "scanner-primary", "fingerprint": "b61511bebc7d7207", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-94463bcc2e2260bd", "level": "error", "message": {"text": "Dangling fetch: PATCH /orders/does-not-exist (apps/server/src/routes/__tests__/orders.test.ts:327)"}, "properties": {"repobilityId": "7f046da3c91034c7", "scanner": "scanner-primary", "fingerprint": "94463bcc2e2260bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a0ce0817b91b2c0", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:367)"}, "properties": {"repobilityId": "9f27ab562625afd2", "scanner": "scanner-primary", "fingerprint": "7a0ce0817b91b2c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b8342afc4c8e1d0", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:378)"}, "properties": {"repobilityId": "ab67607b18c1f590", "scanner": "scanner-primary", "fingerprint": "0b8342afc4c8e1d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b25049415a9632c", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:388)"}, "properties": {"repobilityId": "6f873994153e1ca3", "scanner": "scanner-primary", "fingerprint": "5b25049415a9632c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5a695d4684d9156", "level": "error", "message": {"text": "Dangling fetch: GET /servers?category=data (apps/server/src/routes/__tests__/marketplace.test.ts:399)"}, "properties": {"repobilityId": "e5b172c0005a5962", "scanner": "scanner-primary", "fingerprint": "f5a695d4684d9156", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-563f54e5ba7bc08b", "level": "error", "message": {"text": "Dangling fetch: GET /servers?limit=999 (apps/server/src/routes/__tests__/marketplace.test.ts:407)"}, "properties": {"repobilityId": "31837cdc903034f8", "scanner": "scanner-primary", "fingerprint": "563f54e5ba7bc08b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-833a4a29714f9c90", "level": "error", "message": {"text": "Dangling fetch: GET /servers?limit=10&offset=20 (apps/server/src/routes/__tests__/marketplace.test.ts:417)"}, "properties": {"repobilityId": "679a4d3eee5e0bff", "scanner": "scanner-primary", "fingerprint": "833a4a29714f9c90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4d1e19272365d1b", "level": "error", "message": {"text": "Dangling fetch: GET /servers?offset=abc (apps/server/src/routes/__tests__/marketplace.test.ts:428)"}, "properties": {"repobilityId": "28d0396a1d04af93", "scanner": "scanner-primary", "fingerprint": "b4d1e19272365d1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12de603ba432d472", "level": "error", "message": {"text": "Dangling fetch: GET /servers?limit=-5 (apps/server/src/routes/__tests__/marketplace.test.ts:438)"}, "properties": {"repobilityId": "7a9d363183fa059c", "scanner": "scanner-primary", "fingerprint": "12de603ba432d472", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eecbf5009703cb7c", "level": "error", "message": {"text": "Dangling fetch: GET /servers (apps/server/src/routes/__tests__/marketplace.test.ts:448)"}, "properties": {"repobilityId": "13a22db552a6ef39", "scanner": "scanner-primary", "fingerprint": "eecbf5009703cb7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-60877d93a23e5586", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:460)"}, "properties": {"repobilityId": "e787262d468b3496", "scanner": "scanner-primary", "fingerprint": "60877d93a23e5586", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09110fde9d77292a", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_notfound1234 (apps/server/src/routes/__tests__/marketplace.test.ts:471)"}, "properties": {"repobilityId": "b51d6fed93e0ad04", "scanner": "scanner-primary", "fingerprint": "09110fde9d77292a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b84d439721f39b53", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:481)"}, "properties": {"repobilityId": "91ca6db950f9aa4b", "scanner": "scanner-primary", "fingerprint": "b84d439721f39b53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b50ce8895a4026c5", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:491)"}, "properties": {"repobilityId": "dec62f5fefe5d197", "scanner": "scanner-primary", "fingerprint": "b50ce8895a4026c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-511e8a792e783fc5", "level": "error", "message": {"text": "Dangling fetch: GET /servers/bad-id (apps/server/src/routes/__tests__/marketplace.test.ts:497)"}, "properties": {"repobilityId": "54b3546147a47a57", "scanner": "scanner-primary", "fingerprint": "511e8a792e783fc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f844d37a6166252", "level": "error", "message": {"text": "Dangling fetch: GET /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:505)"}, "properties": {"repobilityId": "b0601dbf0eb49652", "scanner": "scanner-primary", "fingerprint": "8f844d37a6166252", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c1cea3b4ebf4bacc", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:526)"}, "properties": {"repobilityId": "9e6c60db214f2ab9", "scanner": "scanner-primary", "fingerprint": "c1cea3b4ebf4bacc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-839729f0d5a5886a", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:540)"}, "properties": {"repobilityId": "beed6928e188266c", "scanner": "scanner-primary", "fingerprint": "839729f0d5a5886a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-025d921006d0ddbd", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:550)"}, "properties": {"repobilityId": "4d1b01c235b580cc", "scanner": "scanner-primary", "fingerprint": "025d921006d0ddbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5da8a60b7d0a81fd", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:563)"}, "properties": {"repobilityId": "349035cf59baf179", "scanner": "scanner-primary", "fingerprint": "5da8a60b7d0a81fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6af5d5864bf1cde6", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:576)"}, "properties": {"repobilityId": "fb21737256bc2127", "scanner": "scanner-primary", "fingerprint": "6af5d5864bf1cde6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc55cd1c2ec79bcf", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:589)"}, "properties": {"repobilityId": "19d18d79ddd754e2", "scanner": "scanner-primary", "fingerprint": "fc55cd1c2ec79bcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a0efad96d305dd8", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:602)"}, "properties": {"repobilityId": "6ef26349538d8d48", "scanner": "scanner-primary", "fingerprint": "2a0efad96d305dd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-516cd3d89d8098dc", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:615)"}, "properties": {"repobilityId": "2327130ab9082f15", "scanner": "scanner-primary", "fingerprint": "516cd3d89d8098dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2cc0c89341e6e565", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:628)"}, "properties": {"repobilityId": "9a59c17fc550571f", "scanner": "scanner-primary", "fingerprint": "2cc0c89341e6e565", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01cfa915f3aa09c6", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:641)"}, "properties": {"repobilityId": "d2e07aed04c8e579", "scanner": "scanner-primary", "fingerprint": "01cfa915f3aa09c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ec132bd95810e596", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:654)"}, "properties": {"repobilityId": "d12e4eff82c9d4fa", "scanner": "scanner-primary", "fingerprint": "ec132bd95810e596", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59228355e1fc5de3", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:667)"}, "properties": {"repobilityId": "8ed57bf5a0262998", "scanner": "scanner-primary", "fingerprint": "59228355e1fc5de3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-367c6b2c20238dd3", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:687)"}, "properties": {"repobilityId": "bc97ca66c41e63bd", "scanner": "scanner-primary", "fingerprint": "367c6b2c20238dd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22dc9ac5b2d91be7", "level": "error", "message": {"text": "Dangling fetch: POST /servers (apps/server/src/routes/__tests__/marketplace.test.ts:706)"}, "properties": {"repobilityId": "1dd2b622fff83927", "scanner": "scanner-primary", "fingerprint": "22dc9ac5b2d91be7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-de26289676db9dba", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:725)"}, "properties": {"repobilityId": "15e52e2920c1f719", "scanner": "scanner-primary", "fingerprint": "de26289676db9dba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6e6888a75c5911b", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:737)"}, "properties": {"repobilityId": "a69a8101b43d22d8", "scanner": "scanner-primary", "fingerprint": "e6e6888a75c5911b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-15ec9f26903acf0b", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:749)"}, "properties": {"repobilityId": "82f7b6d06b3fda99", "scanner": "scanner-primary", "fingerprint": "15ec9f26903acf0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fec9bf046be419be", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:759)"}, "properties": {"repobilityId": "30b8bcc7d6ea9ed9", "scanner": "scanner-primary", "fingerprint": "fec9bf046be419be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2099f4cab0ad22d9", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_zzzzzzzzzzzz (apps/server/src/routes/__tests__/marketplace.test.ts:769)"}, "properties": {"repobilityId": "1af90c0c4fad85d5", "scanner": "scanner-primary", "fingerprint": "2099f4cab0ad22d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4519a6f441f007c3", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:779)"}, "properties": {"repobilityId": "bc734afa65fb8e2c", "scanner": "scanner-primary", "fingerprint": "4519a6f441f007c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a5ec1ff2d19c69d", "level": "error", "message": {"text": "Dangling fetch: DELETE /servers/mcp_abcdef123456 (apps/server/src/routes/__tests__/marketplace.test.ts:790)"}, "properties": {"repobilityId": "37bb59dc17e1c807", "scanner": "scanner-primary", "fingerprint": "4a5ec1ff2d19c69d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6497bb8d6e55eba9", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:809)"}, "properties": {"repobilityId": "cfab21523c400f4e", "scanner": "scanner-primary", "fingerprint": "6497bb8d6e55eba9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f7a3a7a142d5c9e", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:826)"}, "properties": {"repobilityId": "760e5c492979836e", "scanner": "scanner-primary", "fingerprint": "5f7a3a7a142d5c9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b6aa4c408c27d296", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:841)"}, "properties": {"repobilityId": "4322875a95a62077", "scanner": "scanner-primary", "fingerprint": "b6aa4c408c27d296", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7626d1398fe07368", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:859)"}, "properties": {"repobilityId": "99c866494cc89d05", "scanner": "scanner-primary", "fingerprint": "7626d1398fe07368", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b356dc53c6d7590c", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:886)"}, "properties": {"repobilityId": "18af708800a52897", "scanner": "scanner-primary", "fingerprint": "b356dc53c6d7590c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-55dffcf7a98590d2", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:911)"}, "properties": {"repobilityId": "1d72245ce10d4527", "scanner": "scanner-primary", "fingerprint": "55dffcf7a98590d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e5afbd353a2e267", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:941)"}, "properties": {"repobilityId": "e4e6883fe160681b", "scanner": "scanner-primary", "fingerprint": "8e5afbd353a2e267", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a41947795b3f1439", "level": "error", "message": {"text": "Dangling fetch: POST /servers/mcp_abcdef123456/invoke (apps/server/src/routes/__tests__/marketplace.test.ts:962)"}, "properties": {"repobilityId": "3f6dd15c28518bac", "scanner": "scanner-primary", "fingerprint": "a41947795b3f1439", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c6721e6af343899e", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:983)"}, "properties": {"repobilityId": "069bcca25d7a3742", "scanner": "scanner-primary", "fingerprint": "c6721e6af343899e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1c9d9ce386717b9c", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:991)"}, "properties": {"repobilityId": "bbcd2a1334747b3a", "scanner": "scanner-primary", "fingerprint": "1c9d9ce386717b9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a2744125c3217be", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1008)"}, "properties": {"repobilityId": "c59bcd507eeec340", "scanner": "scanner-primary", "fingerprint": "0a2744125c3217be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd3a92f34e45ea45", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1019)"}, "properties": {"repobilityId": "067e013b34069f51", "scanner": "scanner-primary", "fingerprint": "cd3a92f34e45ea45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68885f7fc52d12c6", "level": "error", "message": {"text": "Dangling fetch: POST /connect/onboard (apps/server/src/routes/__tests__/marketplace.test.ts:1032)"}, "properties": {"repobilityId": "b603b56dd85073ec", "scanner": "scanner-primary", "fingerprint": "68885f7fc52d12c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c7f5237600b5472", "level": "error", "message": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1045)"}, "properties": {"repobilityId": "290ad4fc405296be", "scanner": "scanner-primary", "fingerprint": "8c7f5237600b5472", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-436820cedc1b61bf", "level": "error", "message": {"text": "Dangling fetch: GET /connect/return (apps/server/src/routes/__tests__/marketplace.test.ts:1054)"}, "properties": {"repobilityId": "68681b126b1b0403", "scanner": "scanner-primary", "fingerprint": "436820cedc1b61bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5bd0a02a6c487550", "level": "error", "message": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:180)"}, "properties": {"repobilityId": "6ca2b029318cd871", "scanner": "scanner-primary", "fingerprint": "5bd0a02a6c487550", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-549699e6901ce703", "level": "error", "message": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:193)"}, "properties": {"repobilityId": "f2fbf0e6416b6eb3", "scanner": "scanner-primary", "fingerprint": "549699e6901ce703", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-823a1c900f1a78d3", "level": "error", "message": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:202)"}, "properties": {"repobilityId": "8d0417678caffdbd", "scanner": "scanner-primary", "fingerprint": "823a1c900f1a78d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a3deacfcbe17974", "level": "error", "message": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:211)"}, "properties": {"repobilityId": "b81e4922158aba9a", "scanner": "scanner-primary", "fingerprint": "1a3deacfcbe17974", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4fbaa5bd7953d2d", "level": "error", "message": {"text": "Dangling fetch: GET /posts?limit=10&offset=20 (apps/server/src/routes/__tests__/content.test.ts:220)"}, "properties": {"repobilityId": "9145d84712d4ba46", "scanner": "scanner-primary", "fingerprint": "a4fbaa5bd7953d2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-50df14ceb61aa0bf", "level": "error", "message": {"text": "Dangling fetch: GET /posts (apps/server/src/routes/__tests__/content.test.ts:231)"}, "properties": {"repobilityId": "8c747d26dfff7e5e", "scanner": "scanner-primary", "fingerprint": "50df14ceb61aa0bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-696a0369af389e63", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:243)"}, "properties": {"repobilityId": "e2d98074c2996beb", "scanner": "scanner-primary", "fingerprint": "696a0369af389e63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d12882b7143e0f96", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:255)"}, "properties": {"repobilityId": "1bcb811b3d254f1e", "scanner": "scanner-primary", "fingerprint": "d12882b7143e0f96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9309197bf9a52c0b", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:268)"}, "properties": {"repobilityId": "0998b819850f9d12", "scanner": "scanner-primary", "fingerprint": "9309197bf9a52c0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1d39b215685c4d7d", "level": "error", "message": {"text": "Dangling fetch: POST /posts (apps/server/src/routes/__tests__/content.test.ts:278)"}, "properties": {"repobilityId": "3f61ac2a59335b60", "scanner": "scanner-primary", "fingerprint": "1d39b215685c4d7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8dc2b615d3c374e7", "level": "error", "message": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:293)"}, "properties": {"repobilityId": "0886c425fd6f1f77", "scanner": "scanner-primary", "fingerprint": "8dc2b615d3c374e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fdee60af03ad8eae", "level": "error", "message": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:300)"}, "properties": {"repobilityId": "f332518a57844d2d", "scanner": "scanner-primary", "fingerprint": "fdee60af03ad8eae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38060f19614f5b77", "level": "error", "message": {"text": "Dangling fetch: GET /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:309)"}, "properties": {"repobilityId": "6f039c09b3e2381b", "scanner": "scanner-primary", "fingerprint": "38060f19614f5b77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01747eba51262236", "level": "error", "message": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:316)"}, "properties": {"repobilityId": "7c57b1a0b8306679", "scanner": "scanner-primary", "fingerprint": "01747eba51262236", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-37a9c452c6de6915", "level": "error", "message": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:325)"}, "properties": {"repobilityId": "1a73ecaf473ed5fc", "scanner": "scanner-primary", "fingerprint": "37a9c452c6de6915", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-164059499a637a01", "level": "error", "message": {"text": "Dangling fetch: GET /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:332)"}, "properties": {"repobilityId": "21ae9ec135a8c48a", "scanner": "scanner-primary", "fingerprint": "164059499a637a01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfbd4dda05dc7775", "level": "error", "message": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:343)"}, "properties": {"repobilityId": "2b6aa46d2c22e8e1", "scanner": "scanner-primary", "fingerprint": "cfbd4dda05dc7775", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb2040d33a392069", "level": "error", "message": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:350)"}, "properties": {"repobilityId": "40254f7700b9dc97", "scanner": "scanner-primary", "fingerprint": "cb2040d33a392069", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3786cc151efb7aed", "level": "error", "message": {"text": "Dangling fetch: GET /posts/slug/unknown (apps/server/src/routes/__tests__/content.test.ts:359)"}, "properties": {"repobilityId": "9e865ae9c047b503", "scanner": "scanner-primary", "fingerprint": "3786cc151efb7aed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25dc2710949f6c0c", "level": "error", "message": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:366)"}, "properties": {"repobilityId": "872db3e90fb8f2bf", "scanner": "scanner-primary", "fingerprint": "25dc2710949f6c0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1330001a6dee57d9", "level": "error", "message": {"text": "Dangling fetch: GET /posts/slug/hello (apps/server/src/routes/__tests__/content.test.ts:373)"}, "properties": {"repobilityId": "d399161eeeabc663", "scanner": "scanner-primary", "fingerprint": "1330001a6dee57d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6c92d946aa33f9ff", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:383)"}, "properties": {"repobilityId": "28ca158daf4606bf", "scanner": "scanner-primary", "fingerprint": "6c92d946aa33f9ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-88b1928bc8509cd1", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:394)"}, "properties": {"repobilityId": "30d5716a82163304", "scanner": "scanner-primary", "fingerprint": "88b1928bc8509cd1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-177e39a85241cbcf", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:405)"}, "properties": {"repobilityId": "ebd36740a158f60c", "scanner": "scanner-primary", "fingerprint": "177e39a85241cbcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f736177eca340900", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:419)"}, "properties": {"repobilityId": "0011dceb0205e580", "scanner": "scanner-primary", "fingerprint": "f736177eca340900", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6223541989aa7f2f", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:434)"}, "properties": {"repobilityId": "7c7595af6c4fa4b0", "scanner": "scanner-primary", "fingerprint": "6223541989aa7f2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c357c813bcd7b744", "level": "error", "message": {"text": "Dangling fetch: PATCH /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:447)"}, "properties": {"repobilityId": "47c567f4d076d571", "scanner": "scanner-primary", "fingerprint": "c357c813bcd7b744", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd424bd635e11746", "level": "error", "message": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:461)"}, "properties": {"repobilityId": "42b97dd6db7fd0d4", "scanner": "scanner-primary", "fingerprint": "fd424bd635e11746", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91de736083e2f4a7", "level": "error", "message": {"text": "Dangling fetch: DELETE /posts/nonexistent (apps/server/src/routes/__tests__/content.test.ts:468)"}, "properties": {"repobilityId": "05eccf4d3caef043", "scanner": "scanner-primary", "fingerprint": "91de736083e2f4a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e9345d95df1ac8d", "level": "error", "message": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:475)"}, "properties": {"repobilityId": "7898cc96233f1d35", "scanner": "scanner-primary", "fingerprint": "8e9345d95df1ac8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f18c8603a32779c", "level": "error", "message": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:484)"}, "properties": {"repobilityId": "385163a344d6a1ce", "scanner": "scanner-primary", "fingerprint": "9f18c8603a32779c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fecba34a4cbda5a", "level": "error", "message": {"text": "Dangling fetch: DELETE /posts/post-1 (apps/server/src/routes/__tests__/content.test.ts:493)"}, "properties": {"repobilityId": "f6489ae9db186d81", "scanner": "scanner-primary", "fingerprint": "9fecba34a4cbda5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ce470ef37a919733", "level": "error", "message": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:509)"}, "properties": {"repobilityId": "74821b599de0488f", "scanner": "scanner-primary", "fingerprint": "ce470ef37a919733", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a176a8f8d55655bf", "level": "error", "message": {"text": "Dangling fetch: GET /media (apps/server/src/routes/__tests__/content.test.ts:515)"}, "properties": {"repobilityId": "54f8acc44ed92393", "scanner": "scanner-primary", "fingerprint": "a176a8f8d55655bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b83a570d5fa9cd65", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:528)"}, "properties": {"repobilityId": "538d5711f627f490", "scanner": "scanner-primary", "fingerprint": "b83a570d5fa9cd65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e0f0b676c02e6c07", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:535)"}, "properties": {"repobilityId": "f37d24a85caf4125", "scanner": "scanner-primary", "fingerprint": "e0f0b676c02e6c07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e17b06e81a2c2108", "level": "error", "message": {"text": "Dangling fetch: GET /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:542)"}, "properties": {"repobilityId": "77dc7ed2f0f07cc4", "scanner": "scanner-primary", "fingerprint": "e17b06e81a2c2108", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-461243f5ed194d73", "level": "error", "message": {"text": "Dangling fetch: GET /media/nonexistent (apps/server/src/routes/__tests__/content.test.ts:549)"}, "properties": {"repobilityId": "76c4681114672fe0", "scanner": "scanner-primary", "fingerprint": "461243f5ed194d73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-94c5b3646d7e19b3", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:560)"}, "properties": {"repobilityId": "ac5ab1a1de6ca395", "scanner": "scanner-primary", "fingerprint": "94c5b3646d7e19b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7e73ff06df45928", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:574)"}, "properties": {"repobilityId": "2db4c2276965da99", "scanner": "scanner-primary", "fingerprint": "c7e73ff06df45928", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6639f5c0ea21b819", "level": "error", "message": {"text": "Dangling fetch: PATCH /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:587)"}, "properties": {"repobilityId": "41e4e655ce5b39ff", "scanner": "scanner-primary", "fingerprint": "6639f5c0ea21b819", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-037fd9f5e865278d", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:602)"}, "properties": {"repobilityId": "1c7ab4e8f7adb21a", "scanner": "scanner-primary", "fingerprint": "037fd9f5e865278d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6b1e4ca512a0caa3", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:611)"}, "properties": {"repobilityId": "2d31ee173340f79d", "scanner": "scanner-primary", "fingerprint": "6b1e4ca512a0caa3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-de805bb0015db682", "level": "error", "message": {"text": "Dangling fetch: DELETE /media/media-1 (apps/server/src/routes/__tests__/content.test.ts:619)"}, "properties": {"repobilityId": "7032033a5acddfc6", "scanner": "scanner-primary", "fingerprint": "de805bb0015db682", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-75c918961a41e104", "level": "error", "message": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:635)"}, "properties": {"repobilityId": "1286d0fcd4ddd701", "scanner": "scanner-primary", "fingerprint": "75c918961a41e104", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee15113439356a8b", "level": "error", "message": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:641)"}, "properties": {"repobilityId": "18164536b11a044b", "scanner": "scanner-primary", "fingerprint": "ee15113439356a8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b97164320cb9b9f", "level": "error", "message": {"text": "Dangling fetch: GET /sites (apps/server/src/routes/__tests__/content.test.ts:651)"}, "properties": {"repobilityId": "3961758d65275b83", "scanner": "scanner-primary", "fingerprint": "7b97164320cb9b9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22044bfaebdc2ecf", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:663)"}, "properties": {"repobilityId": "efcc87d58dd609f9", "scanner": "scanner-primary", "fingerprint": "22044bfaebdc2ecf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-229de57cedc78ff0", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:675)"}, "properties": {"repobilityId": "b08e50182d0d3a1a", "scanner": "scanner-primary", "fingerprint": "229de57cedc78ff0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1a2a2c472d79602", "level": "error", "message": {"text": "Dangling fetch: POST /sites (apps/server/src/routes/__tests__/content.test.ts:689)"}, "properties": {"repobilityId": "46a24490eb7704c7", "scanner": "scanner-primary", "fingerprint": "a1a2a2c472d79602", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ad5fcaa7a50ae47", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:703)"}, "properties": {"repobilityId": "da197707ad103b2c", "scanner": "scanner-primary", "fingerprint": "8ad5fcaa7a50ae47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38ffd01133d63737", "level": "error", "message": {"text": "Dangling fetch: GET /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:710)"}, "properties": {"repobilityId": "05baeb21ee36d252", "scanner": "scanner-primary", "fingerprint": "38ffd01133d63737", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38be4499a2c1b025", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:717)"}, "properties": {"repobilityId": "3708372082370f32", "scanner": "scanner-primary", "fingerprint": "38be4499a2c1b025", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2b95d31ff7896bc0", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:726)"}, "properties": {"repobilityId": "b438e908ed2141ac", "scanner": "scanner-primary", "fingerprint": "2b95d31ff7896bc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b34db6dbc5dbacc", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:733)"}, "properties": {"repobilityId": "7288a8c36a6c7ac3", "scanner": "scanner-primary", "fingerprint": "4b34db6dbc5dbacc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f0d6d4a20a6013d3", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:743)"}, "properties": {"repobilityId": "339b3808beaad083", "scanner": "scanner-primary", "fingerprint": "f0d6d4a20a6013d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d70ad4b699557106", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:754)"}, "properties": {"repobilityId": "276880f402c5bf8a", "scanner": "scanner-primary", "fingerprint": "d70ad4b699557106", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-819a674fc679b00f", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:765)"}, "properties": {"repobilityId": "309668649e31894f", "scanner": "scanner-primary", "fingerprint": "819a674fc679b00f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5950f4ade8c56584", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:779)"}, "properties": {"repobilityId": "0e70015bd1b80ead", "scanner": "scanner-primary", "fingerprint": "5950f4ade8c56584", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b339ab644d32b3b", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:794)"}, "properties": {"repobilityId": "a52efc93a7cd20be", "scanner": "scanner-primary", "fingerprint": "8b339ab644d32b3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4fbae214cdb9c81", "level": "error", "message": {"text": "Dangling fetch: PATCH /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:807)"}, "properties": {"repobilityId": "06f594a979824454", "scanner": "scanner-primary", "fingerprint": "b4fbae214cdb9c81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6165063269114c62", "level": "error", "message": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:821)"}, "properties": {"repobilityId": "05d52e04e7570686", "scanner": "scanner-primary", "fingerprint": "6165063269114c62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-02667f8f5b276639", "level": "error", "message": {"text": "Dangling fetch: DELETE /sites/nonexistent (apps/server/src/routes/__tests__/content.test.ts:828)"}, "properties": {"repobilityId": "e62f96bc643642f1", "scanner": "scanner-primary", "fingerprint": "02667f8f5b276639", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52bf74b47512291b", "level": "error", "message": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:835)"}, "properties": {"repobilityId": "71859d3b26a7e753", "scanner": "scanner-primary", "fingerprint": "52bf74b47512291b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6e73bd7ccf41190b", "level": "error", "message": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:844)"}, "properties": {"repobilityId": "121dbc2a7b66a790", "scanner": "scanner-primary", "fingerprint": "6e73bd7ccf41190b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10335fb71fecefbc", "level": "error", "message": {"text": "Dangling fetch: DELETE /sites/site-1 (apps/server/src/routes/__tests__/content.test.ts:853)"}, "properties": {"repobilityId": "530150fced25c087", "scanner": "scanner-primary", "fingerprint": "10335fb71fecefbc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8748176b5cd02d18", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:869)"}, "properties": {"repobilityId": "6b212d5286713ade", "scanner": "scanner-primary", "fingerprint": "8748176b5cd02d18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-28477efa5d9298c9", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:881)"}, "properties": {"repobilityId": "99ae4ab95f3fc092", "scanner": "scanner-primary", "fingerprint": "28477efa5d9298c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a84d2dd90fe4ef96", "level": "error", "message": {"text": "Dangling fetch: GET /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:888)"}, "properties": {"repobilityId": "d6e703c19cf0ebc1", "scanner": "scanner-primary", "fingerprint": "a84d2dd90fe4ef96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1d7434f660e55494", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:895)"}, "properties": {"repobilityId": "eb30ce2374e8d06e", "scanner": "scanner-primary", "fingerprint": "1d7434f660e55494", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-789e7f5ab69c1607", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:903)"}, "properties": {"repobilityId": "7a052c2cec445fee", "scanner": "scanner-primary", "fingerprint": "789e7f5ab69c1607", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-40cbbc910d0d0bc6", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:913)"}, "properties": {"repobilityId": "75cd865039fdec6d", "scanner": "scanner-primary", "fingerprint": "40cbbc910d0d0bc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d16aecd5cc9e58d4", "level": "error", "message": {"text": "Dangling fetch: GET /sites/site-1/pages?status=published (apps/server/src/routes/__tests__/content.test.ts:920)"}, "properties": {"repobilityId": "43d0a0fbcd73fecf", "scanner": "scanner-primary", "fingerprint": "d16aecd5cc9e58d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-415236ab3c17f818", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:934)"}, "properties": {"repobilityId": "6e80cbda5a5bf956", "scanner": "scanner-primary", "fingerprint": "415236ab3c17f818", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26738560f2e4bd3a", "level": "error", "message": {"text": "Dangling fetch: POST /sites/nonexistent/pages (apps/server/src/routes/__tests__/content.test.ts:945)"}, "properties": {"repobilityId": "a0cb460fafa7739f", "scanner": "scanner-primary", "fingerprint": "26738560f2e4bd3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-04d28d95c1b6440b", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:956)"}, "properties": {"repobilityId": "0575a32165c9a61e", "scanner": "scanner-primary", "fingerprint": "04d28d95c1b6440b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8becead65ad2c2b3", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:969)"}, "properties": {"repobilityId": "36672e12754c400e", "scanner": "scanner-primary", "fingerprint": "8becead65ad2c2b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-21a79d64deb5a2db", "level": "error", "message": {"text": "Dangling fetch: POST /sites/site-1/pages (apps/server/src/routes/__tests__/content.test.ts:982)"}, "properties": {"repobilityId": "f28a242cfb91d09b", "scanner": "scanner-primary", "fingerprint": "21a79d64deb5a2db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-053d5389f192f702", "level": "error", "message": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:997)"}, "properties": {"repobilityId": "7205c86da219b9ba", "scanner": "scanner-primary", "fingerprint": "053d5389f192f702", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-05dfe43f7e32479f", "level": "error", "message": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1004)"}, "properties": {"repobilityId": "27bd8057f8c2a62e", "scanner": "scanner-primary", "fingerprint": "05dfe43f7e32479f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1951e84e4a53beb4", "level": "error", "message": {"text": "Dangling fetch: GET /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1013)"}, "properties": {"repobilityId": "2c32f434dc6d09d7", "scanner": "scanner-primary", "fingerprint": "1951e84e4a53beb4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07aa486f262a2ca4", "level": "error", "message": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1021)"}, "properties": {"repobilityId": "c6e785494e28f5fa", "scanner": "scanner-primary", "fingerprint": "07aa486f262a2ca4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f08ae89ced4fc43e", "level": "error", "message": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1029)"}, "properties": {"repobilityId": "a0c7a646cee2a72d", "scanner": "scanner-primary", "fingerprint": "f08ae89ced4fc43e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a47bbeb8cabc69b8", "level": "error", "message": {"text": "Dangling fetch: GET /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1036)"}, "properties": {"repobilityId": "4f9334e7da769260", "scanner": "scanner-primary", "fingerprint": "a47bbeb8cabc69b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1e43262e645f203", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1046)"}, "properties": {"repobilityId": "4a443e80e5859c94", "scanner": "scanner-primary", "fingerprint": "e1e43262e645f203", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b08e18b2df3767fa", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1057)"}, "properties": {"repobilityId": "1af682ab18345c73", "scanner": "scanner-primary", "fingerprint": "b08e18b2df3767fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebffcf7724232328", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1069)"}, "properties": {"repobilityId": "59966f5e0ece595b", "scanner": "scanner-primary", "fingerprint": "ebffcf7724232328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e3322cc9ffcddc21", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1084)"}, "properties": {"repobilityId": "8255a00b6fe5fd1c", "scanner": "scanner-primary", "fingerprint": "e3322cc9ffcddc21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44fba76a4727d340", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1099)"}, "properties": {"repobilityId": "b005117d5b3250b9", "scanner": "scanner-primary", "fingerprint": "44fba76a4727d340", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4820ca4cb85cdf4c", "level": "error", "message": {"text": "Dangling fetch: PATCH /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1113)"}, "properties": {"repobilityId": "47e892f49f4d3c8f", "scanner": "scanner-primary", "fingerprint": "4820ca4cb85cdf4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e9b3cdb5a0cce2a1", "level": "error", "message": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1127)"}, "properties": {"repobilityId": "611b592225f83b7c", "scanner": "scanner-primary", "fingerprint": "e9b3cdb5a0cce2a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afa8d995dc71d154", "level": "error", "message": {"text": "Dangling fetch: DELETE /pages/nonexistent (apps/server/src/routes/__tests__/content.test.ts:1134)"}, "properties": {"repobilityId": "42f75962b9c152be", "scanner": "scanner-primary", "fingerprint": "afa8d995dc71d154", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bea168dd36ecddb4", "level": "error", "message": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1142)"}, "properties": {"repobilityId": "5e9ceb353059713d", "scanner": "scanner-primary", "fingerprint": "bea168dd36ecddb4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97a06168f08ee046", "level": "error", "message": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1152)"}, "properties": {"repobilityId": "ac90309733c05bb6", "scanner": "scanner-primary", "fingerprint": "97a06168f08ee046", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2fcf701f6947068a", "level": "error", "message": {"text": "Dangling fetch: DELETE /pages/page-1 (apps/server/src/routes/__tests__/content.test.ts:1161)"}, "properties": {"repobilityId": "2b2d1013b87d1249", "scanner": "scanner-primary", "fingerprint": "2fcf701f6947068a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-31ecaa0a6606b01b", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:109)"}, "properties": {"repobilityId": "53d8e795653c7ddc", "scanner": "scanner-primary", "fingerprint": "31ecaa0a6606b01b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0fff431be169223", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:116)"}, "properties": {"repobilityId": "0ac02c8cc7e2a8fb", "scanner": "scanner-primary", "fingerprint": "b0fff431be169223", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1de566403593a94e", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:132)"}, "properties": {"repobilityId": "49f6cf3ea0934248", "scanner": "scanner-primary", "fingerprint": "1de566403593a94e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5ace841749dffde", "level": "error", "message": {"text": "Dangling fetch: GET /export/sites?status=active (apps/server/src/routes/__tests__/export.test.ts:148)"}, "properties": {"repobilityId": "917a81c2a8a27625", "scanner": "scanner-primary", "fingerprint": "f5ace841749dffde", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a7dcbcc8b172587", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts (apps/server/src/routes/__tests__/export.test.ts:161)"}, "properties": {"repobilityId": "b4eed6ccf7991d5d", "scanner": "scanner-primary", "fingerprint": "0a7dcbcc8b172587", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9484258dbc1b5364", "level": "error", "message": {"text": "Dangling fetch: GET /export/users (apps/server/src/routes/__tests__/export.test.ts:182)"}, "properties": {"repobilityId": "5d0e3cee39346162", "scanner": "scanner-primary", "fingerprint": "9484258dbc1b5364", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cf27ffa12602ee39", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:205)"}, "properties": {"repobilityId": "fcab5c58ea1c0175", "scanner": "scanner-primary", "fingerprint": "cf27ffa12602ee39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1c7bee9c60e91c2a", "level": "error", "message": {"text": "Dangling fetch: GET /export/posts?format=csv (apps/server/src/routes/__tests__/export.test.ts:221)"}, "properties": {"repobilityId": "239a979d07f53369", "scanner": "scanner-primary", "fingerprint": "1c7bee9c60e91c2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7981047542fa9212", "level": "error", "message": {"text": "Dangling fetch: GET /export/tickets (apps/server/src/routes/__tests__/export.test.ts:234)"}, "properties": {"repobilityId": "a7f360424433d34d", "scanner": "scanner-primary", "fingerprint": "7981047542fa9212", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bfdf3c469780b6c3", "level": "error", "message": {"text": "Dangling fetch: GET /export/media (apps/server/src/routes/__tests__/export.test.ts:245)"}, "properties": {"repobilityId": "471952bfe7939712", "scanner": "scanner-primary", "fingerprint": "bfdf3c469780b6c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ccd69b458d9f3b4", "level": "error", "message": {"text": "Dangling fetch: GET /api/posts/${id} (packages/router/src/index.ts:26)"}, "properties": {"repobilityId": "2bb0b0c56040a14c", "scanner": "scanner-primary", "fingerprint": "6ccd69b458d9f3b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e32891bd25d765f9", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:81)"}, "properties": {"repobilityId": "67a74112236d6c90", "scanner": "scanner-primary", "fingerprint": "e32891bd25d765f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ddd13e751a8df057", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:115)"}, "properties": {"repobilityId": "2d1de630bf982717", "scanner": "scanner-primary", "fingerprint": "ddd13e751a8df057", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffea7d22b8681afe", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/episodic/${userId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:137)"}, "properties": {"repobilityId": "2be5d0cc079b45ce", "scanner": "scanner-primary", "fingerprint": "ffea7d22b8681afe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3250573464ad995", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/memory/episodic/${userId}/${memoryId} (packages/ai/src/client/hooks/useEpisodicMemory.ts:167)"}, "properties": {"repobilityId": "9e7eeaf23f629343", "scanner": "scanner-primary", "fingerprint": "f3250573464ad995", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0caa30b532736a9", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/search-text (packages/ai/src/client/hooks/useEpisodicMemory.ts:197)"}, "properties": {"repobilityId": "dcee29606f426315", "scanner": "scanner-primary", "fingerprint": "d0caa30b532736a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b44a6b527d7d4329", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:72)"}, "properties": {"repobilityId": "c13527c51011135a", "scanner": "scanner-primary", "fingerprint": "b44a6b527d7d4329", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-15a7a5755ea46e57", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:101)"}, "properties": {"repobilityId": "595b75d1ad3aff19", "scanner": "scanner-primary", "fingerprint": "15a7a5755ea46e57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f854247db1152e8", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:138)"}, "properties": {"repobilityId": "f18125e68dad58fa", "scanner": "scanner-primary", "fingerprint": "6f854247db1152e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a5c2b51fcb4925b1", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:163)"}, "properties": {"repobilityId": "21f86f11e1ee3d29", "scanner": "scanner-primary", "fingerprint": "a5c2b51fcb4925b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc42e2556c3c1695", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/memory/context/${sessionId}/${agentId} (packages/ai/src/client/hooks/useAgentContext.ts:188)"}, "properties": {"repobilityId": "731e5b63fc027bfc", "scanner": "scanner-primary", "fingerprint": "bc42e2556c3c1695", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44fc272a1a012903", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:200)"}, "properties": {"repobilityId": "713cba6c93479397", "scanner": "scanner-primary", "fingerprint": "44fc272a1a012903", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-24dc61fa745e7365", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:232)"}, "properties": {"repobilityId": "87941970b997f896", "scanner": "scanner-primary", "fingerprint": "24dc61fa745e7365", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ca8a440e9976d4aa", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:264)"}, "properties": {"repobilityId": "a45c9209644f9e42", "scanner": "scanner-primary", "fingerprint": "ca8a440e9976d4aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b17f5c0f2343b9a4", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:314)"}, "properties": {"repobilityId": "e3a4fb995388f726", "scanner": "scanner-primary", "fingerprint": "b17f5c0f2343b9a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e6edb7b41a3dec6", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:340)"}, "properties": {"repobilityId": "4a002b7098e1e139", "scanner": "scanner-primary", "fingerprint": "3e6edb7b41a3dec6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b68da0d6fcb248b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/working/${sessionId} (packages/ai/src/client/hooks/useWorkingMemory.ts:366)"}, "properties": {"repobilityId": "161264df5ea4ed0f", "scanner": "scanner-primary", "fingerprint": "b68da0d6fcb248b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5ca42db27500def4", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/mfa/setup (packages/auth/src/react/useMFA.ts:77)"}, "properties": {"repobilityId": "9eb9516f9dd8665c", "scanner": "scanner-primary", "fingerprint": "5ca42db27500def4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b7e1886bea2d811", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/mfa/verify-setup (packages/auth/src/react/useMFA.ts:110)"}, "properties": {"repobilityId": "fe666443d6d8bafe", "scanner": "scanner-primary", "fingerprint": "6b7e1886bea2d811", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-221bf1a28baaa918", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/mfa/verify (packages/auth/src/react/useMFA.ts:188)"}, "properties": {"repobilityId": "559efd6e2661b37d", "scanner": "scanner-primary", "fingerprint": "221bf1a28baaa918", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8470191ef3b54a9e", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/mfa/backup (packages/auth/src/react/useMFA.ts:222)"}, "properties": {"repobilityId": "4c35fd91db55391b", "scanner": "scanner-primary", "fingerprint": "8470191ef3b54a9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b85533fcfa6a6fac", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sign-out (packages/auth/src/react/useSignOut.ts:54)"}, "properties": {"repobilityId": "b67704b42244ccd8", "scanner": "scanner-primary", "fingerprint": "b85533fcfa6a6fac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1f652a8e74ef5ae6", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sign-in (packages/auth/src/react/useSignIn.ts:98)"}, "properties": {"repobilityId": "4a1987f14290263b", "scanner": "scanner-primary", "fingerprint": "1f652a8e74ef5ae6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-531a6b1fc48d81c0", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/passkey/register-options (packages/auth/src/react/usePasskey.ts:87)"}, "properties": {"repobilityId": "85eedc67b76712dd", "scanner": "scanner-primary", "fingerprint": "531a6b1fc48d81c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2ee287c780194829", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/passkey/register-verify (packages/auth/src/react/usePasskey.ts:119)"}, "properties": {"repobilityId": "4c83ec2a405b9d0f", "scanner": "scanner-primary", "fingerprint": "2ee287c780194829", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-892436d01dd6a7d7", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/passkey/authenticate-options (packages/auth/src/react/usePasskey.ts:225)"}, "properties": {"repobilityId": "ade06f9dcf35d205", "scanner": "scanner-primary", "fingerprint": "892436d01dd6a7d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-317fa827c4ef3e1d", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/passkey/authenticate-verify (packages/auth/src/react/usePasskey.ts:251)"}, "properties": {"repobilityId": "de83d957d05c5ecd", "scanner": "scanner-primary", "fingerprint": "317fa827c4ef3e1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0706b680783be84a", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sign-up (packages/auth/src/react/useSignUp.ts:89)"}, "properties": {"repobilityId": "893f07bd219b4643", "scanner": "scanner-primary", "fingerprint": "0706b680783be84a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b6265196a9c45f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/session (packages/auth/src/react/useSession.ts:85)"}, "properties": {"repobilityId": "3b67d3b41258ba70", "scanner": "scanner-primary", "fingerprint": "4b6265196a9c45f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd3483be574acc8b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.pwnedpasswords.com/range/${prefix} (packages/auth/src/server/password-validation.ts:85)"}, "properties": {"repobilityId": "7d1ea99a3638bc86", "scanner": "scanner-primary", "fingerprint": "fd3483be574acc8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e443e0ba4f96595", "level": "error", "message": {"text": "Dangling fetch: POST https://github.com/login/oauth/access_token (packages/auth/src/server/providers/github.ts:49)"}, "properties": {"repobilityId": "8c424e3493556d5a", "scanner": "scanner-primary", "fingerprint": "1e443e0ba4f96595", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-79194ad85327d9bf", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/user (packages/auth/src/server/providers/github.ts:87)"}, "properties": {"repobilityId": "f201b3dfc3c74fb8", "scanner": "scanner-primary", "fingerprint": "79194ad85327d9bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7047c5d97d4501f", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/user/emails (packages/auth/src/server/providers/github.ts:114)"}, "properties": {"repobilityId": "9992b538445a3f52", "scanner": "scanner-primary", "fingerprint": "e7047c5d97d4501f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cdfee7017578bd8a", "level": "error", "message": {"text": "Dangling fetch: POST https://api.vercel.com/v2/oauth/access_token (packages/auth/src/server/providers/vercel.ts:28)"}, "properties": {"repobilityId": "53dfafd6c1341cfb", "scanner": "scanner-primary", "fingerprint": "cdfee7017578bd8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c23f3d3b042bb54e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.vercel.com/v2/user (packages/auth/src/server/providers/vercel.ts:63)"}, "properties": {"repobilityId": "194857713b858842", "scanner": "scanner-primary", "fingerprint": "c23f3d3b042bb54e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46b071e89b44a07b", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/auth/src/server/providers/google.ts:45)"}, "properties": {"repobilityId": "437a819af698c5ec", "scanner": "scanner-primary", "fingerprint": "46b071e89b44a07b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a973608fc17f3d6", "level": "error", "message": {"text": "Dangling fetch: GET https://openidconnect.googleapis.com/v1/userinfo (packages/auth/src/server/providers/google.ts:72)"}, "properties": {"repobilityId": "722bff6e857869aa", "scanner": "scanner-primary", "fingerprint": "2a973608fc17f3d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67a00ee05c9b4f48", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/mcp/src/servers/_email-provider.ts:67)"}, "properties": {"repobilityId": "9f10e2a8600220a3", "scanner": "scanner-primary", "fingerprint": "67a00ee05c9b4f48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-586bdb4a3ca830cb", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/mcp/src/servers/_email-provider.ts:127)"}, "properties": {"repobilityId": "a8b721bc82ecaa83", "scanner": "scanner-primary", "fingerprint": "586bdb4a3ca830cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-beac3dc1ab72f6ad", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:60)"}, "properties": {"repobilityId": "d6e5ef1235459e58", "scanner": "scanner-primary", "fingerprint": "beac3dc1ab72f6ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c35b336badbb9710", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:77)"}, "properties": {"repobilityId": "fc2f007dcad10e0c", "scanner": "scanner-primary", "fingerprint": "c35b336badbb9710", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-42be9ecc05fb4040", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:94)"}, "properties": {"repobilityId": "98cf598f8061c03b", "scanner": "scanner-primary", "fingerprint": "42be9ecc05fb4040", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fcdb9f7bde1b786f", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:109)"}, "properties": {"repobilityId": "98ccd4277f46d8f2", "scanner": "scanner-primary", "fingerprint": "fcdb9f7bde1b786f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa6b32e9070e6a44", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:125)"}, "properties": {"repobilityId": "208a5a63d8ea8318", "scanner": "scanner-primary", "fingerprint": "aa6b32e9070e6a44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6c8deaaea6389ff5", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:139)"}, "properties": {"repobilityId": "30e6d7129e073022", "scanner": "scanner-primary", "fingerprint": "6c8deaaea6389ff5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20d40ea73fb15d63", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:153)"}, "properties": {"repobilityId": "a09dab9751d0e0d4", "scanner": "scanner-primary", "fingerprint": "20d40ea73fb15d63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab6ff43e3a31e115", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:172)"}, "properties": {"repobilityId": "0c08f7faa44575b8", "scanner": "scanner-primary", "fingerprint": "ab6ff43e3a31e115", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c5d0b914f383131", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:184)"}, "properties": {"repobilityId": "4b80b7d16c317c9f", "scanner": "scanner-primary", "fingerprint": "8c5d0b914f383131", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2dc54bc274d3bd2", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:196)"}, "properties": {"repobilityId": "3927b80fe0867697", "scanner": "scanner-primary", "fingerprint": "f2dc54bc274d3bd2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fee8a735ae31af65", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:208)"}, "properties": {"repobilityId": "08a0cddab6d7c48c", "scanner": "scanner-primary", "fingerprint": "fee8a735ae31af65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f038c08240e8ac2b", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:220)"}, "properties": {"repobilityId": "1924db7283d66e19", "scanner": "scanner-primary", "fingerprint": "f038c08240e8ac2b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-707bb267e9094300", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:240)"}, "properties": {"repobilityId": "4b61124029f80493", "scanner": "scanner-primary", "fingerprint": "707bb267e9094300", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ebc530dde50904c", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:255)"}, "properties": {"repobilityId": "9dec26e39490ec81", "scanner": "scanner-primary", "fingerprint": "6ebc530dde50904c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2bbe342e61f63eb6", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:267)"}, "properties": {"repobilityId": "5a36bc7482640f9e", "scanner": "scanner-primary", "fingerprint": "2bbe342e61f63eb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7ab2ed37087d67b", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:318)"}, "properties": {"repobilityId": "0ee4e8f5e8e8349e", "scanner": "scanner-primary", "fingerprint": "e7ab2ed37087d67b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc4bcf55383e10f0", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:330)"}, "properties": {"repobilityId": "35b17a7b2820e05b", "scanner": "scanner-primary", "fingerprint": "cc4bcf55383e10f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2a75ff265ed3050", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:344)"}, "properties": {"repobilityId": "abef520c1b022aa2", "scanner": "scanner-primary", "fingerprint": "b2a75ff265ed3050", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2101661a448ad5fd", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:363)"}, "properties": {"repobilityId": "3d20c5d041fb1626", "scanner": "scanner-primary", "fingerprint": "2101661a448ad5fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-90d677ee6927f1ff", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:373)"}, "properties": {"repobilityId": "861cd0998b245c91", "scanner": "scanner-primary", "fingerprint": "90d677ee6927f1ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f14eac80dd98325e", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:385)"}, "properties": {"repobilityId": "962b8f7b7188c98d", "scanner": "scanner-primary", "fingerprint": "f14eac80dd98325e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a9afc0d6fc7bf0d", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/test/src/integration/api/api-error-handler.integration.test.ts:396)"}, "properties": {"repobilityId": "dd12747f62e9292c", "scanner": "scanner-primary", "fingerprint": "5a9afc0d6fc7bf0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a3ded643bd908b1", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:95)"}, "properties": {"repobilityId": "1db0fa41309af4e4", "scanner": "scanner-primary", "fingerprint": "2a3ded643bd908b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fdcb12f8fd7ea740", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:101)"}, "properties": {"repobilityId": "b4581cccb87bf9ac", "scanner": "scanner-primary", "fingerprint": "fdcb12f8fd7ea740", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b792439977a7db27", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:107)"}, "properties": {"repobilityId": "18745a8331647bfd", "scanner": "scanner-primary", "fingerprint": "b792439977a7db27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-febafd840776e490", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:120)"}, "properties": {"repobilityId": "b7cee35e6fd5169b", "scanner": "scanner-primary", "fingerprint": "febafd840776e490", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb0bb52c61b86ff4", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:134)"}, "properties": {"repobilityId": "d7ed2500d9455958", "scanner": "scanner-primary", "fingerprint": "fb0bb52c61b86ff4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9ac1f2fa7b123b77", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:148)"}, "properties": {"repobilityId": "00521b5191af53f5", "scanner": "scanner-primary", "fingerprint": "9ac1f2fa7b123b77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e30433b65124a59", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:169)"}, "properties": {"repobilityId": "bafdc3807054375e", "scanner": "scanner-primary", "fingerprint": "3e30433b65124a59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-165a7df011d7e379", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:174)"}, "properties": {"repobilityId": "36866ebe9accd3af", "scanner": "scanner-primary", "fingerprint": "165a7df011d7e379", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d0a0fa1bed7340b", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:179)"}, "properties": {"repobilityId": "2e91f827330108dc", "scanner": "scanner-primary", "fingerprint": "6d0a0fa1bed7340b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed4f4cfd3fcc6dc0", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:201)"}, "properties": {"repobilityId": "ce5b40c22b42ce33", "scanner": "scanner-primary", "fingerprint": "ed4f4cfd3fcc6dc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72a7b8853f26779f", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:221)"}, "properties": {"repobilityId": "f76eb33c2b9fef61", "scanner": "scanner-primary", "fingerprint": "72a7b8853f26779f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c87f8927bcb8ced2", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:241)"}, "properties": {"repobilityId": "06caa1197dcb9eae", "scanner": "scanner-primary", "fingerprint": "c87f8927bcb8ced2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f938e18efcec4c8d", "level": "error", "message": {"text": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:261)"}, "properties": {"repobilityId": "d88c6a24a27640cf", "scanner": "scanner-primary", "fingerprint": "f938e18efcec4c8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6326acf3d4594120", "level": "error", "message": {"text": "Dangling fetch: OPTIONS /health (packages/test/src/integration/api/api-cors.integration.test.ts:281)"}, "properties": {"repobilityId": "624cc593409f9402", "scanner": "scanner-primary", "fingerprint": "6326acf3d4594120", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f1b17b1294c3f3b4", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:305)"}, "properties": {"repobilityId": "fe779b2c9b2f22fb", "scanner": "scanner-primary", "fingerprint": "f1b17b1294c3f3b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e2b6b7818bec395b", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:318)"}, "properties": {"repobilityId": "f61c8543980d32f2", "scanner": "scanner-primary", "fingerprint": "e2b6b7818bec395b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1bfc0dc4e90188c5", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:333)"}, "properties": {"repobilityId": "f67c6d5b3d03d3ba", "scanner": "scanner-primary", "fingerprint": "1bfc0dc4e90188c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f8a1010b1271acc", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:347)"}, "properties": {"repobilityId": "6b72b380fd29821e", "scanner": "scanner-primary", "fingerprint": "0f8a1010b1271acc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3baa776cb338d723", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:362)"}, "properties": {"repobilityId": "f8eb956695cc3bb4", "scanner": "scanner-primary", "fingerprint": "3baa776cb338d723", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fe0b9bfd3ef3819c", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:367)"}, "properties": {"repobilityId": "ffad961cf132a9b6", "scanner": "scanner-primary", "fingerprint": "fe0b9bfd3ef3819c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-14cbe1bf22260da3", "level": "error", "message": {"text": "Dangling fetch: GET /health (packages/test/src/integration/api/api-cors.integration.test.ts:373)"}, "properties": {"repobilityId": "10f7a8c29834c32c", "scanner": "scanner-primary", "fingerprint": "14cbe1bf22260da3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-62ac080992fac877", "level": "error", "message": {"text": "Dangling fetch: GET /api/1 (packages/scripts/parallel.ts:358)"}, "properties": {"repobilityId": "cd4eda66531514ff", "scanner": "scanner-primary", "fingerprint": "62ac080992fac877", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39a9cc963ea20ad0", "level": "error", "message": {"text": "Dangling fetch: GET /api/2 (packages/scripts/parallel.ts:358)"}, "properties": {"repobilityId": "6d00adc9fe0d97b3", "scanner": "scanner-primary", "fingerprint": "39a9cc963ea20ad0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7fd0238f0adae447", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:194)"}, "properties": {"repobilityId": "98ba6f5c07f16756", "scanner": "scanner-primary", "fingerprint": "7fd0238f0adae447", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0aadd0b34d93acec", "level": "error", "message": {"text": "Dangling fetch: POST https://api.vercel.com/v1/purge (packages/cache/src/cdn-config.ts:236)"}, "properties": {"repobilityId": "f72c01a78a6b9733", "scanner": "scanner-primary", "fingerprint": "0aadd0b34d93acec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d542aea623d134d0", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:318)"}, "properties": {"repobilityId": "6d5753e3e96aabe2", "scanner": "scanner-primary", "fingerprint": "d542aea623d134d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1cba6d43cb61536", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cloudflare.com/client/v4/zones/${zoneId}/purge_cache (packages/cache/src/cdn-config.ts:363)"}, "properties": {"repobilityId": "3fa726eb6bbbcf7e", "scanner": "scanner-primary", "fingerprint": "e1cba6d43cb61536", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-390110b7aad72cf9", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (packages/services/src/email/index.ts:135)"}, "properties": {"repobilityId": "26620780afdb1e0c", "scanner": "scanner-primary", "fingerprint": "390110b7aad72cf9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea047d9d42a46883", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/send (packages/services/src/email/index.ts:202)"}, "properties": {"repobilityId": "1644336b72fdb182", "scanner": "scanner-primary", "fingerprint": "ea047d9d42a46883", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3dc6e4a688eeaf53", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sign-out (packages/core/src/client/admin/utils/csrf.ts:44)"}, "properties": {"repobilityId": "65c374c36d798370", "scanner": "scanner-primary", "fingerprint": "3dc6e4a688eeaf53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8de6b749829b7356", "level": "error", "message": {"text": "Dangling fetch: POST /api/batch/delete (packages/core/src/client/admin/utils/apiClient.ts:309)"}, "properties": {"repobilityId": "5aa0bde1fb3be470", "scanner": "scanner-primary", "fingerprint": "8de6b749829b7356", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a43216bb17fb275a", "level": "error", "message": {"text": "Dangling fetch: POST /api/batch/update (packages/core/src/client/admin/utils/apiClient.ts:325)"}, "properties": {"repobilityId": "f86a1c718235a664", "scanner": "scanner-primary", "fingerprint": "a43216bb17fb275a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7c2398e0e9885111", "level": "error", "message": {"text": "Dangling fetch: GET https://api.example.com/users (packages/core/src/utils/request-context.ts:204)"}, "properties": {"repobilityId": "f5e13ce40531e354", "scanner": "scanner-primary", "fingerprint": "7c2398e0e9885111", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1145479474291de1", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/index.ts:22)"}, "properties": {"repobilityId": "e0000b4c3b33bc26", "scanner": "scanner-primary", "fingerprint": "1145479474291de1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98d03378ddcf4e47", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/subscription (packages/paywall/src/client/PaywallProvider.tsx:34)"}, "properties": {"repobilityId": "d1cb07ae3fea9cc4", "scanner": "scanner-primary", "fingerprint": "98d03378ddcf4e47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7128787fe0076192", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:29)"}, "properties": {"repobilityId": "b17e6d071b84496c", "scanner": "scanner-primary", "fingerprint": "7128787fe0076192", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ee499652a771c91", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:41)"}, "properties": {"repobilityId": "ba5589cb47d3b70b", "scanner": "scanner-primary", "fingerprint": "3ee499652a771c91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6c2ab26e4ed4512", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:57)"}, "properties": {"repobilityId": "f34573597d95432c", "scanner": "scanner-primary", "fingerprint": "e6c2ab26e4ed4512", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd90b8bd3d1dee42", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:69)"}, "properties": {"repobilityId": "0b4df1c8955b1cb5", "scanner": "scanner-primary", "fingerprint": "bd90b8bd3d1dee42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4e1e327e3ffbe76f", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:83)"}, "properties": {"repobilityId": "9570fb0931177533", "scanner": "scanner-primary", "fingerprint": "4e1e327e3ffbe76f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d26ef35fc55affb", "level": "error", "message": {"text": "Dangling fetch: GET /ai/tasks (packages/paywall/src/server/__tests__/hono.test.ts:101)"}, "properties": {"repobilityId": "183ce2357bc9b178", "scanner": "scanner-primary", "fingerprint": "3d26ef35fc55affb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cc648e9a98a305b", "level": "error", "message": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:114)"}, "properties": {"repobilityId": "f3af02f250f9d432", "scanner": "scanner-primary", "fingerprint": "0cc648e9a98a305b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d070fdc4aaf81587", "level": "error", "message": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:125)"}, "properties": {"repobilityId": "0a5c7f2d06b946af", "scanner": "scanner-primary", "fingerprint": "d070fdc4aaf81587", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44e29bb570fc2911", "level": "error", "message": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:136)"}, "properties": {"repobilityId": "41e3b46cf597a5bf", "scanner": "scanner-primary", "fingerprint": "44e29bb570fc2911", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5720832dafa129e8", "level": "error", "message": {"text": "Dangling fetch: GET /admin/settings (packages/paywall/src/server/__tests__/hono.test.ts:151)"}, "properties": {"repobilityId": "e63f3a8d017d0d68", "scanner": "scanner-primary", "fingerprint": "5720832dafa129e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7599f3b99219d29", "level": "error", "message": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:167)"}, "properties": {"repobilityId": "acbb470091ee4808", "scanner": "scanner-primary", "fingerprint": "c7599f3b99219d29", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-676092f3175b77d9", "level": "error", "message": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:183)"}, "properties": {"repobilityId": "30768f05eed38da3", "scanner": "scanner-primary", "fingerprint": "676092f3175b77d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d7484b5b4cfc4a2", "level": "error", "message": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:205)"}, "properties": {"repobilityId": "dcb24a26c9e50dbc", "scanner": "scanner-primary", "fingerprint": "2d7484b5b4cfc4a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f4401badd905495", "level": "error", "message": {"text": "Dangling fetch: POST /sites (packages/paywall/src/server/__tests__/hono.test.ts:220)"}, "properties": {"repobilityId": "b0525a59059e90db", "scanner": "scanner-primary", "fingerprint": "1f4401badd905495", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6525dc4fbc31f75", "level": "error", "message": {"text": "Dangling fetch: GET /test?page=5 (packages/openapi/src/__tests__/openapi-hono.test.ts:58)"}, "properties": {"repobilityId": "c9ae02ecefe5d234", "scanner": "scanner-primary", "fingerprint": "f6525dc4fbc31f75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7f37eb7acc8d983", "level": "error", "message": {"text": "Dangling fetch: GET /test?page=0 (packages/openapi/src/__tests__/openapi-hono.test.ts:76)"}, "properties": {"repobilityId": "7312b899d2dff97a", "scanner": "scanner-primary", "fingerprint": "c7f37eb7acc8d983", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d6dce9008361a4d", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:103)"}, "properties": {"repobilityId": "2df80af9191dcfa0", "scanner": "scanner-primary", "fingerprint": "4d6dce9008361a4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-02d47eea62cbcf1e", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:136)"}, "properties": {"repobilityId": "a292b20334c8983c", "scanner": "scanner-primary", "fingerprint": "02d47eea62cbcf1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-094d5f90238140a0", "level": "error", "message": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:162)"}, "properties": {"repobilityId": "4afed94c17416062", "scanner": "scanner-primary", "fingerprint": "094d5f90238140a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a87f575c5c0ea874", "level": "error", "message": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:191)"}, "properties": {"repobilityId": "fee810bece725fe3", "scanner": "scanner-primary", "fingerprint": "a87f575c5c0ea874", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a58bc1ede9a2be6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:222)"}, "properties": {"repobilityId": "9165c75d449470e4", "scanner": "scanner-primary", "fingerprint": "4a58bc1ede9a2be6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-876d39bfc319d708", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/openapi-hono.test.ts:255)"}, "properties": {"repobilityId": "0264b1e7b8c10471", "scanner": "scanner-primary", "fingerprint": "876d39bfc319d708", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4440f39fb04e32a", "level": "error", "message": {"text": "Dangling fetch: GET /test?q=hello (packages/openapi/src/__tests__/openapi-hono.test.ts:291)"}, "properties": {"repobilityId": "d9c9753d0ea4b023", "scanner": "scanner-primary", "fingerprint": "b4440f39fb04e32a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d0e32c406a478ffa", "level": "error", "message": {"text": "Dangling fetch: GET /openapi31.json (packages/openapi/src/__tests__/openapi-hono.test.ts:323)"}, "properties": {"repobilityId": "a599966279c693a2", "scanner": "scanner-primary", "fingerprint": "d0e32c406a478ffa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5966ee6e333b9e4b", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:375)"}, "properties": {"repobilityId": "b6443392a2046f80", "scanner": "scanner-primary", "fingerprint": "5966ee6e333b9e4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56584742b40af6c0", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:381)"}, "properties": {"repobilityId": "2ba9f9e40d4a7772", "scanner": "scanner-primary", "fingerprint": "56584742b40af6c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-982fa9feb36e6793", "level": "error", "message": {"text": "Dangling fetch: GET /users/user-123 (packages/openapi/src/__tests__/openapi-hono.test.ts:409)"}, "properties": {"repobilityId": "0865bc7eca0dcc95", "scanner": "scanner-primary", "fingerprint": "982fa9feb36e6793", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb5b8de0efd72a22", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/openapi-hono.test.ts:436)"}, "properties": {"repobilityId": "a773f6603b84ab6c", "scanner": "scanner-primary", "fingerprint": "bb5b8de0efd72a22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f065be5922350341", "level": "error", "message": {"text": "Dangling fetch: POST /submit (packages/openapi/src/__tests__/openapi-hono.test.ts:470)"}, "properties": {"repobilityId": "3ab99138808e8fa7", "scanner": "scanner-primary", "fingerprint": "f065be5922350341", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4ca68f94a9e32843", "level": "error", "message": {"text": "Dangling fetch: GET /openapi.json (packages/openapi/src/__tests__/openapi-hono.test.ts:497)"}, "properties": {"repobilityId": "2ba8876a4fab4806", "scanner": "scanner-primary", "fingerprint": "4ca68f94a9e32843", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d10667079ccf30c1", "level": "error", "message": {"text": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:157)"}, "properties": {"repobilityId": "83ee794128674463", "scanner": "scanner-primary", "fingerprint": "d10667079ccf30c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8cef05f5cbb50b83", "level": "error", "message": {"text": "Dangling fetch: POST /items (packages/openapi/src/__tests__/integration.test.ts:166)"}, "properties": {"repobilityId": "93dc7548ff6353af", "scanner": "scanner-primary", "fingerprint": "8cef05f5cbb50b83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b145048301c0ec3", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:16)"}, "properties": {"repobilityId": "d0716b290429d551", "scanner": "scanner-primary", "fingerprint": "1b145048301c0ec3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b81d064f626fcfe9", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:34)"}, "properties": {"repobilityId": "07f732993f9e4304", "scanner": "scanner-primary", "fingerprint": "b81d064f626fcfe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f11aa99ff0e5172", "level": "error", "message": {"text": "Dangling fetch: GET /test?page=3 (packages/openapi/src/__tests__/zod-validator.test.ts:52)"}, "properties": {"repobilityId": "b3867fc45b444784", "scanner": "scanner-primary", "fingerprint": "8f11aa99ff0e5172", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-88ec89d39466a8cf", "level": "error", "message": {"text": "Dangling fetch: GET /users/abc123 (packages/openapi/src/__tests__/zod-validator.test.ts:67)"}, "properties": {"repobilityId": "74bb93d9b9fe4993", "scanner": "scanner-primary", "fingerprint": "88ec89d39466a8cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-848b6643a92ab6b8", "level": "error", "message": {"text": "Dangling fetch: GET /test (packages/openapi/src/__tests__/zod-validator.test.ts:82)"}, "properties": {"repobilityId": "7defcaab441e8b8d", "scanner": "scanner-primary", "fingerprint": "848b6643a92ab6b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df56ba7c8b94c211", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:106)"}, "properties": {"repobilityId": "beeb4ea400c604ca", "scanner": "scanner-primary", "fingerprint": "df56ba7c8b94c211", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cce7cf577fcc1c79", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:133)"}, "properties": {"repobilityId": "0ef3e0a6bef1ab05", "scanner": "scanner-primary", "fingerprint": "cce7cf577fcc1c79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-62b93185e1100301", "level": "error", "message": {"text": "Dangling fetch: POST /test (packages/openapi/src/__tests__/zod-validator.test.ts:151)"}, "properties": {"repobilityId": "9cce3d7b0ca88b15", "scanner": "scanner-primary", "fingerprint": "62b93185e1100301", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8073f7bf758f6d0", "level": "note", "message": {"text": "Unused endpoint: USE /api/*"}, "properties": {"repobilityId": "3eb300500e621223", "scanner": "scanner-primary", "fingerprint": "b8073f7bf758f6d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-765b3181318378b8", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/*"}, "properties": {"repobilityId": "f4568f42a54bade0", "scanner": "scanner-primary", "fingerprint": "765b3181318378b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-673f67c7fbc2000e", "level": "note", "message": {"text": "Unused endpoint: USE /api/license/generate"}, "properties": {"repobilityId": "ed1a02e98601a91f", "scanner": "scanner-primary", "fingerprint": "673f67c7fbc2000e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b044c7be07a209d4", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/license/generate"}, "properties": {"repobilityId": "e680ddbce55d4dcc", "scanner": "scanner-primary", "fingerprint": "b044c7be07a209d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-765fd8b6f861bd96", "level": "note", "message": {"text": "Unused endpoint: USE /a2a/agents"}, "properties": {"repobilityId": "2999b75b7f2672dd", "scanner": "scanner-primary", "fingerprint": "765fd8b6f861bd96", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1881f04a4f589c48", "level": "note", "message": {"text": "Unused endpoint: USE /a2a/agents/*"}, "properties": {"repobilityId": "3a6b6f85d95b08a3", "scanner": "scanner-primary", "fingerprint": "1881f04a4f589c48", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dbfe30ed2247f8c8", "level": "note", "message": {"text": "Unused endpoint: USE /api/agent-tasks/*"}, "properties": {"repobilityId": "b1e31ebb4f85a667", "scanner": "scanner-primary", "fingerprint": "dbfe30ed2247f8c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4dcc85335dd01d24", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/agent-tasks/*"}, "properties": {"repobilityId": "2479066f1a804ab6", "scanner": "scanner-primary", "fingerprint": "4dcc85335dd01d24", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2ff4499ca050c0b5", "level": "note", "message": {"text": "Unused endpoint: USE /api/agent-stream"}, "properties": {"repobilityId": "c72764e1db0684d0", "scanner": "scanner-primary", "fingerprint": "2ff4499ca050c0b5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-565a8789e2cec846", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/agent-stream"}, "properties": {"repobilityId": "af5c28bf66e4b9f7", "scanner": "scanner-primary", "fingerprint": "565a8789e2cec846", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f4adf683ae3d9a31", "level": "note", "message": {"text": "Unused endpoint: USE /api/rag/*"}, "properties": {"repobilityId": "e6185ef227aeeea3", "scanner": "scanner-primary", "fingerprint": "f4adf683ae3d9a31", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4bd0ecc292783d75", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/rag/*"}, "properties": {"repobilityId": "c959ac501a154d50", "scanner": "scanner-primary", "fingerprint": "4bd0ecc292783d75", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa928aaa2b5be38a", "level": "note", "message": {"text": "Unused endpoint: USE /api/errors"}, "properties": {"repobilityId": "0ba316c624646536", "scanner": "scanner-primary", "fingerprint": "aa928aaa2b5be38a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-744f68f443afbfca", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/errors"}, "properties": {"repobilityId": "e25bf4336f47a2d7", "scanner": "scanner-primary", "fingerprint": "744f68f443afbfca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4b2c2b7682a8346", "level": "note", "message": {"text": "Unused endpoint: USE /api/logs"}, "properties": {"repobilityId": "b8f2a025cd2b310f", "scanner": "scanner-primary", "fingerprint": "e4b2c2b7682a8346", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b9878140778bfe3", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/logs"}, "properties": {"repobilityId": "77b8a6294cf0e186", "scanner": "scanner-primary", "fingerprint": "6b9878140778bfe3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1f57152d7326fb12", "level": "note", "message": {"text": "Unused endpoint: USE /api/api-keys/*"}, "properties": {"repobilityId": "e494a90150c635f3", "scanner": "scanner-primary", "fingerprint": "1f57152d7326fb12", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-959929931305310e", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/api-keys/*"}, "properties": {"repobilityId": "c5c371d8674406c7", "scanner": "scanner-primary", "fingerprint": "959929931305310e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99350a35220a8c5d", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/checkout"}, "properties": {"repobilityId": "73d8f6a7c32f7226", "scanner": "scanner-primary", "fingerprint": "99350a35220a8c5d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0eee6c1769001274", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/checkout"}, "properties": {"repobilityId": "88e88d0e40ed7566", "scanner": "scanner-primary", "fingerprint": "0eee6c1769001274", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-26e02049beb927a8", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/upgrade"}, "properties": {"repobilityId": "a0d6384e38947e4a", "scanner": "scanner-primary", "fingerprint": "26e02049beb927a8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c39161c077d536d", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/upgrade"}, "properties": {"repobilityId": "409212af1891658b", "scanner": "scanner-primary", "fingerprint": "4c39161c077d536d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db290b14d61c2f3a", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/downgrade"}, "properties": {"repobilityId": "1cce51e7c5ebe1d9", "scanner": "scanner-primary", "fingerprint": "db290b14d61c2f3a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-602dc1c8ab301c8d", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/downgrade"}, "properties": {"repobilityId": "38f3d50b161d1d6a", "scanner": "scanner-primary", "fingerprint": "602dc1c8ab301c8d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-64dba40532a808cd", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/checkout-perpetual"}, "properties": {"repobilityId": "280910a1135b9fe9", "scanner": "scanner-primary", "fingerprint": "64dba40532a808cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cc5bcbd9b66a2122", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/checkout-perpetual"}, "properties": {"repobilityId": "718f0c8fc94d215f", "scanner": "scanner-primary", "fingerprint": "cc5bcbd9b66a2122", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77f7aa305e44af4e", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/portal"}, "properties": {"repobilityId": "cf1539e925e861df", "scanner": "scanner-primary", "fingerprint": "77f7aa305e44af4e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-68cb1110306743f8", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/portal"}, "properties": {"repobilityId": "a6896477b7836610", "scanner": "scanner-primary", "fingerprint": "68cb1110306743f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80e19701ca6363c2", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/refund"}, "properties": {"repobilityId": "0b4856349c0f4686", "scanner": "scanner-primary", "fingerprint": "80e19701ca6363c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-603ac855c06951d0", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/refund"}, "properties": {"repobilityId": "2387be9470aa3136", "scanner": "scanner-primary", "fingerprint": "603ac855c06951d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-109a657c98d9ff15", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/checkout-credits"}, "properties": {"repobilityId": "54a13fe7b97b0a89", "scanner": "scanner-primary", "fingerprint": "109a657c98d9ff15", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-525f3c371b54253a", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/checkout-credits"}, "properties": {"repobilityId": "22ab47d28042face", "scanner": "scanner-primary", "fingerprint": "525f3c371b54253a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e5434bcbdad3556e", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/checkout-support-renewal"}, "properties": {"repobilityId": "f463c3b066fda8aa", "scanner": "scanner-primary", "fingerprint": "e5434bcbdad3556e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a6f84966215a0f0", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/checkout-support-renewal"}, "properties": {"repobilityId": "d21bc71cbe1572ac", "scanner": "scanner-primary", "fingerprint": "4a6f84966215a0f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a37bdb7351f91f3", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/subscription"}, "properties": {"repobilityId": "c5ebc6138f05178e", "scanner": "scanner-primary", "fingerprint": "8a37bdb7351f91f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a3086bb47647d81f", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/subscription"}, "properties": {"repobilityId": "52d6338dfcece260", "scanner": "scanner-primary", "fingerprint": "a3086bb47647d81f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0513c65688b28a73", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/usage"}, "properties": {"repobilityId": "c6e3505dac43361e", "scanner": "scanner-primary", "fingerprint": "0513c65688b28a73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-73554ef8f1a24900", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/usage"}, "properties": {"repobilityId": "ec2910c2f7a23702", "scanner": "scanner-primary", "fingerprint": "73554ef8f1a24900", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8eb741ed826523be", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/credits"}, "properties": {"repobilityId": "60ac1ae69867c45f", "scanner": "scanner-primary", "fingerprint": "8eb741ed826523be", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee69659fb075da0c", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/credits"}, "properties": {"repobilityId": "17e92324abd3af45", "scanner": "scanner-primary", "fingerprint": "ee69659fb075da0c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c025be5c62c0dbf4", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/invoices"}, "properties": {"repobilityId": "7be57069f2411953", "scanner": "scanner-primary", "fingerprint": "c025be5c62c0dbf4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ecc5722bc9d92bc5", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/invoices"}, "properties": {"repobilityId": "67e02a5046e0f345", "scanner": "scanner-primary", "fingerprint": "ecc5722bc9d92bc5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-55e49857c48960a0", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/pause"}, "properties": {"repobilityId": "27483beac583c55b", "scanner": "scanner-primary", "fingerprint": "55e49857c48960a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-744ff161bf1b6fa5", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/pause"}, "properties": {"repobilityId": "b57242a1a84e1b98", "scanner": "scanner-primary", "fingerprint": "744ff161bf1b6fa5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b7ea5cd88377b82b", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/resume"}, "properties": {"repobilityId": "5667fd849584755f", "scanner": "scanner-primary", "fingerprint": "b7ea5cd88377b82b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8997c5bcf36ffce1", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/resume"}, "properties": {"repobilityId": "2e14680ef8151c3a", "scanner": "scanner-primary", "fingerprint": "8997c5bcf36ffce1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dd17609826e2c55d", "level": "note", "message": {"text": "Unused endpoint: USE /api/billing/metrics"}, "properties": {"repobilityId": "dda4161e8de1dee5", "scanner": "scanner-primary", "fingerprint": "dd17609826e2c55d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0f890b8e37a9f390", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/billing/metrics"}, "properties": {"repobilityId": "3ef056d04640dd5d", "scanner": "scanner-primary", "fingerprint": "0f890b8e37a9f390", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce4b1afd92f76340", "level": "note", "message": {"text": "Unused endpoint: USE /api/content/batch/*"}, "properties": {"repobilityId": "36ad84d558b01715", "scanner": "scanner-primary", "fingerprint": "ce4b1afd92f76340", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-24b49c0033cb52b8", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/content/batch/*"}, "properties": {"repobilityId": "b4a11f2df848ba2e", "scanner": "scanner-primary", "fingerprint": "24b49c0033cb52b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}