{"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-8512563c5d93126b", "name": "Possibly dead Python function: tier_split", "shortDescription": {"text": "Possibly dead Python function: tier_split"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4fd40d11a2f46c94", "name": "Possibly dead Python function: to_dict", "shortDescription": {"text": "Possibly dead Python function: to_dict"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b1c57e8ed70f2c5", "name": "Possibly dead Python function: capture_email", "shortDescription": {"text": "Possibly dead Python function: capture_email"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b53791220a333b5", "name": "Possibly dead Python function: redis_cmd", "shortDescription": {"text": "Possibly dead Python function: redis_cmd"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dcc27033eab429f5", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4f07913e8acf61f", "name": "Possibly dead Python function: generate_article_with_fallback", "shortDescription": {"text": "Possibly dead Python function: generate_article_with_fallback"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-192cc44adbaa9d9b", "name": "Possibly dead Python function: publish_github_strict", "shortDescription": {"text": "Possibly dead Python function: publish_github_strict"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2efb034d7aefd4fa", "name": "Possibly dead Python function: run_health_monitor", "shortDescription": {"text": "Possibly dead Python function: run_health_monitor"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1252d8fbc980d17", "name": "Possibly dead Python function: retell_config", "shortDescription": {"text": "Possibly dead Python function: retell_config"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee1305a7225e06ae", "name": "Possibly dead Python function: tool_check_calendar", "shortDescription": {"text": "Possibly dead Python function: tool_check_calendar"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e332a54fd2a40f76", "name": "Possibly dead Python function: tool_book_appointment", "shortDescription": {"text": "Possibly dead Python function: tool_book_appointment"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ab5d662ca27b2e6", "name": "Possibly dead Python function: tool_create_secure_payment_link", "shortDescription": {"text": "Possibly dead Python function: tool_create_secure_payment_link"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e9e4dd617231b24", "name": "Possibly dead Python function: list_articles", "shortDescription": {"text": "Possibly dead Python function: list_articles"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-416343b645642077", "name": "Possibly dead Python function: send_publish_digest", "shortDescription": {"text": "Possibly dead Python function: send_publish_digest"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b251ebc16ce4eae", "name": "Possibly dead Python function: to_traceparent", "shortDescription": {"text": "Possibly dead Python function: to_traceparent"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-efaae77f5d392129", "name": "Possibly dead Python function: parse_traceparent", "shortDescription": {"text": "Possibly dead Python function: parse_traceparent"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf91d1b43a0462ab", "name": "Possibly dead Python function: warn", "shortDescription": {"text": "Possibly dead Python function: warn"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-511ffe5c962dc317", "name": "Possibly dead Python function: to_ndjson", "shortDescription": {"text": "Possibly dead Python function: to_ndjson"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10825a1c71165aab", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-904cc402c1f6f5d4", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7dbe64a46d1d3255", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78de592d17004da6", "name": "Possibly dead Python function: recent", "shortDescription": {"text": "Possibly dead Python function: recent"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b549024da0fcfc75", "name": "Possibly dead Python function: is_approved", "shortDescription": {"text": "Possibly dead Python function: is_approved"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f74161dd1b745c1", "name": "Possibly dead Python function: run_agent", "shortDescription": {"text": "Possibly dead Python function: run_agent"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ba8efa09df5a508", "name": "Possibly dead Python function: dispatch_consensus_default", "shortDescription": {"text": "Possibly dead Python function: dispatch_consensus_default"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-200bbe3990174892", "name": "Possibly dead Python function: pages_url", "shortDescription": {"text": "Possibly dead Python function: pages_url"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e2b0336952bb89a", "name": "Possibly dead Python function: infer_with_report", "shortDescription": {"text": "Possibly dead Python function: infer_with_report"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8465f762f8fa71e5", "name": "Stray `console.log` in TS/JS \u2014 index.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 index.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c9fb65a3b905a80e", "name": "Stray `console.log` in TS/JS \u2014 frontend/scripts/check-env.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/check-env.js: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-49ade3001260a1be", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Hero.jsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Hero.jsx:66"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af4f3cb61870ac1b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/CohortBar.jsx:22", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/CohortBar.jsx:22"}, "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-c8f32433e4f0df61", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/Overview.jsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/Overview.jsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7859a45d58ebd8dd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/AgentsPage.jsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/AgentsPage.jsx:95"}, "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-9642f1d7ec257b52", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/DashboardLayout.jsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/DashboardLayout.jsx:118"}, "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-0cbbe92f362f0abd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/CashAIPage.jsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/CashAIPage.jsx: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-dfdc74c886367417", "name": "Stray `console.log` in TS/JS \u2014 scripts/init-db.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/init-db.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-df91b5f1d3c1da03", "name": "Stray `console.log` in TS/JS \u2014 scripts/load-prospects.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/load-prospects.js:132"}, "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-793ed97896a2576e", "name": "Stray `console.log` in TS/JS \u2014 app/api/email/subscribe/route.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/email/subscribe/route.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-3799a4c0081ee2b8", "name": "TODO/FIXME marker in shipping code \u2014 app/api/webhooks/stripe/route.ts:79", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/webhooks/stripe/route.ts:79"}, "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-19920d151524eec2", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/stripe/route.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/stripe/route.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11e8c7def0ba8b82", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/work/page.tsx:135", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/work/page.tsx:135"}, "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-b09ddc8bbb7ea06a", "name": "Privileged port 73 in use", "shortDescription": {"text": "Privileged port 73 in use"}, "fullDescription": {"text": "Port 73 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-a2f382ab93f59397", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 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-8748fcf2fe83ef14", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 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-870bfa30451a9474", "name": "Privileged port 8 in use", "shortDescription": {"text": "Privileged port 8 in use"}, "fullDescription": {"text": "Port 8 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-abdcd7eaa9b5316a", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: 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-de3c1f217d72a063", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-465c2e3051c59de8", "name": "Dockerfile runs as root: agents/taylor/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: agents/taylor/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-474255bf4f54c9dd", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e82a808f0efc57f", "name": "Insecure pattern 'weak_hash' in distillation-upgrade/README.md:6", "shortDescription": {"text": "Insecure pattern 'weak_hash' in distillation-upgrade/README.md:6"}, "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-a76ede3523297d10", "name": "Insecure pattern 'node_child_process' in scripts/run-parallel-agents.mjs:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-parallel-agents.mjs:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2155438a4fac014e", "name": "Possible secret in scripts/bootstrap-server.sh", "shortDescription": {"text": "Possible secret in scripts/bootstrap-server.sh"}, "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-208f077c3acb34a1", "name": "Insecure pattern 'direct_innerhtml_assignment' in dashboard/public/index.html:169", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard/public/index.html:169"}, "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-0260f2dee5deb99b", "name": "Insecure pattern 'direct_innerhtml_assignment' in app/api/widget/embed-source.ts:153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/api/widget/embed-source.ts:153"}, "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-56587f70434bff96", "name": "Insecure pattern 'cors_wildcard' in app/api/widget/route.ts:15", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/widget/route.ts:15"}, "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-fca9c1b7d5fcd6be", "name": "Insecure pattern 'cors_wildcard' in app/api/widget/track/route.ts:15", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/widget/track/route.ts:15"}, "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-1ec27f8bbb2a36b8", "name": "Insecure pattern 'dangerous_innerhtml' in app/work/page.tsx:135", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/work/page.tsx:135"}, "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-05fac8c9f46f3d56", "name": "Possible secret in runtime/hypervisor/litellm/config.yaml", "shortDescription": {"text": "Possible secret in runtime/hypervisor/litellm/config.yaml"}, "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-15c21bfdbbcd26f5", "name": "Insecure pattern 'weak_hash' in runtime/eaos/social_engine.py:117", "shortDescription": {"text": "Insecure pattern 'weak_hash' in runtime/eaos/social_engine.py:117"}, "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-420aa07a9f8f51c3", "name": "Insecure pattern 'cors_wildcard' in backend/server.py:134", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in backend/server.py:134"}, "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-5ee794c13e80eb86", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55a607827c189d63", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c67ec90d4781244c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f26dfe665f9a851", "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-e1eaacbb3ef83696", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb159ef12c1f1bd8", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-776314b039046a7f", "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-68223d34541899f5", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b86a36e2bf2b3ba", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6dacffdc7ff96b47", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/setup-qemu-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-546fc00d8c693544", "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-ec1a1527b07177e2", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5130b8a513a3472", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d93a0e73950b2a0d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86d7ff5bdc06ea25", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/login-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-bf9c0e133a71bd05", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ba136dd351a8f23", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "46 tests / 341 src (ratio 0.13)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e8a76eb13fd3249", "name": "Node manifest has dependencies but no lockfile: frontend/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/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 381 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 30 placeholder/mock markers across 16 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9abbace5a3d1a525", "name": "Commented-code block (5 lines) in frontend/src/pages/dashboard/Overview.jsx:61", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/dashboard/Overview.jsx: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-baa27f8b64295218", "name": "Legacy-named symbol `primary_copy` in tests/test_autopublish_gate.py:68", "shortDescription": {"text": "Legacy-named symbol `primary_copy` in tests/test_autopublish_gate.py:68"}, "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-30b08e355699a9bb", "name": "Legacy-named symbol `primary_copy` in scripts/autopublish_gate.py:70", "shortDescription": {"text": "Legacy-named symbol `primary_copy` in scripts/autopublish_gate.py:70"}, "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-24985ebbc680a4db", "name": "Legacy-named symbol `primary_copy` in scripts/content_factory_run.py:23", "shortDescription": {"text": "Legacy-named symbol `primary_copy` in scripts/content_factory_run.py:23"}, "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-de1674e02257125e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email/subscribe/route.ts:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email/subscribe/route.ts:33"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ab87d99bcf22d6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/content/generate-video/route.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/content/generate-video/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-815aebca6f95b489", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tokenforge/route.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tokenforge/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-3ee9c6dd71162b37", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/blog/route.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/blog/route.ts:59"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0353f5217e693305", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/dispatch/route.ts:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/dispatch/route.ts: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-ea776ff03d192856", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/dashboard/page.tsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/dashboard/page.tsx:10"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2db8942982a720a0", "name": "Commented-code block (5 lines) in lib/health.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in lib/health.mjs: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-1f2f542625996d6f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai-gateway.mjs:190", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai-gateway.mjs:190"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9c5c56b1deb7237", "name": "Legacy-named symbol `transfer_to_backup` in agents/taylor/server.py:242", "shortDescription": {"text": "Legacy-named symbol `transfer_to_backup` in agents/taylor/server.py:242"}, "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-9029706bc52f5bda", "name": "Commented-code block (6 lines) in runtime/swarm_engine.py:398", "shortDescription": {"text": "Commented-code block (6 lines) in runtime/swarm_engine.py:398"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97595e170d47e6c0", "name": "Commented-code block (6 lines) in runtime/verifier.py:14", "shortDescription": {"text": "Commented-code block (6 lines) in runtime/verifier.py: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-157f1a69ce78b185", "name": "Network/subprocess call without timeout or try/except \u2014 runtime/api.py:604", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 runtime/api.py:604"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c95b495d1a7cb7d2", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:147", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:147"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c4b3810ff41a83a", "name": "Blocking `time.sleep(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:156", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:156"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6496b68ed81ada2", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:161", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:161"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb113840fd63e517", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_linkedin` \u2014 runtime/eaos/social_engine.py:193", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_linkedin` \u2014 runtime/eaos/social_engine.py:193"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af304024f7920670", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:223", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:223"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e0de6104ac0b5f9", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:239", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:239"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-032cf152f3b17c1c", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_telegram` \u2014 runtime/eaos/social_engine.py:261", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_telegram` \u2014 runtime/eaos/social_engine.py:261"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b24795799683cc46", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:291", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:291"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4365316d465316b", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:300", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:300"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7ce2bb0c8038530", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_facebook` \u2014 runtime/eaos/social_engine.py:325", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_facebook` \u2014 runtime/eaos/social_engine.py:325"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84b3e6f5c0a20326", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:354", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:354"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-00f1245a6217522a", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:367", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:367"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a89c2172623d7d84", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:379", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:379"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8964a9e65f78f858", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:409", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:409"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ffceaab59dc2d6d", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:436", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:436"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eee532e6a1b5de30", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:449", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:449"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0888288a31969c6d", "name": "Blocking `urllib.request.urlopen(...)` inside `async def _is_online` \u2014 runtime/eaos/social_engine.py:466", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _is_online` \u2014 runtime/eaos/social_engine.py:466"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7ad64164173731a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pipeline/index.js:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pipeline/index.js:96"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68c68ee3d1ddaa66", "name": "244 env vars used in code but missing from .env.example", "shortDescription": {"text": "244 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AFFILIATE_DISCLOSURE`, `AFFILIATE_FEATURED_LIMIT`, `AFFILIATE_PROMPT_LIMIT`, `AFFILIATE_TOOL_LIMIT`, `AFFILIATE_UTM_CAMPAIGN`, `AGENT_TYPE`, `AI_GATEWAY_API_TOKEN`, `AMAZON_PARTNER_TAG` + 236 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-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nruntime/devto_client.py:publish_article, runtime/hashnode_client.py:publish_article, runtime/medium_client.py:publish_article\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nruntime/swarm_engine.py:from_dict, runtime/swarm_engine.py:from_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nruntime/distillation.py:budget_truncate, runtime/distillation.py:budget, code_merger/demo_output/runtime/distillation.py:budget_truncate, code_merger/demo_output/runtime/distillation.py:budget\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aabe1d4307d3479b", "name": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cfecd897d62f119", "name": "Frontend route `sovereign` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `sovereign` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0965ac717037bc8", "name": "Frontend route `cash-ai` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `cash-ai` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa31008f322ca593", "name": "Frontend route `lifelong` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `lifelong` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75071680347aeb9c", "name": "Frontend route `agents` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `agents` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69a8a1d21ca4ae6a", "name": "Frontend route `approvals` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `approvals` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6c911c6b95c224f", "name": "Frontend route `advisor` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `advisor` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82c19d9a8a7e0dda", "name": "Frontend route `scout` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `scout` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f44f47758636e261", "name": "Frontend route `content` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `content` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-49c85d3f71a745e0", "name": "Frontend route `revenue` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `revenue` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20727b9955fd8425", "name": "Frontend route `books` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `books` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-638d2e89a21b5516", "name": "Frontend route `deployments` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `deployments` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-912aa1a3bc525ec4", "name": "Frontend route `builds` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `builds` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5ad3c3c67b81227", "name": "Frontend route `audit` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `audit` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe3289a17cfdcc36", "name": "Frontend route `proposals` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `proposals` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-289bf7fe6a0a5e97", "name": "Frontend route `proof-of-work` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `proof-of-work` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-12e3efb07253962e", "name": "Frontend route `analytics` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `analytics` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-76e8cf7969dc452a", "name": "Frontend route `distillation` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `distillation` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d2ca489ee3a3be3", "name": "Frontend route `cost` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `cost` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3e8ede0b6b93a7a", "name": "Frontend route `secrets` has no Link/navigate to it \u2014 frontend/src/App.js", "shortDescription": {"text": "Frontend route `secrets` has no Link/navigate to it \u2014 frontend/src/App.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99c0d8fcfa7e702a", "name": "FastAPI POST `call_tool_directly` without auth dependency \u2014 agents/taylor/server.py:271", "shortDescription": {"text": "FastAPI POST `call_tool_directly` without auth dependency \u2014 agents/taylor/server.py:271"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f3b13b9453a4f3", "name": "FastAPI POST `call_ended_event` without auth dependency \u2014 agents/taylor/server.py:276", "shortDescription": {"text": "FastAPI POST `call_ended_event` without auth dependency \u2014 agents/taylor/server.py:276"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81495b2ced06037f", "name": "FastAPI POST `retell_webhook` without auth dependency \u2014 agents/taylor/server.py:292", "shortDescription": {"text": "FastAPI POST `retell_webhook` without auth dependency \u2014 agents/taylor/server.py:292"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eddedb84c4a4b128", "name": "FastAPI POST `vapi_webhook` without auth dependency \u2014 agents/taylor/server.py:311", "shortDescription": {"text": "FastAPI POST `vapi_webhook` without auth dependency \u2014 agents/taylor/server.py:311"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1bb5cd1d4feec15", "name": "FastAPI POST `twilio_voice` without auth dependency \u2014 agents/taylor/server.py:328", "shortDescription": {"text": "FastAPI POST `twilio_voice` without auth dependency \u2014 agents/taylor/server.py:328"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd47228b80d620fd", "name": "FastAPI POST `twilio_sms` without auth dependency \u2014 agents/taylor/server.py:341", "shortDescription": {"text": "FastAPI POST `twilio_sms` without auth dependency \u2014 agents/taylor/server.py:341"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-558adf97df395d46", "name": "FastAPI POST `create_agent` without auth dependency \u2014 runtime/agents.py:61", "shortDescription": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 runtime/agents.py:61"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e3cbfef5efeae81", "name": "FastAPI PATCH `update_agent` without auth dependency \u2014 runtime/agents.py:104", "shortDescription": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 runtime/agents.py:104"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb92ffafd0600a47", "name": "FastAPI POST `execute_agent` without auth dependency \u2014 runtime/agents.py:121", "shortDescription": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 runtime/agents.py:121"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39705b5a31e064b5", "name": "FastAPI POST `preview` without auth dependency \u2014 runtime/distillation.py:282", "shortDescription": {"text": "FastAPI POST `preview` without auth dependency \u2014 runtime/distillation.py:282"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ce93c38971adf08", "name": "FastAPI POST `clear` without auth dependency \u2014 runtime/distillation.py:314", "shortDescription": {"text": "FastAPI POST `clear` without auth dependency \u2014 runtime/distillation.py:314"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97b2efb421e72b56", "name": "FastAPI POST `telegram_webhook` without auth dependency \u2014 runtime/api.py:140", "shortDescription": {"text": "FastAPI POST `telegram_webhook` without auth dependency \u2014 runtime/api.py:140"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe5f3309d82c9732", "name": "FastAPI POST `consensus` without auth dependency \u2014 runtime/api.py:175", "shortDescription": {"text": "FastAPI POST `consensus` without auth dependency \u2014 runtime/api.py:175"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aaf977e51dc62f9c", "name": "FastAPI POST `video` without auth dependency \u2014 runtime/api.py:202", "shortDescription": {"text": "FastAPI POST `video` without auth dependency \u2014 runtime/api.py:202"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d718d09a6fbcaa66", "name": "FastAPI POST `eaos_enqueue` without auth dependency \u2014 runtime/api.py:225", "shortDescription": {"text": "FastAPI POST `eaos_enqueue` without auth dependency \u2014 runtime/api.py:225"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44d31d5abf93586a", "name": "FastAPI POST `social_distribute` without auth dependency \u2014 runtime/api.py:244", "shortDescription": {"text": "FastAPI POST `social_distribute` without auth dependency \u2014 runtime/api.py:244"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12e493aa26709e3f", "name": "FastAPI POST `newsletter_publish` without auth dependency \u2014 runtime/api.py:311", "shortDescription": {"text": "FastAPI POST `newsletter_publish` without auth dependency \u2014 runtime/api.py:311"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b79d8a9458dbc0d6", "name": "FastAPI POST `products_bootstrap` without auth dependency \u2014 runtime/api.py:339", "shortDescription": {"text": "FastAPI POST `products_bootstrap` without auth dependency \u2014 runtime/api.py:339"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37ffba443d89dc8b", "name": "FastAPI POST `city_seo_generate` without auth dependency \u2014 runtime/api.py:354", "shortDescription": {"text": "FastAPI POST `city_seo_generate` without auth dependency \u2014 runtime/api.py:354"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23f3294ec2e9af2a", "name": "FastAPI POST `chatbot_build` without auth dependency \u2014 runtime/api.py:369", "shortDescription": {"text": "FastAPI POST `chatbot_build` without auth dependency \u2014 runtime/api.py:369"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e1013da27bf465c", "name": "FastAPI POST `execute` without auth dependency \u2014 runtime/api.py:450", "shortDescription": {"text": "FastAPI POST `execute` without auth dependency \u2014 runtime/api.py:450"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67712a20c1a7ead1", "name": "FastAPI POST `run_digest` without auth dependency \u2014 runtime/api.py:488", "shortDescription": {"text": "FastAPI POST `run_digest` without auth dependency \u2014 runtime/api.py:488"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd2ba56650542328", "name": "FastAPI POST `run_guard` without auth dependency \u2014 runtime/api.py:506", "shortDescription": {"text": "FastAPI POST `run_guard` without auth dependency \u2014 runtime/api.py:506"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fec892e7f39c8910", "name": "FastAPI POST `deploy_pull` without auth dependency \u2014 runtime/api.py:533", "shortDescription": {"text": "FastAPI POST `deploy_pull` without auth dependency \u2014 runtime/api.py:533"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ea4f2d2b96d3a3e", "name": "FastAPI POST `pod_push` without auth dependency \u2014 runtime/api.py:644", "shortDescription": {"text": "FastAPI POST `pod_push` without auth dependency \u2014 runtime/api.py:644"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e194e98d4c819b4", "name": "FastAPI POST `run_tasks` without auth dependency \u2014 runtime/gmaos/api.py:79", "shortDescription": {"text": "FastAPI POST `run_tasks` without auth dependency \u2014 runtime/gmaos/api.py:79"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0f87b641c6af671", "name": "FastAPI POST `run_single` without auth dependency \u2014 runtime/gmaos/api.py:90", "shortDescription": {"text": "FastAPI POST `run_single` without auth dependency \u2014 runtime/gmaos/api.py:90"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21fca431a2144016", "name": "FastAPI POST `fire_tasks` without auth dependency \u2014 runtime/gmaos/api.py:98", "shortDescription": {"text": "FastAPI POST `fire_tasks` without auth dependency \u2014 runtime/gmaos/api.py:98"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38046777af95a73e", "name": "FastAPI POST `drain_dlq` without auth dependency \u2014 runtime/gmaos/api.py:136", "shortDescription": {"text": "FastAPI POST `drain_dlq` without auth dependency \u2014 runtime/gmaos/api.py:136"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d11228369e26654b", "name": "FastAPI POST `waitlist_endpoint` without auth dependency \u2014 backend/server.py:170", "shortDescription": {"text": "FastAPI POST `waitlist_endpoint` without auth dependency \u2014 backend/server.py:170"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cfc9da792e4e4232", "name": "FastAPI POST `execute_agent` without auth dependency \u2014 backend/server.py:237", "shortDescription": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 backend/server.py:237"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3d6feb8b6ad154d", "name": "FastAPI POST `decide_approval` without auth dependency \u2014 backend/server.py:296", "shortDescription": {"text": "FastAPI POST `decide_approval` without auth dependency \u2014 backend/server.py:296"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db0f326aa6faa20c", "name": "FastAPI POST `distillation_distill` without auth dependency \u2014 backend/server.py:462", "shortDescription": {"text": "FastAPI POST `distillation_distill` without auth dependency \u2014 backend/server.py:462"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99ab2e26063700a6", "name": "FastAPI POST `advisor_ask` without auth dependency \u2014 backend/server.py:496", "shortDescription": {"text": "FastAPI POST `advisor_ask` without auth dependency \u2014 backend/server.py:496"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c917b6f1fe6af967", "name": "FastAPI POST `merge_endpoint` without auth dependency \u2014 backend/server.py:540", "shortDescription": {"text": "FastAPI POST `merge_endpoint` without auth dependency \u2014 backend/server.py:540"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8e197fc1c5257f9", "name": "FastAPI POST `score_endpoint` without auth dependency \u2014 backend/server.py:562", "shortDescription": {"text": "FastAPI POST `score_endpoint` without auth dependency \u2014 backend/server.py:562"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66dde6874d70c391", "name": "FastAPI POST `cash_cycle_trigger` without auth dependency \u2014 backend/server.py:622", "shortDescription": {"text": "FastAPI POST `cash_cycle_trigger` without auth dependency \u2014 backend/server.py:622"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-762380b3ded23963", "name": "FastAPI POST `cash_cache_clear` without auth dependency \u2014 backend/server.py:643", "shortDescription": {"text": "FastAPI POST `cash_cache_clear` without auth dependency \u2014 backend/server.py:643"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a655ac9097eb826", "name": "FastAPI POST `lcc_validate` without auth dependency \u2014 backend/server.py:799", "shortDescription": {"text": "FastAPI POST `lcc_validate` without auth dependency \u2014 backend/server.py:799"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2712939d6ae0f3f", "name": "FastAPI POST `lcc_health_loop` without auth dependency \u2014 backend/server.py:825", "shortDescription": {"text": "FastAPI POST `lcc_health_loop` without auth dependency \u2014 backend/server.py:825"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31ca6fd617f39d14", "name": "FastAPI POST `lcc_rewrite` without auth dependency \u2014 backend/server.py:861", "shortDescription": {"text": "FastAPI POST `lcc_rewrite` without auth dependency \u2014 backend/server.py:861"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de0a573bc58a6e31", "name": "FastAPI POST `proof_create_manifest` without auth dependency \u2014 backend/server.py:919", "shortDescription": {"text": "FastAPI POST `proof_create_manifest` without auth dependency \u2014 backend/server.py:919"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1fa30e4bd282615", "name": "FastAPI POST `proof_publish` without auth dependency \u2014 backend/server.py:945", "shortDescription": {"text": "FastAPI POST `proof_publish` without auth dependency \u2014 backend/server.py:945"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-599dadd7dab67c85", "name": "FastAPI POST `create_checkout` without auth dependency \u2014 backend/services/launch_router.py:276", "shortDescription": {"text": "FastAPI POST `create_checkout` without auth dependency \u2014 backend/services/launch_router.py:276"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8af802a0453b59c0", "name": "FastAPI POST `stripe_webhook` without auth dependency \u2014 backend/services/launch_router.py:284", "shortDescription": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 backend/services/launch_router.py:284"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86cd61fc9ad65e66", "name": "FastAPI POST `track_referral` without auth dependency \u2014 backend/services/launch_router.py:296", "shortDescription": {"text": "FastAPI POST `track_referral` without auth dependency \u2014 backend/services/launch_router.py:296"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-260322af6ff4bc5a", "name": "FastAPI PUT `set_autonomy` without auth dependency \u2014 backend/services/enterprise_router.py:104", "shortDescription": {"text": "FastAPI PUT `set_autonomy` without auth dependency \u2014 backend/services/enterprise_router.py:104"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d8b2c2b72aa7b62", "name": "FastAPI POST `create_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:34", "shortDescription": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:34"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ec372a9b16c0f13", "name": "FastAPI PATCH `update_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:77", "shortDescription": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:77"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fac02b1f7654c47d", "name": "FastAPI POST `execute_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:94", "shortDescription": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:94"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e67a24057eaafbd", "name": "FastAPI POST `preview` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:203", "shortDescription": {"text": "FastAPI POST `preview` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:203"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-569ff768d084aa57", "name": "FastAPI POST `clear` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:217", "shortDescription": {"text": "FastAPI POST `clear` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:217"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8065c840bb07fa9d", "name": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:28)", "shortDescription": {"text": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:28)"}, "fullDescription": {"text": "`frontend/src/components/EngineSection.jsx:28` calls `POST /api/bus` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/bus`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7527094a6d3d77bf", "name": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:34)", "shortDescription": {"text": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:34)"}, "fullDescription": {"text": "`frontend/src/components/EngineSection.jsx:34` calls `POST /api/bus` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/bus`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fea57ac319491239", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (api/routes/ask.js:33)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (api/routes/ask.js:33)"}, "fullDescription": {"text": "`api/routes/ask.js:33` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1bc4a8c0e656619", "name": "Dangling fetch: POST http://localhost:3000/api/jobs (scripts/load-prospects.js:136)", "shortDescription": {"text": "Dangling fetch: POST http://localhost:3000/api/jobs (scripts/load-prospects.js:136)"}, "fullDescription": {"text": "`scripts/load-prospects.js:136` calls `POST http://localhost:3000/api/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:3000/api/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3dd272afbbae5f9", "name": "Dangling fetch: POST https://api.printify.com/v1/shops/${cfg().printifyShopId}/products.json (agents/pod/index.js:36)", "shortDescription": {"text": "Dangling fetch: POST https://api.printify.com/v1/shops/${cfg().printifyShopId}/products.json (agents/pod/index.js:36)"}, "fullDescription": {"text": "`agents/pod/index.js:36` calls `POST https://api.printify.com/v1/shops/${cfg().printifyShopId}/products.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.printify.com/v1/shops/<p>/products.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-9472663d23eed117", "name": "Dangling fetch: GET https://api.github.com/repos/${cfg().githubOwner}/${cfg().githubRepo} (agents/health/index.js:26)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${cfg().githubOwner}/${cfg().githubRepo} (agents/health/index.js:26)"}, "fullDescription": {"text": "`agents/health/index.js:26` calls `GET https://api.github.com/repos/${cfg().githubOwner}/${cfg().githubRepo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.github.com/repos/<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-70607b3d45a065ba", "name": "Dangling fetch: GET https://trends.google.com/trends/trendingsearches/daily/rss?geo=US (agents/intelligence/trendScanner", "shortDescription": {"text": "Dangling fetch: GET https://trends.google.com/trends/trendingsearches/daily/rss?geo=US (agents/intelligence/trendScanner.js:22)"}, "fullDescription": {"text": "`agents/intelligence/trendScanner.js:22` calls `GET https://trends.google.com/trends/trendingsearches/daily/rss?geo=US` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/trends.google.com/trends/trendingsearches/daily/rss`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b07e6ceea692657", "name": "Dangling fetch: GET https://www.reddit.com/r/${sub}/hot.json?limit=5 (agents/intelligence/trendScanner.js:53)", "shortDescription": {"text": "Dangling fetch: GET https://www.reddit.com/r/${sub}/hot.json?limit=5 (agents/intelligence/trendScanner.js:53)"}, "fullDescription": {"text": "`agents/intelligence/trendScanner.js:53` calls `GET https://www.reddit.com/r/${sub}/hot.json?limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/www.reddit.com/r/<p>/hot.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-7ae040e45af64950", "name": "Dangling fetch: GET https://duckduckgo.com/news.js?q=${encodeURIComponent(niche +  (agents/intelligence/trendScanner.js:", "shortDescription": {"text": "Dangling fetch: GET https://duckduckgo.com/news.js?q=${encodeURIComponent(niche +  (agents/intelligence/trendScanner.js:71)"}, "fullDescription": {"text": "`agents/intelligence/trendScanner.js:71` calls `GET https://duckduckgo.com/news.js?q=${encodeURIComponent(niche + ` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/duckduckgo.com/news.js`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d24c672da30f1730", "name": "Dangling fetch: POST https://${cfg().mastodonInstance}/api/v1/statuses (agents/social/index.js:38)", "shortDescription": {"text": "Dangling fetch: POST https://${cfg().mastodonInstance}/api/v1/statuses (agents/social/index.js:38)"}, "fullDescription": {"text": "`agents/social/index.js:38` calls `POST https://${cfg().mastodonInstance}/api/v1/statuses` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/<p>/api/v1/statuses`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7bbb7cff2ed2743a", "name": "Dangling fetch: POST https://www.reddit.com/api/v1/access_token (agents/social/index.js:55)", "shortDescription": {"text": "Dangling fetch: POST https://www.reddit.com/api/v1/access_token (agents/social/index.js:55)"}, "fullDescription": {"text": "`agents/social/index.js:55` calls `POST https://www.reddit.com/api/v1/access_token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/www.reddit.com/api/v1/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-932fc8930fcf0239", "name": "Dangling fetch: POST https://oauth.reddit.com/api/submit (agents/social/index.js:72)", "shortDescription": {"text": "Dangling fetch: POST https://oauth.reddit.com/api/submit (agents/social/index.js:72)"}, "fullDescription": {"text": "`agents/social/index.js:72` calls `POST https://oauth.reddit.com/api/submit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/oauth.reddit.com/api/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-815c98c551588b09", "name": "Dangling fetch: POST https://api.pinterest.com/v5/pins (agents/social/index.js:89)", "shortDescription": {"text": "Dangling fetch: POST https://api.pinterest.com/v5/pins (agents/social/index.js:89)"}, "fullDescription": {"text": "`agents/social/index.js:89` calls `POST https://api.pinterest.com/v5/pins` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.pinterest.com/v5/pins`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a510b06dcc20749", "name": "Dangling fetch: GET https://duckduckgo.com/ac/ (agents/seo/index.js:21)", "shortDescription": {"text": "Dangling fetch: GET https://duckduckgo.com/ac/ (agents/seo/index.js:21)"}, "fullDescription": {"text": "`agents/seo/index.js:21` calls `GET https://duckduckgo.com/ac/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/duckduckgo.com/ac`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61614284376f158d", "name": "Dangling fetch: GET https://suggestqueries.google.com/complete/search (agents/seo/index.js:22)", "shortDescription": {"text": "Dangling fetch: GET https://suggestqueries.google.com/complete/search (agents/seo/index.js:22)"}, "fullDescription": {"text": "`agents/seo/index.js:22` calls `GET https://suggestqueries.google.com/complete/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/suggestqueries.google.com/complete/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-a5ca577fd7d67ea4", "name": "Dangling fetch: POST https://gql.hashnode.com (publishers/blog/hashnode.js:12)", "shortDescription": {"text": "Dangling fetch: POST https://gql.hashnode.com (publishers/blog/hashnode.js:12)"}, "fullDescription": {"text": "`publishers/blog/hashnode.js:12` calls `POST https://gql.hashnode.com` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/gql.hashnode.com`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e45f54e08c17566", "name": "Dangling fetch: POST https://dev.to/api/articles (publishers/blog/devto.js:11)", "shortDescription": {"text": "Dangling fetch: POST https://dev.to/api/articles (publishers/blog/devto.js:11)"}, "fullDescription": {"text": "`publishers/blog/devto.js:11` calls `POST https://dev.to/api/articles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/dev.to/api/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-dc998a9183e2f7b7", "name": "Dangling fetch: GET https://api.medium.com/v1/me (publishers/blog/medium.js:9)", "shortDescription": {"text": "Dangling fetch: GET https://api.medium.com/v1/me (publishers/blog/medium.js:9)"}, "fullDescription": {"text": "`publishers/blog/medium.js:9` calls `GET https://api.medium.com/v1/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.medium.com/v1/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-bd4f8cb90c56941c", "name": "Dangling fetch: POST https://api.medium.com/v1/users/${authorId}/posts (publishers/blog/medium.js:19)", "shortDescription": {"text": "Dangling fetch: POST https://api.medium.com/v1/users/${authorId}/posts (publishers/blog/medium.js:19)"}, "fullDescription": {"text": "`publishers/blog/medium.js:19` calls `POST https://api.medium.com/v1/users/${authorId}/posts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.medium.com/v1/users/<p>/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-1409e6f6bf1baa3e", "name": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (core/llm/index.js:76)", "shortDescription": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (core/llm/index.js:76)"}, "fullDescription": {"text": "`core/llm/index.js:76` calls `POST https://api.groq.com/openai/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/api.groq.com/openai/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-620a4ea82b9244a6", "name": "Dangling fetch: POST https://openrouter.ai/api/v1/chat/completions (core/llm/index.js:95)", "shortDescription": {"text": "Dangling fetch: POST https://openrouter.ai/api/v1/chat/completions (core/llm/index.js:95)"}, "fullDescription": {"text": "`core/llm/index.js:95` calls `POST https://openrouter.ai/api/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/openrouter.ai/api/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f3daffa8631273e", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${key}", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${key} (core/llm/index.js:120)"}, "fullDescription": {"text": "`core/llm/index.js:120` calls `POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${key}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash/<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-7e115a82004a9c96", "name": "Dangling fetch: GET /api/jobs (components/JobBoard.tsx:17)", "shortDescription": {"text": "Dangling fetch: GET /api/jobs (components/JobBoard.tsx:17)"}, "fullDescription": {"text": "`components/JobBoard.tsx:17` calls `GET /api/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d08ff68705f7746", "name": "Dangling fetch: PATCH /api/jobs/${jobId} (components/JobBoard.tsx:41)", "shortDescription": {"text": "Dangling fetch: PATCH /api/jobs/${jobId} (components/JobBoard.tsx:41)"}, "fullDescription": {"text": "`components/JobBoard.tsx:41` calls `PATCH /api/jobs/${jobId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/jobs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f50a6743d52d37e2", "name": "Dangling fetch: POST /api/jobs (components/JobPostingForm.tsx:36)", "shortDescription": {"text": "Dangling fetch: POST /api/jobs (components/JobPostingForm.tsx:36)"}, "fullDescription": {"text": "`components/JobPostingForm.tsx:36` calls `POST /api/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-045a22280987054d", "name": "Dangling fetch: POST /api/email/subscribe (app/blog/page.tsx:17)", "shortDescription": {"text": "Dangling fetch: POST /api/email/subscribe (app/blog/page.tsx:17)"}, "fullDescription": {"text": "`app/blog/page.tsx:17` calls `POST /api/email/subscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/subscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a44948d31f0b09f", "name": "Dangling fetch: GET /api/prospects?action=summary (app/prospects/page.tsx:24)", "shortDescription": {"text": "Dangling fetch: GET /api/prospects?action=summary (app/prospects/page.tsx:24)"}, "fullDescription": {"text": "`app/prospects/page.tsx:24` calls `GET /api/prospects?action=summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/prospects`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff53a566b76ef152", "name": "Dangling fetch: POST https://api.beehiiv.com/v1/publications/subscriptions (app/api/email/subscribe/route.ts:33)", "shortDescription": {"text": "Dangling fetch: POST https://api.beehiiv.com/v1/publications/subscriptions (app/api/email/subscribe/route.ts:33)"}, "fullDescription": {"text": "`app/api/email/subscribe/route.ts:33` calls `POST https://api.beehiiv.com/v1/publications/subscriptions` 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.beehiiv.com/v1/publications/subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35d245c4f1642d70", "name": "Dangling fetch: POST http://localhost:8000/api/v1/video/generate (app/api/content/generate-video/route.ts:30)", "shortDescription": {"text": "Dangling fetch: POST http://localhost:8000/api/v1/video/generate (app/api/content/generate-video/route.ts:30)"}, "fullDescription": {"text": "`app/api/content/generate-video/route.ts:30` calls `POST http://localhost:8000/api/v1/video/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:8000/api/v1/video/generate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c1111db23d42bb1", "name": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (app/api/advisor/route.ts:10)", "shortDescription": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (app/api/advisor/route.ts:10)"}, "fullDescription": {"text": "`app/api/advisor/route.ts:10` calls `POST https://api.groq.com/openai/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.groq.com/openai/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2bd0166fc64ec042", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${key}", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${key} (app/api/advisor/route.ts:29)"}, "fullDescription": {"text": "`app/api/advisor/route.ts:29` calls `POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${key}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash/<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-5a5198dc938a1722", "name": "Dangling fetch: GET /api/data (app/dashboard/page.tsx:10)", "shortDescription": {"text": "Dangling fetch: GET /api/data (app/dashboard/page.tsx:10)"}, "fullDescription": {"text": "`app/dashboard/page.tsx:10` calls `GET /api/data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/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-7b79cd08491ca7c8", "name": "Dangling fetch: POST /api/command (app/dashboard/page.tsx:14)", "shortDescription": {"text": "Dangling fetch: POST /api/command (app/dashboard/page.tsx:14)"}, "fullDescription": {"text": "`app/dashboard/page.tsx:14` calls `POST /api/command` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/command`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-527ba85d9c87d35d", "name": "Dangling fetch: POST /api/advisor (app/dashboard/page.tsx:20)", "shortDescription": {"text": "Dangling fetch: POST /api/advisor (app/dashboard/page.tsx:20)"}, "fullDescription": {"text": "`app/dashboard/page.tsx:20` calls `POST /api/advisor` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/advisor`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-286e69a8676fd5d5", "name": "Unused endpoint: GET /llm/status", "shortDescription": {"text": "Unused endpoint: GET /llm/status"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `GET /llm/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79955e7adeb529df", "name": "Unused endpoint: POST /tool/{tool_name}", "shortDescription": {"text": "Unused endpoint: POST /tool/{tool_name}"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /tool/{tool_name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01cb84f7181332b5", "name": "Unused endpoint: POST /events/call-ended", "shortDescription": {"text": "Unused endpoint: POST /events/call-ended"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /events/call-ended` 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-0d358fccc419790e", "name": "Unused endpoint: POST /retell/webhook", "shortDescription": {"text": "Unused endpoint: POST /retell/webhook"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /retell/webhook` 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-1208ae8b7b644a47", "name": "Unused endpoint: POST /vapi/webhook", "shortDescription": {"text": "Unused endpoint: POST /vapi/webhook"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /vapi/webhook` 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-ef00178afbf31ab6", "name": "Unused endpoint: POST /twilio/voice", "shortDescription": {"text": "Unused endpoint: POST /twilio/voice"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /twilio/voice` 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-6f132a96b722386e", "name": "Unused endpoint: POST /twilio/sms", "shortDescription": {"text": "Unused endpoint: POST /twilio/sms"}, "fullDescription": {"text": "`agents/taylor/server.py` declares `POST /twilio/sms` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`runtime/agents.py` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`runtime/agents.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be653b32b59ae96c", "name": "Unused endpoint: GET /{agent_id}", "shortDescription": {"text": "Unused endpoint: GET /{agent_id}"}, "fullDescription": {"text": "`runtime/agents.py` declares `GET /{agent_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2df4cdb5233e7a00", "name": "Unused endpoint: PATCH /{agent_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{agent_id}"}, "fullDescription": {"text": "`runtime/agents.py` declares `PATCH /{agent_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca0513d7dc9cd186", "name": "Unused endpoint: POST /{agent_id}/execute", "shortDescription": {"text": "Unused endpoint: POST /{agent_id}/execute"}, "fullDescription": {"text": "`runtime/agents.py` declares `POST /{agent_id}/execute` 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-cd8dc4599ec52a08", "name": "Unused endpoint: GET /stats", "shortDescription": {"text": "Unused endpoint: GET /stats"}, "fullDescription": {"text": "`runtime/distillation.py` declares `GET /stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6f48e60c30777ab", "name": "Unused endpoint: GET /config", "shortDescription": {"text": "Unused endpoint: GET /config"}, "fullDescription": {"text": "`runtime/distillation.py` declares `GET /config` 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-cccfe89f81ab208f", "name": "Unused endpoint: POST /preview", "shortDescription": {"text": "Unused endpoint: POST /preview"}, "fullDescription": {"text": "`runtime/distillation.py` declares `POST /preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8affeb0d6aeff6df", "name": "Unused endpoint: POST /clear", "shortDescription": {"text": "Unused endpoint: POST /clear"}, "fullDescription": {"text": "`runtime/distillation.py` declares `POST /clear` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ecb33d7ed7cb7bb", "name": "Unused endpoint: GET /budget", "shortDescription": {"text": "Unused endpoint: GET /budget"}, "fullDescription": {"text": "`runtime/distillation.py` declares `GET /budget` 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-ca18521bf9795240", "name": "Unused endpoint: GET /budget/history", "shortDescription": {"text": "Unused endpoint: GET /budget/history"}, "fullDescription": {"text": "`runtime/distillation.py` declares `GET /budget/history` 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-3140e61d7cac5091", "name": "Unused endpoint: GET /agents", "shortDescription": {"text": "Unused endpoint: GET /agents"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /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-ef7f5df555c4d289", "name": "Unused endpoint: GET /connectors", "shortDescription": {"text": "Unused endpoint: GET /connectors"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /connectors` 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-5c3981d8db2a20a1", "name": "Unused endpoint: GET /cycles", "shortDescription": {"text": "Unused endpoint: GET /cycles"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /cycles` 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-171a8c12343d8e78", "name": "Unused endpoint: GET /telegram/health", "shortDescription": {"text": "Unused endpoint: GET /telegram/health"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /telegram/health` 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-0c77e6658967e090", "name": "Unused endpoint: POST /telegram/webhook", "shortDescription": {"text": "Unused endpoint: POST /telegram/webhook"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /telegram/webhook` 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-f5e8d751dae1e7c3", "name": "Unused endpoint: POST /consensus", "shortDescription": {"text": "Unused endpoint: POST /consensus"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /consensus` 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-8ad816262b88fef4", "name": "Unused endpoint: POST /video", "shortDescription": {"text": "Unused endpoint: POST /video"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /video` 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-bd6c08be1043f719", "name": "Unused endpoint: POST /eaos/enqueue", "shortDescription": {"text": "Unused endpoint: POST /eaos/enqueue"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /eaos/enqueue` 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-fbd9c675629439fb", "name": "Unused endpoint: GET /eaos/health", "shortDescription": {"text": "Unused endpoint: GET /eaos/health"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /eaos/health` 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-3e5da8a272921078", "name": "Unused endpoint: POST /social/distribute", "shortDescription": {"text": "Unused endpoint: POST /social/distribute"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /social/distribute` 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-4583497aae8775aa", "name": "Unused endpoint: POST /newsletter/publish", "shortDescription": {"text": "Unused endpoint: POST /newsletter/publish"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /newsletter/publish` 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-195d01243129fe14", "name": "Unused endpoint: GET /newsletter/stats", "shortDescription": {"text": "Unused endpoint: GET /newsletter/stats"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /newsletter/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-159ce94005975c63", "name": "Unused endpoint: POST /products/bootstrap", "shortDescription": {"text": "Unused endpoint: POST /products/bootstrap"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /products/bootstrap` 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-c938f7aecd7ea766", "name": "Unused endpoint: GET /products/revenue", "shortDescription": {"text": "Unused endpoint: GET /products/revenue"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /products/revenue` 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-09cccf2739b00244", "name": "Unused endpoint: POST /city-seo/generate", "shortDescription": {"text": "Unused endpoint: POST /city-seo/generate"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /city-seo/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-7dd30772ca92bdba", "name": "Unused endpoint: POST /chatbot/build", "shortDescription": {"text": "Unused endpoint: POST /chatbot/build"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /chatbot/build` 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-245b9aa910323ca1", "name": "Unused endpoint: GET /chatbot/revenue", "shortDescription": {"text": "Unused endpoint: GET /chatbot/revenue"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /chatbot/revenue` 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-0a8f578d5b2f6c80", "name": "Unused endpoint: GET /income/summary", "shortDescription": {"text": "Unused endpoint: GET /income/summary"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /income/summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25d2ca63197cd1e9", "name": "Unused endpoint: POST /execute", "shortDescription": {"text": "Unused endpoint: POST /execute"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /execute` 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-1224936f898bb5a8", "name": "Unused endpoint: POST /digest/run", "shortDescription": {"text": "Unused endpoint: POST /digest/run"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /digest/run` 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-3117557cffb1cb4e", "name": "Unused endpoint: POST /guard/run", "shortDescription": {"text": "Unused endpoint: POST /guard/run"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /guard/run` 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-47c2624134d8a6a1", "name": "Unused endpoint: POST /deploy/pull", "shortDescription": {"text": "Unused endpoint: POST /deploy/pull"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /deploy/pull` 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-b1a7efa8ea299d4a", "name": "Unused endpoint: GET /pod/status", "shortDescription": {"text": "Unused endpoint: GET /pod/status"}, "fullDescription": {"text": "`runtime/api.py` declares `GET /pod/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f17dcbb26b452def", "name": "Unused endpoint: POST /pod/push", "shortDescription": {"text": "Unused endpoint: POST /pod/push"}, "fullDescription": {"text": "`runtime/api.py` declares `POST /pod/push` 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-69a693dfc33637f4", "name": "Unused endpoint: POST /run", "shortDescription": {"text": "Unused endpoint: POST /run"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `POST /run` 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-8c302f129202d450", "name": "Unused endpoint: POST /run/single", "shortDescription": {"text": "Unused endpoint: POST /run/single"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `POST /run/single` 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-8901692f20160f4a", "name": "Unused endpoint: POST /fire", "shortDescription": {"text": "Unused endpoint: POST /fire"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `POST /fire` 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-54041df53ed58559", "name": "Unused endpoint: GET /task/{task_id}", "shortDescription": {"text": "Unused endpoint: GET /task/{task_id}"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `GET /task/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d932bba6e7b5b573", "name": "Unused endpoint: GET /dlq", "shortDescription": {"text": "Unused endpoint: GET /dlq"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `GET /dlq` 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-160c46d3e63694d8", "name": "Unused endpoint: POST /dlq/drain", "shortDescription": {"text": "Unused endpoint: POST /dlq/drain"}, "fullDescription": {"text": "`runtime/gmaos/api.py` declares `POST /dlq/drain` 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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`backend/server.py` declares `GET /api/health` 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-3b37265900e79a8a", "name": "Unused endpoint: GET /api/stats", "shortDescription": {"text": "Unused endpoint: GET /api/stats"}, "fullDescription": {"text": "`backend/server.py` declares `GET /api/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17619"}, "properties": {"repository": "quantam101/profitenginev5", "repoUrl": "https://github.com/quantam101/profitenginev5", "branch": "main"}, "results": [{"ruleId": "scanner-8512563c5d93126b", "level": "note", "message": {"text": "Possibly dead Python function: tier_split"}, "properties": {"repobilityId": "c1bc155d694313d4", "scanner": "scanner-primary", "fingerprint": "8512563c5d93126b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distillation/router.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4fd40d11a2f46c94", "level": "note", "message": {"text": "Possibly dead Python function: to_dict"}, "properties": {"repobilityId": "017f31ed997ca27d", "scanner": "scanner-primary", "fingerprint": "4fd40d11a2f46c94", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distillation/engine.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b1c57e8ed70f2c5", "level": "note", "message": {"text": "Possibly dead Python function: capture_email"}, "properties": {"repobilityId": "318063bc899fe775", "scanner": "scanner-primary", "fingerprint": "9b1c57e8ed70f2c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/faceless-marketing-automation.py:149"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b53791220a333b5", "level": "note", "message": {"text": "Possibly dead Python function: redis_cmd"}, "properties": {"repobilityId": "50e020eca7069131", "scanner": "scanner-primary", "fingerprint": "5b53791220a333b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/push_cycles_to_redis.py:26"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dcc27033eab429f5", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "dcc27033eab429f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/publish_article_resilient.py:301"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4f07913e8acf61f", "level": "note", "message": {"text": "Possibly dead Python function: generate_article_with_fallback"}, "properties": {"repobilityId": "4989c9b8f110abbc", "scanner": "scanner-primary", "fingerprint": "e4f07913e8acf61f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/publish_article_resilient.py:393"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-192cc44adbaa9d9b", "level": "note", "message": {"text": "Possibly dead Python function: publish_github_strict"}, "properties": {"repobilityId": "4c9c8296d13e888c", "scanner": "scanner-primary", "fingerprint": "192cc44adbaa9d9b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/publish_article_resilient.py:404"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2efb034d7aefd4fa", "level": "note", "message": {"text": "Possibly dead Python function: run_health_monitor"}, "properties": {"repobilityId": "e8434528199c8792", "scanner": "scanner-primary", "fingerprint": "2efb034d7aefd4fa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/failover.py:97"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1252d8fbc980d17", "level": "note", "message": {"text": "Possibly dead Python function: retell_config"}, "properties": {"repobilityId": "1d4ba87ba0457884", "scanner": "scanner-primary", "fingerprint": "f1252d8fbc980d17", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/llm_router.py:82"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee1305a7225e06ae", "level": "note", "message": {"text": "Possibly dead Python function: tool_check_calendar"}, "properties": {"repobilityId": "38c5adc2d26775cc", "scanner": "scanner-primary", "fingerprint": "ee1305a7225e06ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e332a54fd2a40f76", "level": "note", "message": {"text": "Possibly dead Python function: tool_book_appointment"}, "properties": {"repobilityId": "dd0bc5ca56242548", "scanner": "scanner-primary", "fingerprint": "e332a54fd2a40f76", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py:175"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ab5d662ca27b2e6", "level": "note", "message": {"text": "Possibly dead Python function: tool_create_secure_payment_link"}, "properties": {"repobilityId": "9dc0e6c4cf1d6a16", "scanner": "scanner-primary", "fingerprint": "4ab5d662ca27b2e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py:202"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9e9e4dd617231b24", "level": "note", "message": {"text": "Possibly dead Python function: list_articles"}, "properties": {"repobilityId": "2140f53ea7cd695e", "scanner": "scanner-primary", "fingerprint": "9e9e4dd617231b24", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/devto_client.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-416343b645642077", "level": "note", "message": {"text": "Possibly dead Python function: send_publish_digest"}, "properties": {"repobilityId": "5da4dd830f3a6ec9", "scanner": "scanner-primary", "fingerprint": "416343b645642077", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/gmail_client.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3b251ebc16ce4eae", "level": "note", "message": {"text": "Possibly dead Python function: to_traceparent"}, "properties": {"repobilityId": "82b80880d5ca0cfd", "scanner": "scanner-primary", "fingerprint": "3b251ebc16ce4eae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/telemetry.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efaae77f5d392129", "level": "note", "message": {"text": "Possibly dead Python function: parse_traceparent"}, "properties": {"repobilityId": "741191c336ec7fe4", "scanner": "scanner-primary", "fingerprint": "efaae77f5d392129", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/telemetry.py:121"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf91d1b43a0462ab", "level": "note", "message": {"text": "Possibly dead Python function: warn"}, "properties": {"repobilityId": "ef681b5db7b88c81", "scanner": "scanner-primary", "fingerprint": "cf91d1b43a0462ab", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/telemetry.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-511ffe5c962dc317", "level": "note", "message": {"text": "Possibly dead Python function: to_ndjson"}, "properties": {"repobilityId": "95ed866614fed08a", "scanner": "scanner-primary", "fingerprint": "511ffe5c962dc317", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/telemetry.py:163"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10825a1c71165aab", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "10825a1c71165aab", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/opportunity_intelligence.py:95"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-904cc402c1f6f5d4", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "904cc402c1f6f5d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/opportunity_intelligence.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7dbe64a46d1d3255", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "7dbe64a46d1d3255", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/opportunity_intelligence.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-78de592d17004da6", "level": "note", "message": {"text": "Possibly dead Python function: recent"}, "properties": {"repobilityId": "d2230ce792becd68", "scanner": "scanner-primary", "fingerprint": "78de592d17004da6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/opportunity_intelligence.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b549024da0fcfc75", "level": "note", "message": {"text": "Possibly dead Python function: is_approved"}, "properties": {"repobilityId": "5fe96867f86720e4", "scanner": "scanner-primary", "fingerprint": "b549024da0fcfc75", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/approval_gate.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f74161dd1b745c1", "level": "note", "message": {"text": "Possibly dead Python function: run_agent"}, "properties": {"repobilityId": "869a607d50b48872", "scanner": "scanner-primary", "fingerprint": "8f74161dd1b745c1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/enterprise_mesh.py:147"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ba8efa09df5a508", "level": "note", "message": {"text": "Possibly dead Python function: dispatch_consensus_default"}, "properties": {"repobilityId": "2950ecd8ef78c4ce", "scanner": "scanner-primary", "fingerprint": "3ba8efa09df5a508", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/enterprise_mesh.py:347"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-200bbe3990174892", "level": "note", "message": {"text": "Possibly dead Python function: pages_url"}, "properties": {"repobilityId": "92d6cea218980138", "scanner": "scanner-primary", "fingerprint": "200bbe3990174892", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/github_client.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e2b0336952bb89a", "level": "note", "message": {"text": "Possibly dead Python function: infer_with_report"}, "properties": {"repobilityId": "01d2155bc77e58e7", "scanner": "scanner-primary", "fingerprint": "8e2b0336952bb89a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/inference_cascade.py:150"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8465f762f8fa71e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 index.js:17"}, "properties": {"repobilityId": "e7f4432877081bd5", "scanner": "scanner-primary", "fingerprint": "8465f762f8fa71e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c9fb65a3b905a80e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/scripts/check-env.js:50"}, "properties": {"repobilityId": "753574bb76b10e50", "scanner": "scanner-primary", "fingerprint": "c9fb65a3b905a80e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49ade3001260a1be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Hero.jsx:66"}, "properties": {"repobilityId": "3918766e5b86ff1e", "scanner": "scanner-primary", "fingerprint": "49ade3001260a1be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-af4f3cb61870ac1b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/CohortBar.jsx:22"}, "properties": {"repobilityId": "2ce65f3858283bc5", "scanner": "scanner-primary", "fingerprint": "af4f3cb61870ac1b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8f32433e4f0df61", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/Overview.jsx:223"}, "properties": {"repobilityId": "4b7c914cc8e6dff3", "scanner": "scanner-primary", "fingerprint": "c8f32433e4f0df61", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7859a45d58ebd8dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/AgentsPage.jsx:95"}, "properties": {"repobilityId": "482231fefdc925c8", "scanner": "scanner-primary", "fingerprint": "7859a45d58ebd8dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9642f1d7ec257b52", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/DashboardLayout.jsx:118"}, "properties": {"repobilityId": "21a73a29e50b54c9", "scanner": "scanner-primary", "fingerprint": "9642f1d7ec257b52", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0cbbe92f362f0abd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/dashboard/CashAIPage.jsx:55"}, "properties": {"repobilityId": "daa74e66cca6f865", "scanner": "scanner-primary", "fingerprint": "0cbbe92f362f0abd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dfdc74c886367417", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/init-db.ts:31"}, "properties": {"repobilityId": "d0b22ddfc3fc6af7", "scanner": "scanner-primary", "fingerprint": "dfdc74c886367417", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df91b5f1d3c1da03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/load-prospects.js:132"}, "properties": {"repobilityId": "8a10f20bb57dbed6", "scanner": "scanner-primary", "fingerprint": "df91b5f1d3c1da03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-793ed97896a2576e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/email/subscribe/route.ts:67"}, "properties": {"repobilityId": "3f48054747cdb571", "scanner": "scanner-primary", "fingerprint": "793ed97896a2576e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3799a4c0081ee2b8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/webhooks/stripe/route.ts:79"}, "properties": {"repobilityId": "846100663a55660a", "scanner": "scanner-primary", "fingerprint": "3799a4c0081ee2b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-19920d151524eec2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/stripe/route.ts:51"}, "properties": {"repobilityId": "820f2a9402f92ee7", "scanner": "scanner-primary", "fingerprint": "19920d151524eec2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11e8c7def0ba8b82", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/work/page.tsx:135"}, "properties": {"repobilityId": "ce7bfda0bf8ecb1a", "scanner": "scanner-primary", "fingerprint": "11e8c7def0ba8b82", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b09ddc8bbb7ea06a", "level": "warning", "message": {"text": "Privileged port 73 in use"}, "properties": {"repobilityId": "2611ab4c2611a78c", "scanner": "scanner-primary", "fingerprint": "b09ddc8bbb7ea06a", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/first-boot.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2f382ab93f59397", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "a2f382ab93f59397", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bootstrap-server.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8748fcf2fe83ef14", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "8748fcf2fe83ef14", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-content.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-870bfa30451a9474", "level": "warning", "message": {"text": "Privileged port 8 in use"}, "properties": {"repobilityId": "8e03f5632e703751", "scanner": "scanner-primary", "fingerprint": "870bfa30451a9474", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ops-monitor.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-abdcd7eaa9b5316a", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "abdcd7eaa9b5316a", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/income-streams.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-de3c1f217d72a063", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "1de0ecd007803dbd", "scanner": "scanner-primary", "fingerprint": "de3c1f217d72a063", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-465c2e3051c59de8", "level": "warning", "message": {"text": "Dockerfile runs as root: agents/taylor/Dockerfile"}, "properties": {"repobilityId": "a0e6a97b7215fe39", "scanner": "scanner-primary", "fingerprint": "465c2e3051c59de8", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-474255bf4f54c9dd", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "d61e7a290c54dbb1", "scanner": "scanner-primary", "fingerprint": "474255bf4f54c9dd", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9e82a808f0efc57f", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in distillation-upgrade/README.md:6"}, "properties": {"repobilityId": "9386344eb649810e", "scanner": "scanner-primary", "fingerprint": "9e82a808f0efc57f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distillation-upgrade/README.md"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-a76ede3523297d10", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-parallel-agents.mjs:1"}, "properties": {"repobilityId": "b87aab64059ef0d9", "scanner": "scanner-primary", "fingerprint": "a76ede3523297d10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-parallel-agents.mjs"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2155438a4fac014e", "level": "error", "message": {"text": "Possible secret in scripts/bootstrap-server.sh"}, "properties": {"repobilityId": "75842d2493bb9c33", "scanner": "scanner-primary", "fingerprint": "2155438a4fac014e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bootstrap-server.sh"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-208f077c3acb34a1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard/public/index.html:169"}, "properties": {"repobilityId": "a258de0e9e4ef49a", "scanner": "scanner-primary", "fingerprint": "208f077c3acb34a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard/public/index.html"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-0260f2dee5deb99b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in app/api/widget/embed-source.ts:153"}, "properties": {"repobilityId": "adfaebfc37ac8dfc", "scanner": "scanner-primary", "fingerprint": "0260f2dee5deb99b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/widget/embed-source.ts"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-56587f70434bff96", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/widget/route.ts:15"}, "properties": {"repobilityId": "d32ddf4e4d11d92a", "scanner": "scanner-primary", "fingerprint": "56587f70434bff96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/widget/route.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-fca9c1b7d5fcd6be", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/widget/track/route.ts:15"}, "properties": {"repobilityId": "27bcf09cf9758e32", "scanner": "scanner-primary", "fingerprint": "fca9c1b7d5fcd6be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/widget/track/route.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1ec27f8bbb2a36b8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/work/page.tsx:135"}, "properties": {"repobilityId": "d58649fee0a5eb06", "scanner": "scanner-primary", "fingerprint": "1ec27f8bbb2a36b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/work/page.tsx"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-05fac8c9f46f3d56", "level": "error", "message": {"text": "Possible secret in runtime/hypervisor/litellm/config.yaml"}, "properties": {"repobilityId": "00c3f2c29059fdeb", "scanner": "scanner-primary", "fingerprint": "05fac8c9f46f3d56", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/hypervisor/litellm/config.yaml"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-15c21bfdbbcd26f5", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in runtime/eaos/social_engine.py:117"}, "properties": {"repobilityId": "74641e479aae7189", "scanner": "scanner-primary", "fingerprint": "15c21bfdbbcd26f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-420aa07a9f8f51c3", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in backend/server.py:134"}, "properties": {"repobilityId": "ade4cc2906bcbfb9", "scanner": "scanner-primary", "fingerprint": "420aa07a9f8f51c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-5ee794c13e80eb86", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "afe91c9c9aad7eda", "scanner": "scanner-primary", "fingerprint": "5ee794c13e80eb86", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/content-factory-autopublish-gate.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-5ee794c13e80eb86", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0e78290f1258d9f", "scanner": "scanner-primary", "fingerprint": "5ee794c13e80eb86", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/content-factory-autopublish-gate.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-5ee794c13e80eb86", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "df548325d3824c03", "scanner": "scanner-primary", "fingerprint": "5ee794c13e80eb86", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/content-factory-autopublish-gate.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-55a607827c189d63", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0a54837eb1853b6c", "scanner": "scanner-primary", "fingerprint": "55a607827c189d63", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-guard.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-c67ec90d4781244c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5b265b4f2d84d628", "scanner": "scanner-primary", "fingerprint": "c67ec90d4781244c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-content.yml"}, "region": {"startLine": 151}}}]}, {"ruleId": "scanner-c67ec90d4781244c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f8e8ee23857c1f11", "scanner": "scanner-primary", "fingerprint": "c67ec90d4781244c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-content.yml"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-c67ec90d4781244c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6dd59ed081ac915a", "scanner": "scanner-primary", "fingerprint": "c67ec90d4781244c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-content.yml"}, "region": {"startLine": 348}}}]}, {"ruleId": "scanner-0f26dfe665f9a851", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e3c6c2b826d38f59", "scanner": "scanner-primary", "fingerprint": "0f26dfe665f9a851", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-content.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1eaacbb3ef83696", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "127348e411765391", "scanner": "scanner-primary", "fingerprint": "e1eaacbb3ef83696", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/health-check-frequent.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-e1eaacbb3ef83696", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ba2c9e389697a182", "scanner": "scanner-primary", "fingerprint": "e1eaacbb3ef83696", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/health-check-frequent.yml"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-e1eaacbb3ef83696", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ba2c9e389697a182", "scanner": "scanner-primary", "fingerprint": "e1eaacbb3ef83696", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/health-check-frequent.yml"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-cb159ef12c1f1bd8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "82c7fed6d6b2bb78", "scanner": "scanner-primary", "fingerprint": "cb159ef12c1f1bd8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/recovery-status-reporter.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-776314b039046a7f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "5015085e7b7e5c64", "scanner": "scanner-primary", "fingerprint": "776314b039046a7f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/recovery-status-reporter.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68223d34541899f5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "41a0c9cb50e9e047", "scanner": "scanner-primary", "fingerprint": "68223d34541899f5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/oci-auto-recovery.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-3b86a36e2bf2b3ba", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "313b656883f7ccee", "scanner": "scanner-primary", "fingerprint": "3b86a36e2bf2b3ba", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ops-monitor.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-3b86a36e2bf2b3ba", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b5d6c154a730bca8", "scanner": "scanner-primary", "fingerprint": "3b86a36e2bf2b3ba", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ops-monitor.yml"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-3b86a36e2bf2b3ba", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b5d6c154a730bca8", "scanner": "scanner-primary", "fingerprint": "3b86a36e2bf2b3ba", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ops-monitor.yml"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-6dacffdc7ff96b47", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d189dd7a22fa7a28", "scanner": "scanner-primary", "fingerprint": "6dacffdc7ff96b47", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/runtime-image.yml"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-6dacffdc7ff96b47", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "13b6e9c93324f957", "scanner": "scanner-primary", "fingerprint": "6dacffdc7ff96b47", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/runtime-image.yml"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-6dacffdc7ff96b47", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "02b4f1e3ae551c71", "scanner": "scanner-primary", "fingerprint": "6dacffdc7ff96b47", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/runtime-image.yml"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-546fc00d8c693544", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "114091515260d6e2", "scanner": "scanner-primary", "fingerprint": "546fc00d8c693544", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/runtime-image.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec1a1527b07177e2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "77b4bea05ef5d5ca", "scanner": "scanner-primary", "fingerprint": "ec1a1527b07177e2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cycle.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-ec1a1527b07177e2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e14b5ced418f2f7f", "scanner": "scanner-primary", "fingerprint": "ec1a1527b07177e2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cycle.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-d5130b8a513a3472", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "67c4c6a71ddbb6b2", "scanner": "scanner-primary", "fingerprint": "d5130b8a513a3472", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/oci-recovery-escalate.yml"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-d5130b8a513a3472", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "67c4c6a71ddbb6b2", "scanner": "scanner-primary", "fingerprint": "d5130b8a513a3472", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/oci-recovery-escalate.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-d93a0e73950b2a0d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "80b455530967ce73", "scanner": "scanner-primary", "fingerprint": "d93a0e73950b2a0d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/self-improve.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-d93a0e73950b2a0d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "18045f781355003a", "scanner": "scanner-primary", "fingerprint": "d93a0e73950b2a0d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/self-improve.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-86d7ff5bdc06ea25", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1e5d9849955bca98", "scanner": "scanner-primary", "fingerprint": "86d7ff5bdc06ea25", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/setup-telegram.yml"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-86d7ff5bdc06ea25", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1e5d9849955bca98", "scanner": "scanner-primary", "fingerprint": "86d7ff5bdc06ea25", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/setup-telegram.yml"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c71c4053464cd39c", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "15b01c1e36e9f12b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d08151bb856f4436", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d08151bb856f4436", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 152}}}]}, {"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-bf9c0e133a71bd05", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5d5ea8e5a701e7aa", "scanner": "scanner-primary", "fingerprint": "bf9c0e133a71bd05", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/eaos-pod-render.yml"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-8ba136dd351a8f23", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1a90b8f9413efc4c", "scanner": "scanner-primary", "fingerprint": "8ba136dd351a8f23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/emergency-recovery-ssh.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "6874e09a57382ce2", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-0e8a76eb13fd3249", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/package.json"}, "properties": {"repobilityId": "d8c65da5b68ee95b", "scanner": "scanner-primary", "fingerprint": "0e8a76eb13fd3249", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "02b3900413beb51f", "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": "49081cf329ecb1c9", "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": "d52ecd944767b8e1", "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": "43783577216a182f", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "89674513e0f6cc16", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "02ab70aa8ae25d45", "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": "230651248e0590fe", "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": "3edf3b08f898d26f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-9abbace5a3d1a525", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/dashboard/Overview.jsx:61"}, "properties": {"repobilityId": "4da06a0fea4235bc", "scanner": "scanner-primary", "fingerprint": "9abbace5a3d1a525", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-baa27f8b64295218", "level": "note", "message": {"text": "Legacy-named symbol `primary_copy` in tests/test_autopublish_gate.py:68"}, "properties": {"repobilityId": "bc89d2442cc0374e", "scanner": "scanner-primary", "fingerprint": "baa27f8b64295218", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-30b08e355699a9bb", "level": "note", "message": {"text": "Legacy-named symbol `primary_copy` in scripts/autopublish_gate.py:70"}, "properties": {"repobilityId": "985fd0b3aee63d06", "scanner": "scanner-primary", "fingerprint": "30b08e355699a9bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-24985ebbc680a4db", "level": "note", "message": {"text": "Legacy-named symbol `primary_copy` in scripts/content_factory_run.py:23"}, "properties": {"repobilityId": "9a66032ef9bde3ed", "scanner": "scanner-primary", "fingerprint": "24985ebbc680a4db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-de1674e02257125e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/email/subscribe/route.ts:33"}, "properties": {"repobilityId": "e4412c17ab4d813a", "scanner": "scanner-primary", "fingerprint": "de1674e02257125e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ab87d99bcf22d6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/content/generate-video/route.ts:30"}, "properties": {"repobilityId": "c8ecffb41dd07e5a", "scanner": "scanner-primary", "fingerprint": "2ab87d99bcf22d6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-815aebca6f95b489", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tokenforge/route.ts:36"}, "properties": {"repobilityId": "833b3a2c2a294154", "scanner": "scanner-primary", "fingerprint": "815aebca6f95b489", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ee9c6dd71162b37", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/blog/route.ts:59"}, "properties": {"repobilityId": "60880ccfa518cb66", "scanner": "scanner-primary", "fingerprint": "3ee9c6dd71162b37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0353f5217e693305", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/webhooks/dispatch/route.ts:65"}, "properties": {"repobilityId": "5f22bfcb4cac45c0", "scanner": "scanner-primary", "fingerprint": "0353f5217e693305", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea776ff03d192856", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/dashboard/page.tsx:10"}, "properties": {"repobilityId": "99a1a9c26b5502ec", "scanner": "scanner-primary", "fingerprint": "ea776ff03d192856", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2db8942982a720a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/health.mjs:4"}, "properties": {"repobilityId": "ebd6b0d401aa3607", "scanner": "scanner-primary", "fingerprint": "2db8942982a720a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f2f542625996d6f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai-gateway.mjs:190"}, "properties": {"repobilityId": "908aefbcca4aa88d", "scanner": "scanner-primary", "fingerprint": "1f2f542625996d6f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e9c5c56b1deb7237", "level": "note", "message": {"text": "Legacy-named symbol `transfer_to_backup` in agents/taylor/server.py:242"}, "properties": {"repobilityId": "e70d63ca20b89122", "scanner": "scanner-primary", "fingerprint": "e9c5c56b1deb7237", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9029706bc52f5bda", "level": "none", "message": {"text": "Commented-code block (6 lines) in runtime/swarm_engine.py:398"}, "properties": {"repobilityId": "3fccc9ad492224a6", "scanner": "scanner-primary", "fingerprint": "9029706bc52f5bda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97595e170d47e6c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in runtime/verifier.py:14"}, "properties": {"repobilityId": "3a083481baf4cc6e", "scanner": "scanner-primary", "fingerprint": "97595e170d47e6c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-157f1a69ce78b185", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 runtime/api.py:604"}, "properties": {"repobilityId": "c6e40c42fb7bf6a2", "scanner": "scanner-primary", "fingerprint": "157f1a69ce78b185", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c95b495d1a7cb7d2", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:147"}, "properties": {"repobilityId": "ac59bbd0e97e4e5d", "scanner": "scanner-primary", "fingerprint": "c95b495d1a7cb7d2", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-3c4b3810ff41a83a", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:156"}, "properties": {"repobilityId": "881e9b95813b28c6", "scanner": "scanner-primary", "fingerprint": "3c4b3810ff41a83a", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-f6496b68ed81ada2", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_twitter` \u2014 runtime/eaos/social_engine.py:161"}, "properties": {"repobilityId": "9cbbf62e70692ed6", "scanner": "scanner-primary", "fingerprint": "f6496b68ed81ada2", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-cb113840fd63e517", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_linkedin` \u2014 runtime/eaos/social_engine.py:193"}, "properties": {"repobilityId": "f7b382774b0fb93f", "scanner": "scanner-primary", "fingerprint": "cb113840fd63e517", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-af304024f7920670", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:223"}, "properties": {"repobilityId": "d90dffee59b60dc1", "scanner": "scanner-primary", "fingerprint": "af304024f7920670", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-0e0de6104ac0b5f9", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_reddit` \u2014 runtime/eaos/social_engine.py:239"}, "properties": {"repobilityId": "2e0bca5f4dacfd03", "scanner": "scanner-primary", "fingerprint": "0e0de6104ac0b5f9", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 239}}}]}, {"ruleId": "scanner-032cf152f3b17c1c", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_telegram` \u2014 runtime/eaos/social_engine.py:261"}, "properties": {"repobilityId": "9e7f37063ba4e2ec", "scanner": "scanner-primary", "fingerprint": "032cf152f3b17c1c", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-b24795799683cc46", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:291"}, "properties": {"repobilityId": "84b991238cd2cc08", "scanner": "scanner-primary", "fingerprint": "b24795799683cc46", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-a4365316d465316b", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_tiktok` \u2014 runtime/eaos/social_engine.py:300"}, "properties": {"repobilityId": "3c35bde9acd10b73", "scanner": "scanner-primary", "fingerprint": "a4365316d465316b", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 300}}}]}, {"ruleId": "scanner-d7ce2bb0c8038530", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_facebook` \u2014 runtime/eaos/social_engine.py:325"}, "properties": {"repobilityId": "e07d7bda19b7197b", "scanner": "scanner-primary", "fingerprint": "d7ce2bb0c8038530", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-84b3e6f5c0a20326", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:354"}, "properties": {"repobilityId": "0abb89f56a1611ce", "scanner": "scanner-primary", "fingerprint": "84b3e6f5c0a20326", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-00f1245a6217522a", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:367"}, "properties": {"repobilityId": "3b5f24c8e03428a0", "scanner": "scanner-primary", "fingerprint": "00f1245a6217522a", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-a89c2172623d7d84", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_instagram` \u2014 runtime/eaos/social_engine.py:379"}, "properties": {"repobilityId": "59b81c7217bb1c30", "scanner": "scanner-primary", "fingerprint": "a89c2172623d7d84", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 379}}}]}, {"ruleId": "scanner-8964a9e65f78f858", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:409"}, "properties": {"repobilityId": "2728745379e3e2d3", "scanner": "scanner-primary", "fingerprint": "8964a9e65f78f858", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 409}}}]}, {"ruleId": "scanner-0ffceaab59dc2d6d", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:436"}, "properties": {"repobilityId": "a41ce08f9e260e4b", "scanner": "scanner-primary", "fingerprint": "0ffceaab59dc2d6d", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 436}}}]}, {"ruleId": "scanner-eee532e6a1b5de30", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _post_youtube` \u2014 runtime/eaos/social_engine.py:449"}, "properties": {"repobilityId": "3528c2d395eeeff4", "scanner": "scanner-primary", "fingerprint": "eee532e6a1b5de30", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 449}}}]}, {"ruleId": "scanner-0888288a31969c6d", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def _is_online` \u2014 runtime/eaos/social_engine.py:466"}, "properties": {"repobilityId": "79c0d83e26e83687", "scanner": "scanner-primary", "fingerprint": "0888288a31969c6d", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/eaos/social_engine.py"}, "region": {"startLine": 466}}}]}, {"ruleId": "scanner-f7ad64164173731a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pipeline/index.js:96"}, "properties": {"repobilityId": "2a9a5d4d38e07294", "scanner": "scanner-primary", "fingerprint": "f7ad64164173731a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-68c68ee3d1ddaa66", "level": "note", "message": {"text": "244 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "b9083d35f5b34ab5", "scanner": "scanner-primary", "fingerprint": "68c68ee3d1ddaa66", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "2006beab8d538745", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "705fe1d3028f66fb", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2ed3c0951fc0f861", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fc60a0e097b5a529", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "edd79b1b4f631796", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fdbf5f77392ea37b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b6711093d43de38c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d532c6031611d4f6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "5f140be3262428ca", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d56d4d9384ee8ea7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8ec2d4feffe61697", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "120e8ebbe2053899", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8c860c74db57ba9d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "4dd75f1de63fad63", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2c7e64c17996a660", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d65209e0c7e1544c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "782e5577357c3ac4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "60091c0a5afce1f8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a3182f402d1d256b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "753f1f021ed9b54f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-aabe1d4307d3479b", "level": "warning", "message": {"text": "Frontend route `/checkout/success` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "0e11eecd07eace64", "scanner": "scanner-primary", "fingerprint": "aabe1d4307d3479b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8cfecd897d62f119", "level": "warning", "message": {"text": "Frontend route `sovereign` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "6574365278c976ef", "scanner": "scanner-primary", "fingerprint": "8cfecd897d62f119", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c0965ac717037bc8", "level": "warning", "message": {"text": "Frontend route `cash-ai` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "aedb0c968ad3f1d3", "scanner": "scanner-primary", "fingerprint": "c0965ac717037bc8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-aa31008f322ca593", "level": "warning", "message": {"text": "Frontend route `lifelong` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "9c2ec44ce9b3da64", "scanner": "scanner-primary", "fingerprint": "aa31008f322ca593", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-75071680347aeb9c", "level": "warning", "message": {"text": "Frontend route `agents` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "ffa44e7cead3f183", "scanner": "scanner-primary", "fingerprint": "75071680347aeb9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-69a8a1d21ca4ae6a", "level": "warning", "message": {"text": "Frontend route `approvals` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "d7ffeae58d706c4f", "scanner": "scanner-primary", "fingerprint": "69a8a1d21ca4ae6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a6c911c6b95c224f", "level": "warning", "message": {"text": "Frontend route `advisor` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "776c1e883dd367f9", "scanner": "scanner-primary", "fingerprint": "a6c911c6b95c224f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-82c19d9a8a7e0dda", "level": "warning", "message": {"text": "Frontend route `scout` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "84f76a1dbf70dd9d", "scanner": "scanner-primary", "fingerprint": "82c19d9a8a7e0dda", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f44f47758636e261", "level": "warning", "message": {"text": "Frontend route `content` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "d02779e1938bf29c", "scanner": "scanner-primary", "fingerprint": "f44f47758636e261", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-49c85d3f71a745e0", "level": "warning", "message": {"text": "Frontend route `revenue` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "a90f8d0db413eaf4", "scanner": "scanner-primary", "fingerprint": "49c85d3f71a745e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-20727b9955fd8425", "level": "warning", "message": {"text": "Frontend route `books` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "d9d5a126eb3edc1f", "scanner": "scanner-primary", "fingerprint": "20727b9955fd8425", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-638d2e89a21b5516", "level": "warning", "message": {"text": "Frontend route `deployments` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "801b5aee7eff5e01", "scanner": "scanner-primary", "fingerprint": "638d2e89a21b5516", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-912aa1a3bc525ec4", "level": "warning", "message": {"text": "Frontend route `builds` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "db08f5082dc3b4fe", "scanner": "scanner-primary", "fingerprint": "912aa1a3bc525ec4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f5ad3c3c67b81227", "level": "warning", "message": {"text": "Frontend route `audit` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "5eefcce3ef6ff8cd", "scanner": "scanner-primary", "fingerprint": "f5ad3c3c67b81227", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fe3289a17cfdcc36", "level": "warning", "message": {"text": "Frontend route `proposals` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "8dbab1027f4f8e19", "scanner": "scanner-primary", "fingerprint": "fe3289a17cfdcc36", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-289bf7fe6a0a5e97", "level": "warning", "message": {"text": "Frontend route `proof-of-work` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "4052dea729bc022a", "scanner": "scanner-primary", "fingerprint": "289bf7fe6a0a5e97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-12e3efb07253962e", "level": "warning", "message": {"text": "Frontend route `analytics` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "e785409b4b6af6fd", "scanner": "scanner-primary", "fingerprint": "12e3efb07253962e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-76e8cf7969dc452a", "level": "warning", "message": {"text": "Frontend route `distillation` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "8ed8f5543ac401b0", "scanner": "scanner-primary", "fingerprint": "76e8cf7969dc452a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7d2ca489ee3a3be3", "level": "warning", "message": {"text": "Frontend route `cost` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "db79b3ba6cf388b2", "scanner": "scanner-primary", "fingerprint": "7d2ca489ee3a3be3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e3e8ede0b6b93a7a", "level": "warning", "message": {"text": "Frontend route `secrets` has no Link/navigate to it \u2014 frontend/src/App.js"}, "properties": {"repobilityId": "0e19e5862fe72960", "scanner": "scanner-primary", "fingerprint": "e3e8ede0b6b93a7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-99c0d8fcfa7e702a", "level": "error", "message": {"text": "FastAPI POST `call_tool_directly` without auth dependency \u2014 agents/taylor/server.py:271"}, "properties": {"repobilityId": "c2115882eea36194", "scanner": "scanner-primary", "fingerprint": "99c0d8fcfa7e702a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 271}}}]}, {"ruleId": "scanner-38f3b13b9453a4f3", "level": "error", "message": {"text": "FastAPI POST `call_ended_event` without auth dependency \u2014 agents/taylor/server.py:276"}, "properties": {"repobilityId": "b58671f482169ee9", "scanner": "scanner-primary", "fingerprint": "38f3b13b9453a4f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-81495b2ced06037f", "level": "error", "message": {"text": "FastAPI POST `retell_webhook` without auth dependency \u2014 agents/taylor/server.py:292"}, "properties": {"repobilityId": "a937210c0f79869d", "scanner": "scanner-primary", "fingerprint": "81495b2ced06037f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "scanner-eddedb84c4a4b128", "level": "error", "message": {"text": "FastAPI POST `vapi_webhook` without auth dependency \u2014 agents/taylor/server.py:311"}, "properties": {"repobilityId": "a1fff5cdb63696ec", "scanner": "scanner-primary", "fingerprint": "eddedb84c4a4b128", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-c1bb5cd1d4feec15", "level": "error", "message": {"text": "FastAPI POST `twilio_voice` without auth dependency \u2014 agents/taylor/server.py:328"}, "properties": {"repobilityId": "7daa3035c3e01762", "scanner": "scanner-primary", "fingerprint": "c1bb5cd1d4feec15", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-bd47228b80d620fd", "level": "error", "message": {"text": "FastAPI POST `twilio_sms` without auth dependency \u2014 agents/taylor/server.py:341"}, "properties": {"repobilityId": "7f6a0cb79a1bb130", "scanner": "scanner-primary", "fingerprint": "bd47228b80d620fd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/taylor/server.py"}, "region": {"startLine": 341}}}]}, {"ruleId": "scanner-558adf97df395d46", "level": "error", "message": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 runtime/agents.py:61"}, "properties": {"repobilityId": "bc0dd5a8a4976ba2", "scanner": "scanner-primary", "fingerprint": "558adf97df395d46", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/agents.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-6e3cbfef5efeae81", "level": "error", "message": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 runtime/agents.py:104"}, "properties": {"repobilityId": "d46d507c4a6dd3bd", "scanner": "scanner-primary", "fingerprint": "6e3cbfef5efeae81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/agents.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-eb92ffafd0600a47", "level": "error", "message": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 runtime/agents.py:121"}, "properties": {"repobilityId": "9119c0b9eed74e15", "scanner": "scanner-primary", "fingerprint": "eb92ffafd0600a47", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/agents.py"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-39705b5a31e064b5", "level": "error", "message": {"text": "FastAPI POST `preview` without auth dependency \u2014 runtime/distillation.py:282"}, "properties": {"repobilityId": "79839ba59ce4c50d", "scanner": "scanner-primary", "fingerprint": "39705b5a31e064b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/distillation.py"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-8ce93c38971adf08", "level": "error", "message": {"text": "FastAPI POST `clear` without auth dependency \u2014 runtime/distillation.py:314"}, "properties": {"repobilityId": "a1c69fbc0c3db1f8", "scanner": "scanner-primary", "fingerprint": "8ce93c38971adf08", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/distillation.py"}, "region": {"startLine": 314}}}]}, {"ruleId": "scanner-97b2efb421e72b56", "level": "error", "message": {"text": "FastAPI POST `telegram_webhook` without auth dependency \u2014 runtime/api.py:140"}, "properties": {"repobilityId": "681454b153cd1c08", "scanner": "scanner-primary", "fingerprint": "97b2efb421e72b56", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-fe5f3309d82c9732", "level": "error", "message": {"text": "FastAPI POST `consensus` without auth dependency \u2014 runtime/api.py:175"}, "properties": {"repobilityId": "6f67b9ba3e3ce96c", "scanner": "scanner-primary", "fingerprint": "fe5f3309d82c9732", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-aaf977e51dc62f9c", "level": "error", "message": {"text": "FastAPI POST `video` without auth dependency \u2014 runtime/api.py:202"}, "properties": {"repobilityId": "3228c7cd06034c79", "scanner": "scanner-primary", "fingerprint": "aaf977e51dc62f9c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-d718d09a6fbcaa66", "level": "error", "message": {"text": "FastAPI POST `eaos_enqueue` without auth dependency \u2014 runtime/api.py:225"}, "properties": {"repobilityId": "9866588ff99fe53b", "scanner": "scanner-primary", "fingerprint": "d718d09a6fbcaa66", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-44d31d5abf93586a", "level": "error", "message": {"text": "FastAPI POST `social_distribute` without auth dependency \u2014 runtime/api.py:244"}, "properties": {"repobilityId": "a8dc34fdecce55e3", "scanner": "scanner-primary", "fingerprint": "44d31d5abf93586a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-12e493aa26709e3f", "level": "error", "message": {"text": "FastAPI POST `newsletter_publish` without auth dependency \u2014 runtime/api.py:311"}, "properties": {"repobilityId": "6233b7623d696203", "scanner": "scanner-primary", "fingerprint": "12e493aa26709e3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-b79d8a9458dbc0d6", "level": "error", "message": {"text": "FastAPI POST `products_bootstrap` without auth dependency \u2014 runtime/api.py:339"}, "properties": {"repobilityId": "b6708eb1459bb6d8", "scanner": "scanner-primary", "fingerprint": "b79d8a9458dbc0d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-37ffba443d89dc8b", "level": "error", "message": {"text": "FastAPI POST `city_seo_generate` without auth dependency \u2014 runtime/api.py:354"}, "properties": {"repobilityId": "99d96238da42eef7", "scanner": "scanner-primary", "fingerprint": "37ffba443d89dc8b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-23f3294ec2e9af2a", "level": "error", "message": {"text": "FastAPI POST `chatbot_build` without auth dependency \u2014 runtime/api.py:369"}, "properties": {"repobilityId": "78f5769c716d8da8", "scanner": "scanner-primary", "fingerprint": "23f3294ec2e9af2a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 369}}}]}, {"ruleId": "scanner-8e1013da27bf465c", "level": "error", "message": {"text": "FastAPI POST `execute` without auth dependency \u2014 runtime/api.py:450"}, "properties": {"repobilityId": "905a593bba9c8e94", "scanner": "scanner-primary", "fingerprint": "8e1013da27bf465c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-67712a20c1a7ead1", "level": "error", "message": {"text": "FastAPI POST `run_digest` without auth dependency \u2014 runtime/api.py:488"}, "properties": {"repobilityId": "853de7122e790252", "scanner": "scanner-primary", "fingerprint": "67712a20c1a7ead1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 488}}}]}, {"ruleId": "scanner-dd2ba56650542328", "level": "error", "message": {"text": "FastAPI POST `run_guard` without auth dependency \u2014 runtime/api.py:506"}, "properties": {"repobilityId": "0c25c06b12f8a842", "scanner": "scanner-primary", "fingerprint": "dd2ba56650542328", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 506}}}]}, {"ruleId": "scanner-fec892e7f39c8910", "level": "error", "message": {"text": "FastAPI POST `deploy_pull` without auth dependency \u2014 runtime/api.py:533"}, "properties": {"repobilityId": "83db1b076127d232", "scanner": "scanner-primary", "fingerprint": "fec892e7f39c8910", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 533}}}]}, {"ruleId": "scanner-3ea4f2d2b96d3a3e", "level": "error", "message": {"text": "FastAPI POST `pod_push` without auth dependency \u2014 runtime/api.py:644"}, "properties": {"repobilityId": "5c3e068508512e24", "scanner": "scanner-primary", "fingerprint": "3ea4f2d2b96d3a3e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/api.py"}, "region": {"startLine": 644}}}]}, {"ruleId": "scanner-8e194e98d4c819b4", "level": "error", "message": {"text": "FastAPI POST `run_tasks` without auth dependency \u2014 runtime/gmaos/api.py:79"}, "properties": {"repobilityId": "298d98201fecefa3", "scanner": "scanner-primary", "fingerprint": "8e194e98d4c819b4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/gmaos/api.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-b0f87b641c6af671", "level": "error", "message": {"text": "FastAPI POST `run_single` without auth dependency \u2014 runtime/gmaos/api.py:90"}, "properties": {"repobilityId": "06ae402b48a5498b", "scanner": "scanner-primary", "fingerprint": "b0f87b641c6af671", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/gmaos/api.py"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-21fca431a2144016", "level": "error", "message": {"text": "FastAPI POST `fire_tasks` without auth dependency \u2014 runtime/gmaos/api.py:98"}, "properties": {"repobilityId": "ca357ee1c627fbdb", "scanner": "scanner-primary", "fingerprint": "21fca431a2144016", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/gmaos/api.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-38046777af95a73e", "level": "error", "message": {"text": "FastAPI POST `drain_dlq` without auth dependency \u2014 runtime/gmaos/api.py:136"}, "properties": {"repobilityId": "5284e07f0f93acf9", "scanner": "scanner-primary", "fingerprint": "38046777af95a73e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "runtime/gmaos/api.py"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-d11228369e26654b", "level": "error", "message": {"text": "FastAPI POST `waitlist_endpoint` without auth dependency \u2014 backend/server.py:170"}, "properties": {"repobilityId": "40de91a853c86938", "scanner": "scanner-primary", "fingerprint": "d11228369e26654b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-cfc9da792e4e4232", "level": "error", "message": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 backend/server.py:237"}, "properties": {"repobilityId": "d64549f135aaa3ff", "scanner": "scanner-primary", "fingerprint": "cfc9da792e4e4232", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-e3d6feb8b6ad154d", "level": "error", "message": {"text": "FastAPI POST `decide_approval` without auth dependency \u2014 backend/server.py:296"}, "properties": {"repobilityId": "c0e252016d53c8c8", "scanner": "scanner-primary", "fingerprint": "e3d6feb8b6ad154d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-db0f326aa6faa20c", "level": "error", "message": {"text": "FastAPI POST `distillation_distill` without auth dependency \u2014 backend/server.py:462"}, "properties": {"repobilityId": "1abc1eeeb6f01015", "scanner": "scanner-primary", "fingerprint": "db0f326aa6faa20c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 462}}}]}, {"ruleId": "scanner-99ab2e26063700a6", "level": "error", "message": {"text": "FastAPI POST `advisor_ask` without auth dependency \u2014 backend/server.py:496"}, "properties": {"repobilityId": "4553c2317733ad69", "scanner": "scanner-primary", "fingerprint": "99ab2e26063700a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 496}}}]}, {"ruleId": "scanner-c917b6f1fe6af967", "level": "error", "message": {"text": "FastAPI POST `merge_endpoint` without auth dependency \u2014 backend/server.py:540"}, "properties": {"repobilityId": "aae355ed21ac031d", "scanner": "scanner-primary", "fingerprint": "c917b6f1fe6af967", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 540}}}]}, {"ruleId": "scanner-a8e197fc1c5257f9", "level": "error", "message": {"text": "FastAPI POST `score_endpoint` without auth dependency \u2014 backend/server.py:562"}, "properties": {"repobilityId": "091d2ecfc3cc6977", "scanner": "scanner-primary", "fingerprint": "a8e197fc1c5257f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 562}}}]}, {"ruleId": "scanner-66dde6874d70c391", "level": "error", "message": {"text": "FastAPI POST `cash_cycle_trigger` without auth dependency \u2014 backend/server.py:622"}, "properties": {"repobilityId": "1a539446e0fda22a", "scanner": "scanner-primary", "fingerprint": "66dde6874d70c391", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 622}}}]}, {"ruleId": "scanner-762380b3ded23963", "level": "error", "message": {"text": "FastAPI POST `cash_cache_clear` without auth dependency \u2014 backend/server.py:643"}, "properties": {"repobilityId": "3995c5cb32f1af5c", "scanner": "scanner-primary", "fingerprint": "762380b3ded23963", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-0a655ac9097eb826", "level": "error", "message": {"text": "FastAPI POST `lcc_validate` without auth dependency \u2014 backend/server.py:799"}, "properties": {"repobilityId": "c7badb7d2654c684", "scanner": "scanner-primary", "fingerprint": "0a655ac9097eb826", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 799}}}]}, {"ruleId": "scanner-a2712939d6ae0f3f", "level": "error", "message": {"text": "FastAPI POST `lcc_health_loop` without auth dependency \u2014 backend/server.py:825"}, "properties": {"repobilityId": "d2e220375c0e0e05", "scanner": "scanner-primary", "fingerprint": "a2712939d6ae0f3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 825}}}]}, {"ruleId": "scanner-31ca6fd617f39d14", "level": "error", "message": {"text": "FastAPI POST `lcc_rewrite` without auth dependency \u2014 backend/server.py:861"}, "properties": {"repobilityId": "514728126b73c80e", "scanner": "scanner-primary", "fingerprint": "31ca6fd617f39d14", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 861}}}]}, {"ruleId": "scanner-de0a573bc58a6e31", "level": "error", "message": {"text": "FastAPI POST `proof_create_manifest` without auth dependency \u2014 backend/server.py:919"}, "properties": {"repobilityId": "ef1da546982c55e3", "scanner": "scanner-primary", "fingerprint": "de0a573bc58a6e31", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 919}}}]}, {"ruleId": "scanner-c1fa30e4bd282615", "level": "error", "message": {"text": "FastAPI POST `proof_publish` without auth dependency \u2014 backend/server.py:945"}, "properties": {"repobilityId": "9a5f9a967278ed1f", "scanner": "scanner-primary", "fingerprint": "c1fa30e4bd282615", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/server.py"}, "region": {"startLine": 945}}}]}, {"ruleId": "scanner-599dadd7dab67c85", "level": "error", "message": {"text": "FastAPI POST `create_checkout` without auth dependency \u2014 backend/services/launch_router.py:276"}, "properties": {"repobilityId": "d7cb99b63cfd3737", "scanner": "scanner-primary", "fingerprint": "599dadd7dab67c85", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/services/launch_router.py"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-8af802a0453b59c0", "level": "error", "message": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 backend/services/launch_router.py:284"}, "properties": {"repobilityId": "2fe708cb106d803b", "scanner": "scanner-primary", "fingerprint": "8af802a0453b59c0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/services/launch_router.py"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-86cd61fc9ad65e66", "level": "error", "message": {"text": "FastAPI POST `track_referral` without auth dependency \u2014 backend/services/launch_router.py:296"}, "properties": {"repobilityId": "f22b0e0bd3b3cd20", "scanner": "scanner-primary", "fingerprint": "86cd61fc9ad65e66", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/services/launch_router.py"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-260322af6ff4bc5a", "level": "error", "message": {"text": "FastAPI PUT `set_autonomy` without auth dependency \u2014 backend/services/enterprise_router.py:104"}, "properties": {"repobilityId": "65b518a4cd6bbea2", "scanner": "scanner-primary", "fingerprint": "260322af6ff4bc5a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/services/enterprise_router.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-6d8b2c2b72aa7b62", "level": "error", "message": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:34"}, "properties": {"repobilityId": "a9d2c50b724668ab", "scanner": "scanner-primary", "fingerprint": "6d8b2c2b72aa7b62", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "code_merger/demo_output/runtime/agents.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-8ec372a9b16c0f13", "level": "error", "message": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:77"}, "properties": {"repobilityId": "146ce435b9479f01", "scanner": "scanner-primary", "fingerprint": "8ec372a9b16c0f13", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "code_merger/demo_output/runtime/agents.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-fac02b1f7654c47d", "level": "error", "message": {"text": "FastAPI POST `execute_agent` without auth dependency \u2014 code_merger/demo_output/runtime/agents.py:94"}, "properties": {"repobilityId": "2dc15ed9bf345520", "scanner": "scanner-primary", "fingerprint": "fac02b1f7654c47d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "code_merger/demo_output/runtime/agents.py"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-4e67a24057eaafbd", "level": "error", "message": {"text": "FastAPI POST `preview` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:203"}, "properties": {"repobilityId": "6e02b998d221f83b", "scanner": "scanner-primary", "fingerprint": "4e67a24057eaafbd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "code_merger/demo_output/runtime/distillation.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-569ff768d084aa57", "level": "error", "message": {"text": "FastAPI POST `clear` without auth dependency \u2014 code_merger/demo_output/runtime/distillation.py:217"}, "properties": {"repobilityId": "6dee7042de063281", "scanner": "scanner-primary", "fingerprint": "569ff768d084aa57", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "code_merger/demo_output/runtime/distillation.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-8065c840bb07fa9d", "level": "error", "message": {"text": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:28)"}, "properties": {"repobilityId": "4132012aa96c89d8", "scanner": "scanner-primary", "fingerprint": "8065c840bb07fa9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7527094a6d3d77bf", "level": "error", "message": {"text": "Dangling fetch: POST /api/bus (frontend/src/components/EngineSection.jsx:34)"}, "properties": {"repobilityId": "b9abe03810fd8ddb", "scanner": "scanner-primary", "fingerprint": "7527094a6d3d77bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fea57ac319491239", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (api/routes/ask.js:33)"}, "properties": {"repobilityId": "3f3917336efb10a3", "scanner": "scanner-primary", "fingerprint": "fea57ac319491239", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-b1bc4a8c0e656619", "level": "error", "message": {"text": "Dangling fetch: POST http://localhost:3000/api/jobs (scripts/load-prospects.js:136)"}, "properties": {"repobilityId": "61f4a0d11ec925e0", "scanner": "scanner-primary", "fingerprint": "b1bc4a8c0e656619", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a3dd272afbbae5f9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.printify.com/v1/shops/${cfg().printifyShopId}/products.json (agents/pod/index.js:36)"}, "properties": {"repobilityId": "0699451d70f3d70b", "scanner": "scanner-primary", "fingerprint": "a3dd272afbbae5f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-9472663d23eed117", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${cfg().githubOwner}/${cfg().githubRepo} (agents/health/index.js:26)"}, "properties": {"repobilityId": "a2ad31078a9bd5b6", "scanner": "scanner-primary", "fingerprint": "9472663d23eed117", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-70607b3d45a065ba", "level": "error", "message": {"text": "Dangling fetch: GET https://trends.google.com/trends/trendingsearches/daily/rss?geo=US (agents/intelligence/trendScanner.js:22)"}, "properties": {"repobilityId": "3d3dd8dc58c0d241", "scanner": "scanner-primary", "fingerprint": "70607b3d45a065ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-5b07e6ceea692657", "level": "error", "message": {"text": "Dangling fetch: GET https://www.reddit.com/r/${sub}/hot.json?limit=5 (agents/intelligence/trendScanner.js:53)"}, "properties": {"repobilityId": "418eafa42710ea6a", "scanner": "scanner-primary", "fingerprint": "5b07e6ceea692657", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7ae040e45af64950", "level": "error", "message": {"text": "Dangling fetch: GET https://duckduckgo.com/news.js?q=${encodeURIComponent(niche +  (agents/intelligence/trendScanner.js:71)"}, "properties": {"repobilityId": "a373f5d8cf5457ad", "scanner": "scanner-primary", "fingerprint": "7ae040e45af64950", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-d24c672da30f1730", "level": "error", "message": {"text": "Dangling fetch: POST https://${cfg().mastodonInstance}/api/v1/statuses (agents/social/index.js:38)"}, "properties": {"repobilityId": "b11b0117de5ee64b", "scanner": "scanner-primary", "fingerprint": "d24c672da30f1730", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7bbb7cff2ed2743a", "level": "error", "message": {"text": "Dangling fetch: POST https://www.reddit.com/api/v1/access_token (agents/social/index.js:55)"}, "properties": {"repobilityId": "712973d7651dc671", "scanner": "scanner-primary", "fingerprint": "7bbb7cff2ed2743a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-932fc8930fcf0239", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth.reddit.com/api/submit (agents/social/index.js:72)"}, "properties": {"repobilityId": "2f546980b8bc2ca6", "scanner": "scanner-primary", "fingerprint": "932fc8930fcf0239", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-815c98c551588b09", "level": "error", "message": {"text": "Dangling fetch: POST https://api.pinterest.com/v5/pins (agents/social/index.js:89)"}, "properties": {"repobilityId": "c1999a31e618697f", "scanner": "scanner-primary", "fingerprint": "815c98c551588b09", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-0a510b06dcc20749", "level": "error", "message": {"text": "Dangling fetch: GET https://duckduckgo.com/ac/ (agents/seo/index.js:21)"}, "properties": {"repobilityId": "8eb5a4ed86babe23", "scanner": "scanner-primary", "fingerprint": "0a510b06dcc20749", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-61614284376f158d", "level": "error", "message": {"text": "Dangling fetch: GET https://suggestqueries.google.com/complete/search (agents/seo/index.js:22)"}, "properties": {"repobilityId": "5f15215ddd1ca90f", "scanner": "scanner-primary", "fingerprint": "61614284376f158d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-a5ca577fd7d67ea4", "level": "error", "message": {"text": "Dangling fetch: POST https://gql.hashnode.com (publishers/blog/hashnode.js:12)"}, "properties": {"repobilityId": "7e1475466c3f4ffc", "scanner": "scanner-primary", "fingerprint": "a5ca577fd7d67ea4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7e45f54e08c17566", "level": "error", "message": {"text": "Dangling fetch: POST https://dev.to/api/articles (publishers/blog/devto.js:11)"}, "properties": {"repobilityId": "cce781b70f39fe07", "scanner": "scanner-primary", "fingerprint": "7e45f54e08c17566", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-dc998a9183e2f7b7", "level": "error", "message": {"text": "Dangling fetch: GET https://api.medium.com/v1/me (publishers/blog/medium.js:9)"}, "properties": {"repobilityId": "7f26f35515009b02", "scanner": "scanner-primary", "fingerprint": "dc998a9183e2f7b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-bd4f8cb90c56941c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.medium.com/v1/users/${authorId}/posts (publishers/blog/medium.js:19)"}, "properties": {"repobilityId": "9cb6179fc95b4454", "scanner": "scanner-primary", "fingerprint": "bd4f8cb90c56941c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-1409e6f6bf1baa3e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (core/llm/index.js:76)"}, "properties": {"repobilityId": "0d1e2db20cbe4efa", "scanner": "scanner-primary", "fingerprint": "1409e6f6bf1baa3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-620a4ea82b9244a6", "level": "error", "message": {"text": "Dangling fetch: POST https://openrouter.ai/api/v1/chat/completions (core/llm/index.js:95)"}, "properties": {"repobilityId": "2e6f4cdcaeadb869", "scanner": "scanner-primary", "fingerprint": "620a4ea82b9244a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-6f3daffa8631273e", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${key} (core/llm/index.js:120)"}, "properties": {"repobilityId": "a6efcd539aa25c9d", "scanner": "scanner-primary", "fingerprint": "6f3daffa8631273e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7e115a82004a9c96", "level": "error", "message": {"text": "Dangling fetch: GET /api/jobs (components/JobBoard.tsx:17)"}, "properties": {"repobilityId": "fd343d2298aea04c", "scanner": "scanner-primary", "fingerprint": "7e115a82004a9c96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d08ff68705f7746", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/jobs/${jobId} (components/JobBoard.tsx:41)"}, "properties": {"repobilityId": "134622d19aeb6fcd", "scanner": "scanner-primary", "fingerprint": "1d08ff68705f7746", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f50a6743d52d37e2", "level": "error", "message": {"text": "Dangling fetch: POST /api/jobs (components/JobPostingForm.tsx:36)"}, "properties": {"repobilityId": "0099e33bfff14e2c", "scanner": "scanner-primary", "fingerprint": "f50a6743d52d37e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-045a22280987054d", "level": "error", "message": {"text": "Dangling fetch: POST /api/email/subscribe (app/blog/page.tsx:17)"}, "properties": {"repobilityId": "17d75b274196fe89", "scanner": "scanner-primary", "fingerprint": "045a22280987054d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a44948d31f0b09f", "level": "error", "message": {"text": "Dangling fetch: GET /api/prospects?action=summary (app/prospects/page.tsx:24)"}, "properties": {"repobilityId": "946e8519f23974ec", "scanner": "scanner-primary", "fingerprint": "2a44948d31f0b09f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff53a566b76ef152", "level": "error", "message": {"text": "Dangling fetch: POST https://api.beehiiv.com/v1/publications/subscriptions (app/api/email/subscribe/route.ts:33)"}, "properties": {"repobilityId": "4595189041b1d93b", "scanner": "scanner-primary", "fingerprint": "ff53a566b76ef152", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35d245c4f1642d70", "level": "error", "message": {"text": "Dangling fetch: POST http://localhost:8000/api/v1/video/generate (app/api/content/generate-video/route.ts:30)"}, "properties": {"repobilityId": "1478511b8ae4d153", "scanner": "scanner-primary", "fingerprint": "35d245c4f1642d70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c1111db23d42bb1", "level": "error", "message": {"text": "Dangling fetch: POST https://api.groq.com/openai/v1/chat/completions (app/api/advisor/route.ts:10)"}, "properties": {"repobilityId": "813695f0ea2873d1", "scanner": "scanner-primary", "fingerprint": "9c1111db23d42bb1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bd0166fc64ec042", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${key} (app/api/advisor/route.ts:29)"}, "properties": {"repobilityId": "a8fa31c5a9bef520", "scanner": "scanner-primary", "fingerprint": "2bd0166fc64ec042", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a5198dc938a1722", "level": "error", "message": {"text": "Dangling fetch: GET /api/data (app/dashboard/page.tsx:10)"}, "properties": {"repobilityId": "1cfe22f7d5d50d1a", "scanner": "scanner-primary", "fingerprint": "5a5198dc938a1722", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b79cd08491ca7c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/command (app/dashboard/page.tsx:14)"}, "properties": {"repobilityId": "92171b0fa954fe97", "scanner": "scanner-primary", "fingerprint": "7b79cd08491ca7c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-527ba85d9c87d35d", "level": "error", "message": {"text": "Dangling fetch: POST /api/advisor (app/dashboard/page.tsx:20)"}, "properties": {"repobilityId": "d9664c876e9a6723", "scanner": "scanner-primary", "fingerprint": "527ba85d9c87d35d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-286e69a8676fd5d5", "level": "note", "message": {"text": "Unused endpoint: GET /llm/status"}, "properties": {"repobilityId": "c03552de98f302ab", "scanner": "scanner-primary", "fingerprint": "286e69a8676fd5d5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-79955e7adeb529df", "level": "note", "message": {"text": "Unused endpoint: POST /tool/{tool_name}"}, "properties": {"repobilityId": "d3ff57d9febb2109", "scanner": "scanner-primary", "fingerprint": "79955e7adeb529df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-01cb84f7181332b5", "level": "note", "message": {"text": "Unused endpoint: POST /events/call-ended"}, "properties": {"repobilityId": "10b1b5428c077d94", "scanner": "scanner-primary", "fingerprint": "01cb84f7181332b5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0d358fccc419790e", "level": "note", "message": {"text": "Unused endpoint: POST /retell/webhook"}, "properties": {"repobilityId": "c882f522789b3d8e", "scanner": "scanner-primary", "fingerprint": "0d358fccc419790e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1208ae8b7b644a47", "level": "note", "message": {"text": "Unused endpoint: POST /vapi/webhook"}, "properties": {"repobilityId": "08e0dbdde54f25b2", "scanner": "scanner-primary", "fingerprint": "1208ae8b7b644a47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef00178afbf31ab6", "level": "note", "message": {"text": "Unused endpoint: POST /twilio/voice"}, "properties": {"repobilityId": "3be105ff070e7ddb", "scanner": "scanner-primary", "fingerprint": "ef00178afbf31ab6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f132a96b722386e", "level": "note", "message": {"text": "Unused endpoint: POST /twilio/sms"}, "properties": {"repobilityId": "6cbe21764c492256", "scanner": "scanner-primary", "fingerprint": "6f132a96b722386e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "24fcb28560702408", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "0b5ad0d8e0f53145", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be653b32b59ae96c", "level": "note", "message": {"text": "Unused endpoint: GET /{agent_id}"}, "properties": {"repobilityId": "79bb522e309d8cd1", "scanner": "scanner-primary", "fingerprint": "be653b32b59ae96c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2df4cdb5233e7a00", "level": "note", "message": {"text": "Unused endpoint: PATCH /{agent_id}"}, "properties": {"repobilityId": "61fe544c5eaa2bbf", "scanner": "scanner-primary", "fingerprint": "2df4cdb5233e7a00", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca0513d7dc9cd186", "level": "note", "message": {"text": "Unused endpoint: POST /{agent_id}/execute"}, "properties": {"repobilityId": "8bb7e0c2c0967f60", "scanner": "scanner-primary", "fingerprint": "ca0513d7dc9cd186", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd8dc4599ec52a08", "level": "note", "message": {"text": "Unused endpoint: GET /stats"}, "properties": {"repobilityId": "a53cf25bdd5cea25", "scanner": "scanner-primary", "fingerprint": "cd8dc4599ec52a08", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6f48e60c30777ab", "level": "note", "message": {"text": "Unused endpoint: GET /config"}, "properties": {"repobilityId": "025da200433b031a", "scanner": "scanner-primary", "fingerprint": "a6f48e60c30777ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cccfe89f81ab208f", "level": "note", "message": {"text": "Unused endpoint: POST /preview"}, "properties": {"repobilityId": "fd17a005d98b2a1a", "scanner": "scanner-primary", "fingerprint": "cccfe89f81ab208f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8affeb0d6aeff6df", "level": "note", "message": {"text": "Unused endpoint: POST /clear"}, "properties": {"repobilityId": "09cd4c36641c15b9", "scanner": "scanner-primary", "fingerprint": "8affeb0d6aeff6df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ecb33d7ed7cb7bb", "level": "note", "message": {"text": "Unused endpoint: GET /budget"}, "properties": {"repobilityId": "8db6cc5a59d8be94", "scanner": "scanner-primary", "fingerprint": "3ecb33d7ed7cb7bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca18521bf9795240", "level": "note", "message": {"text": "Unused endpoint: GET /budget/history"}, "properties": {"repobilityId": "813ad5d13563301c", "scanner": "scanner-primary", "fingerprint": "ca18521bf9795240", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3140e61d7cac5091", "level": "note", "message": {"text": "Unused endpoint: GET /agents"}, "properties": {"repobilityId": "1a99b220ef0b7f16", "scanner": "scanner-primary", "fingerprint": "3140e61d7cac5091", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef7f5df555c4d289", "level": "note", "message": {"text": "Unused endpoint: GET /connectors"}, "properties": {"repobilityId": "af7998850e36d9d7", "scanner": "scanner-primary", "fingerprint": "ef7f5df555c4d289", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c3981d8db2a20a1", "level": "note", "message": {"text": "Unused endpoint: GET /cycles"}, "properties": {"repobilityId": "c6e0d2d79d82923d", "scanner": "scanner-primary", "fingerprint": "5c3981d8db2a20a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-171a8c12343d8e78", "level": "note", "message": {"text": "Unused endpoint: GET /telegram/health"}, "properties": {"repobilityId": "4efc2bcf767c0a66", "scanner": "scanner-primary", "fingerprint": "171a8c12343d8e78", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c77e6658967e090", "level": "note", "message": {"text": "Unused endpoint: POST /telegram/webhook"}, "properties": {"repobilityId": "54d7a0ca17409f14", "scanner": "scanner-primary", "fingerprint": "0c77e6658967e090", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f5e8d751dae1e7c3", "level": "note", "message": {"text": "Unused endpoint: POST /consensus"}, "properties": {"repobilityId": "a8e8006f046da29a", "scanner": "scanner-primary", "fingerprint": "f5e8d751dae1e7c3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ad816262b88fef4", "level": "note", "message": {"text": "Unused endpoint: POST /video"}, "properties": {"repobilityId": "5ae377c86fcb5481", "scanner": "scanner-primary", "fingerprint": "8ad816262b88fef4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bd6c08be1043f719", "level": "note", "message": {"text": "Unused endpoint: POST /eaos/enqueue"}, "properties": {"repobilityId": "e460ece17324f1cb", "scanner": "scanner-primary", "fingerprint": "bd6c08be1043f719", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fbd9c675629439fb", "level": "note", "message": {"text": "Unused endpoint: GET /eaos/health"}, "properties": {"repobilityId": "2845d2ba450a7a46", "scanner": "scanner-primary", "fingerprint": "fbd9c675629439fb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e5da8a272921078", "level": "note", "message": {"text": "Unused endpoint: POST /social/distribute"}, "properties": {"repobilityId": "58f161fe25501403", "scanner": "scanner-primary", "fingerprint": "3e5da8a272921078", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4583497aae8775aa", "level": "note", "message": {"text": "Unused endpoint: POST /newsletter/publish"}, "properties": {"repobilityId": "291076535debf344", "scanner": "scanner-primary", "fingerprint": "4583497aae8775aa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-195d01243129fe14", "level": "note", "message": {"text": "Unused endpoint: GET /newsletter/stats"}, "properties": {"repobilityId": "4b2f222f0bc918ef", "scanner": "scanner-primary", "fingerprint": "195d01243129fe14", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-159ce94005975c63", "level": "note", "message": {"text": "Unused endpoint: POST /products/bootstrap"}, "properties": {"repobilityId": "533fc9081375a6f1", "scanner": "scanner-primary", "fingerprint": "159ce94005975c63", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c938f7aecd7ea766", "level": "note", "message": {"text": "Unused endpoint: GET /products/revenue"}, "properties": {"repobilityId": "cbfe4f325f662c52", "scanner": "scanner-primary", "fingerprint": "c938f7aecd7ea766", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09cccf2739b00244", "level": "note", "message": {"text": "Unused endpoint: POST /city-seo/generate"}, "properties": {"repobilityId": "ae2bb05707b12e84", "scanner": "scanner-primary", "fingerprint": "09cccf2739b00244", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7dd30772ca92bdba", "level": "note", "message": {"text": "Unused endpoint: POST /chatbot/build"}, "properties": {"repobilityId": "5be0cb2ed3c1e1a0", "scanner": "scanner-primary", "fingerprint": "7dd30772ca92bdba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-245b9aa910323ca1", "level": "note", "message": {"text": "Unused endpoint: GET /chatbot/revenue"}, "properties": {"repobilityId": "3abc191ec0bcb120", "scanner": "scanner-primary", "fingerprint": "245b9aa910323ca1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a8f578d5b2f6c80", "level": "note", "message": {"text": "Unused endpoint: GET /income/summary"}, "properties": {"repobilityId": "f4f0212863792f54", "scanner": "scanner-primary", "fingerprint": "0a8f578d5b2f6c80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-25d2ca63197cd1e9", "level": "note", "message": {"text": "Unused endpoint: POST /execute"}, "properties": {"repobilityId": "7f50950093715698", "scanner": "scanner-primary", "fingerprint": "25d2ca63197cd1e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1224936f898bb5a8", "level": "note", "message": {"text": "Unused endpoint: POST /digest/run"}, "properties": {"repobilityId": "6e7edeec8b63ada2", "scanner": "scanner-primary", "fingerprint": "1224936f898bb5a8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3117557cffb1cb4e", "level": "note", "message": {"text": "Unused endpoint: POST /guard/run"}, "properties": {"repobilityId": "dde49ae6a44c8623", "scanner": "scanner-primary", "fingerprint": "3117557cffb1cb4e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47c2624134d8a6a1", "level": "note", "message": {"text": "Unused endpoint: POST /deploy/pull"}, "properties": {"repobilityId": "895bd3d6f198ac37", "scanner": "scanner-primary", "fingerprint": "47c2624134d8a6a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b1a7efa8ea299d4a", "level": "note", "message": {"text": "Unused endpoint: GET /pod/status"}, "properties": {"repobilityId": "e1646f1ac58f35bd", "scanner": "scanner-primary", "fingerprint": "b1a7efa8ea299d4a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f17dcbb26b452def", "level": "note", "message": {"text": "Unused endpoint: POST /pod/push"}, "properties": {"repobilityId": "731d83b1497b9b16", "scanner": "scanner-primary", "fingerprint": "f17dcbb26b452def", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69a693dfc33637f4", "level": "note", "message": {"text": "Unused endpoint: POST /run"}, "properties": {"repobilityId": "1795367f80dd1c0a", "scanner": "scanner-primary", "fingerprint": "69a693dfc33637f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c302f129202d450", "level": "note", "message": {"text": "Unused endpoint: POST /run/single"}, "properties": {"repobilityId": "bd8d3c76b9304884", "scanner": "scanner-primary", "fingerprint": "8c302f129202d450", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8901692f20160f4a", "level": "note", "message": {"text": "Unused endpoint: POST /fire"}, "properties": {"repobilityId": "9bcf89f876807c15", "scanner": "scanner-primary", "fingerprint": "8901692f20160f4a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54041df53ed58559", "level": "note", "message": {"text": "Unused endpoint: GET /task/{task_id}"}, "properties": {"repobilityId": "11d7d5ffcfc482c6", "scanner": "scanner-primary", "fingerprint": "54041df53ed58559", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d932bba6e7b5b573", "level": "note", "message": {"text": "Unused endpoint: GET /dlq"}, "properties": {"repobilityId": "d345303d3c38c246", "scanner": "scanner-primary", "fingerprint": "d932bba6e7b5b573", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-160c46d3e63694d8", "level": "note", "message": {"text": "Unused endpoint: POST /dlq/drain"}, "properties": {"repobilityId": "1c171cdac47a867d", "scanner": "scanner-primary", "fingerprint": "160c46d3e63694d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "5a66da359de337dc", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b37265900e79a8a", "level": "note", "message": {"text": "Unused endpoint: GET /api/stats"}, "properties": {"repobilityId": "fe2c3d8df9a65a21", "scanner": "scanner-primary", "fingerprint": "3b37265900e79a8a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}