{"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-9f34778ad6308db0", "name": "Possibly dead Python function: find_admin_user", "shortDescription": {"text": "Possibly dead Python function: find_admin_user"}, "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-903e749f8718417a", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "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-fe8cb22bf58a7969", "name": "Possibly dead Python function: set_description", "shortDescription": {"text": "Possibly dead Python function: set_description"}, "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-da709d77729d8b7a", "name": "Possibly dead Python function: set_postfix", "shortDescription": {"text": "Possibly dead Python function: set_postfix"}, "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-beedc84ced06de49", "name": "Possibly dead Python function: set_postfix_str", "shortDescription": {"text": "Possibly dead Python function: set_postfix_str"}, "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-6caf43d751c04df7", "name": "Possibly dead Python function: quiet_logs", "shortDescription": {"text": "Possibly dead Python function: quiet_logs"}, "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-3131c45f4c4c4f3d", "name": "Possibly dead Python function: emit", "shortDescription": {"text": "Possibly dead Python function: emit"}, "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-e60f858ea181d43f", "name": "Possibly dead Python function: common_parser", "shortDescription": {"text": "Possibly dead Python function: common_parser"}, "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-91cd34ebf6068495", "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-5a33df8c8febaf86", "name": "Possibly dead Python function: handle_startendtag", "shortDescription": {"text": "Possibly dead Python function: handle_startendtag"}, "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-24449c1b88333912", "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-4384c54c17900dd6", "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-5dd76fa634673022", "name": "Possibly dead Python function: require_owner", "shortDescription": {"text": "Possibly dead Python function: require_owner"}, "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-63092ab41a591786", "name": "Possibly dead Python function: try_fallback_endpoint", "shortDescription": {"text": "Possibly dead Python function: try_fallback_endpoint"}, "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-8727ddf08630064c", "name": "Possibly dead Python function: periodic_rate_limit_cleanup", "shortDescription": {"text": "Possibly dead Python function: periodic_rate_limit_cleanup"}, "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-24d6c94bb8b267de", "name": "Possibly dead Python function: register", "shortDescription": {"text": "Possibly dead Python function: register"}, "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-98844dd62f721be7", "name": "Possibly dead Python function: set_voice", "shortDescription": {"text": "Possibly dead Python function: set_voice"}, "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-f5e8d30a439f5043", "name": "Possibly dead Python function: start_background", "shortDescription": {"text": "Possibly dead Python function: start_background"}, "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-11d26df57b8bd205", "name": "Possibly dead Python function: stage_ideate", "shortDescription": {"text": "Possibly dead Python function: stage_ideate"}, "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-6f51e6db034ebe17", "name": "Possibly dead Python function: stage_script", "shortDescription": {"text": "Possibly dead Python function: stage_script"}, "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-c9f4e3a377c75cd2", "name": "Possibly dead Python function: stage_voiceover", "shortDescription": {"text": "Possibly dead Python function: stage_voiceover"}, "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-bfea4f8b3ee31072", "name": "Possibly dead Python function: stage_visuals", "shortDescription": {"text": "Possibly dead Python function: stage_visuals"}, "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-95b47c0c6760a2a3", "name": "Possibly dead Python function: stage_render", "shortDescription": {"text": "Possibly dead Python function: stage_render"}, "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-d674bb7bc5ed9a1d", "name": "Possibly dead Python function: stage_package", "shortDescription": {"text": "Possibly dead Python function: stage_package"}, "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-01ff00d29bc44f01", "name": "Stray `console.log` in TS/JS \u2014 static/app.js:3800", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/app.js:3800"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5428d8fe1d273265", "name": "Stray `console.log` in TS/JS \u2014 static/guia-paper/boot.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/guia-paper/boot.js:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-337074d4e8f2721d", "name": "Icon-only button without accessible name \u2014 static/js/slashCommands.js:2392", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/js/slashCommands.js:2392"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40fe62f86bde49ac", "name": "TODO/FIXME marker in shipping code \u2014 static/js/notes.js:2855", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 static/js/notes.js:2855"}, "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-0b9e7b338949c664", "name": "Icon-only button without accessible name \u2014 static/js/editor/wire-import.js:118", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/js/editor/wire-import.js:118"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f587f6fb5def08fa", "name": "Stray `console.log` in TS/JS \u2014 static/lib/mammoth.browser.min.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/mammoth.browser.min.js:6"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab340a0e501ffff9", "name": "Stray `console.log` in TS/JS \u2014 static/lib/xlsx.full.min.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/xlsx.full.min.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab83cce2d95a4dbb", "name": "Stray `console.log` in TS/JS \u2014 static/lib/highlight.min.js:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/highlight.min.js:107"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-272c3b87f15d32b2", "name": "Stray `console.log` in TS/JS \u2014 static/lib/docx.umd.min.js:4201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/docx.umd.min.js:4201"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-460c8f7ce032621f", "name": "TODO/FIXME marker in shipping code \u2014 templates/builder/business-onepage/src/components/Contato.tsx:10", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 templates/builder/business-onepage/src/components/Contato.tsx:10"}, "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-e6dd1e1efb7973c7", "name": "Stray `console.log` in TS/JS \u2014 templates/builder/business-onepage/src/components/Contato.tsx:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 templates/builder/business-onepage/src/components/Contato.tsx:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59868562782cd0f8", "name": "Privileged port 1000 in use", "shortDescription": {"text": "Privileged port 1000 in use"}, "fullDescription": {"text": "Port 1000 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-cb0acdfe8e7021df", "name": "Privileged port 993 in use", "shortDescription": {"text": "Privileged port 993 in use"}, "fullDescription": {"text": "Port 993 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-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-fd5ca59f9642964b", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/download.html:527", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/download.html:527"}, "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-272db59e5078e843", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/login.html:739", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/login.html:739"}, "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-7d888878fe2629b2", "name": "Insecure pattern 'local_storage_auth_token' in static/login.html:1028", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in static/login.html:1028"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d0a5e8c4d91afa6", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/app.js:680", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/app.js:680"}, "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-c6de9db0646108c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/landing.html:668", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing.html:668"}, "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-0cb481a8b8ad0794", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/boot.js:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/boot.js:75"}, "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-f82977ebe0111c08", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/ui.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/ui.js:38"}, "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-9153739536ba9e2d", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/util.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/util.js:45"}, "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-4bd26cd1a66ed5f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/router.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/router.js:107"}, "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-c1cadabc18f3d3a5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/home.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/home.js:82"}, "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-34c12c4d9ab2ca61", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/news.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/news.js:17"}, "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-8ec4511a5b5e3bfd", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/opportunities.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/opportunities.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07b3a5aa39a11114", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/directory.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/directory.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-605fcaf632ec0fd5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pageEditor.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pageEditor.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eacaad37a6af8af1", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/company.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/company.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f76d6160be0790fa", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagesAdmin.js:11", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagesAdmin.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7cd3809bb24289b", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagePublic.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagePublic.js:12"}, "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-4b30ed416637c99e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/market.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/market.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c6f229dfb78e22c", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/colorPicker.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/colorPicker.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16645571d063356f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/marketplace.js:240", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/marketplace.js:240"}, "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-30f3c47455515b7d", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/settings.js:178", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/settings.js:178"}, "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-006c0ccc86658278", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/models.js:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/models.js:106"}, "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-62490bcbe2cabc06", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-diagnosis.js:520", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-diagnosis.js:520"}, "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-896eed20486a7355", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/group.js:64", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/group.js:64"}, "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-adf202067289daba", "name": "Insecure pattern 'local_storage_auth_token' in static/js/group.js:550", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/group.js:550"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8b6209390b2f76f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/presets.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/presets.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6829e27262ec0ac", "name": "Insecure pattern 'local_storage_auth_token' in static/js/presets.js:410", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/presets.js:410"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d00b22955d58715e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailInbox.js:296", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailInbox.js:296"}, "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-f36953b2844723de", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/assistant.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/assistant.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fd547110ccfa0b7", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/documentLibrary.js:196", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/documentLibrary.js:196"}, "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-c3a5d4be1697044b", "name": "Insecure pattern 'domparser_html_parse' in static/js/documentLibrary.js:1363", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in static/js/documentLibrary.js:1363"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c5ee09120444f76", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/guideAvatar.js:328", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/guideAvatar.js:328"}, "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-9d8686a54c188f49", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/document.js:299", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/document.js:299"}, "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-5ef3ab56fe0062ba", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modalManager.js:320", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modalManager.js:320"}, "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-91ff59d10cf0bad2", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/automationHub.js:222", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/automationHub.js:222"}, "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-3120955834db295e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/spinner.js:279", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/spinner.js:279"}, "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-3decdc45749bbc3e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/galleryEditor.js:488", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/galleryEditor.js:488"}, "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-5d28d9157ba28c87", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tourHints.js:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tourHints.js:75"}, "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-b0cb78166dfb33c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/admin.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/admin.js:36"}, "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-88e226cfe8c78b35", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/rag.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/rag.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0680305bef59de2", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookDownload.js:318", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookDownload.js:318"}, "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-a1999aef9b7c1fb3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memory.js:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memory.js:67"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8853bc9045abe3d3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/whatsappLab.js:231", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/whatsappLab.js:231"}, "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-e4468c697ede1c84", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatStream.js:233", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatStream.js:233"}, "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-6584acf36737d917", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/video.js:277", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/video.js:277"}, "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-775f195318d10ede", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/ui.js:323", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/ui.js:323"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-591bd54f87d3128f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/customerPages.js:152", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/customerPages.js:152"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86397cd0ee58ceb6", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailLibrary.js:68", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailLibrary.js:68"}, "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-9d3de9904da817ac", "name": "Insecure pattern 'insert_adjacent_html' in static/js/emailLibrary.js:4238", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/emailLibrary.js:4238"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a22cde7b2f1464a2", "name": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary.js:2789", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary.js:2789"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1438fcfa9d9410ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brainAttach.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brainAttach.js:92"}, "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-17f27f01e98a3276", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashAutocomplete.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashAutocomplete.js:133"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2467c1497b14ae2c", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashCommands.js:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashCommands.js:265"}, "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-a850c17906bfe7a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modeSwitcher.js:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modeSwitcher.js:76"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a8df059cbce0c67", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/businessDashboard.js:1181", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/businessDashboard.js:1181"}, "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-284fa4ecdf567b22", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/researchSynapse.js:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/researchSynapse.js:29"}, "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-ee04ba8b2f58ec63", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brains.js:147", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brains.js:147"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-997f48c01a050576", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chat.js:187", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chat.js:187"}, "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-5b1971fca87abcdc", "name": "Insecure pattern 'insert_adjacent_html' in static/js/chat.js:2430", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/chat.js:2430"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d93a7dd60363acc4", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/navCustomize.js:347", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/navCustomize.js:347"}, "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-efacebae4c7d269e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emojiPicker.js:121", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emojiPicker.js:121"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c46ca00c0eb7a4ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/missionControl.js:608", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/missionControl.js:608"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a3c66558400fe60", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/harnessPickerFactory.js:112", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/harnessPickerFactory.js:112"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-499ddae62658808e", "name": "Insecure pattern 'exec_used' in static/js/codeRunner.js:208", "shortDescription": {"text": "Insecure pattern 'exec_used' in static/js/codeRunner.js:208"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22d40563769e3d5b", "name": "Insecure pattern 'document_write' in static/js/codeRunner.js:366", "shortDescription": {"text": "Insecure pattern 'document_write' in static/js/codeRunner.js:366"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-580b68ddb77da3ec", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/codeRunner.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/codeRunner.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af9c956e61228414", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/builder.js:313", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/builder.js:313"}, "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-707b6767391960cf", "name": "Insecure pattern 'direct_outerhtml_assignment' in static/js/builder.js:1435", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in static/js/builder.js:1435"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8095c658492c4901", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/keyboard-shortcuts.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/keyboard-shortcuts.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a398f2c35bc20cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/gallery.js:355", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/gallery.js:355"}, "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-c42d88ea21b4f10e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/signature.js:309", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/signature.js:309"}, "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-4e6b02c036c7bccd", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memoryGraph.js:212", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memoryGraph.js:212"}, "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-800c70917c473e3f", "name": "Insecure pattern 'insert_adjacent_html' in static/js/memoryGraph.js:406", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/memoryGraph.js:406"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-705c2d0ac8c9172e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookRunning.js:349", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookRunning.js:349"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5040b5be1ad95105", "name": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookRunning.js:1657", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookRunning.js:1657"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c614275eacd768e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/skills.js:244", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/skills.js:244"}, "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-363a62e03860c7d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/sessions.js:70", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/sessions.js:70"}, "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-a1e64158674ca0e3", "name": "Insecure pattern 'local_storage_auth_token' in static/js/sessions.js:1505", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/sessions.js:1505"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0cb319c26630da3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/section-management.js:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/section-management.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d2f5e269236f3a6", "name": "Insecure pattern 'insert_adjacent_html' in static/js/section-management.js:160", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/section-management.js:160"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67a3391e7b4252ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tasks.js:378", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tasks.js:378"}, "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-485f49ceb5991fd5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/usersAdmin.js:149", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/usersAdmin.js:149"}, "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-ffda85837dfa0bd0", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-hwfit.js:123", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-hwfit.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95c4de802a0db3f9", "name": "Insecure pattern 'insert_adjacent_html' in static/js/cookbook-hwfit.js:459", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbook-hwfit.js:459"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-671877e5cedade85", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/search-chat.js:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/search-chat.js:24"}, "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-744cdfba6fa9bf6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/notes.js:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/notes.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f3220208a997c51", "name": "Insecure pattern 'insert_adjacent_html' in static/js/notes.js:1740", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/notes.js:1740"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af913ce76b36f440", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/theme.js:737", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/theme.js:737"}, "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-b1da7668dba4d3e8", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook.js:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook.js:156"}, "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-6974c4a51e351961", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatRenderer.js:164", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatRenderer.js:164"}, "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-92cab93533191357", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tts-ai.js:74", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tts-ai.js:74"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5998f05fd3827c24", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/agents.js:1096", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/agents.js:1096"}, "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-33955452115c7bcb", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modelPicker.js:293", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modelPicker.js:293"}, "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-a64ca5f9db805e7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/calendar.js:445", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/calendar.js:445"}, "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-170022a79e31d5a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookServe.js:321", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookServe.js:321"}, "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-75cf05ebafa2bf6e", "name": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookServe.js:729", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookServe.js:729"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ceb9c411c58955a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/markdown.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/markdown.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a29bfd97d6f1a863", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/research/panel.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/research/panel.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-010e4160c500555c", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/layer-panel.js:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/layer-panel.js:87"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4416c0dd89b15043", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-inpaint-controls.js:104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-inpaint-controls.js:104"}, "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-68f611805566877f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/clipboard-and-drop.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/clipboard-and-drop.js:92"}, "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-9f6756cd2596aea3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-selection-controls.js:144", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-selection-controls.js:144"}, "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-53532d215543114f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/history-panel.js:81", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/history-panel.js:81"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ce1dbd23521e93c", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-import.js:118", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-import.js:118"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8df53b3d737bf25f", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tools-misc.js:111", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tools-misc.js:111"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6cf8733dfec1907e", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/shortcuts-popover.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/shortcuts-popover.js:39"}, "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-cfd794c38123dd25", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-models.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-models.js:99"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea23fdb384d974fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tool-runner.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tool-runner.js:55"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c38ad0fd4a26d10", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/fx/adj-popup.js:142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/fx/adj-popup.js:142"}, "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-d4afbf31c6d9ef04", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/tools/transform-session.js:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/tools/transform-session.js:90"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32c61cd9c715a99b", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/stream.js:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/stream.js:105"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc9b4f1fc464845a", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/vote.js:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/vote.js:47"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-379a5f2606fc8f77", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/probe.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/probe.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-900ae4cf637ee495", "name": "Insecure pattern 'document_write' in static/js/compare/index.js:1101", "shortDescription": {"text": "Insecure pattern 'document_write' in static/js/compare/index.js:1101"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4cf2b658e39f18e9", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/index.js:315", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/index.js:315"}, "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-e2218d5de1af24e9", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/panes.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/panes.js:69"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-700a085ac9cf8f70", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/scoreboard.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/scoreboard.js:53"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c52e8d12f5f79e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/selector.js:78", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/selector.js:78"}, "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-293c97c85547bec7", "name": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary/utils.js:159", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary/utils.js:159"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18f1d2d7a1018b32", "name": "Insecure pattern 'document_write' in static/lib/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'document_write' in static/lib/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1286857463b7566d", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2"}, "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-01d3c250843bf1d4", "name": "Insecure pattern 'direct_outerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab3d87441881e5a8", "name": "Insecure pattern 'domparser_html_parse' in static/lib/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in static/lib/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd058e2b88c87bf1", "name": "Insecure pattern 'new_function_used' in static/lib/mammoth.browser.min.js:5", "shortDescription": {"text": "Insecure pattern 'new_function_used' in static/lib/mammoth.browser.min.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d95bd90954e894f", "name": "Insecure pattern 'exec_used' in static/lib/xlsx.full.min.js:10", "shortDescription": {"text": "Insecure pattern 'exec_used' in static/lib/xlsx.full.min.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90d9622f7d7104a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/highlight.min.js:271", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/highlight.min.js:271"}, "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-93f24babd1f685d8", "name": "Insecure pattern 'new_function_used' in static/lib/docx.umd.min.js:18524", "shortDescription": {"text": "Insecure pattern 'new_function_used' in static/lib/docx.umd.min.js:18524"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9b79121711f06aa", "name": "Insecure pattern 'exec_used' in static/lib/docx.umd.min.js:2849", "shortDescription": {"text": "Insecure pattern 'exec_used' in static/lib/docx.umd.min.js:2849"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa28df8091550212", "name": "Insecure pattern 'new_function_used' in static/lib/d3.v7.min.js:2", "shortDescription": {"text": "Insecure pattern 'new_function_used' in static/lib/d3.v7.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf81aea14e879da5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/d3.v7.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/d3.v7.min.js:2"}, "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-b8292c66ed5d85d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:756", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:756"}, "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-009ac5d370e46706", "name": "Possible secret in scripts/demo_email/demo_account.py", "shortDescription": {"text": "Possible secret in scripts/demo_email/demo_account.py"}, "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-f7ead82686e89531", "name": "Insecure pattern 'subprocess_shell_true' in src/builtin_actions.py:464", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in src/builtin_actions.py:464"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-948c75364c3b8922", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22f81cdc041766a6", "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-2db76986bccaa12e", "name": "Very large file: app.py (1398 lines)", "shortDescription": {"text": "Very large file: app.py (1398 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9655114d351ef87", "name": "Very large file: tests/test_open_platform_foundation.py (4195 lines)", "shortDescription": {"text": "Very large file: tests/test_open_platform_foundation.py (4195 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-66e515f13bdbd91c", "name": "Very large file: static/app.js (4371 lines)", "shortDescription": {"text": "Very large file: static/app.js (4371 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-866f587c2da3def5", "name": "Very large file: static/js/settings.js (4575 lines)", "shortDescription": {"text": "Very large file: static/js/settings.js (4575 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-721e4699c78d61cf", "name": "Very large file: static/js/emailInbox.js (1245 lines)", "shortDescription": {"text": "Very large file: static/js/emailInbox.js (1245 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f236e8d83a62a232", "name": "Very large file: static/js/documentLibrary.js (3358 lines)", "shortDescription": {"text": "Very large file: static/js/documentLibrary.js (3358 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eb344091032d9b4", "name": "Very large file: static/js/document.js (9574 lines)", "shortDescription": {"text": "Very large file: static/js/document.js (9574 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3db048d380c1985e", "name": "Very large file: static/js/modalManager.js (1599 lines)", "shortDescription": {"text": "Very large file: static/js/modalManager.js (1599 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e8e9077199ba89c", "name": "Very large file: static/js/galleryEditor.js (3798 lines)", "shortDescription": {"text": "Very large file: static/js/galleryEditor.js (3798 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a202aec4bdedfd39", "name": "Very large file: static/js/admin.js (2267 lines)", "shortDescription": {"text": "Very large file: static/js/admin.js (2267 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dcc02039d79f4112", "name": "Very large file: static/js/memory.js (1431 lines)", "shortDescription": {"text": "Very large file: static/js/memory.js (1431 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-264a6c5d2074dd26", "name": "Very large file: static/js/video.js (1666 lines)", "shortDescription": {"text": "Very large file: static/js/video.js (1666 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73c40d57514eee94", "name": "Very large file: static/js/ui.js (1304 lines)", "shortDescription": {"text": "Very large file: static/js/ui.js (1304 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2bf0652ddf08bad8", "name": "Very large file: static/js/emailLibrary.js (5217 lines)", "shortDescription": {"text": "Very large file: static/js/emailLibrary.js (5217 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d31d1d0994c3eadf", "name": "Very large file: static/js/slashCommands.js (6099 lines)", "shortDescription": {"text": "Very large file: static/js/slashCommands.js (6099 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-66324c63e2e1786c", "name": "Very large file: static/js/businessDashboard.js (2464 lines)", "shortDescription": {"text": "Very large file: static/js/businessDashboard.js (2464 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf920a514eefba5e", "name": "Very large file: static/js/chat.js (4577 lines)", "shortDescription": {"text": "Very large file: static/js/chat.js (4577 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9cd157aa2276316", "name": "Very large file: static/js/builder.js (1713 lines)", "shortDescription": {"text": "Very large file: static/js/builder.js (1713 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13913f227628ba73", "name": "Very large file: static/js/gallery.js (2835 lines)", "shortDescription": {"text": "Very large file: static/js/gallery.js (2835 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c10fbb84766f55e3", "name": "Very large file: static/js/cookbookRunning.js (3218 lines)", "shortDescription": {"text": "Very large file: static/js/cookbookRunning.js (3218 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b81c916c92660d1a", "name": "Very large file: static/js/skills.js (2104 lines)", "shortDescription": {"text": "Very large file: static/js/skills.js (2104 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac90c68b4a8e64d1", "name": "Very large file: static/js/sessions.js (3272 lines)", "shortDescription": {"text": "Very large file: static/js/sessions.js (3272 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c30d976ec2649fe", "name": "Very large file: static/js/tasks.js (2702 lines)", "shortDescription": {"text": "Very large file: static/js/tasks.js (2702 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22c7876c5592f136", "name": "Very large file: static/js/cookbook-hwfit.js (1790 lines)", "shortDescription": {"text": "Very large file: static/js/cookbook-hwfit.js (1790 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b131ca793b64f97", "name": "Very large file: static/js/notes.js (5024 lines)", "shortDescription": {"text": "Very large file: static/js/notes.js (5024 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d734f5f92e9d09f", "name": "Very large file: static/js/theme.js (2243 lines)", "shortDescription": {"text": "Very large file: static/js/theme.js (2243 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa6f31719548b699", "name": "Very large file: static/js/cookbook.js (2036 lines)", "shortDescription": {"text": "Very large file: static/js/cookbook.js (2036 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d12a353330570bb2", "name": "Very large file: static/js/chatRenderer.js (2328 lines)", "shortDescription": {"text": "Very large file: static/js/chatRenderer.js (2328 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d3ac9898df1740c", "name": "Very large file: static/js/agents.js (1670 lines)", "shortDescription": {"text": "Very large file: static/js/agents.js (1670 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-722b8cc701006f33", "name": "Very large file: static/js/calendar.js (3348 lines)", "shortDescription": {"text": "Very large file: static/js/calendar.js (3348 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4fbb72195e29d805", "name": "Very large file: static/js/cookbookServe.js (2086 lines)", "shortDescription": {"text": "Very large file: static/js/cookbookServe.js (2086 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f12a075db6adf7ef", "name": "Very large file: static/js/research/panel.js (1751 lines)", "shortDescription": {"text": "Very large file: static/js/research/panel.js (1751 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46858f847593e25f", "name": "Very large file: static/js/compare/index.js (1482 lines)", "shortDescription": {"text": "Very large file: static/js/compare/index.js (1482 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c26317e519f4e2ba", "name": "Very large file: static/js/compare/selector.js (1335 lines)", "shortDescription": {"text": "Very large file: static/js/compare/selector.js (1335 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43dc98d1524de01b", "name": "Very large file: static/lib/highlight.min.js (1212 lines)", "shortDescription": {"text": "Very large file: static/lib/highlight.min.js (1212 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5e82676eaa28671", "name": "Very large file: static/lib/docx.umd.min.js (20116 lines)", "shortDescription": {"text": "Very large file: static/lib/docx.umd.min.js (20116 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f74d53690e3d6d35", "name": "Very large file: routes/gallery_routes.py (1872 lines)", "shortDescription": {"text": "Very large file: routes/gallery_routes.py (1872 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e4fc3e62ee29fa1", "name": "Very large file: routes/cookbook_routes.py (2138 lines)", "shortDescription": {"text": "Very large file: routes/cookbook_routes.py (2138 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-984bbd417d963cc6", "name": "Very large file: routes/email_routes.py (2994 lines)", "shortDescription": {"text": "Very large file: routes/email_routes.py (2994 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b24eefab4be3bf62", "name": "Very large file: routes/email_pollers.py (1111 lines)", "shortDescription": {"text": "Very large file: routes/email_pollers.py (1111 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-215e3381487b1812", "name": "Very large file: routes/session_routes.py (1267 lines)", "shortDescription": {"text": "Very large file: routes/session_routes.py (1267 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5140c4ec6b9fad4", "name": "Very large file: routes/model_routes.py (1782 lines)", "shortDescription": {"text": "Very large file: routes/model_routes.py (1782 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ed3a8a014be6faa", "name": "Very large file: routes/skills_routes.py (1812 lines)", "shortDescription": {"text": "Very large file: routes/skills_routes.py (1812 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8fe09ce52b07442", "name": "Very large file: routes/document_routes.py (1568 lines)", "shortDescription": {"text": "Very large file: routes/document_routes.py (1568 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f01d5517c569ec48", "name": "Very large file: routes/email_helpers.py (2908 lines)", "shortDescription": {"text": "Very large file: routes/email_helpers.py (2908 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54d6ff6784b34041", "name": "Very large file: routes/agents_routes.py (1618 lines)", "shortDescription": {"text": "Very large file: routes/agents_routes.py (1618 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a1cfd74bafac86c", "name": "Very large file: routes/chat_routes.py (1510 lines)", "shortDescription": {"text": "Very large file: routes/chat_routes.py (1510 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1384f7067e163e5f", "name": "Very large file: routes/calendar_routes.py (1257 lines)", "shortDescription": {"text": "Very large file: routes/calendar_routes.py (1257 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-64540647ea5f47cd", "name": "Very large file: core/database.py (3138 lines)", "shortDescription": {"text": "Very large file: core/database.py (3138 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d685711bcc2f64ea", "name": "Very large file: core/auth.py (1709 lines)", "shortDescription": {"text": "Very large file: core/auth.py (1709 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a1c3784508bf782", "name": "Very large file: mcp_servers/email_server.py (1714 lines)", "shortDescription": {"text": "Very large file: mcp_servers/email_server.py (1714 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df56726e6747d576", "name": "Very large file: src/task_scheduler.py (2373 lines)", "shortDescription": {"text": "Very large file: src/task_scheduler.py (2373 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f8b7066f54fd0e1", "name": "Very large file: src/tool_schemas.py (1407 lines)", "shortDescription": {"text": "Very large file: src/tool_schemas.py (1407 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74ce5b9626b51c63", "name": "Very large file: src/tool_implementations.py (4234 lines)", "shortDescription": {"text": "Very large file: src/tool_implementations.py (4234 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65926617c3fbc054", "name": "Very large file: src/ai_brains.py (2377 lines)", "shortDescription": {"text": "Very large file: src/ai_brains.py (2377 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f427bcae43484076", "name": "Very large file: src/llm_core.py (1486 lines)", "shortDescription": {"text": "Very large file: src/llm_core.py (1486 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2403b27cb089bde", "name": "Very large file: src/builtin_actions.py (2466 lines)", "shortDescription": {"text": "Very large file: src/builtin_actions.py (2466 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9404d008e6d10407", "name": "Very large file: src/agent_loop.py (2462 lines)", "shortDescription": {"text": "Very large file: src/agent_loop.py (2462 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddf5df69629ec308", "name": "Very large file: src/visual_report.py (1902 lines)", "shortDescription": {"text": "Very large file: src/visual_report.py (1902 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a76aeb3f6524e42d", "name": "Very large file: src/ai_interaction.py (1861 lines)", "shortDescription": {"text": "Very large file: src/ai_interaction.py (1861 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58ac4bdd8d2e5578", "name": "53 TODO/FIXME markers", "shortDescription": {"text": "53 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 155 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 421 placeholder/mock markers across 75 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f5bb20983cc8c82", "name": "Commented-code block (5 lines) in app.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in app.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de2d18cc669189dc", "name": "Commented-code block (5 lines) in _devboot.py:16", "shortDescription": {"text": "Commented-code block (5 lines) in _devboot.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83467ac18288e1aa", "name": "Commented-code block (6 lines) in tests/test_security_regressions.py:851", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_security_regressions.py:851"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09c3ff616d86680e", "name": "Commented-code block (8 lines) in tests/conftest.py:43", "shortDescription": {"text": "Commented-code block (8 lines) in tests/conftest.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9af52eb4150188fc", "name": "Commented-code block (7 lines) in tests/test_companion_readonly.py:21", "shortDescription": {"text": "Commented-code block (7 lines) in tests/test_companion_readonly.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a096abec3d249e0", "name": "Commented-code block (6 lines) in tests/test_hwfit_macos.py:133", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_hwfit_macos.py:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13746101840c2456", "name": "Commented-code block (6 lines) in tests/test_blind_compare_redaction.py:27", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_blind_compare_redaction.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfcc0e2ad8085420", "name": "Legacy-named symbol `test_current_brand_root_wins_over_legacy` in tests/test_device_store.py:51", "shortDescription": {"text": "Legacy-named symbol `test_current_brand_root_wins_over_legacy` in tests/test_device_store.py:51"}, "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-827b951ce1692ae6", "name": "Legacy-named symbol `anthropic_v1` in tests/test_provider_endpoints.py:44", "shortDescription": {"text": "Legacy-named symbol `anthropic_v1` in tests/test_provider_endpoints.py:44"}, "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-3752f9c081d2e314", "name": "Commented-code block (6 lines) in tests/test_skills_manager_owner_isolation.py:83", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_skills_manager_owner_isolation.py:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d3b0eede300087e", "name": "Legacy-named symbol `test_localhost_v1` in tests/test_ollama_port_detection.py:31", "shortDescription": {"text": "Legacy-named symbol `test_localhost_v1` in tests/test_ollama_port_detection.py:31"}, "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-6ed36920e316e11b", "name": "Legacy-named symbol `test_anthropic_v1_base_does_not_double_v1` in tests/test_endpoint_resolver.py:147", "shortDescription": {"text": "Legacy-named symbol `test_anthropic_v1_base_does_not_double_v1` in tests/test_endpoint_resolver.py:147"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5350e26bb843d026", "name": "Commented-code block (6 lines) in tests/test_session_ghost_delete.py:27", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_session_ghost_delete.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5c70568de04cbea", "name": "Commented-code block (5 lines) in tests/test_upload_handler_atomicity.py:184", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_upload_handler_atomicity.py:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-872c9604b2f9c8e2", "name": "Commented-code block (5 lines) in tests/test_carddav_url_hardening.py:26", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_carddav_url_hardening.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15c09181b1cf7d15", "name": "Commented-code block (6 lines) in tests/test_null_owner_gates.py:21", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_null_owner_gates.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-761083d196792471", "name": "Commented-code block (9 lines) in tests/test_task_scheduler_session_delivery.py:17", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_task_scheduler_session_delivery.py:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67631690a10b669c", "name": "Commented-code block (5 lines) in tests/test_builder_verify.py:430", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_builder_verify.py:430"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-927f6db633c6a1dc", "name": "Commented-code block (5 lines) in tests/test_memory_routes_session_owner.py:18", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_memory_routes_session_owner.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64cb29e221e09af0", "name": "Legacy-named symbol `test_anthropic_probe_does_not_double_v1` in tests/test_model_routes.py:349", "shortDescription": {"text": "Legacy-named symbol `test_anthropic_probe_does_not_double_v1` in tests/test_model_routes.py:349"}, "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-cbddb40b54c3fb77", "name": "Commented-code block (9 lines) in tests/test_auth_event_loop.py:22", "shortDescription": {"text": "Commented-code block (9 lines) in tests/test_auth_event_loop.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6228085b686c8db", "name": "Commented-code block (6 lines) in tests/test_session_owner_attribution.py:22", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_session_owner_attribution.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d79a246e6c6d61c", "name": "Commented-code block (9 lines) in static/sw.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in static/sw.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31597e30c3128aa3", "name": "Commented-code block (5 lines) in static/app.js:47", "shortDescription": {"text": "Commented-code block (5 lines) in static/app.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b97d53f38b5800a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/app.js:403", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/app.js:403"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-851aee677d73c606", "name": "Commented-code block (5 lines) in static/guia-paper/js/adapterSupabase.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/guia-paper/js/adapterSupabase.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c13040add6c3b26e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/guia-paper/js/supabaseClient.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/guia-paper/js/supabaseClient.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2aeb7ee73e8d72aa", "name": "Commented-code block (5 lines) in static/guia-paper/js/adapter.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/guia-paper/js/adapter.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-775f00f01c8f9f69", "name": "Commented-code block (5 lines) in static/js/colorPicker.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/colorPicker.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-579eacff3593c1ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/marketplace.js:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/marketplace.js:53"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6dbe6ed83bfe877", "name": "Commented-code block (5 lines) in static/js/settings.js:2423", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/settings.js:2423"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fa1833d62f90cc7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/settings.js:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/settings.js:55"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00534997331e9087", "name": "Commented-code block (6 lines) in static/js/a11y.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/a11y.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d484aa6baed6baf7", "name": "Commented-code block (9 lines) in static/js/group.js:617", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/group.js:617"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-932beaad5bdbc501", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/group.js:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/group.js:185"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10e374e582ad5998", "name": "Commented-code block (6 lines) in static/js/presets.js:786", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/presets.js:786"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dbe7c85687a7e000", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/presets.js:397", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/presets.js:397"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d3e4df8fc4eed3c", "name": "Commented-code block (7 lines) in static/js/emailInbox.js:93", "shortDescription": {"text": "Commented-code block (7 lines) in static/js/emailInbox.js:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26d742868db0dec5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailInbox.js:688", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailInbox.js:688"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c17d2e83e45089a", "name": "Commented-code block (8 lines) in static/js/documentLibrary.js:456", "shortDescription": {"text": "Commented-code block (8 lines) in static/js/documentLibrary.js:456"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9230269d306d3b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/documentLibrary.js:997", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/documentLibrary.js:997"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adcf9ac8c6c9e07b", "name": "Legacy-named symbol `chunkOld` in static/js/document.js:7381", "shortDescription": {"text": "Legacy-named symbol `chunkOld` in static/js/document.js:7381"}, "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-5c07dbc4f903cd07", "name": "Commented-code block (6 lines) in static/js/document.js:1384", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/document.js:1384"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a00029a0be26d254", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/document.js:2991", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/document.js:2991"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-668d26cbbf2fe548", "name": "Commented-code block (5 lines) in static/js/modalManager.js:59", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/modalManager.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a3abbd1d18cbd07", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/automationHub.js:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/automationHub.js:57"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2541984c2663234", "name": "Commented-code block (9 lines) in static/js/galleryEditor.js:156", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/galleryEditor.js:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d8011c64214f810", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/galleryEditor.js:806", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/galleryEditor.js:806"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf1584d0887d3b3d", "name": "Commented-code block (5 lines) in static/js/sidebar-layout.js:110", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/sidebar-layout.js:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ef7e526f3260414", "name": "Commented-code block (5 lines) in static/js/tourHints.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/tourHints.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89e4f8b59072983c", "name": "Legacy-named symbol `listLegacy` in static/js/admin.js:403", "shortDescription": {"text": "Legacy-named symbol `listLegacy` in static/js/admin.js:403"}, "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-2ef37c105c9ee4ae", "name": "Commented-code block (5 lines) in static/js/admin.js:210", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/admin.js:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-628ecb04fc863836", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/admin.js:195", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/admin.js:195"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4133b82a9a86b44a", "name": "Commented-code block (6 lines) in static/js/escMenuStack.js:64", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/escMenuStack.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8fe1db1e1d9a752", "name": "Commented-code block (5 lines) in static/js/cookbookDownload.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/cookbookDownload.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b21ba222f8f48425", "name": "Commented-code block (9 lines) in static/js/modalSnap.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/modalSnap.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9abaf5ea8e482c1", "name": "Commented-code block (9 lines) in static/js/tileManager.js:176", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/tileManager.js:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c997f7bfca7fd451", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memory.js:437", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memory.js:437"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d120c200322bc3d8", "name": "Commented-code block (5 lines) in static/js/whatsappLab.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/whatsappLab.js: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-9fae1dac7f5ab677", "name": "Commented-code block (5 lines) in static/js/chatStream.js:138", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/chatStream.js:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc95fbbd2eda530f", "name": "Commented-code block (6 lines) in static/js/ui.js:236", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/ui.js:236"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-901ca9e6c4e6333c", "name": "Commented-code block (5 lines) in static/js/emailLibrary.js:546", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emailLibrary.js:546"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-becbe147b10af91c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailLibrary.js:1693", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailLibrary.js:1693"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e78925109dff8f1", "name": "Commented-code block (5 lines) in static/js/brainAttach.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/brainAttach.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8dfb3799180fe0a", "name": "Commented-code block (5 lines) in static/js/slashAutocomplete.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/slashAutocomplete.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0cf9a320e494854", "name": "Commented-code block (5 lines) in static/js/slashCommands.js:1852", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/slashCommands.js:1852"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96220258d48c4564", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/slashCommands.js:583", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/slashCommands.js:583"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39f5681e89799cba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/modeSwitcher.js:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/modeSwitcher.js:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc597726a8a204d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/businessDashboard.js:510", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/businessDashboard.js:510"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9802b57f1a7793bc", "name": "Commented-code block (6 lines) in static/js/chat.js:31", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/chat.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d41819726866cf96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chat.js:683", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chat.js:683"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0918f0816c04ea0e", "name": "Commented-code block (10 lines) in static/js/navCustomize.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in static/js/navCustomize.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8256b9373435d781", "name": "Commented-code block (30 lines) in static/js/windowDrag.js:8", "shortDescription": {"text": "Commented-code block (30 lines) in static/js/windowDrag.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9717afc2a11b395d", "name": "Commented-code block (5 lines) in static/js/emojiPicker.js:273", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emojiPicker.js:273"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecd368bcab4b370e", "name": "Commented-code block (6 lines) in static/js/harnessPickerFactory.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/harnessPickerFactory.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d87ae9d87aa48c4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/harnessPickerFactory.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/harnessPickerFactory.js:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fe65cf35efc0baf", "name": "Legacy-named symbol `addCopyBtn_unused` in static/js/codeRunner.js:93", "shortDescription": {"text": "Legacy-named symbol `addCopyBtn_unused` in static/js/codeRunner.js:93"}, "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-f6d78b0bd5bc45b8", "name": "Commented-code block (6 lines) in static/js/builder.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/builder.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78820455083a6002", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/builder.js:1271", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/builder.js:1271"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cbc61da260ea3df", "name": "Commented-code block (9 lines) in static/js/keyboard-shortcuts.js:64", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/keyboard-shortcuts.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95c4e25e9fa13b37", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/keyboard-shortcuts.js:188", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/keyboard-shortcuts.js:188"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13eb48058e84eaff", "name": "Commented-code block (5 lines) in static/js/gallery.js:822", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/gallery.js:822"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6a836f5a9c49291", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/gallery.js:700", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/gallery.js:700"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9628169a7c8e036c", "name": "Commented-code block (5 lines) in static/js/signature.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/signature.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30da5c94512c6b02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/signature.js:315", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/signature.js:315"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ff27e3857afc5c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memoryGraph.js:401", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memoryGraph.js:401"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf611ee9125f8bcd", "name": "Commented-code block (5 lines) in static/js/harnessPicker.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/harnessPicker.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1da3d90cf6057cac", "name": "Commented-code block (5 lines) in static/js/cookbookRunning.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/cookbookRunning.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca8bec3719d22e74", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookRunning.js:339", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookRunning.js:339"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0091cf7f1ada3cf9", "name": "Commented-code block (5 lines) in static/js/skills.js:775", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/skills.js:775"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45fdd4738c53afb5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/skills.js:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/skills.js:41"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f39cbbe662f3814", "name": "Commented-code block (9 lines) in static/js/sessions.js:1494", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/sessions.js:1494"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf8808d91a465422", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/sessions.js:227", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/sessions.js:227"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9c73f315c08e7719", "name": "Commented-code block (6 lines) in static/js/platform.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/platform.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6230f253bc88ffe7", "name": "Commented-code block (5 lines) in static/js/windowResize.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/windowResize.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a873688bd97b1482", "name": "Commented-code block (7 lines) in static/js/section-management.js:185", "shortDescription": {"text": "Commented-code block (7 lines) in static/js/section-management.js:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fb7aeecb73d9ba8", "name": "Commented-code block (7 lines) in static/js/init.js:20", "shortDescription": {"text": "Commented-code block (7 lines) in static/js/init.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b66d7d68c797e4b", "name": "Commented-code block (7 lines) in static/js/tasks.js:836", "shortDescription": {"text": "Commented-code block (7 lines) in static/js/tasks.js:836"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23b03ff0a647ff1f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tasks.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tasks.js:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9cfec22cf30d7893", "name": "Commented-code block (6 lines) in static/js/usersAdmin.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/usersAdmin.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-444828730272928a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/usersAdmin.js:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/usersAdmin.js:61"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f91f931fd13f4608", "name": "Legacy-named symbol `hwfit_scan_cache_v1` in static/js/cookbook-hwfit.js:214", "shortDescription": {"text": "Legacy-named symbol `hwfit_scan_cache_v1` in static/js/cookbook-hwfit.js:214"}, "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-74dbfa5fa2b11478", "name": "Commented-code block (5 lines) in static/js/cookbook-hwfit.js:73", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/cookbook-hwfit.js:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55a06fc97e9a2441", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook-hwfit.js:449", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook-hwfit.js:449"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ef4e1bd3c1a03db", "name": "Commented-code block (5 lines) in static/js/notes.js:674", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/notes.js:674"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9902d29595df8c3b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/notes.js:419", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/notes.js:419"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae29560af0d85792", "name": "Legacy-named symbol `saveNameInputOld` in static/js/theme.js:981", "shortDescription": {"text": "Legacy-named symbol `saveNameInputOld` in static/js/theme.js:981"}, "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-6be7823b7911ce1a", "name": "Commented-code block (5 lines) in static/js/theme.js:630", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/theme.js:630"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-101c0847df983f76", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/theme.js:1240", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/theme.js:1240"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66729555ff4a36e2", "name": "Commented-code block (5 lines) in static/js/cookbook.js:38", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/cookbook.js:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cec8a55ceca732d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook.js:660", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook.js:660"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-435975fc6f65b3b3", "name": "Commented-code block (5 lines) in static/js/chatRenderer.js:280", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/chatRenderer.js:280"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1406fe6bf17201b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chatRenderer.js:323", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chatRenderer.js:323"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2d624c7af361071", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tts-ai.js:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tts-ai.js:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52e2b5b60c28d587", "name": "Commented-code block (5 lines) in static/js/calendar.js:243", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/calendar.js:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aa67a683bb409bd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/calendar.js:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/calendar.js:120"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87a7cb2058bdda7a", "name": "Commented-code block (5 lines) in static/js/cookbookServe.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/cookbookServe.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e09f45c8a4a9d04c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookServe.js:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookServe.js:139"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f693732107964d33", "name": "Commented-code block (8 lines) in static/js/markdown.js:232", "shortDescription": {"text": "Commented-code block (8 lines) in static/js/markdown.js:232"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c2a4e5e479178d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/research/jobs.js:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/research/jobs.js:72"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94935e555325b8ed", "name": "Commented-code block (8 lines) in static/js/editor/wire-topbar.js:78", "shortDescription": {"text": "Commented-code block (8 lines) in static/js/editor/wire-topbar.js:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a40df5297a6ab4ea", "name": "Commented-code block (5 lines) in static/js/editor/keyboard-shortcuts.js:129", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/editor/keyboard-shortcuts.js:129"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-894d40dd9f251f98", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-tools-misc.js:176", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-tools-misc.js:176"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-282c91b05ec387e5", "name": "Commented-code block (5 lines) in static/js/editor/stroke-pipeline.js:84", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/editor/stroke-pipeline.js:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74cb3833edd6143b", "name": "Commented-code block (5 lines) in static/js/editor/canvas-events.js:137", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/editor/canvas-events.js:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd8bc17b3d4d0053", "name": "Commented-code block (6 lines) in static/js/editor/ai-inpaint.js:123", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/editor/ai-inpaint.js:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0eaad851dede7452", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-inpaint.js:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-inpaint.js:139"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef43694981e0b735", "name": "Commented-code block (6 lines) in static/js/editor/fx/adj-popup.js:107", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/editor/fx/adj-popup.js:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2189cecb68e3edd", "name": "Commented-code block (7 lines) in static/js/editor/tools/transform-handles.js:51", "shortDescription": {"text": "Commented-code block (7 lines) in static/js/editor/tools/transform-handles.js:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f8ce784751fafc5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/models.js:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/models.js:57"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8df5183f0c6db5d", "name": "Commented-code block (6 lines) in static/js/compare/stream.js:235", "shortDescription": {"text": "Commented-code block (6 lines) in static/js/compare/stream.js:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7d08e17497569bd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/stream.js:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/stream.js:97"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6356496c2f132d80", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/probe.js:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/probe.js:45"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17d1fd747169c64d", "name": "Commented-code block (9 lines) in static/js/compare/index.js:545", "shortDescription": {"text": "Commented-code block (9 lines) in static/js/compare/index.js:545"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac0d3bcb0424842d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/index.js:222", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/index.js:222"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17893fb294e8545b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/panes.js:393", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/panes.js:393"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bea18f46bccad60", "name": "Commented-code block (5 lines) in static/js/compare/selector.js:967", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/compare/selector.js:967"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d215fb634617eecc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/selector.js:1009", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/selector.js:1009"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46d657c92fc1ea43", "name": "Commented-code block (5 lines) in static/js/emailLibrary/replyRecipients.js:15", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/replyRecipients.js:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b279677820d392f", "name": "Commented-code block (5 lines) in static/js/emailLibrary/utils.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/utils.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6737995f6105cd57", "name": "Commented-code block (5 lines) in static/js/emailLibrary/state.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/state.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3615f224241e9636", "name": "Commented-code block (5 lines) in static/js/emailLibrary/signatureFold.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/signatureFold.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e764191d6e4a71a6", "name": "Commented-code block (5 lines) in static/js/calendar/reminders.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in static/js/calendar/reminders.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0412061cf5b33aae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/html2pdf.bundle.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9f8bf36e7916772", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/d3.v7.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/d3.v7.min.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b75ce07be3ea502", "name": "Commented-code block (6 lines) in scripts/add_hwfit_models.py:269", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/add_hwfit_models.py:269"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd3e4b481d51ca0a", "name": "Commented-code block (5 lines) in scripts/diffusion_server.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/diffusion_server.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4a662bbf5d20518", "name": "Stub function `set_postfix` (body is just `pass`/`return`) \u2014 scripts/hf_download.py:96", "shortDescription": {"text": "Stub function `set_postfix` (body is just `pass`/`return`) \u2014 scripts/hf_download.py:96"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5601d50d5600030", "name": "Commented-code block (6 lines) in routes/gallery_routes.py:886", "shortDescription": {"text": "Commented-code block (6 lines) in routes/gallery_routes.py:886"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73ffd310c141784a", "name": "Commented-code block (5 lines) in routes/cookbook_routes.py:458", "shortDescription": {"text": "Commented-code block (5 lines) in routes/cookbook_routes.py:458"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2387832ebc9ed2ca", "name": "Network/subprocess call without timeout or try/except \u2014 routes/cookbook_routes.py:398", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/cookbook_routes.py:398"}, "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-59aa6f1f51096c0f", "name": "Commented-code block (5 lines) in routes/shell_routes.py:18", "shortDescription": {"text": "Commented-code block (5 lines) in routes/shell_routes.py:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7347f15a08dad2e", "name": "Commented-code block (5 lines) in routes/webhook_routes.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in routes/webhook_routes.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-548e038d92fc0c5e", "name": "Commented-code block (5 lines) in routes/contacts_routes.py:493", "shortDescription": {"text": "Commented-code block (5 lines) in routes/contacts_routes.py:493"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72025586b8c2b0dd", "name": "Commented-code block (7 lines) in routes/memory_routes.py:383", "shortDescription": {"text": "Commented-code block (7 lines) in routes/memory_routes.py:383"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa2cb5e47094e0c2", "name": "Commented-code block (12 lines) in routes/email_routes.py:427", "shortDescription": {"text": "Commented-code block (12 lines) in routes/email_routes.py:427"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0b852796085b1bc", "name": "Commented-code block (6 lines) in routes/cookbook_helpers.py:234", "shortDescription": {"text": "Commented-code block (6 lines) in routes/cookbook_helpers.py:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93ec76f23e3a72a5", "name": "Commented-code block (5 lines) in routes/email_pollers.py:189", "shortDescription": {"text": "Commented-code block (5 lines) in routes/email_pollers.py:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c16a32cde26b0624", "name": "Commented-code block (9 lines) in routes/session_routes.py:185", "shortDescription": {"text": "Commented-code block (9 lines) in routes/session_routes.py:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ae9ef849d072a93", "name": "Commented-code block (6 lines) in routes/model_routes.py:319", "shortDescription": {"text": "Commented-code block (6 lines) in routes/model_routes.py:319"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36d98acaa22b4040", "name": "Commented-code block (6 lines) in routes/note_routes.py:207", "shortDescription": {"text": "Commented-code block (6 lines) in routes/note_routes.py:207"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1284f45fbf34efcd", "name": "Commented-code block (8 lines) in routes/builder_routes.py:151", "shortDescription": {"text": "Commented-code block (8 lines) in routes/builder_routes.py:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb0ff2277bad5211", "name": "Commented-code block (5 lines) in routes/auth_routes.py:800", "shortDescription": {"text": "Commented-code block (5 lines) in routes/auth_routes.py:800"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1818105b44a77a37", "name": "Commented-code block (6 lines) in routes/document_routes.py:60", "shortDescription": {"text": "Commented-code block (6 lines) in routes/document_routes.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efa48d732fca3c73", "name": "Network/subprocess call without timeout or try/except \u2014 routes/desktop_routes.py:731", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/desktop_routes.py:731"}, "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-0c83e6bec8266685", "name": "Commented-code block (5 lines) in routes/email_helpers.py:390", "shortDescription": {"text": "Commented-code block (5 lines) in routes/email_helpers.py:390"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5db730782b9955bd", "name": "Legacy-named symbol `msgs_to_copy` in routes/history_routes.py:459", "shortDescription": {"text": "Legacy-named symbol `msgs_to_copy` in routes/history_routes.py:459"}, "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-9cad05b7f069f386", "name": "Commented-code block (12 lines) in routes/emoji_routes.py:1", "shortDescription": {"text": "Commented-code block (12 lines) in routes/emoji_routes.py:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ceef9d1aedc8640c", "name": "Commented-code block (6 lines) in routes/chat_routes.py:484", "shortDescription": {"text": "Commented-code block (6 lines) in routes/chat_routes.py:484"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02a5e3bb4a067d24", "name": "Commented-code block (6 lines) in routes/calendar_routes.py:21", "shortDescription": {"text": "Commented-code block (6 lines) in routes/calendar_routes.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71c792e06f92ed35", "name": "Commented-code block (5 lines) in routes/chat_helpers.py:169", "shortDescription": {"text": "Commented-code block (5 lines) in routes/chat_helpers.py:169"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd0d43c3f15ae8e1", "name": "Commented-code block (6 lines) in routes/task_routes.py:708", "shortDescription": {"text": "Commented-code block (6 lines) in routes/task_routes.py:708"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-569175187ba1c7a2", "name": "Network/subprocess call without timeout or try/except \u2014 routes/task_routes.py:338", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/task_routes.py:338"}, "fullDescription": {"text": "`subprocess.run(...)` 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-db73290c3de06aa4", "name": "Legacy-named symbol `model_copy` in modules/video/schema/timeline.py:151", "shortDescription": {"text": "Legacy-named symbol `model_copy` in modules/video/schema/timeline.py:151"}, "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-0730b8e94f67fbae", "name": "Commented-code block (5 lines) in services/hwfit/hardware.py:243", "shortDescription": {"text": "Commented-code block (5 lines) in services/hwfit/hardware.py:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df9b322d130dc9db", "name": "Commented-code block (5 lines) in services/hwfit/fit.py:307", "shortDescription": {"text": "Commented-code block (5 lines) in services/hwfit/fit.py:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb2cebcd0a24c135", "name": "Commented-code block (5 lines) in services/hwfit/models.py:137", "shortDescription": {"text": "Commented-code block (5 lines) in services/hwfit/models.py:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22c0364a1e00b5fe", "name": "Legacy-named symbol `days_old` in services/search/ranking.py:82", "shortDescription": {"text": "Legacy-named symbol `days_old` in services/search/ranking.py:82"}, "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-c1b2cf26c1438066", "name": "Legacy-named symbol `body_copy` in services/search/content.py:327", "shortDescription": {"text": "Legacy-named symbol `body_copy` in services/search/content.py:327"}, "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-a6f8e98fb9c5494a", "name": "Commented-code block (10 lines) in services/search/providers.py:145", "shortDescription": {"text": "Commented-code block (10 lines) in services/search/providers.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f5619fa52efb88d", "name": "Commented-code block (5 lines) in services/memory/skills.py:789", "shortDescription": {"text": "Commented-code block (5 lines) in services/memory/skills.py:789"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55b3f5723f36df29", "name": "Commented-code block (6 lines) in services/memory/memory_extractor.py:435", "shortDescription": {"text": "Commented-code block (6 lines) in services/memory/memory_extractor.py:435"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4dcf0ea5b7c0361", "name": "Commented-code block (6 lines) in services/memory/skill_extractor.py:145", "shortDescription": {"text": "Commented-code block (6 lines) in services/memory/skill_extractor.py:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5c55862afac5d7b", "name": "Commented-code block (8 lines) in services/stt/stt_service.py:68", "shortDescription": {"text": "Commented-code block (8 lines) in services/stt/stt_service.py:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7569ca12acf2c3b6", "name": "Commented-code block (5 lines) in core/database.py:667", "shortDescription": {"text": "Commented-code block (5 lines) in core/database.py:667"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-163c3e367fc442d9", "name": "Legacy-named symbol `archived_old` in core/session_manager.py:630", "shortDescription": {"text": "Legacy-named symbol `archived_old` in core/session_manager.py:630"}, "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-be51b696017a2c54", "name": "Commented-code block (6 lines) in core/auth.py:36", "shortDescription": {"text": "Commented-code block (6 lines) in core/auth.py:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a3a1adaa66815db", "name": "Commented-code block (6 lines) in core/middleware.py:152", "shortDescription": {"text": "Commented-code block (6 lines) in core/middleware.py:152"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a18ce750d017b5dd", "name": "Commented-code block (5 lines) in mcp_servers/email_server.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in mcp_servers/email_server.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6dfd19e27738412", "name": "Commented-code block (5 lines) in migrations/versions/0011_builder_projects.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/versions/0011_builder_projects.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-054dd47017dcc528", "name": "Stub function `collection` (body is just `pass`/`return`) \u2014 src/pgvector_store.py:301", "shortDescription": {"text": "Stub function `collection` (body is just `pass`/`return`) \u2014 src/pgvector_store.py:301"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29a8f9739b1534f2", "name": "Legacy-named symbol `days_old` in src/chat_processor.py:141", "shortDescription": {"text": "Legacy-named symbol `days_old` in src/chat_processor.py:141"}, "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-56afa60ceefe988a", "name": "Commented-code block (6 lines) in src/chat_processor.py:287", "shortDescription": {"text": "Commented-code block (6 lines) in src/chat_processor.py:287"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74e1e53cda982694", "name": "Commented-code block (5 lines) in src/context_compactor.py:205", "shortDescription": {"text": "Commented-code block (5 lines) in src/context_compactor.py:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d94c251e144cfda6", "name": "Commented-code block (5 lines) in src/task_scheduler.py:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/task_scheduler.py:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be5f6ea8bf620b7b", "name": "Commented-code block (7 lines) in src/tool_index.py:28", "shortDescription": {"text": "Commented-code block (7 lines) in src/tool_index.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dd96fb10e62f631", "name": "Commented-code block (8 lines) in src/email_thread_parser.py:68", "shortDescription": {"text": "Commented-code block (8 lines) in src/email_thread_parser.py:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a52df5b42419cc4e", "name": "Commented-code block (5 lines) in src/tool_implementations.py:1709", "shortDescription": {"text": "Commented-code block (5 lines) in src/tool_implementations.py:1709"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db6ad84432e66f4a", "name": "Commented-code block (5 lines) in src/auth_helpers.py:24", "shortDescription": {"text": "Commented-code block (5 lines) in src/auth_helpers.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78f428c057e27ab9", "name": "Commented-code block (6 lines) in src/bg_jobs.py:89", "shortDescription": {"text": "Commented-code block (6 lines) in src/bg_jobs.py:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc85a914167017cd", "name": "Network/subprocess call without timeout or try/except \u2014 src/bg_jobs.py:128", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bg_jobs.py:128"}, "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-793f0e6a15f38c63", "name": "Commented-code block (6 lines) in src/upload_handler.py:61", "shortDescription": {"text": "Commented-code block (6 lines) in src/upload_handler.py: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-78a1a140f8a3e542", "name": "Commented-code block (5 lines) in src/ai_brains.py:1567", "shortDescription": {"text": "Commented-code block (5 lines) in src/ai_brains.py:1567"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09b2749d46ef00bc", "name": "Commented-code block (6 lines) in src/deep_research.py:559", "shortDescription": {"text": "Commented-code block (6 lines) in src/deep_research.py:559"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c183d71beea8984", "name": "Commented-code block (5 lines) in src/agent_tools.py:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/agent_tools.py:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46136c4bf8989743", "name": "Commented-code block (8 lines) in src/config.py:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/config.py:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-895018c89dfecd17", "name": "Commented-code block (5 lines) in src/personal_docs.py:249", "shortDescription": {"text": "Commented-code block (5 lines) in src/personal_docs.py:249"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9bb591a915e83ce", "name": "Commented-code block (5 lines) in src/youtube_handler.py:206", "shortDescription": {"text": "Commented-code block (5 lines) in src/youtube_handler.py:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-326b4248f2d4a8f8", "name": "Commented-code block (5 lines) in src/chat_handler.py:188", "shortDescription": {"text": "Commented-code block (5 lines) in src/chat_handler.py:188"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37df4ffde21a2dbc", "name": "Legacy-named symbol `_migrate_from_legacy` in src/memory.py:260", "shortDescription": {"text": "Legacy-named symbol `_migrate_from_legacy` in src/memory.py:260"}, "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-90924cd1bb222117", "name": "Commented-code block (5 lines) in src/memory.py:194", "shortDescription": {"text": "Commented-code block (5 lines) in src/memory.py:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-532dff075bb15786", "name": "Legacy-named symbol `include_legacy` in src/research_handler.py:231", "shortDescription": {"text": "Legacy-named symbol `include_legacy` in src/research_handler.py:231"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8260647c6d8f600", "name": "Commented-code block (5 lines) in src/research_handler.py:373", "shortDescription": {"text": "Commented-code block (5 lines) in src/research_handler.py:373"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0eb11a5a64b0a1e", "name": "Legacy-named symbol `last_copy` in src/llm_core.py:705", "shortDescription": {"text": "Legacy-named symbol `last_copy` in src/llm_core.py:705"}, "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-9c9197ebddd631b5", "name": "Commented-code block (6 lines) in src/llm_core.py:51", "shortDescription": {"text": "Commented-code block (6 lines) in src/llm_core.py:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fc2e563740acaa3", "name": "Commented-code block (5 lines) in src/event_bus.py:123", "shortDescription": {"text": "Commented-code block (5 lines) in src/event_bus.py:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42e8b5711f333e85", "name": "Commented-code block (10 lines) in src/tool_execution.py:161", "shortDescription": {"text": "Commented-code block (10 lines) in src/tool_execution.py:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-049caaf4f7ef6eb8", "name": "Commented-code block (9 lines) in src/webhook_manager.py:141", "shortDescription": {"text": "Commented-code block (9 lines) in src/webhook_manager.py:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c17f7c8011b1a8ab", "name": "Commented-code block (11 lines) in src/builtin_mcp.py:133", "shortDescription": {"text": "Commented-code block (11 lines) in src/builtin_mcp.py:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad05e86de7eaa1bf", "name": "Commented-code block (7 lines) in src/builtin_actions.py:1540", "shortDescription": {"text": "Commented-code block (7 lines) in src/builtin_actions.py:1540"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6338345d11ab40c5", "name": "Stub function `commit` (body is just `pass`/`return`) \u2014 src/builtin_actions.py:2193", "shortDescription": {"text": "Stub function `commit` (body is just `pass`/`return`) \u2014 src/builtin_actions.py:2193"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c725e24791289a61", "name": "Commented-code block (13 lines) in src/tool_parsing.py:57", "shortDescription": {"text": "Commented-code block (13 lines) in src/tool_parsing.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42f79fd2f5db03b7", "name": "Commented-code block (5 lines) in src/pdf_forms.py:298", "shortDescription": {"text": "Commented-code block (5 lines) in src/pdf_forms.py:298"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2398bdedb83b734c", "name": "Commented-code block (7 lines) in src/preset_manager.py:168", "shortDescription": {"text": "Commented-code block (7 lines) in src/preset_manager.py:168"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63b4194f04145dfb", "name": "Commented-code block (6 lines) in src/data_planes.py:55", "shortDescription": {"text": "Commented-code block (6 lines) in src/data_planes.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f31a8bd8284bac12", "name": "Commented-code block (7 lines) in src/agent_loop.py:453", "shortDescription": {"text": "Commented-code block (7 lines) in src/agent_loop.py:453"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32362a407e43f3e5", "name": "Commented-code block (6 lines) in src/visual_report.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in src/visual_report.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5546a92d93ecb2d", "name": "Commented-code block (7 lines) in src/settings.py:135", "shortDescription": {"text": "Commented-code block (7 lines) in src/settings.py:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3790bcb4c7ae6dae", "name": "Commented-code block (7 lines) in src/pdf_form_doc.py:97", "shortDescription": {"text": "Commented-code block (7 lines) in src/pdf_form_doc.py:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60c6c47d79a59d74", "name": "Commented-code block (5 lines) in src/bg_monitor.py:111", "shortDescription": {"text": "Commented-code block (5 lines) in src/bg_monitor.py:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5f0e07e771b2ca5", "name": "Commented-code block (7 lines) in src/teacher_escalation.py:126", "shortDescription": {"text": "Commented-code block (7 lines) in src/teacher_escalation.py:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b685858d8ffcfe77", "name": "Commented-code block (6 lines) in src/embeddings.py:17", "shortDescription": {"text": "Commented-code block (6 lines) in src/embeddings.py:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee4b2393085fa97e", "name": "Commented-code block (5 lines) in src/endpoint_resolver.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/endpoint_resolver.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed748b2b7762c58c", "name": "Commented-code block (5 lines) in src/chat_helpers.py:25", "shortDescription": {"text": "Commented-code block (5 lines) in src/chat_helpers.py:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9dbbbdbe3b137e8", "name": "Commented-code block (7 lines) in src/document_processor.py:409", "shortDescription": {"text": "Commented-code block (7 lines) in src/document_processor.py:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8bc4ee6e5d1421c1", "name": "Commented-code block (6 lines) in src/ai_interaction.py:745", "shortDescription": {"text": "Commented-code block (6 lines) in src/ai_interaction.py:745"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f61b435718840d9", "name": "Blocking `httpx.get(...)` inside `async def do_list_models` \u2014 src/ai_interaction.py:1156", "shortDescription": {"text": "Blocking `httpx.get(...)` inside `async def do_list_models` \u2014 src/ai_interaction.py:1156"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `httpx.get(...)` 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-de33bb6621036d47", "name": "Blocking `httpx.get(...)` inside `async def do_generate_image` \u2014 src/ai_interaction.py:1763", "shortDescription": {"text": "Blocking `httpx.get(...)` inside `async def do_generate_image` \u2014 src/ai_interaction.py:1763"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `httpx.get(...)` 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-faa95d099213f5b8", "name": "Legacy-named symbol `days_old` in src/search/ranking.py:40", "shortDescription": {"text": "Legacy-named symbol `days_old` in src/search/ranking.py:40"}, "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-8d4ac578444635d5", "name": "Legacy-named symbol `body_copy` in src/search/content.py:332", "shortDescription": {"text": "Legacy-named symbol `body_copy` in src/search/content.py:332"}, "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-e859532605c17f75", "name": "Commented-code block (7 lines) in src/search/content.py:319", "shortDescription": {"text": "Commented-code block (7 lines) in src/search/content.py:319"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6e3e4ef574d3f86", "name": "173 env vars used in code but missing from .env.example", "shortDescription": {"text": "173 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLOWED_ORIGINS`, `APPDATA`, `APP_PORT`, `ARCHIVE_FOLDER`, `AUTH_ENABLED`, `BILLING_CHECKOUT_CANCEL_URL`, `BILLING_CHECKOUT_SUCCESS_URL`, `BILLING_ENABLED` + 165 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-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:\napp.py:dispatch, app.py:dispatch\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:\ndocs/whatsapp-lab/reference/openwa_gateway.py:get_status, docs/whatsapp-lab/reference/openwa_gateway.py:get_status, services/whatsapp_fleet/gateway.py:get_status, services/whatsapp_fleet/gateway.py:get_status\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-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:\nroutes/gallery_routes.py:close, core/session_manager.py:close, src/task_scheduler.py:close\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-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nroutes/note_routes.py:update_note, routes/note_routes.py:delete_note, routes/note_routes.py:toggle_pin, routes/note_routes.py:toggle_archive\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-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nroutes/document_routes.py:get_document, routes/document_routes.py:archive_document, routes/document_routes.py:update_document, routes/document_routes.py:patch_document\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-6444d3a38be38e59", "name": "FastAPI POST `pair_create` without auth dependency \u2014 companion/routes.py:178", "shortDescription": {"text": "FastAPI POST `pair_create` without auth dependency \u2014 companion/routes.py:178"}, "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-b81f65fee30778ec", "name": "FastAPI POST `openwa_webhook` without auth dependency \u2014 docs/whatsapp-lab/reference/whatsapp_fleet_routes.py:80", "shortDescription": {"text": "FastAPI POST `openwa_webhook` without auth dependency \u2014 docs/whatsapp-lab/reference/whatsapp_fleet_routes.py:80"}, "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-b3afb7b6dd8570da", "name": "FastAPI POST `generate_image` without auth dependency \u2014 scripts/diffusion_server.py:478", "shortDescription": {"text": "FastAPI POST `generate_image` without auth dependency \u2014 scripts/diffusion_server.py:478"}, "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-430411d23fb2b16d", "name": "FastAPI POST `inpaint_image` without auth dependency \u2014 scripts/diffusion_server.py:641", "shortDescription": {"text": "FastAPI POST `inpaint_image` without auth dependency \u2014 scripts/diffusion_server.py:641"}, "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-2b4b72922c3bb41d", "name": "FastAPI POST `harmonize_image` without auth dependency \u2014 scripts/diffusion_server.py:974", "shortDescription": {"text": "FastAPI POST `harmonize_image` without auth dependency \u2014 scripts/diffusion_server.py:974"}, "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-5bd0e513f82ced94", "name": "FastAPI POST `gallery_upload` without auth dependency \u2014 routes/gallery_routes.py:63", "shortDescription": {"text": "FastAPI POST `gallery_upload` without auth dependency \u2014 routes/gallery_routes.py:63"}, "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-656798f0915b4310", "name": "FastAPI POST `gallery_replace` without auth dependency \u2014 routes/gallery_routes.py:142", "shortDescription": {"text": "FastAPI POST `gallery_replace` without auth dependency \u2014 routes/gallery_routes.py:142"}, "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-d8c0c65f579abb7f", "name": "FastAPI POST `gallery_rename` without auth dependency \u2014 routes/gallery_routes.py:191", "shortDescription": {"text": "FastAPI POST `gallery_rename` without auth dependency \u2014 routes/gallery_routes.py:191"}, "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-6a4e82a878cf75c0", "name": "FastAPI POST `gallery_rotate` without auth dependency \u2014 routes/gallery_routes.py:217", "shortDescription": {"text": "FastAPI POST `gallery_rotate` without auth dependency \u2014 routes/gallery_routes.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-4e92bcb46bdd8cfd", "name": "FastAPI POST `gallery_ai_upscale` without auth dependency \u2014 routes/gallery_routes.py:284", "shortDescription": {"text": "FastAPI POST `gallery_ai_upscale` without auth dependency \u2014 routes/gallery_routes.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-2dfe595110504f8a", "name": "FastAPI POST `gallery_style_transfer` without auth dependency \u2014 routes/gallery_routes.py:327", "shortDescription": {"text": "FastAPI POST `gallery_style_transfer` without auth dependency \u2014 routes/gallery_routes.py:327"}, "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-ef0113de11bacbf5", "name": "FastAPI POST `create_album` without auth dependency \u2014 routes/gallery_routes.py:575", "shortDescription": {"text": "FastAPI POST `create_album` without auth dependency \u2014 routes/gallery_routes.py:575"}, "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-f18ea445b992faea", "name": "FastAPI POST `ai_tag_batch` without auth dependency \u2014 routes/gallery_routes.py:623", "shortDescription": {"text": "FastAPI POST `ai_tag_batch` without auth dependency \u2014 routes/gallery_routes.py:623"}, "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-b7041cd8482c1ec4", "name": "FastAPI PATCH `patch_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:668", "shortDescription": {"text": "FastAPI PATCH `patch_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:668"}, "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-2c4301a5002131dc", "name": "FastAPI POST `gallery_download_zip` without auth dependency \u2014 routes/gallery_routes.py:719", "shortDescription": {"text": "FastAPI POST `gallery_download_zip` without auth dependency \u2014 routes/gallery_routes.py:719"}, "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-db5b4bb75f858db6", "name": "FastAPI POST `clear_gallery_user_tags` without auth dependency \u2014 routes/gallery_routes.py:779", "shortDescription": {"text": "FastAPI POST `clear_gallery_user_tags` without auth dependency \u2014 routes/gallery_routes.py:779"}, "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-cbd7cbdedbb6dd92", "name": "FastAPI POST `clear_gallery_ai_tags` without auth dependency \u2014 routes/gallery_routes.py:803", "shortDescription": {"text": "FastAPI POST `clear_gallery_ai_tags` without auth dependency \u2014 routes/gallery_routes.py:803"}, "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-da97eb82560ff49c", "name": "FastAPI POST `dedupe_gallery_tags` without auth dependency \u2014 routes/gallery_routes.py:829", "shortDescription": {"text": "FastAPI POST `dedupe_gallery_tags` without auth dependency \u2014 routes/gallery_routes.py:829"}, "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-e42a45bc80f7102b", "name": "FastAPI DELETE `delete_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:864", "shortDescription": {"text": "FastAPI DELETE `delete_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:864"}, "fullDescription": {"text": "`@router.delete` 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-d192c84e30bbde9c", "name": "FastAPI POST `inpaint_proxy` without auth dependency \u2014 routes/gallery_routes.py:977", "shortDescription": {"text": "FastAPI POST `inpaint_proxy` without auth dependency \u2014 routes/gallery_routes.py:977"}, "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-7ab28997f011636e", "name": "FastAPI POST `harmonize_image` without auth dependency \u2014 routes/gallery_routes.py:1174", "shortDescription": {"text": "FastAPI POST `harmonize_image` without auth dependency \u2014 routes/gallery_routes.py:1174"}, "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-a96f8687793f8963", "name": "FastAPI POST `sharpen_image` without auth dependency \u2014 routes/gallery_routes.py:1373", "shortDescription": {"text": "FastAPI POST `sharpen_image` without auth dependency \u2014 routes/gallery_routes.py:1373"}, "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-b4f7f65801aef55c", "name": "FastAPI POST `denoise_image` without auth dependency \u2014 routes/gallery_routes.py:1398", "shortDescription": {"text": "FastAPI POST `denoise_image` without auth dependency \u2014 routes/gallery_routes.py:1398"}, "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-aa86f264874bd548", "name": "FastAPI POST `upscale_image_local` without auth dependency \u2014 routes/gallery_routes.py:1448", "shortDescription": {"text": "FastAPI POST `upscale_image_local` without auth dependency \u2014 routes/gallery_routes.py:1448"}, "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-e8c6753a2fb4d198", "name": "FastAPI POST `remove_background` without auth dependency \u2014 routes/gallery_routes.py:1493", "shortDescription": {"text": "FastAPI POST `remove_background` without auth dependency \u2014 routes/gallery_routes.py:1493"}, "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-634771f83b7e00d5", "name": "FastAPI POST `enhance_face` without auth dependency \u2014 routes/gallery_routes.py:1586", "shortDescription": {"text": "FastAPI POST `enhance_face` without auth dependency \u2014 routes/gallery_routes.py:1586"}, "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-17f276e4a408b7a5", "name": "FastAPI PUT `update_album` without auth dependency \u2014 routes/gallery_routes.py:1669", "shortDescription": {"text": "FastAPI PUT `update_album` without auth dependency \u2014 routes/gallery_routes.py:1669"}, "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-21b823361cc7f4c4", "name": "FastAPI DELETE `delete_album` without auth dependency \u2014 routes/gallery_routes.py:1690", "shortDescription": {"text": "FastAPI DELETE `delete_album` without auth dependency \u2014 routes/gallery_routes.py:1690"}, "fullDescription": {"text": "`@router.delete` 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-64d8d44cc480036e", "name": "FastAPI POST `add_to_album` without auth dependency \u2014 routes/gallery_routes.py:1706", "shortDescription": {"text": "FastAPI POST `add_to_album` without auth dependency \u2014 routes/gallery_routes.py:1706"}, "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-33d3628e0383d067", "name": "FastAPI POST `remove_from_album` without auth dependency \u2014 routes/gallery_routes.py:1724", "shortDescription": {"text": "FastAPI POST `remove_from_album` without auth dependency \u2014 routes/gallery_routes.py:1724"}, "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-c72373b82c209635", "name": "FastAPI POST `toggle_favorite` without auth dependency \u2014 routes/gallery_routes.py:1745", "shortDescription": {"text": "FastAPI POST `toggle_favorite` without auth dependency \u2014 routes/gallery_routes.py:1745"}, "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-0f97930d6eced32a", "name": "FastAPI POST `ai_tag_image` without auth dependency \u2014 routes/gallery_routes.py:1759", "shortDescription": {"text": "FastAPI POST `ai_tag_image` without auth dependency \u2014 routes/gallery_routes.py:1759"}, "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-e283963099662b7f", "name": "FastAPI POST `generate_cookbook_ssh_key` without auth dependency \u2014 routes/cookbook_routes.py:283", "shortDescription": {"text": "FastAPI POST `generate_cookbook_ssh_key` without auth dependency \u2014 routes/cookbook_routes.py:283"}, "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-f82d6c261afaf3e5", "name": "FastAPI POST `model_download` without auth dependency \u2014 routes/cookbook_routes.py:408", "shortDescription": {"text": "FastAPI POST `model_download` without auth dependency \u2014 routes/cookbook_routes.py:408"}, "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-abbb5527c694ae6e", "name": "FastAPI POST `model_serve` without auth dependency \u2014 routes/cookbook_routes.py:823", "shortDescription": {"text": "FastAPI POST `model_serve` without auth dependency \u2014 routes/cookbook_routes.py:823"}, "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-26d8d9ab1a4df353", "name": "FastAPI POST `server_setup` without auth dependency \u2014 routes/cookbook_routes.py:1218", "shortDescription": {"text": "FastAPI POST `server_setup` without auth dependency \u2014 routes/cookbook_routes.py:1218"}, "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-27e748a7b440de4b", "name": "FastAPI POST `kill_pid` without auth dependency \u2014 routes/cookbook_routes.py:1618", "shortDescription": {"text": "FastAPI POST `kill_pid` without auth dependency \u2014 routes/cookbook_routes.py:1618"}, "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-11f89f70c032bb99", "name": "FastAPI POST `save_cookbook_state` without auth dependency \u2014 routes/cookbook_routes.py:1683", "shortDescription": {"text": "FastAPI POST `save_cookbook_state` without auth dependency \u2014 routes/cookbook_routes.py:1683"}, "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-a5174135d346a6ac", "name": "FastAPI POST `shell_exec` without auth dependency \u2014 routes/shell_routes.py:773", "shortDescription": {"text": "FastAPI POST `shell_exec` without auth dependency \u2014 routes/shell_routes.py:773"}, "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-5d325495ba7aa813", "name": "FastAPI POST `shell_stream` without auth dependency \u2014 routes/shell_routes.py:785", "shortDescription": {"text": "FastAPI POST `shell_stream` without auth dependency \u2014 routes/shell_routes.py:785"}, "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-8ccc65cd46d25f1d", "name": "FastAPI POST `install_package` without auth dependency \u2014 routes/shell_routes.py:1061", "shortDescription": {"text": "FastAPI POST `install_package` without auth dependency \u2014 routes/shell_routes.py:1061"}, "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-a5db65ffee8057a8", "name": "FastAPI POST `expand_character_prompt` without auth dependency \u2014 routes/preset_routes.py:71", "shortDescription": {"text": "FastAPI POST `expand_character_prompt` without auth dependency \u2014 routes/preset_routes.py:71"}, "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-43853be880504a83", "name": "FastAPI POST `create_webhook` without auth dependency \u2014 routes/webhook_routes.py:103", "shortDescription": {"text": "FastAPI POST `create_webhook` without auth dependency \u2014 routes/webhook_routes.py:103"}, "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-c4641624395eb9b4", "name": "FastAPI POST `test_webhook` without auth dependency \u2014 routes/webhook_routes.py:145", "shortDescription": {"text": "FastAPI POST `test_webhook` without auth dependency \u2014 routes/webhook_routes.py:145"}, "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-5afb3f5bdca89f9f", "name": "FastAPI PATCH `toggle_webhook` without auth dependency \u2014 routes/webhook_routes.py:157", "shortDescription": {"text": "FastAPI PATCH `toggle_webhook` without auth dependency \u2014 routes/webhook_routes.py:157"}, "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-538c9a77621936d7", "name": "FastAPI DELETE `delete_webhook` without auth dependency \u2014 routes/webhook_routes.py:167", "shortDescription": {"text": "FastAPI DELETE `delete_webhook` without auth dependency \u2014 routes/webhook_routes.py:167"}, "fullDescription": {"text": "`@router.delete` 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-25436544ce6c1235", "name": "FastAPI POST `sync_chat` without auth dependency \u2014 routes/webhook_routes.py:224", "shortDescription": {"text": "FastAPI POST `sync_chat` without auth dependency \u2014 routes/webhook_routes.py:224"}, "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-19adff9a146221ca", "name": "FastAPI DELETE `wipe` without auth dependency \u2014 routes/admin_wipe_routes.py:77", "shortDescription": {"text": "FastAPI DELETE `wipe` without auth dependency \u2014 routes/admin_wipe_routes.py:77"}, "fullDescription": {"text": "`@router.delete` 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-589221572f338256", "name": "FastAPI POST `start_comparison` without auth dependency \u2014 routes/compare_routes.py:32", "shortDescription": {"text": "FastAPI POST `start_comparison` without auth dependency \u2014 routes/compare_routes.py:32"}, "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-3e882ec4e9efa431", "name": "FastAPI POST `vote_comparison` without auth dependency \u2014 routes/compare_routes.py:128", "shortDescription": {"text": "FastAPI POST `vote_comparison` without auth dependency \u2014 routes/compare_routes.py:128"}, "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-d3079aa7f77aa89c", "name": "FastAPI POST `record_comparison` without auth dependency \u2014 routes/compare_routes.py:170", "shortDescription": {"text": "FastAPI POST `record_comparison` without auth dependency \u2014 routes/compare_routes.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-26f1c581309eb9cd", "name": "FastAPI DELETE `delete_comparison` without auth dependency \u2014 routes/compare_routes.py:226", "shortDescription": {"text": "FastAPI DELETE `delete_comparison` without auth dependency \u2014 routes/compare_routes.py:226"}, "fullDescription": {"text": "`@router.delete` 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-824e17624c75373e", "name": "FastAPI POST `post_estimate` without auth dependency \u2014 routes/billing_routes.py:82", "shortDescription": {"text": "FastAPI POST `post_estimate` without auth dependency \u2014 routes/billing_routes.py:82"}, "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-39394120cad393aa", "name": "FastAPI POST `post_topup` without auth dependency \u2014 routes/billing_routes.py:97", "shortDescription": {"text": "FastAPI POST `post_topup` without auth dependency \u2014 routes/billing_routes.py:97"}, "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-73e1699a4933949d", "name": "FastAPI POST `post_pricing_refresh` without auth dependency \u2014 routes/billing_routes.py:116", "shortDescription": {"text": "FastAPI POST `post_pricing_refresh` without auth dependency \u2014 routes/billing_routes.py:116"}, "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-b91431825b1ff0e5", "name": "FastAPI POST `post_checkout` without auth dependency \u2014 routes/billing_routes.py:148", "shortDescription": {"text": "FastAPI POST `post_checkout` without auth dependency \u2014 routes/billing_routes.py:148"}, "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-529a3a8dc5f27c85", "name": "FastAPI POST `stripe_webhook` without auth dependency \u2014 routes/billing_routes.py:182", "shortDescription": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 routes/billing_routes.py:182"}, "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-3dc5abd402100c7b", "name": "FastAPI POST `post_refund` without auth dependency \u2014 routes/billing_routes.py:216", "shortDescription": {"text": "FastAPI POST `post_refund` without auth dependency \u2014 routes/billing_routes.py:216"}, "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-27f3b1987dedabf1", "name": "FastAPI POST `debug_memory_relevance` without auth dependency \u2014 routes/memory_routes.py:66", "shortDescription": {"text": "FastAPI POST `debug_memory_relevance` without auth dependency \u2014 routes/memory_routes.py:66"}, "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-8e7c58a2b81244ad", "name": "FastAPI POST `api_add_memory` without auth dependency \u2014 routes/memory_routes.py:81", "shortDescription": {"text": "FastAPI POST `api_add_memory` without auth dependency \u2014 routes/memory_routes.py:81"}, "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-aa2683fd3c2af639", "name": "FastAPI POST `search_memories` without auth dependency \u2014 routes/memory_routes.py:128", "shortDescription": {"text": "FastAPI POST `search_memories` without auth dependency \u2014 routes/memory_routes.py:128"}, "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-0e8bc5ebeba82441", "name": "FastAPI POST `extract_memory` without auth dependency \u2014 routes/memory_routes.py:203", "shortDescription": {"text": "FastAPI POST `extract_memory` without auth dependency \u2014 routes/memory_routes.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-d5a78d8d00e37353", "name": "FastAPI POST `api_audit_memories` without auth dependency \u2014 routes/memory_routes.py:249", "shortDescription": {"text": "FastAPI POST `api_audit_memories` without auth dependency \u2014 routes/memory_routes.py:249"}, "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-9e84fd93bebc5d0c", "name": "FastAPI POST `import_memories_from_file` without auth dependency \u2014 routes/memory_routes.py:324", "shortDescription": {"text": "FastAPI POST `import_memories_from_file` without auth dependency \u2014 routes/memory_routes.py:324"}, "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-c63a9dff1e11d54a", "name": "FastAPI POST `pin_memory` without auth dependency \u2014 routes/memory_routes.py:477", "shortDescription": {"text": "FastAPI POST `pin_memory` without auth dependency \u2014 routes/memory_routes.py:477"}, "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-6fbcc4c55e61df70", "name": "FastAPI PUT `update_memory` without auth dependency \u2014 routes/memory_routes.py:502", "shortDescription": {"text": "FastAPI PUT `update_memory` without auth dependency \u2014 routes/memory_routes.py:502"}, "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-5a478f2c2e110cfd", "name": "FastAPI DELETE `delete_memory` without auth dependency \u2014 routes/memory_routes.py:524", "shortDescription": {"text": "FastAPI DELETE `delete_memory` without auth dependency \u2014 routes/memory_routes.py:524"}, "fullDescription": {"text": "`@router.delete` 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-5c650064bbe61ef2", "name": "FastAPI POST `download_model` without auth dependency \u2014 routes/embedding_routes.py:137", "shortDescription": {"text": "FastAPI POST `download_model` without auth dependency \u2014 routes/embedding_routes.py:137"}, "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-47b3633979556765", "name": "FastAPI DELETE `delete_model` without auth dependency \u2014 routes/embedding_routes.py:194", "shortDescription": {"text": "FastAPI DELETE `delete_model` without auth dependency \u2014 routes/embedding_routes.py:194"}, "fullDescription": {"text": "`@router.delete` 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-e9bef869d4deafcc", "name": "FastAPI POST `set_endpoint` without auth dependency \u2014 routes/embedding_routes.py:235", "shortDescription": {"text": "FastAPI POST `set_endpoint` without auth dependency \u2014 routes/embedding_routes.py:235"}, "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-27f41010c8b58561", "name": "FastAPI DELETE `clear_endpoint` without auth dependency \u2014 routes/embedding_routes.py:291", "shortDescription": {"text": "FastAPI DELETE `clear_endpoint` without auth dependency \u2014 routes/embedding_routes.py:291"}, "fullDescription": {"text": "`@router.delete` 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-c51989c3614b5aa9", "name": "FastAPI POST `revoke_publisher` without auth dependency \u2014 routes/registry_routes.py:145", "shortDescription": {"text": "FastAPI POST `revoke_publisher` without auth dependency \u2014 routes/registry_routes.py:145"}, "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-0608866f89957b05", "name": "FastAPI POST `publish_module` without auth dependency \u2014 routes/registry_routes.py:153", "shortDescription": {"text": "FastAPI POST `publish_module` without auth dependency \u2014 routes/registry_routes.py:153"}, "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-8007d7e46b6ac039", "name": "FastAPI POST `unpublish_module` without auth dependency \u2014 routes/registry_routes.py:166", "shortDescription": {"text": "FastAPI POST `unpublish_module` without auth dependency \u2014 routes/registry_routes.py:166"}, "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-777fce237bd569d4", "name": "FastAPI POST `upload_files_to_rag` without auth dependency \u2014 routes/personal_routes.py:198", "shortDescription": {"text": "FastAPI POST `upload_files_to_rag` without auth dependency \u2014 routes/personal_routes.py:198"}, "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-142e4c948855c5b3", "name": "FastAPI POST `save_storage_config` without auth dependency \u2014 routes/storage_routes.py:230", "shortDescription": {"text": "FastAPI POST `save_storage_config` without auth dependency \u2014 routes/storage_routes.py:230"}, "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-3e33428914bc0465", "name": "FastAPI POST `test_storage_backend` without auth dependency \u2014 routes/storage_routes.py:276", "shortDescription": {"text": "FastAPI POST `test_storage_backend` without auth dependency \u2014 routes/storage_routes.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-69e7bbcdbe1da882", "name": "FastAPI POST `create_session` without auth dependency \u2014 routes/session_routes.py:331", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 routes/session_routes.py:331"}, "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-0b67bda77881bdc1", "name": "FastAPI PATCH `rename_session` without auth dependency \u2014 routes/session_routes.py:457", "shortDescription": {"text": "FastAPI PATCH `rename_session` without auth dependency \u2014 routes/session_routes.py:457"}, "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-85a78ec2541f0bc1", "name": "FastAPI POST `inject_messages` without auth dependency \u2014 routes/session_routes.py:539", "shortDescription": {"text": "FastAPI POST `inject_messages` without auth dependency \u2014 routes/session_routes.py:539"}, "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-592681609f27a4a3", "name": "FastAPI POST `delete_session_beacon` without auth dependency \u2014 routes/session_routes.py:555", "shortDescription": {"text": "FastAPI POST `delete_session_beacon` without auth dependency \u2014 routes/session_routes.py:555"}, "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-d543eff359b99be9", "name": "FastAPI POST `bulk_delete_sessions` without auth dependency \u2014 routes/session_routes.py:560", "shortDescription": {"text": "FastAPI POST `bulk_delete_sessions` without auth dependency \u2014 routes/session_routes.py:560"}, "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-ae6ff454b5449b1e", "name": "FastAPI DELETE `delete_session` without auth dependency \u2014 routes/session_routes.py:580", "shortDescription": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 routes/session_routes.py:580"}, "fullDescription": {"text": "`@router.delete` 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-1cb9d79221d2fa10", "name": "FastAPI DELETE `delete_all_sessions` without auth dependency \u2014 routes/session_routes.py:611", "shortDescription": {"text": "FastAPI DELETE `delete_all_sessions` without auth dependency \u2014 routes/session_routes.py:611"}, "fullDescription": {"text": "`@router.delete` 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-2ae7239de197cabf", "name": "FastAPI POST `archive_session` without auth dependency \u2014 routes/session_routes.py:641", "shortDescription": {"text": "FastAPI POST `archive_session` without auth dependency \u2014 routes/session_routes.py:641"}, "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-cc87c2a06e20001f", "name": "FastAPI POST `unarchive_session` without auth dependency \u2014 routes/session_routes.py:673", "shortDescription": {"text": "FastAPI POST `unarchive_session` without auth dependency \u2014 routes/session_routes.py:673"}, "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-ab9489f234f8ee5e", "name": "FastAPI POST `sessions_save_now` without auth dependency \u2014 routes/session_routes.py:838", "shortDescription": {"text": "FastAPI POST `sessions_save_now` without auth dependency \u2014 routes/session_routes.py:838"}, "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-4cfe076710744e24", "name": "FastAPI POST `create_session_openai` without auth dependency \u2014 routes/session_routes.py:846", "shortDescription": {"text": "FastAPI POST `create_session_openai` without auth dependency \u2014 routes/session_routes.py:846"}, "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-6b533253b37f2529", "name": "FastAPI POST `mark_session_important` without auth dependency \u2014 routes/session_routes.py:878", "shortDescription": {"text": "FastAPI POST `mark_session_important` without auth dependency \u2014 routes/session_routes.py:878"}, "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-cbe23999858b5dc3", "name": "FastAPI POST `compact_session` without auth dependency \u2014 routes/session_routes.py:909", "shortDescription": {"text": "FastAPI POST `compact_session` without auth dependency \u2014 routes/session_routes.py:909"}, "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-d75a299abce76321", "name": "FastAPI POST `auto_sort_sessions` without auth dependency \u2014 routes/session_routes.py:987", "shortDescription": {"text": "FastAPI POST `auto_sort_sessions` without auth dependency \u2014 routes/session_routes.py:987"}, "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-d60276c862197d76", "name": "FastAPI POST `probe_selected` without auth dependency \u2014 routes/model_routes.py:1014", "shortDescription": {"text": "FastAPI POST `probe_selected` without auth dependency \u2014 routes/model_routes.py:1014"}, "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-8c72efc7ddb19e16", "name": "FastAPI POST `create_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1191", "shortDescription": {"text": "FastAPI POST `create_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1191"}, "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-cdd7012991354aa6", "name": "FastAPI POST `test_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1328", "shortDescription": {"text": "FastAPI POST `test_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1328"}, "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-4dca4ffa646a725d", "name": "FastAPI PATCH `update_hidden_models` without auth dependency \u2014 routes/model_routes.py:1438", "shortDescription": {"text": "FastAPI PATCH `update_hidden_models` without auth dependency \u2014 routes/model_routes.py:1438"}, "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-9b584da3dab5b734", "name": "FastAPI PATCH `toggle_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1559", "shortDescription": {"text": "FastAPI PATCH `toggle_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1559"}, "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-a1a09131389985e8", "name": "FastAPI DELETE `delete_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1734", "shortDescription": {"text": "FastAPI DELETE `delete_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1734"}, "fullDescription": {"text": "`@router.delete` 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-8ae4005483806e00", "name": "FastAPI POST `update_tools` without auth dependency \u2014 routes/model_routes.py:1773", "shortDescription": {"text": "FastAPI POST `update_tools` without auth dependency \u2014 routes/model_routes.py:1773"}, "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-7396c684d957faa9", "name": "FastAPI PUT `set_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1367", "shortDescription": {"text": "FastAPI PUT `set_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1367"}, "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-db5a56d9eeaaeb83", "name": "FastAPI DELETE `reset_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1393", "shortDescription": {"text": "FastAPI DELETE `reset_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1393"}, "fullDescription": {"text": "`@router.delete` 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-d95ea036c3afa320", "name": "FastAPI POST `add_skill` without auth dependency \u2014 routes/skills_routes.py:1406", "shortDescription": {"text": "FastAPI POST `add_skill` without auth dependency \u2014 routes/skills_routes.py:1406"}, "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-9297cc180636ac50", "name": "FastAPI POST `upload_skills_to_cloud` without auth dependency \u2014 routes/skills_routes.py:1453", "shortDescription": {"text": "FastAPI POST `upload_skills_to_cloud` without auth dependency \u2014 routes/skills_routes.py:1453"}, "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-6202938faddbf31e", "name": "FastAPI POST `download_library_skill` without auth dependency \u2014 routes/skills_routes.py:1473", "shortDescription": {"text": "FastAPI POST `download_library_skill` without auth dependency \u2014 routes/skills_routes.py:1473"}, "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-98f702017ae98599", "name": "FastAPI POST `test_skill` without auth dependency \u2014 routes/skills_routes.py:1536", "shortDescription": {"text": "FastAPI POST `test_skill` without auth dependency \u2014 routes/skills_routes.py:1536"}, "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-36a46afe032e04d6", "name": "FastAPI POST `audit_all_skills` without auth dependency \u2014 routes/skills_routes.py:1617", "shortDescription": {"text": "FastAPI POST `audit_all_skills` without auth dependency \u2014 routes/skills_routes.py:1617"}, "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-741515177f919602", "name": "FastAPI POST `audit_cancel` without auth dependency \u2014 routes/skills_routes.py:1706", "shortDescription": {"text": "FastAPI POST `audit_cancel` without auth dependency \u2014 routes/skills_routes.py:1706"}, "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-ba62fee541bc6fa9", "name": "FastAPI POST `save_skill_markdown` without auth dependency \u2014 routes/skills_routes.py:1719", "shortDescription": {"text": "FastAPI POST `save_skill_markdown` without auth dependency \u2014 routes/skills_routes.py:1719"}, "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-b5e5cac8a16620b0", "name": "FastAPI PUT `update_skill` without auth dependency \u2014 routes/skills_routes.py:1769", "shortDescription": {"text": "FastAPI PUT `update_skill` without auth dependency \u2014 routes/skills_routes.py:1769"}, "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-eebd7c2a9645e9ac", "name": "FastAPI DELETE `delete_skill` without auth dependency \u2014 routes/skills_routes.py:1788", "shortDescription": {"text": "FastAPI DELETE `delete_skill` without auth dependency \u2014 routes/skills_routes.py:1788"}, "fullDescription": {"text": "`@router.delete` 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-6aedbad466da25d6", "name": "FastAPI POST `search_skills` without auth dependency \u2014 routes/skills_routes.py:1801", "shortDescription": {"text": "FastAPI POST `search_skills` without auth dependency \u2014 routes/skills_routes.py:1801"}, "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-b28264f28d615a36", "name": "FastAPI POST `add_server` without auth dependency \u2014 routes/mcp_routes.py:169", "shortDescription": {"text": "FastAPI POST `add_server` without auth dependency \u2014 routes/mcp_routes.py:169"}, "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-00deb753ce2efce5", "name": "FastAPI POST `reconnect_server` without auth dependency \u2014 routes/mcp_routes.py:289", "shortDescription": {"text": "FastAPI POST `reconnect_server` without auth dependency \u2014 routes/mcp_routes.py:289"}, "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-f3437e6d9a91de05", "name": "FastAPI PATCH `toggle_server` without auth dependency \u2014 routes/mcp_routes.py:310", "shortDescription": {"text": "FastAPI PATCH `toggle_server` without auth dependency \u2014 routes/mcp_routes.py:310"}, "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-6b2217d5717fe392", "name": "FastAPI DELETE `delete_server` without auth dependency \u2014 routes/mcp_routes.py:332", "shortDescription": {"text": "FastAPI DELETE `delete_server` without auth dependency \u2014 routes/mcp_routes.py:332"}, "fullDescription": {"text": "`@router.delete` 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-30713d93bb39b555", "name": "FastAPI PATCH `update_disabled_tools` without auth dependency \u2014 routes/mcp_routes.py:368", "shortDescription": {"text": "FastAPI PATCH `update_disabled_tools` without auth dependency \u2014 routes/mcp_routes.py:368"}, "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-2ec80f2f02bd1bbf", "name": "FastAPI PUT `set_pref` without auth dependency \u2014 routes/prefs_routes.py:171", "shortDescription": {"text": "FastAPI PUT `set_pref` without auth dependency \u2014 routes/prefs_routes.py:171"}, "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-4072bbf8de451115", "name": "FastAPI POST `create_signature` without auth dependency \u2014 routes/signature_routes.py:65", "shortDescription": {"text": "FastAPI POST `create_signature` without auth dependency \u2014 routes/signature_routes.py:65"}, "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-2d09ccf9e1e796a5", "name": "FastAPI DELETE `delete_signature` without auth dependency \u2014 routes/signature_routes.py:97", "shortDescription": {"text": "FastAPI DELETE `delete_signature` without auth dependency \u2014 routes/signature_routes.py:97"}, "fullDescription": {"text": "`@router.delete` 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-88044cbf23476b53", "name": "FastAPI POST `openwa_webhook` without auth dependency \u2014 routes/whatsapp_fleet_routes.py:165", "shortDescription": {"text": "FastAPI POST `openwa_webhook` without auth dependency \u2014 routes/whatsapp_fleet_routes.py:165"}, "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-9464c82c95cdd50a", "name": "FastAPI POST `create_note` without auth dependency \u2014 routes/note_routes.py:501", "shortDescription": {"text": "FastAPI POST `create_note` without auth dependency \u2014 routes/note_routes.py:501"}, "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-bca68ca87e75cbcf", "name": "FastAPI PUT `update_note` without auth dependency \u2014 routes/note_routes.py:542", "shortDescription": {"text": "FastAPI PUT `update_note` without auth dependency \u2014 routes/note_routes.py:542"}, "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-76e16f5f74ee8c42", "name": "FastAPI DELETE `delete_note` without auth dependency \u2014 routes/note_routes.py:587", "shortDescription": {"text": "FastAPI DELETE `delete_note` without auth dependency \u2014 routes/note_routes.py:587"}, "fullDescription": {"text": "`@router.delete` 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-0e6e2a24502b6f45", "name": "FastAPI POST `toggle_pin` without auth dependency \u2014 routes/note_routes.py:602", "shortDescription": {"text": "FastAPI POST `toggle_pin` without auth dependency \u2014 routes/note_routes.py:602"}, "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-d13b005be936b28d", "name": "FastAPI POST `toggle_archive` without auth dependency \u2014 routes/note_routes.py:617", "shortDescription": {"text": "FastAPI POST `toggle_archive` without auth dependency \u2014 routes/note_routes.py:617"}, "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-276bb9d29dd897bb", "name": "FastAPI POST `toggle_item` without auth dependency \u2014 routes/note_routes.py:632", "shortDescription": {"text": "FastAPI POST `toggle_item` without auth dependency \u2014 routes/note_routes.py:632"}, "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-8299a0637c95cbf3", "name": "FastAPI POST `fire_reminder` without auth dependency \u2014 routes/note_routes.py:654", "shortDescription": {"text": "FastAPI POST `fire_reminder` without auth dependency \u2014 routes/note_routes.py:654"}, "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-bee5cfb1dbee4a24", "name": "FastAPI POST `reorder_notes` without auth dependency \u2014 routes/note_routes.py:683", "shortDescription": {"text": "FastAPI POST `reorder_notes` without auth dependency \u2014 routes/note_routes.py:683"}, "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-c3d0ba2056bfc13b", "name": "FastAPI POST `loop_settings_set` without auth dependency \u2014 routes/builder_routes.py:164", "shortDescription": {"text": "FastAPI POST `loop_settings_set` without auth dependency \u2014 routes/builder_routes.py:164"}, "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-40ed690955f60c19", "name": "FastAPI POST `create_project` without auth dependency \u2014 routes/builder_routes.py:183", "shortDescription": {"text": "FastAPI POST `create_project` without auth dependency \u2014 routes/builder_routes.py:183"}, "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-89300f997a6d1e09", "name": "FastAPI DELETE `delete_project` without auth dependency \u2014 routes/builder_routes.py:207", "shortDescription": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 routes/builder_routes.py:207"}, "fullDescription": {"text": "`@router.delete` 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-e26907d35c79dd4a", "name": "FastAPI POST `bind_session` without auth dependency \u2014 routes/builder_routes.py:215", "shortDescription": {"text": "FastAPI POST `bind_session` without auth dependency \u2014 routes/builder_routes.py:215"}, "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-7adbbd05941bd74a", "name": "FastAPI POST `dev_action` without auth dependency \u2014 routes/builder_routes.py:222", "shortDescription": {"text": "FastAPI POST `dev_action` without auth dependency \u2014 routes/builder_routes.py:222"}, "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-6df9b8e6a1bb08bd", "name": "FastAPI POST `verify_project` without auth dependency \u2014 routes/builder_routes.py:253", "shortDescription": {"text": "FastAPI POST `verify_project` without auth dependency \u2014 routes/builder_routes.py:253"}, "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-de59801601437913", "name": "FastAPI POST `heartbeat` without auth dependency \u2014 routes/builder_routes.py:278", "shortDescription": {"text": "FastAPI POST `heartbeat` without auth dependency \u2014 routes/builder_routes.py:278"}, "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-04eed35b37a48ab4", "name": "FastAPI POST `terminal` without auth dependency \u2014 routes/builder_routes.py:316", "shortDescription": {"text": "FastAPI POST `terminal` without auth dependency \u2014 routes/builder_routes.py:316"}, "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-3ef0b8937491d5b8", "name": "FastAPI POST `browser_errors` without auth dependency \u2014 routes/builder_routes.py:376", "shortDescription": {"text": "FastAPI POST `browser_errors` without auth dependency \u2014 routes/builder_routes.py:376"}, "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-f708bacfea301c3f", "name": "FastAPI POST `first_run_setup` without auth dependency \u2014 routes/auth_routes.py:174", "shortDescription": {"text": "FastAPI POST `first_run_setup` without auth dependency \u2014 routes/auth_routes.py:174"}, "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-76bf9533443a205f", "name": "FastAPI POST `switch_org` without auth dependency \u2014 routes/auth_routes.py:367", "shortDescription": {"text": "FastAPI POST `switch_org` without auth dependency \u2014 routes/auth_routes.py:367"}, "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-a4e01aa6b0fe2213", "name": "FastAPI POST `set_active_mode` without auth dependency \u2014 routes/auth_routes.py:382", "shortDescription": {"text": "FastAPI POST `set_active_mode` without auth dependency \u2014 routes/auth_routes.py:382"}, "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-01718f8c109a83c6", "name": "FastAPI PUT `set_org_privacy` without auth dependency \u2014 routes/auth_routes.py:425", "shortDescription": {"text": "FastAPI PUT `set_org_privacy` without auth dependency \u2014 routes/auth_routes.py:425"}, "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-2c4a37c67fa9fd0e", "name": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_routes.py:455", "shortDescription": {"text": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_routes.py:455"}, "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-a86b3122e4b8fbad", "name": "FastAPI POST `totp_setup` without auth dependency \u2014 routes/auth_routes.py:473", "shortDescription": {"text": "FastAPI POST `totp_setup` without auth dependency \u2014 routes/auth_routes.py:473"}, "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-a07a587a85513edb", "name": "FastAPI POST `totp_confirm` without auth dependency \u2014 routes/auth_routes.py:496", "shortDescription": {"text": "FastAPI POST `totp_confirm` without auth dependency \u2014 routes/auth_routes.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-6d767434738e5a43", "name": "FastAPI POST `totp_disable` without auth dependency \u2014 routes/auth_routes.py:509", "shortDescription": {"text": "FastAPI POST `totp_disable` without auth dependency \u2014 routes/auth_routes.py:509"}, "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-b2237d93e7e1a83b", "name": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/auth_routes.py:535", "shortDescription": {"text": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/auth_routes.py:535"}, "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-ea03cfa6e88022bf", "name": "FastAPI PUT `update_user_privileges` without auth dependency \u2014 routes/auth_routes.py:559", "shortDescription": {"text": "FastAPI PUT `update_user_privileges` without auth dependency \u2014 routes/auth_routes.py:559"}, "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-4694ebb4770f5a11", "name": "FastAPI PUT `rename_user` without auth dependency \u2014 routes/auth_routes.py:570", "shortDescription": {"text": "FastAPI PUT `rename_user` without auth dependency \u2014 routes/auth_routes.py:570"}, "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-f0c6cd48f35f6192", "name": "FastAPI POST `toggle_signup` without auth dependency \u2014 routes/auth_routes.py:631", "shortDescription": {"text": "FastAPI POST `toggle_signup` without auth dependency \u2014 routes/auth_routes.py:631"}, "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-6c749945fa4c3e2b", "name": "FastAPI PUT `set_signup_enabled` without auth dependency \u2014 routes/auth_routes.py:647", "shortDescription": {"text": "FastAPI PUT `set_signup_enabled` without auth dependency \u2014 routes/auth_routes.py:647"}, "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-699bddf58ee5ec89", "name": "FastAPI DELETE `admin_delete_user` without auth dependency \u2014 routes/auth_routes.py:656", "shortDescription": {"text": "FastAPI DELETE `admin_delete_user` without auth dependency \u2014 routes/auth_routes.py:656"}, "fullDescription": {"text": "`@router.delete` 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-9dafd115826a7c69", "name": "FastAPI POST `set_features` without auth dependency \u2014 routes/auth_routes.py:684", "shortDescription": {"text": "FastAPI POST `set_features` without auth dependency \u2014 routes/auth_routes.py:684"}, "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-d260203535462472", "name": "FastAPI POST `set_settings` without auth dependency \u2014 routes/auth_routes.py:711", "shortDescription": {"text": "FastAPI POST `set_settings` without auth dependency \u2014 routes/auth_routes.py:711"}, "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-c6a957d75e6b1506", "name": "FastAPI POST `create_integration` without auth dependency \u2014 routes/auth_routes.py:746", "shortDescription": {"text": "FastAPI POST `create_integration` without auth dependency \u2014 routes/auth_routes.py:746"}, "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-89211035bc835bb5", "name": "FastAPI PUT `update_integration_route` without auth dependency \u2014 routes/auth_routes.py:756", "shortDescription": {"text": "FastAPI PUT `update_integration_route` without auth dependency \u2014 routes/auth_routes.py:756"}, "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-416580b9576e2fc8", "name": "FastAPI DELETE `delete_integration_route` without auth dependency \u2014 routes/auth_routes.py:768", "shortDescription": {"text": "FastAPI DELETE `delete_integration_route` without auth dependency \u2014 routes/auth_routes.py:768"}, "fullDescription": {"text": "`@router.delete` 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-c896b084b775c2d0", "name": "FastAPI POST `test_integration_route` without auth dependency \u2014 routes/auth_routes.py:779", "shortDescription": {"text": "FastAPI POST `test_integration_route` without auth dependency \u2014 routes/auth_routes.py:779"}, "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-d68cb8cfe8feae81", "name": "FastAPI POST `test_research` without auth dependency \u2014 routes/diagnostics_routes.py:60", "shortDescription": {"text": "FastAPI POST `test_research` without auth dependency \u2014 routes/diagnostics_routes.py:60"}, "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-0f3652b0712b639f", "name": "FastAPI POST `create_document` without auth dependency \u2014 routes/document_routes.py:47", "shortDescription": {"text": "FastAPI POST `create_document` without auth dependency \u2014 routes/document_routes.py:47"}, "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-31257c2a710018ae", "name": "FastAPI POST `import_pdf` without auth dependency \u2014 routes/document_routes.py:120", "shortDescription": {"text": "FastAPI POST `import_pdf` without auth dependency \u2014 routes/document_routes.py:120"}, "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-8d99bb976dbdaf2d", "name": "FastAPI POST `archive_document` without auth dependency \u2014 routes/document_routes.py:353", "shortDescription": {"text": "FastAPI POST `archive_document` without auth dependency \u2014 routes/document_routes.py:353"}, "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-efa0777c97b80eb7", "name": "FastAPI POST `extract_pdf_text` without auth dependency \u2014 routes/document_routes.py:366", "shortDescription": {"text": "FastAPI POST `extract_pdf_text` without auth dependency \u2014 routes/document_routes.py:366"}, "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-a454ec26343f2136", "name": "FastAPI POST `documents_export_zip` without auth dependency \u2014 routes/document_routes.py:423", "shortDescription": {"text": "FastAPI POST `documents_export_zip` without auth dependency \u2014 routes/document_routes.py:423"}, "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-cadf8bde3aa4457e", "name": "FastAPI PUT `update_document` without auth dependency \u2014 routes/document_routes.py:483", "shortDescription": {"text": "FastAPI PUT `update_document` without auth dependency \u2014 routes/document_routes.py:483"}, "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-4d1f98be40749412", "name": "FastAPI PATCH `patch_document` without auth dependency \u2014 routes/document_routes.py:537", "shortDescription": {"text": "FastAPI PATCH `patch_document` without auth dependency \u2014 routes/document_routes.py:537"}, "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-d730cf94a3605c64", "name": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/document_routes.py:566", "shortDescription": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/document_routes.py:566"}, "fullDescription": {"text": "`@router.delete` 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-4f6ab3f7a4d7e83f", "name": "FastAPI POST `restore_version` without auth dependency \u2014 routes/document_routes.py:624", "shortDescription": {"text": "FastAPI POST `restore_version` without auth dependency \u2014 routes/document_routes.py:624"}, "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-f0bca11fdfa38e5f", "name": "FastAPI POST `tidy_documents` without auth dependency \u2014 routes/document_routes.py:657", "shortDescription": {"text": "FastAPI POST `tidy_documents` without auth dependency \u2014 routes/document_routes.py:657"}, "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-d6a037b45619ec33", "name": "FastAPI POST `ai_tidy_documents` without auth dependency \u2014 routes/document_routes.py:753", "shortDescription": {"text": "FastAPI POST `ai_tidy_documents` without auth dependency \u2014 routes/document_routes.py:753"}, "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-3d3a1abc0e67c3be", "name": "FastAPI POST `export_pdf_preview` without auth dependency \u2014 routes/document_routes.py:841", "shortDescription": {"text": "FastAPI POST `export_pdf_preview` without auth dependency \u2014 routes/document_routes.py:841"}, "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-c9dd8f49ca95838d", "name": "FastAPI POST `ai_fill_annotations` without auth dependency \u2014 routes/document_routes.py:1009", "shortDescription": {"text": "FastAPI POST `ai_fill_annotations` without auth dependency \u2014 routes/document_routes.py:1009"}, "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-ebf32bde342661b1", "name": "FastAPI POST `prepare_signed_reply` without auth dependency \u2014 routes/document_routes.py:1373", "shortDescription": {"text": "FastAPI POST `prepare_signed_reply` without auth dependency \u2014 routes/document_routes.py:1373"}, "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-a0551670d9eb3c95", "name": "FastAPI POST `create_draft` without auth dependency \u2014 routes/editor_draft_routes.py:102", "shortDescription": {"text": "FastAPI POST `create_draft` without auth dependency \u2014 routes/editor_draft_routes.py:102"}, "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-77889dc8c10d16c4", "name": "FastAPI PUT `update_draft` without auth dependency \u2014 routes/editor_draft_routes.py:125", "shortDescription": {"text": "FastAPI PUT `update_draft` without auth dependency \u2014 routes/editor_draft_routes.py:125"}, "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-032f81a682a0094b", "name": "FastAPI DELETE `delete_draft` without auth dependency \u2014 routes/editor_draft_routes.py:154", "shortDescription": {"text": "FastAPI DELETE `delete_draft` without auth dependency \u2014 routes/editor_draft_routes.py:154"}, "fullDescription": {"text": "`@router.delete` 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-8a22ef5ae1b96c45", "name": "FastAPI POST `desktop_update_download` without auth dependency \u2014 routes/desktop_routes.py:819", "shortDescription": {"text": "FastAPI POST `desktop_update_download` without auth dependency \u2014 routes/desktop_routes.py:819"}, "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-459bf286b1ef79f1", "name": "FastAPI POST `desktop_restart_to_update` without auth dependency \u2014 routes/desktop_routes.py:840", "shortDescription": {"text": "FastAPI POST `desktop_restart_to_update` without auth dependency \u2014 routes/desktop_routes.py:840"}, "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-568b7981e52c3356", "name": "FastAPI POST `open_desktop_update_page` without auth dependency \u2014 routes/desktop_routes.py:855", "shortDescription": {"text": "FastAPI POST `open_desktop_update_page` without auth dependency \u2014 routes/desktop_routes.py:855"}, "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-afa4e4c8192146b3", "name": "FastAPI POST `research_cancel` without auth dependency \u2014 routes/research_routes.py:141", "shortDescription": {"text": "FastAPI POST `research_cancel` without auth dependency \u2014 routes/research_routes.py:141"}, "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-3e989e2be85310bc", "name": "FastAPI POST `research_result` without auth dependency \u2014 routes/research_routes.py:150", "shortDescription": {"text": "FastAPI POST `research_result` without auth dependency \u2014 routes/research_routes.py:150"}, "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-00e6ab6fa247c757", "name": "FastAPI POST `research_hide_image` without auth dependency \u2014 routes/research_routes.py:193", "shortDescription": {"text": "FastAPI POST `research_hide_image` without auth dependency \u2014 routes/research_routes.py:193"}, "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-d93ffaa4b33b9d9f", "name": "FastAPI POST `research_unhide_images` without auth dependency \u2014 routes/research_routes.py:205", "shortDescription": {"text": "FastAPI POST `research_unhide_images` without auth dependency \u2014 routes/research_routes.py:205"}, "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-52088f8dea37f6a3", "name": "FastAPI POST `research_archive` without auth dependency \u2014 routes/research_routes.py:292", "shortDescription": {"text": "FastAPI POST `research_archive` without auth dependency \u2014 routes/research_routes.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-d736a9bb606aed14", "name": "FastAPI DELETE `research_delete` without auth dependency \u2014 routes/research_routes.py:311", "shortDescription": {"text": "FastAPI DELETE `research_delete` without auth dependency \u2014 routes/research_routes.py:311"}, "fullDescription": {"text": "`@router.delete` 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-860d2d91f83200b5", "name": "FastAPI POST `research_start` without auth dependency \u2014 routes/research_routes.py:350", "shortDescription": {"text": "FastAPI POST `research_start` without auth dependency \u2014 routes/research_routes.py:350"}, "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-ae15a5f67c263776", "name": "FastAPI POST `research_result_peek` without auth dependency \u2014 routes/research_routes.py:486", "shortDescription": {"text": "FastAPI POST `research_result_peek` without auth dependency \u2014 routes/research_routes.py:486"}, "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-a2e095c79a18c2c0", "name": "FastAPI POST `research_spinoff` without auth dependency \u2014 routes/research_routes.py:508", "shortDescription": {"text": "FastAPI POST `research_spinoff` without auth dependency \u2014 routes/research_routes.py:508"}, "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-f724c95b9e16d44b", "name": "FastAPI POST `cleanup_endpoint` without auth dependency \u2014 routes/cleanup_routes.py:38", "shortDescription": {"text": "FastAPI POST `cleanup_endpoint` without auth dependency \u2014 routes/cleanup_routes.py:38"}, "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-f0381e63ea486ba8", "name": "FastAPI PATCH `update_assistant_settings` without auth dependency \u2014 routes/assistant_routes.py:152", "shortDescription": {"text": "FastAPI PATCH `update_assistant_settings` without auth dependency \u2014 routes/assistant_routes.py:152"}, "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-28bf318681aff34f", "name": "FastAPI POST `run_check_in_now` without auth dependency \u2014 routes/assistant_routes.py:259", "shortDescription": {"text": "FastAPI POST `run_check_in_now` without auth dependency \u2014 routes/assistant_routes.py:259"}, "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-4b10892595c65d8d", "name": "FastAPI POST `truncate_session` without auth dependency \u2014 routes/history_routes.py:113", "shortDescription": {"text": "FastAPI POST `truncate_session` without auth dependency \u2014 routes/history_routes.py:113"}, "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-b1bfb06d4e0f0ff1", "name": "FastAPI POST `add_message` without auth dependency \u2014 routes/history_routes.py:127", "shortDescription": {"text": "FastAPI POST `add_message` without auth dependency \u2014 routes/history_routes.py:127"}, "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-71c1eb13f7ec4446", "name": "FastAPI POST `delete_messages` without auth dependency \u2014 routes/history_routes.py:143", "shortDescription": {"text": "FastAPI POST `delete_messages` without auth dependency \u2014 routes/history_routes.py:143"}, "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-c68d613d4c5c84f0", "name": "FastAPI POST `edit_message` without auth dependency \u2014 routes/history_routes.py:202", "shortDescription": {"text": "FastAPI POST `edit_message` without auth dependency \u2014 routes/history_routes.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-78334ab730ded792", "name": "FastAPI POST `mark_stopped` without auth dependency \u2014 routes/history_routes.py:251", "shortDescription": {"text": "FastAPI POST `mark_stopped` without auth dependency \u2014 routes/history_routes.py:251"}, "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-091a2a33ab013857", "name": "FastAPI POST `update_last_meta` without auth dependency \u2014 routes/history_routes.py:302", "shortDescription": {"text": "FastAPI POST `update_last_meta` without auth dependency \u2014 routes/history_routes.py:302"}, "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-4968670fec308f02", "name": "FastAPI POST `merge_last_assistant` without auth dependency \u2014 routes/history_routes.py:349", "shortDescription": {"text": "FastAPI POST `merge_last_assistant` without auth dependency \u2014 routes/history_routes.py:349"}, "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-a4a99428fdb0806d", "name": "FastAPI POST `fork_session` without auth dependency \u2014 routes/history_routes.py:432", "shortDescription": {"text": "FastAPI POST `fork_session` without auth dependency \u2014 routes/history_routes.py:432"}, "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-2194a1c0e3496911", "name": "FastAPI POST `compact_session` without auth dependency \u2014 routes/history_routes.py:489", "shortDescription": {"text": "FastAPI POST `compact_session` without auth dependency \u2014 routes/history_routes.py:489"}, "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-889d96cbb24ee529", "name": "FastAPI POST `install` without auth dependency \u2014 routes/tool_install_routes.py:64", "shortDescription": {"text": "FastAPI POST `install` without auth dependency \u2014 routes/tool_install_routes.py:64"}, "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-012221aa9388be88", "name": "FastAPI PATCH `patch` without auth dependency \u2014 routes/tool_install_routes.py:74", "shortDescription": {"text": "FastAPI PATCH `patch` without auth dependency \u2014 routes/tool_install_routes.py:74"}, "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-ad521f3b3b2ec0ec", "name": "FastAPI DELETE `uninstall` without auth dependency \u2014 routes/tool_install_routes.py:93", "shortDescription": {"text": "FastAPI DELETE `uninstall` without auth dependency \u2014 routes/tool_install_routes.py:93"}, "fullDescription": {"text": "`@router.delete` 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-44d18856a0269635", "name": "FastAPI PUT `put_secret` without auth dependency \u2014 routes/tool_install_routes.py:102", "shortDescription": {"text": "FastAPI PUT `put_secret` without auth dependency \u2014 routes/tool_install_routes.py:102"}, "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-94a276f69526f7fb", "name": "FastAPI POST `test` without auth dependency \u2014 routes/tool_install_routes.py:110", "shortDescription": {"text": "FastAPI POST `test` without auth dependency \u2014 routes/tool_install_routes.py:110"}, "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-7f85c6dd3b47346c", "name": "FastAPI POST `transcribe_audio` without auth dependency \u2014 routes/stt_routes.py:23", "shortDescription": {"text": "FastAPI POST `transcribe_audio` without auth dependency \u2014 routes/stt_routes.py:23"}, "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-c6ea02be8944ebcc", "name": "FastAPI PATCH `update_space` without auth dependency \u2014 routes/mission_control_routes.py:670", "shortDescription": {"text": "FastAPI PATCH `update_space` without auth dependency \u2014 routes/mission_control_routes.py:670"}, "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-0310e2143440dbeb", "name": "FastAPI POST `create_agent` without auth dependency \u2014 routes/mission_control_routes.py:694", "shortDescription": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 routes/mission_control_routes.py:694"}, "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-5be02eb8efe0761d", "name": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/mission_control_routes.py:726", "shortDescription": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/mission_control_routes.py:726"}, "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-29bf2b2149c0d65f", "name": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/mission_control_routes.py:743", "shortDescription": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/mission_control_routes.py:743"}, "fullDescription": {"text": "`@router.delete` 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-61edcd49b0e0fae6", "name": "FastAPI POST `create_workflow` without auth dependency \u2014 routes/mission_control_routes.py:761", "shortDescription": {"text": "FastAPI POST `create_workflow` without auth dependency \u2014 routes/mission_control_routes.py:761"}, "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-1aca5998523add0e", "name": "FastAPI PATCH `update_workflow` without auth dependency \u2014 routes/mission_control_routes.py:786", "shortDescription": {"text": "FastAPI PATCH `update_workflow` without auth dependency \u2014 routes/mission_control_routes.py:786"}, "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-e6ab8948f2617132", "name": "FastAPI POST `run_workflow` without auth dependency \u2014 routes/mission_control_routes.py:806", "shortDescription": {"text": "FastAPI POST `run_workflow` without auth dependency \u2014 routes/mission_control_routes.py:806"}, "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-ea0092ace74a7e9f", "name": "FastAPI POST `stop_run` without auth dependency \u2014 routes/mission_control_routes.py:853", "shortDescription": {"text": "FastAPI POST `stop_run` without auth dependency \u2014 routes/mission_control_routes.py:853"}, "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-efce89a0c46772ed", "name": "FastAPI POST `resolve_approval` without auth dependency \u2014 routes/mission_control_routes.py:869", "shortDescription": {"text": "FastAPI POST `resolve_approval` without auth dependency \u2014 routes/mission_control_routes.py:869"}, "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-966147c12f18dc91", "name": "FastAPI POST `harness_callback` without auth dependency \u2014 routes/mission_control_routes.py:880", "shortDescription": {"text": "FastAPI POST `harness_callback` without auth dependency \u2014 routes/mission_control_routes.py:880"}, "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-7f186b36291aebf6", "name": "FastAPI POST `ask_orchestrator` without auth dependency \u2014 routes/mission_control_routes.py:914", "shortDescription": {"text": "FastAPI POST `ask_orchestrator` without auth dependency \u2014 routes/mission_control_routes.py:914"}, "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-d4a3f31241a78a05", "name": "FastAPI POST `synthesize_speech` without auth dependency \u2014 routes/tts_routes.py:30", "shortDescription": {"text": "FastAPI POST `synthesize_speech` without auth dependency \u2014 routes/tts_routes.py:30"}, "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-9f351b81c8e37bce", "name": "FastAPI POST `clear_tts_cache` without auth dependency \u2014 routes/tts_routes.py:77", "shortDescription": {"text": "FastAPI POST `clear_tts_cache` without auth dependency \u2014 routes/tts_routes.py:77"}, "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-6ffbe6dd8bf1e3f2", "name": "FastAPI POST `bind` without auth dependency \u2014 routes/agent_tools_routes.py:73", "shortDescription": {"text": "FastAPI POST `bind` without auth dependency \u2014 routes/agent_tools_routes.py:73"}, "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-0632622098497e50", "name": "FastAPI DELETE `unbind` without auth dependency \u2014 routes/agent_tools_routes.py:88", "shortDescription": {"text": "FastAPI DELETE `unbind` without auth dependency \u2014 routes/agent_tools_routes.py:88"}, "fullDescription": {"text": "`@router.delete` 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-2c6bce39fc3a21e0", "name": "FastAPI POST `invoke` without auth dependency \u2014 routes/agent_tools_routes.py:94", "shortDescription": {"text": "FastAPI POST `invoke` without auth dependency \u2014 routes/agent_tools_routes.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-0b0bbadde3bad361", "name": "FastAPI POST `api_sync` without auth dependency \u2014 routes/memory_graph_routes.py:164", "shortDescription": {"text": "FastAPI POST `api_sync` without auth dependency \u2014 routes/memory_graph_routes.py:164"}, "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-6bade2e06b65c382", "name": "FastAPI POST `api_search` without auth dependency \u2014 routes/memory_graph_routes.py:220", "shortDescription": {"text": "FastAPI POST `api_search` without auth dependency \u2014 routes/memory_graph_routes.py:220"}, "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-fd9efcb31e2e2ec5", "name": "FastAPI POST `api_create_grant` without auth dependency \u2014 routes/memory_graph_routes.py:300", "shortDescription": {"text": "FastAPI POST `api_create_grant` without auth dependency \u2014 routes/memory_graph_routes.py:300"}, "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-c13e6270456097c2", "name": "FastAPI DELETE `api_delete_grant` without auth dependency \u2014 routes/memory_graph_routes.py:325", "shortDescription": {"text": "FastAPI DELETE `api_delete_grant` without auth dependency \u2014 routes/memory_graph_routes.py:325"}, "fullDescription": {"text": "`@router.delete` 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-a8385ffe7fb790df", "name": "FastAPI POST `api_create_brain` without auth dependency \u2014 routes/brain_routes.py:386", "shortDescription": {"text": "FastAPI POST `api_create_brain` without auth dependency \u2014 routes/brain_routes.py:386"}, "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-7e03308112be50ae", "name": "FastAPI PATCH `api_update_brain` without auth dependency \u2014 routes/brain_routes.py:458", "shortDescription": {"text": "FastAPI PATCH `api_update_brain` without auth dependency \u2014 routes/brain_routes.py:458"}, "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-f1feeae14add47b4", "name": "FastAPI DELETE `api_delete_brain` without auth dependency \u2014 routes/brain_routes.py:472", "shortDescription": {"text": "FastAPI DELETE `api_delete_brain` without auth dependency \u2014 routes/brain_routes.py:472"}, "fullDescription": {"text": "`@router.delete` 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-9c67ee0fff9e0249", "name": "FastAPI POST `api_ingest_brain` without auth dependency \u2014 routes/brain_routes.py:485", "shortDescription": {"text": "FastAPI POST `api_ingest_brain` without auth dependency \u2014 routes/brain_routes.py:485"}, "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-ff2e8ea3900d5538", "name": "FastAPI POST `api_query_brain` without auth dependency \u2014 routes/brain_routes.py:588", "shortDescription": {"text": "FastAPI POST `api_query_brain` without auth dependency \u2014 routes/brain_routes.py:588"}, "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-c6de6535832dce5b", "name": "FastAPI POST `api_move_brain` without auth dependency \u2014 routes/brain_routes.py:608", "shortDescription": {"text": "FastAPI POST `api_move_brain` without auth dependency \u2014 routes/brain_routes.py:608"}, "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-db2885c845b74fcd", "name": "FastAPI POST `api_query_brain_stream` without auth dependency \u2014 routes/brain_routes.py:641", "shortDescription": {"text": "FastAPI POST `api_query_brain_stream` without auth dependency \u2014 routes/brain_routes.py:641"}, "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-fa909ee5ed144940", "name": "FastAPI DELETE `api_brain_chat_clear` without auth dependency \u2014 routes/brain_routes.py:732", "shortDescription": {"text": "FastAPI DELETE `api_brain_chat_clear` without auth dependency \u2014 routes/brain_routes.py:732"}, "fullDescription": {"text": "`@router.delete` 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-4312a81ba26976c8", "name": "FastAPI POST `api_attach_session` without auth dependency \u2014 routes/brain_routes.py:741", "shortDescription": {"text": "FastAPI POST `api_attach_session` without auth dependency \u2014 routes/brain_routes.py:741"}, "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-7e007429aa6e8cc6", "name": "FastAPI DELETE `api_detach_session` without auth dependency \u2014 routes/brain_routes.py:751", "shortDescription": {"text": "FastAPI DELETE `api_detach_session` without auth dependency \u2014 routes/brain_routes.py:751"}, "fullDescription": {"text": "`@router.delete` 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-be11fef71c28b9bf", "name": "FastAPI POST `api_brain_reindex` without auth dependency \u2014 routes/brain_routes.py:769", "shortDescription": {"text": "FastAPI POST `api_brain_reindex` without auth dependency \u2014 routes/brain_routes.py:769"}, "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-113d571b72ceb387", "name": "FastAPI DELETE `api_delete_brain_source` without auth dependency \u2014 routes/brain_routes.py:801", "shortDescription": {"text": "FastAPI DELETE `api_delete_brain_source` without auth dependency \u2014 routes/brain_routes.py:801"}, "fullDescription": {"text": "`@router.delete` 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-b22e903870de5e20", "name": "FastAPI POST `sync_manifest` without auth dependency \u2014 routes/sync_routes.py:137", "shortDescription": {"text": "FastAPI POST `sync_manifest` without auth dependency \u2014 routes/sync_routes.py:137"}, "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-67a5f2dbd4d3c782", "name": "FastAPI POST `create_token` without auth dependency \u2014 routes/api_token_routes.py:49", "shortDescription": {"text": "FastAPI POST `create_token` without auth dependency \u2014 routes/api_token_routes.py:49"}, "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-6557d6a87e9fcd65", "name": "FastAPI DELETE `delete_token` without auth dependency \u2014 routes/api_token_routes.py:82", "shortDescription": {"text": "FastAPI DELETE `delete_token` without auth dependency \u2014 routes/api_token_routes.py:82"}, "fullDescription": {"text": "`@router.delete` 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-9c580fa2021a68f9", "name": "FastAPI PUT `set_module` without auth dependency \u2014 routes/workspace_routes.py:49", "shortDescription": {"text": "FastAPI PUT `set_module` without auth dependency \u2014 routes/workspace_routes.py:49"}, "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-202ed4ccc2fb2d32", "name": "FastAPI POST `import_data` without auth dependency \u2014 routes/backup_routes.py:62", "shortDescription": {"text": "FastAPI POST `import_data` without auth dependency \u2014 routes/backup_routes.py:62"}, "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-4356acf992db03bf", "name": "FastAPI POST `do_web_search` without auth dependency \u2014 routes/search_routes.py:46", "shortDescription": {"text": "FastAPI POST `do_web_search` without auth dependency \u2014 routes/search_routes.py:46"}, "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-720e0a3fcbd09354", "name": "FastAPI POST `search_with_provider` without auth dependency \u2014 routes/search_routes.py:87", "shortDescription": {"text": "FastAPI POST `search_with_provider` without auth dependency \u2014 routes/search_routes.py:87"}, "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-05410cc2d03c830d", "name": "FastAPI POST `create_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1064", "shortDescription": {"text": "FastAPI POST `create_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1064"}, "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-f69269619f5559f7", "name": "FastAPI PATCH `update_harness_profile_route` without auth dependency \u2014 routes/agents_routes.py:1076", "shortDescription": {"text": "FastAPI PATCH `update_harness_profile_route` without auth dependency \u2014 routes/agents_routes.py:1076"}, "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-df62b94ffca9df98", "name": "FastAPI DELETE `delete_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1094", "shortDescription": {"text": "FastAPI DELETE `delete_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1094"}, "fullDescription": {"text": "`@router.delete` 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-520bac248884a90f", "name": "FastAPI PATCH `update_harness_location` without auth dependency \u2014 routes/agents_routes.py:1163", "shortDescription": {"text": "FastAPI PATCH `update_harness_location` without auth dependency \u2014 routes/agents_routes.py:1163"}, "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-cacae0bd5a64f1b2", "name": "FastAPI PATCH `update_harness_config` without auth dependency \u2014 routes/agents_routes.py:1213", "shortDescription": {"text": "FastAPI PATCH `update_harness_config` without auth dependency \u2014 routes/agents_routes.py:1213"}, "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-aa5a8751323c8aec", "name": "FastAPI POST `create_agent` without auth dependency \u2014 routes/agents_routes.py:1248", "shortDescription": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 routes/agents_routes.py:1248"}, "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-f4c77491cd9c2469", "name": "FastAPI POST `ensure_log_chat` without auth dependency \u2014 routes/agents_routes.py:1373", "shortDescription": {"text": "FastAPI POST `ensure_log_chat` without auth dependency \u2014 routes/agents_routes.py:1373"}, "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-7667e679e1a7c926", "name": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/agents_routes.py:1412", "shortDescription": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/agents_routes.py:1412"}, "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-3b4d6f961028e154", "name": "FastAPI PATCH `update_agent_runtime_config` without auth dependency \u2014 routes/agents_routes.py:1450", "shortDescription": {"text": "FastAPI PATCH `update_agent_runtime_config` without auth dependency \u2014 routes/agents_routes.py:1450"}, "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-f6804529dc34ded5", "name": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/agents_routes.py:1468", "shortDescription": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/agents_routes.py:1468"}, "fullDescription": {"text": "`@router.delete` 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-b09bd893003a4e90", "name": "FastAPI PATCH `update_tools` without auth dependency \u2014 routes/agents_routes.py:1547", "shortDescription": {"text": "FastAPI PATCH `update_tools` without auth dependency \u2014 routes/agents_routes.py:1547"}, "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-c6d25a1739abf227", "name": "FastAPI POST `test_agent` without auth dependency \u2014 routes/agents_routes.py:1565", "shortDescription": {"text": "FastAPI POST `test_agent` without auth dependency \u2014 routes/agents_routes.py:1565"}, "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-c343ac999de4929c", "name": "FastAPI POST `reconnect_agent` without auth dependency \u2014 routes/agents_routes.py:1584", "shortDescription": {"text": "FastAPI POST `reconnect_agent` without auth dependency \u2014 routes/agents_routes.py:1584"}, "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-f350f44ceb0733b7", "name": "FastAPI POST `recover` without auth dependency \u2014 routes/supabase_auth_routes.py:144", "shortDescription": {"text": "FastAPI POST `recover` without auth dependency \u2014 routes/supabase_auth_routes.py:144"}, "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-0c0048986e29c192", "name": "FastAPI POST `reset_password` without auth dependency \u2014 routes/supabase_auth_routes.py:165", "shortDescription": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 routes/supabase_auth_routes.py:165"}, "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-df42ba564d71d20d", "name": "FastAPI POST `create_job` without auth dependency \u2014 routes/video_routes.py:136", "shortDescription": {"text": "FastAPI POST `create_job` without auth dependency \u2014 routes/video_routes.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-9b760c911aabe02d", "name": "FastAPI POST `cancel_job` without auth dependency \u2014 routes/video_routes.py:184", "shortDescription": {"text": "FastAPI POST `cancel_job` without auth dependency \u2014 routes/video_routes.py:184"}, "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-8ed7be25c3864cd4", "name": "FastAPI DELETE `delete_job` without auth dependency \u2014 routes/video_routes.py:193", "shortDescription": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 routes/video_routes.py:193"}, "fullDescription": {"text": "`@router.delete` 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-fa4c2dc52990e34c", "name": "FastAPI POST `rerun_job` without auth dependency \u2014 routes/video_routes.py:204", "shortDescription": {"text": "FastAPI POST `rerun_job` without auth dependency \u2014 routes/video_routes.py:204"}, "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-9e880a1fce51ae2c", "name": "FastAPI POST `create_social` without auth dependency \u2014 routes/video_routes.py:214", "shortDescription": {"text": "FastAPI POST `create_social` without auth dependency \u2014 routes/video_routes.py:214"}, "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-3522b2478feb82a6", "name": "FastAPI POST `create_from_template` without auth dependency \u2014 routes/video_routes.py:231", "shortDescription": {"text": "FastAPI POST `create_from_template` without auth dependency \u2014 routes/video_routes.py:231"}, "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-ac395140bf8ef52f", "name": "FastAPI POST `batch_create` without auth dependency \u2014 routes/video_routes.py:247", "shortDescription": {"text": "FastAPI POST `batch_create` without auth dependency \u2014 routes/video_routes.py:247"}, "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-2cd2f6ec19d0a447", "name": "FastAPI POST `upload_asset` without auth dependency \u2014 routes/video_routes.py:257", "shortDescription": {"text": "FastAPI POST `upload_asset` without auth dependency \u2014 routes/video_routes.py:257"}, "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-05b9352419698d1f", "name": "FastAPI DELETE `delete_asset` without auth dependency \u2014 routes/video_routes.py:286", "shortDescription": {"text": "FastAPI DELETE `delete_asset` without auth dependency \u2014 routes/video_routes.py:286"}, "fullDescription": {"text": "`@router.delete` 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-1ad1a2dea1a792ff", "name": "FastAPI POST `expire_jobs` without auth dependency \u2014 routes/video_routes.py:295", "shortDescription": {"text": "FastAPI POST `expire_jobs` without auth dependency \u2014 routes/video_routes.py:295"}, "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-d871bdea7485000d", "name": "FastAPI POST `chat_endpoint` without auth dependency \u2014 routes/chat_routes.py:281", "shortDescription": {"text": "FastAPI POST `chat_endpoint` without auth dependency \u2014 routes/chat_routes.py:281"}, "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-5fd65547a2a50277", "name": "FastAPI POST `chat_stream` without auth dependency \u2014 routes/chat_routes.py:421", "shortDescription": {"text": "FastAPI POST `chat_stream` without auth dependency \u2014 routes/chat_routes.py:421"}, "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-44590e32c8f2023e", "name": "FastAPI POST `chat_stop` without auth dependency \u2014 routes/chat_routes.py:1312", "shortDescription": {"text": "FastAPI POST `chat_stop` without auth dependency \u2014 routes/chat_routes.py:1312"}, "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-873ec0f44817a214", "name": "FastAPI POST `inject_context` without auth dependency \u2014 routes/chat_routes.py:1339", "shortDescription": {"text": "FastAPI POST `inject_context` without auth dependency \u2014 routes/chat_routes.py:1339"}, "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-62d82eb2cb8557b0", "name": "FastAPI POST `rewrite_message` without auth dependency \u2014 routes/chat_routes.py:1404", "shortDescription": {"text": "FastAPI POST `rewrite_message` without auth dependency \u2014 routes/chat_routes.py:1404"}, "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-fc0a48a08a3871fc", "name": "FastAPI POST `save_config` without auth dependency \u2014 routes/calendar_routes.py:555", "shortDescription": {"text": "FastAPI POST `save_config` without auth dependency \u2014 routes/calendar_routes.py:555"}, "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-627d169d545420ce", "name": "FastAPI POST `test_connection` without auth dependency \u2014 routes/calendar_routes.py:580", "shortDescription": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 routes/calendar_routes.py:580"}, "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-4b298fdf6b9aaa6e", "name": "FastAPI POST `sync_caldav_endpoint` without auth dependency \u2014 routes/calendar_routes.py:637", "shortDescription": {"text": "FastAPI POST `sync_caldav_endpoint` without auth dependency \u2014 routes/calendar_routes.py:637"}, "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-e57ccc368b009743", "name": "FastAPI POST `create_event` without auth dependency \u2014 routes/calendar_routes.py:723", "shortDescription": {"text": "FastAPI POST `create_event` without auth dependency \u2014 routes/calendar_routes.py:723"}, "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-bde5863847ad7d98", "name": "FastAPI PUT `update_event` without auth dependency \u2014 routes/calendar_routes.py:797", "shortDescription": {"text": "FastAPI PUT `update_event` without auth dependency \u2014 routes/calendar_routes.py:797"}, "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-36cfbfe4dd3d4ef8", "name": "FastAPI DELETE `delete_event` without auth dependency \u2014 routes/calendar_routes.py:851", "shortDescription": {"text": "FastAPI DELETE `delete_event` without auth dependency \u2014 routes/calendar_routes.py:851"}, "fullDescription": {"text": "`@router.delete` 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-663022299a62c4a4", "name": "FastAPI POST `create_calendar` without auth dependency \u2014 routes/calendar_routes.py:878", "shortDescription": {"text": "FastAPI POST `create_calendar` without auth dependency \u2014 routes/calendar_routes.py:878"}, "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-4e5b85affd43fe4f", "name": "FastAPI PUT `update_calendar` without auth dependency \u2014 routes/calendar_routes.py:896", "shortDescription": {"text": "FastAPI PUT `update_calendar` without auth dependency \u2014 routes/calendar_routes.py:896"}, "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-050f27d56d322643", "name": "FastAPI DELETE `delete_calendar` without auth dependency \u2014 routes/calendar_routes.py:913", "shortDescription": {"text": "FastAPI DELETE `delete_calendar` without auth dependency \u2014 routes/calendar_routes.py:913"}, "fullDescription": {"text": "`@router.delete` 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-504d37a9073dd127", "name": "FastAPI POST `import_ics` without auth dependency \u2014 routes/calendar_routes.py:931", "shortDescription": {"text": "FastAPI POST `import_ics` without auth dependency \u2014 routes/calendar_routes.py:931"}, "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-d521cb1ca10f2c52", "name": "FastAPI POST `quick_parse` without auth dependency \u2014 routes/calendar_routes.py:1114", "shortDescription": {"text": "FastAPI POST `quick_parse` without auth dependency \u2014 routes/calendar_routes.py:1114"}, "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-3cd9565b751b858e", "name": "FastAPI POST `save_config` without auth dependency \u2014 routes/vault_routes.py:294", "shortDescription": {"text": "FastAPI POST `save_config` without auth dependency \u2014 routes/vault_routes.py:294"}, "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-16366124d288d4a4", "name": "FastAPI POST `unlock` without auth dependency \u2014 routes/vault_routes.py:335", "shortDescription": {"text": "FastAPI POST `unlock` without auth dependency \u2014 routes/vault_routes.py:335"}, "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-2f1c9694df7b74aa", "name": "FastAPI POST `lock` without auth dependency \u2014 routes/vault_routes.py:357", "shortDescription": {"text": "FastAPI POST `lock` without auth dependency \u2014 routes/vault_routes.py:357"}, "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-81a138dd19822778", "name": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1012", "shortDescription": {"text": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1012"}, "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-142aa2251ac708c8", "name": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1013", "shortDescription": {"text": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1013"}, "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-1b29d8d28457b2ac", "name": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1042", "shortDescription": {"text": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1042"}, "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-7e66b00a8e7d3003", "name": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1043", "shortDescription": {"text": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1043"}, "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-cc8e1f423ce8dcac", "name": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1064", "shortDescription": {"text": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1064"}, "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-578b0f55c1d0b660", "name": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1065", "shortDescription": {"text": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1065"}, "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-9053da9fb6f77d52", "name": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1092", "shortDescription": {"text": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1092"}, "fullDescription": {"text": "`@router.delete` 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-b4eed30a7af50b20", "name": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1093", "shortDescription": {"text": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1093"}, "fullDescription": {"text": "`@router.delete` 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-b9d73e49883401c8", "name": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1115", "shortDescription": {"text": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1115"}, "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-ebffe752c0e6bd5e", "name": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1116", "shortDescription": {"text": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1116"}, "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-8e2afb28b23b3ec3", "name": "FastAPI POST `api_upload` without auth dependency \u2014 routes/upload_routes.py:19", "shortDescription": {"text": "FastAPI POST `api_upload` without auth dependency \u2014 routes/upload_routes.py:19"}, "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-2dd25a65f74e3c24", "name": "FastAPI POST `manual_cleanup` without auth dependency \u2014 routes/upload_routes.py:66", "shortDescription": {"text": "FastAPI POST `manual_cleanup` without auth dependency \u2014 routes/upload_routes.py:66"}, "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-02352f9d7afa96ff", "name": "FastAPI PUT `put_vision_text` without auth dependency \u2014 routes/upload_routes.py:207", "shortDescription": {"text": "FastAPI PUT `put_vision_text` without auth dependency \u2014 routes/upload_routes.py:207"}, "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-728eab0ee7da6c29", "name": "FastAPI POST `update_tasks_onboarding` without auth dependency \u2014 routes/task_routes.py:255", "shortDescription": {"text": "FastAPI POST `update_tasks_onboarding` without auth dependency \u2014 routes/task_routes.py:255"}, "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-9eaf152014ede9d8", "name": "FastAPI POST `create_task` without auth dependency \u2014 routes/task_routes.py:328", "shortDescription": {"text": "FastAPI POST `create_task` without auth dependency \u2014 routes/task_routes.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-6ebca82335f9b358", "name": "FastAPI POST `clear_task_cache` without auth dependency \u2014 routes/task_routes.py:437", "shortDescription": {"text": "FastAPI POST `clear_task_cache` without auth dependency \u2014 routes/task_routes.py:437"}, "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-181a74fa40963479", "name": "FastAPI PUT `update_task` without auth dependency \u2014 routes/task_routes.py:499", "shortDescription": {"text": "FastAPI PUT `update_task` without auth dependency \u2014 routes/task_routes.py:499"}, "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-bd97a4240f1db8f4", "name": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/task_routes.py:582", "shortDescription": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/task_routes.py:582"}, "fullDescription": {"text": "`@router.delete` 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-f4bcdf902d9eae1b", "name": "FastAPI POST `pause_task` without auth dependency \u2014 routes/task_routes.py:594", "shortDescription": {"text": "FastAPI POST `pause_task` without auth dependency \u2014 routes/task_routes.py:594"}, "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-6a6b26b119e2d072", "name": "FastAPI POST `resume_task` without auth dependency \u2014 routes/task_routes.py:606", "shortDescription": {"text": "FastAPI POST `resume_task` without auth dependency \u2014 routes/task_routes.py:606"}, "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-73ab12865c6341cc", "name": "FastAPI POST `revert_task` without auth dependency \u2014 routes/task_routes.py:624", "shortDescription": {"text": "FastAPI POST `revert_task` without auth dependency \u2014 routes/task_routes.py:624"}, "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-0600b281c8d07c8f", "name": "FastAPI POST `run_task_now` without auth dependency \u2014 routes/task_routes.py:661", "shortDescription": {"text": "FastAPI POST `run_task_now` without auth dependency \u2014 routes/task_routes.py:661"}, "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-90282841996a327a", "name": "FastAPI POST `stop_task_now` without auth dependency \u2014 routes/task_routes.py:676", "shortDescription": {"text": "FastAPI POST `stop_task_now` without auth dependency \u2014 routes/task_routes.py:676"}, "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-2b39d7e3f761a7d3", "name": "FastAPI POST `regenerate_webhook` without auth dependency \u2014 routes/task_routes.py:858", "shortDescription": {"text": "FastAPI POST `regenerate_webhook` without auth dependency \u2014 routes/task_routes.py:858"}, "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-e6dcb1491eb02b50", "name": "FastAPI POST `parse_task` without auth dependency \u2014 routes/task_routes.py:871", "shortDescription": {"text": "FastAPI POST `parse_task` without auth dependency \u2014 routes/task_routes.py:871"}, "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-4eebdccd332d11bd", "name": "Dangling fetch: GET /api/registry/catalog (static/js/marketplace.js:53)", "shortDescription": {"text": "Dangling fetch: GET /api/registry/catalog (static/js/marketplace.js:53)"}, "fullDescription": {"text": "`static/js/marketplace.js:53` calls `GET /api/registry/catalog` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/registry/catalog`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-651a68240f2c2dcb", "name": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)}/download (static/js/marketplace.js:169)", "shortDescription": {"text": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)}/download (static/js/marketplace.js:169)"}, "fullDescription": {"text": "`static/js/marketplace.js:169` calls `GET /api/registry/modules/${encodeURIComponent(id)}/download` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/registry/modules/<p>/download`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b0dccd574ec60a3", "name": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)} (static/js/marketplace.js:189)", "shortDescription": {"text": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)} (static/js/marketplace.js:189)"}, "fullDescription": {"text": "`static/js/marketplace.js:189` calls `GET /api/registry/modules/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/registry/modules/<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-7720ac6f42cda33b", "name": "Dangling fetch: GET /api/tenant/tools (static/js/marketplace.js:207)", "shortDescription": {"text": "Dangling fetch: GET /api/tenant/tools (static/js/marketplace.js:207)"}, "fullDescription": {"text": "`static/js/marketplace.js:207` calls `GET /api/tenant/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tenant/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97e3492f63d288d2", "name": "Dangling fetch: GET /api/workspace/modules (static/js/marketplace.js:219)", "shortDescription": {"text": "Dangling fetch: GET /api/workspace/modules (static/js/marketplace.js:219)"}, "fullDescription": {"text": "`static/js/marketplace.js:219` calls `GET /api/workspace/modules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/workspace/modules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09179648d5b40008", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:372)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:372)"}, "fullDescription": {"text": "`static/js/settings.js:372` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b27a7ebba0a6b87", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:539)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:539)"}, "fullDescription": {"text": "`static/js/settings.js:539` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43c8ee5f3340cf8d", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:554)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:554)"}, "fullDescription": {"text": "`static/js/settings.js:554` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c164ece82030d11", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:604)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:604)"}, "fullDescription": {"text": "`static/js/settings.js:604` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0557d9804e8863ce", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:624)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:624)"}, "fullDescription": {"text": "`static/js/settings.js:624` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85529a6eca6b0f0e", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:691)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:691)"}, "fullDescription": {"text": "`static/js/settings.js:691` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d0597ef90f18212", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:722)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:722)"}, "fullDescription": {"text": "`static/js/settings.js:722` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bbc7b90021455c7", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:783)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:783)"}, "fullDescription": {"text": "`static/js/settings.js:783` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d02bdfd8d91dd42", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:800)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:800)"}, "fullDescription": {"text": "`static/js/settings.js:800` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5084f78c066d6a26", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:845)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:845)"}, "fullDescription": {"text": "`static/js/settings.js:845` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54b62d4086c33de5", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:873)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:873)"}, "fullDescription": {"text": "`static/js/settings.js:873` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a9f0993aa68b228", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:935)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:935)"}, "fullDescription": {"text": "`static/js/settings.js:935` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a53b736148e73d4", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:955)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:955)"}, "fullDescription": {"text": "`static/js/settings.js:955` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff523f8cfb0ec78b", "name": "Dangling fetch: POST /api/tts/clear-cache (static/js/settings.js:964)", "shortDescription": {"text": "Dangling fetch: POST /api/tts/clear-cache (static/js/settings.js:964)"}, "fullDescription": {"text": "`static/js/settings.js:964` calls `POST /api/tts/clear-cache` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tts/clear-cache`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67d556bd2ecac703", "name": "Dangling fetch: POST /api/tts/synthesize (static/js/settings.js:1022)", "shortDescription": {"text": "Dangling fetch: POST /api/tts/synthesize (static/js/settings.js:1022)"}, "fullDescription": {"text": "`static/js/settings.js:1022` calls `POST /api/tts/synthesize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tts/synthesize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-29e32b6db1e76280", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1103)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1103)"}, "fullDescription": {"text": "`static/js/settings.js:1103` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c2501c6f2732017", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1117)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1117)"}, "fullDescription": {"text": "`static/js/settings.js:1117` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d5c6e5109c769b3", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1206)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1206)"}, "fullDescription": {"text": "`static/js/settings.js:1206` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56607ac5ca651e4f", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1227)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1227)"}, "fullDescription": {"text": "`static/js/settings.js:1227` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79483957b287cd38", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1272)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1272)"}, "fullDescription": {"text": "`static/js/settings.js:1272` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cfa3dcf177567dda", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1409)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1409)"}, "fullDescription": {"text": "`static/js/settings.js:1409` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdf517bbdcb03621", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1503)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1503)"}, "fullDescription": {"text": "`static/js/settings.js:1503` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d621a5854133324", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1566)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1566)"}, "fullDescription": {"text": "`static/js/settings.js:1566` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c147566b22f39b68", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1624)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1624)"}, "fullDescription": {"text": "`static/js/settings.js:1624` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6069f58a04d43f5", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1632)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1632)"}, "fullDescription": {"text": "`static/js/settings.js:1632` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8e0854feecf620b", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1651)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1651)"}, "fullDescription": {"text": "`static/js/settings.js:1651` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20499a1d261cf89b", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1659)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1659)"}, "fullDescription": {"text": "`static/js/settings.js:1659` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bec046ac3e33e385", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1879)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1879)"}, "fullDescription": {"text": "`static/js/settings.js:1879` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2865ba15e2b4b44", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2037)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2037)"}, "fullDescription": {"text": "`static/js/settings.js:2037` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a5fc4e2bd1f2d7a", "name": "Dangling fetch: POST /api/auth/orgs/switch (static/js/settings.js:2136)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/orgs/switch (static/js/settings.js:2136)"}, "fullDescription": {"text": "`static/js/settings.js:2136` calls `POST /api/auth/orgs/switch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/orgs/switch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c64b7b88ba59a13", "name": "Dangling fetch: PUT /api/auth/org/privacy (static/js/settings.js:2166)", "shortDescription": {"text": "Dangling fetch: PUT /api/auth/org/privacy (static/js/settings.js:2166)"}, "fullDescription": {"text": "`static/js/settings.js:2166` calls `PUT /api/auth/org/privacy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/org/privacy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff8708411dd2566b", "name": "Dangling fetch: POST /api/auth/change-password (static/js/settings.js:2202)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/change-password (static/js/settings.js:2202)"}, "fullDescription": {"text": "`static/js/settings.js:2202` calls `POST /api/auth/change-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/change-password`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26de996c7bc86053", "name": "Dangling fetch: GET /api/auth/2fa/status (static/js/settings.js:2227)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/2fa/status (static/js/settings.js:2227)"}, "fullDescription": {"text": "`static/js/settings.js:2227` calls `GET /api/auth/2fa/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/2fa/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f2857e0873fc71e", "name": "Dangling fetch: POST /api/auth/2fa/disable (static/js/settings.js:2246)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/2fa/disable (static/js/settings.js:2246)"}, "fullDescription": {"text": "`static/js/settings.js:2246` calls `POST /api/auth/2fa/disable` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/2fa/disable`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dadbefe692b37bdc", "name": "Dangling fetch: POST /api/auth/2fa/setup (static/js/settings.js:2266)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/2fa/setup (static/js/settings.js:2266)"}, "fullDescription": {"text": "`static/js/settings.js:2266` calls `POST /api/auth/2fa/setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/2fa/setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-645b36c942aeed1a", "name": "Dangling fetch: POST /api/auth/2fa/confirm (static/js/settings.js:2291)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/2fa/confirm (static/js/settings.js:2291)"}, "fullDescription": {"text": "`static/js/settings.js:2291` calls `POST /api/auth/2fa/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/2fa/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0fbff0cc83497d5", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2377)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2377)"}, "fullDescription": {"text": "`static/js/settings.js:2377` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a28207811ec830c", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2387)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2387)"}, "fullDescription": {"text": "`static/js/settings.js:2387` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ceaa009382343b49", "name": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2430)", "shortDescription": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2430)"}, "fullDescription": {"text": "`static/js/settings.js:2430` calls `GET /api/email/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27f93d5bd83789ae", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2447)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2447)"}, "fullDescription": {"text": "`static/js/settings.js:2447` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-994f627c70d7a0b1", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2458)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2458)"}, "fullDescription": {"text": "`static/js/settings.js:2458` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24e52651fb374b62", "name": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2500)", "shortDescription": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2500)"}, "fullDescription": {"text": "`static/js/settings.js:2500` calls `GET /api/email/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c50151c5d10d10e2", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2510)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2510)"}, "fullDescription": {"text": "`static/js/settings.js:2510` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99affb4e60e6d2ec", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2520)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2520)"}, "fullDescription": {"text": "`static/js/settings.js:2520` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eaddeeb98ee5f608", "name": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2564)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2564)"}, "fullDescription": {"text": "`static/js/settings.js:2564` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06cf08d350d3db9c", "name": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2589)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2589)"}, "fullDescription": {"text": "`static/js/settings.js:2589` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f8531425fa48771", "name": "Dangling fetch: POST /api/notes/fire-reminder (static/js/settings.js:2650)", "shortDescription": {"text": "Dangling fetch: POST /api/notes/fire-reminder (static/js/settings.js:2650)"}, "fullDescription": {"text": "`static/js/settings.js:2650` calls `POST /api/notes/fire-reminder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notes/fire-reminder`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61f6387ff84c5cca", "name": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2724)", "shortDescription": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2724)"}, "fullDescription": {"text": "`static/js/settings.js:2724` calls `GET /api/email/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-175d500ed2181024", "name": "Dangling fetch: POST /api/email/accounts/${id}/set-default (static/js/settings.js:2756)", "shortDescription": {"text": "Dangling fetch: POST /api/email/accounts/${id}/set-default (static/js/settings.js:2756)"}, "fullDescription": {"text": "`static/js/settings.js:2756` calls `POST /api/email/accounts/${id}/set-default` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts/<p>/set-default`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f9b81fe0b38a8aa", "name": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:2766)", "shortDescription": {"text": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:2766)"}, "fullDescription": {"text": "`static/js/settings.js:2766` calls `DELETE /api/email/accounts/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts/<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-5909cc633cca4e7f", "name": "Dangling fetch: GET /api/email/config (static/js/settings.js:2920)", "shortDescription": {"text": "Dangling fetch: GET /api/email/config (static/js/settings.js:2920)"}, "fullDescription": {"text": "`static/js/settings.js:2920` calls `GET /api/email/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7767cde71bc7f8ad", "name": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:2935)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:2935)"}, "fullDescription": {"text": "`static/js/settings.js:2935` calls `GET /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f506e6299fc8394", "name": "Dangling fetch: GET /api/email/style (static/js/settings.js:2944)", "shortDescription": {"text": "Dangling fetch: GET /api/email/style (static/js/settings.js:2944)"}, "fullDescription": {"text": "`static/js/settings.js:2944` calls `GET /api/email/style` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/style`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b8f163ca23d945a", "name": "Dangling fetch: PUT /api/email/config (static/js/settings.js:2967)", "shortDescription": {"text": "Dangling fetch: PUT /api/email/config (static/js/settings.js:2967)"}, "fullDescription": {"text": "`static/js/settings.js:2967` calls `PUT /api/email/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9641a5bc8f9ef2a3", "name": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:2991)", "shortDescription": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:2991)"}, "fullDescription": {"text": "`static/js/settings.js:2991` calls `PUT /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd0e0dd133f2bb43", "name": "Dangling fetch: POST /api/email/extract-style (static/js/settings.js:3032)", "shortDescription": {"text": "Dangling fetch: POST /api/email/extract-style (static/js/settings.js:3032)"}, "fullDescription": {"text": "`static/js/settings.js:3032` calls `POST /api/email/extract-style` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/extract-style`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1227e46e08a65f27", "name": "Dangling fetch: PUT /api/email/style (static/js/settings.js:3058)", "shortDescription": {"text": "Dangling fetch: PUT /api/email/style (static/js/settings.js:3058)"}, "fullDescription": {"text": "`static/js/settings.js:3058` calls `PUT /api/email/style` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/style`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a70083d3db81b0fe", "name": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3106)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3106)"}, "fullDescription": {"text": "`static/js/settings.js:3106` calls `GET /api/auth/integrations/presets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/presets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74afa84dc24a333a", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3133)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3133)"}, "fullDescription": {"text": "`static/js/settings.js:3133` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3f21ec5f2b374bc", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3166)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3166)"}, "fullDescription": {"text": "`static/js/settings.js:3166` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d17d803af24cce1", "name": "Dangling fetch: POST /api/auth/integrations/${editingId}/test (static/js/settings.js:3246)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/integrations/${editingId}/test (static/js/settings.js:3246)"}, "fullDescription": {"text": "`static/js/settings.js:3246` calls `POST /api/auth/integrations/${editingId}/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/<p>/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be45b78a00036f70", "name": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3260)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3260)"}, "fullDescription": {"text": "`static/js/settings.js:3260` calls `DELETE /api/auth/integrations/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/<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-099f543e9fe99f8b", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3301)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3301)"}, "fullDescription": {"text": "`static/js/settings.js:3301` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc6f6d33ea8e461a", "name": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3302)", "shortDescription": {"text": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3302)"}, "fullDescription": {"text": "`static/js/settings.js:3302` calls `GET /api/calendar/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2ba8fb7b5f11bdf", "name": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3303)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3303)"}, "fullDescription": {"text": "`static/js/settings.js:3303` calls `GET /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3653f0f0a8eb581e", "name": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3304)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3304)"}, "fullDescription": {"text": "`static/js/settings.js:3304` calls `GET /api/contacts/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecfc451f1af690c3", "name": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3305)", "shortDescription": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3305)"}, "fullDescription": {"text": "`static/js/settings.js:3305` calls `GET /api/email/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e85a020cf5f9278", "name": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:3306)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:3306)"}, "fullDescription": {"text": "`static/js/settings.js:3306` calls `GET /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be9a65b1497fe175", "name": "Dangling fetch: GET /api/vault/config (static/js/settings.js:3307)", "shortDescription": {"text": "Dangling fetch: GET /api/vault/config (static/js/settings.js:3307)"}, "fullDescription": {"text": "`static/js/settings.js:3307` calls `GET /api/vault/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a57dcbe7f10c51a", "name": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3413)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3413)"}, "fullDescription": {"text": "`static/js/settings.js:3413` calls `DELETE /api/auth/integrations/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/<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-f2d6f4558786e53e", "name": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3414)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3414)"}, "fullDescription": {"text": "`static/js/settings.js:3414` calls `POST /api/calendar/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68761324381b00c4", "name": "Dangling fetch: DELETE /api/contacts/clear (static/js/settings.js:3416)", "shortDescription": {"text": "Dangling fetch: DELETE /api/contacts/clear (static/js/settings.js:3416)"}, "fullDescription": {"text": "`static/js/settings.js:3416` calls `DELETE /api/contacts/clear` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/clear`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c20f7fe8a4254392", "name": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3419)", "shortDescription": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3419)"}, "fullDescription": {"text": "`static/js/settings.js:3419` calls `PUT /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a00f1c66d38fb935", "name": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:3421)", "shortDescription": {"text": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:3421)"}, "fullDescription": {"text": "`static/js/settings.js:3421` calls `DELETE /api/email/accounts/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts/<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-6905c60f6285d17f", "name": "Dangling fetch: DELETE /api/mcp/servers/${id} (static/js/settings.js:3422)", "shortDescription": {"text": "Dangling fetch: DELETE /api/mcp/servers/${id} (static/js/settings.js:3422)"}, "fullDescription": {"text": "`static/js/settings.js:3422` calls `DELETE /api/mcp/servers/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<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-e1133eaa2304a121", "name": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:3423)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:3423)"}, "fullDescription": {"text": "`static/js/settings.js:3423` calls `POST /api/vault/logout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/logout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6e2f299f0e47719", "name": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3446)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3446)"}, "fullDescription": {"text": "`static/js/settings.js:3446` calls `GET /api/auth/integrations/presets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/presets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89dc9759a65fbe5f", "name": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3486)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3486)"}, "fullDescription": {"text": "`static/js/settings.js:3486` calls `GET /api/auth/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a92ca32dfbf537f9", "name": "Dangling fetch: POST /api/auth/integrations/${_editId}/test (static/js/settings.js:3538)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/integrations/${_editId}/test (static/js/settings.js:3538)"}, "fullDescription": {"text": "`static/js/settings.js:3538` calls `POST /api/auth/integrations/${_editId}/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/integrations/<p>/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd300ff162a8e949", "name": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3565)", "shortDescription": {"text": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3565)"}, "fullDescription": {"text": "`static/js/settings.js:3565` calls `GET /api/calendar/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cff9004d600f3b17", "name": "Dangling fetch: POST /api/calendar/test (static/js/settings.js:3580)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar/test (static/js/settings.js:3580)"}, "fullDescription": {"text": "`static/js/settings.js:3580` calls `POST /api/calendar/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17cc2fb1421e9759", "name": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3609)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3609)"}, "fullDescription": {"text": "`static/js/settings.js:3609` calls `POST /api/calendar/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22f32748910582bb", "name": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3663)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3663)"}, "fullDescription": {"text": "`static/js/settings.js:3663` calls `GET /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6f5c7342b161170", "name": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3671)", "shortDescription": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3671)"}, "fullDescription": {"text": "`static/js/settings.js:3671` calls `PUT /api/contacts/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-792bcc45b8f935a5", "name": "Dangling fetch: POST /api/contacts/add (static/js/settings.js:3697)", "shortDescription": {"text": "Dangling fetch: POST /api/contacts/add (static/js/settings.js:3697)"}, "fullDescription": {"text": "`static/js/settings.js:3697` calls `POST /api/contacts/add` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/add`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6877bd1256f0330e", "name": "Dangling fetch: GET /api/contacts/export?format=${encodeURIComponent(format)} (static/js/settings.js:3708)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/export?format=${encodeURIComponent(format)} (static/js/settings.js:3708)"}, "fullDescription": {"text": "`static/js/settings.js:3708` calls `GET /api/contacts/export?format=${encodeURIComponent(format)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31f7f6593b306816", "name": "Dangling fetch: POST /api/contacts/import (static/js/settings.js:3749)", "shortDescription": {"text": "Dangling fetch: POST /api/contacts/import (static/js/settings.js:3749)"}, "fullDescription": {"text": "`static/js/settings.js:3749` calls `POST /api/contacts/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9004d65f424e5c17", "name": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3783)", "shortDescription": {"text": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3783)"}, "fullDescription": {"text": "`static/js/settings.js:3783` calls `GET /api/contacts/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/contacts/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ca27e7749892409", "name": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3865)", "shortDescription": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3865)"}, "fullDescription": {"text": "`static/js/settings.js:3865` calls `GET /api/email/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-380d6bf9aa908bb8", "name": "Dangling fetch: POST /api/email/accounts/test (static/js/settings.js:4149)", "shortDescription": {"text": "Dangling fetch: POST /api/email/accounts/test (static/js/settings.js:4149)"}, "fullDescription": {"text": "`static/js/settings.js:4149` calls `POST /api/email/accounts/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email/accounts/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa1925865d569e85", "name": "Dangling fetch: GET /api/vault/config (static/js/settings.js:4272)", "shortDescription": {"text": "Dangling fetch: GET /api/vault/config (static/js/settings.js:4272)"}, "fullDescription": {"text": "`static/js/settings.js:4272` calls `GET /api/vault/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb6369c2912e7830", "name": "Dangling fetch: POST /api/vault/config (static/js/settings.js:4295)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/config (static/js/settings.js:4295)"}, "fullDescription": {"text": "`static/js/settings.js:4295` calls `POST /api/vault/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae64a52cf0c061a4", "name": "Dangling fetch: POST /api/vault/login (static/js/settings.js:4312)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/login (static/js/settings.js:4312)"}, "fullDescription": {"text": "`static/js/settings.js:4312` calls `POST /api/vault/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-722496eb1ff756fb", "name": "Dangling fetch: POST /api/vault/unlock (static/js/settings.js:4331)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/unlock (static/js/settings.js:4331)"}, "fullDescription": {"text": "`static/js/settings.js:4331` calls `POST /api/vault/unlock` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/unlock`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0ee8531f8e7b2bb", "name": "Dangling fetch: POST /api/vault/lock (static/js/settings.js:4348)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/lock (static/js/settings.js:4348)"}, "fullDescription": {"text": "`static/js/settings.js:4348` calls `POST /api/vault/lock` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/lock`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ff4b4cad87bf45d", "name": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:4358)", "shortDescription": {"text": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:4358)"}, "fullDescription": {"text": "`static/js/settings.js:4358` calls `POST /api/vault/logout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vault/logout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7120f56ada9338a2", "name": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:4371)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:4371)"}, "fullDescription": {"text": "`static/js/settings.js:4371` calls `GET /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c63bb0ddf2343816", "name": "Dangling fetch: POST /api/mcp/servers/${srv.id}/reconnect (static/js/settings.js:4399)", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/servers/${srv.id}/reconnect (static/js/settings.js:4399)"}, "fullDescription": {"text": "`static/js/settings.js:4399` calls `POST /api/mcp/servers/${srv.id}/reconnect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/reconnect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2e3f7df9ece7996", "name": "Dangling fetch: PATCH /api/mcp/servers/${srv.id} (static/js/settings.js:4409)", "shortDescription": {"text": "Dangling fetch: PATCH /api/mcp/servers/${srv.id} (static/js/settings.js:4409)"}, "fullDescription": {"text": "`static/js/settings.js:4409` calls `PATCH /api/mcp/servers/${srv.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<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-d19565c865f5293e", "name": "Dangling fetch: GET /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4418)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4418)"}, "fullDescription": {"text": "`static/js/settings.js:4418` calls `GET /api/mcp/servers/${srv.id}/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a8698762112a05f", "name": "Dangling fetch: PATCH /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4426)", "shortDescription": {"text": "Dangling fetch: PATCH /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4426)"}, "fullDescription": {"text": "`static/js/settings.js:4426` calls `PATCH /api/mcp/servers/${srv.id}/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf30f51a23235a0a", "name": "Dangling fetch: POST /api/mcp/servers (static/js/settings.js:4478)", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/servers (static/js/settings.js:4478)"}, "fullDescription": {"text": "`static/js/settings.js:4478` calls `POST /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f2eea220dca98e2", "name": "Dangling fetch: GET /api/auth/users (static/js/admin.js:35)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/users (static/js/admin.js:35)"}, "fullDescription": {"text": "`static/js/admin.js:35` calls `GET /api/auth/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec6300e41cbd0b86", "name": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:140)", "shortDescription": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:140)"}, "fullDescription": {"text": "`static/js/admin.js:140` calls `PUT /api/auth/users/${encodeURIComponent(username)}/privileges` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users/<p>/privileges`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae5d6f6661bf60fe", "name": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(oldUsername)}/rename (static/js/admin.js:166)", "shortDescription": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(oldUsername)}/rename (static/js/admin.js:166)"}, "fullDescription": {"text": "`static/js/admin.js:166` calls `PUT /api/auth/users/${encodeURIComponent(oldUsername)}/rename` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users/<p>/rename`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cec827bf95e98f84", "name": "Dangling fetch: DELETE /api/auth/users (static/js/admin.js:195)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/users (static/js/admin.js:195)"}, "fullDescription": {"text": "`static/js/admin.js:195` calls `DELETE /api/auth/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-afc0fc3a090614ac", "name": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:268)", "shortDescription": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:268)"}, "fullDescription": {"text": "`static/js/admin.js:268` calls `PUT /api/auth/users/${encodeURIComponent(username)}/privileges` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users/<p>/privileges`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84528735b2fe7f5e", "name": "Dangling fetch: GET /api/auth/status (static/js/admin.js:294)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/status (static/js/admin.js:294)"}, "fullDescription": {"text": "`static/js/admin.js:294` calls `GET /api/auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e86765ed7202857", "name": "Dangling fetch: POST /api/auth/signup-toggle (static/js/admin.js:300)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/signup-toggle (static/js/admin.js:300)"}, "fullDescription": {"text": "`static/js/admin.js:300` calls `POST /api/auth/signup-toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/signup-toggle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77708dd212efa595", "name": "Dangling fetch: POST /api/auth/users (static/js/admin.js:321)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/users (static/js/admin.js:321)"}, "fullDescription": {"text": "`static/js/admin.js:321` calls `POST /api/auth/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fdc3fa52f48e03b", "name": "Dangling fetch: GET /api/mcp/servers (static/js/admin.js:1387)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/admin.js:1387)"}, "fullDescription": {"text": "`static/js/admin.js:1387` calls `GET /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b3cf0da91aa28cb", "name": "Dangling fetch: POST /api/mcp/servers/${btn.dataset.admMcpReconnect}/reconnect (static/js/admin.js:1417)", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/servers/${btn.dataset.admMcpReconnect}/reconnect (static/js/admin.js:1417)"}, "fullDescription": {"text": "`static/js/admin.js:1417` calls `POST /api/mcp/servers/${btn.dataset.admMcpReconnect}/reconnect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/reconnect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd4078765b585b58", "name": "Dangling fetch: PATCH /api/mcp/servers/${btn.dataset.admMcpToggle} (static/js/admin.js:1428)", "shortDescription": {"text": "Dangling fetch: PATCH /api/mcp/servers/${btn.dataset.admMcpToggle} (static/js/admin.js:1428)"}, "fullDescription": {"text": "`static/js/admin.js:1428` calls `PATCH /api/mcp/servers/${btn.dataset.admMcpToggle}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<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-baf209519da1d1dc", "name": "Dangling fetch: DELETE /api/mcp/servers/${btn.dataset.admMcpDelete} (static/js/admin.js:1435)", "shortDescription": {"text": "Dangling fetch: DELETE /api/mcp/servers/${btn.dataset.admMcpDelete} (static/js/admin.js:1435)"}, "fullDescription": {"text": "`static/js/admin.js:1435` calls `DELETE /api/mcp/servers/${btn.dataset.admMcpDelete}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<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-4c9ab1066c60eba8", "name": "Dangling fetch: GET /api/mcp/servers/${sid}/tools (static/js/admin.js:1461)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/servers/${sid}/tools (static/js/admin.js:1461)"}, "fullDescription": {"text": "`static/js/admin.js:1461` calls `GET /api/mcp/servers/${sid}/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-094c158181792f7c", "name": "Dangling fetch: PATCH /api/mcp/servers/${serverId}/tools (static/js/admin.js:1505)", "shortDescription": {"text": "Dangling fetch: PATCH /api/mcp/servers/${serverId}/tools (static/js/admin.js:1505)"}, "fullDescription": {"text": "`static/js/admin.js:1505` calls `PATCH /api/mcp/servers/${serverId}/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9e48951b8553365", "name": "Dangling fetch: POST /api/mcp/servers (static/js/admin.js:1704)", "shortDescription": {"text": "Dangling fetch: POST /api/mcp/servers (static/js/admin.js:1704)"}, "fullDescription": {"text": "`static/js/admin.js:1704` calls `POST /api/mcp/servers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/servers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f36f99da7f793e5d", "name": "Dangling fetch: GET /api/personal (static/js/admin.js:1728)", "shortDescription": {"text": "Dangling fetch: GET /api/personal (static/js/admin.js:1728)"}, "fullDescription": {"text": "`static/js/admin.js:1728` calls `GET /api/personal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/personal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bf563f5eda89850", "name": "Dangling fetch: POST /api/personal/upload (static/js/admin.js:1787)", "shortDescription": {"text": "Dangling fetch: POST /api/personal/upload (static/js/admin.js:1787)"}, "fullDescription": {"text": "`static/js/admin.js:1787` calls `POST /api/personal/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/personal/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd16cbfed0228fa4", "name": "Dangling fetch: POST /api/personal/add_directory (static/js/admin.js:1808)", "shortDescription": {"text": "Dangling fetch: POST /api/personal/add_directory (static/js/admin.js:1808)"}, "fullDescription": {"text": "`static/js/admin.js:1808` calls `POST /api/personal/add_directory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/personal/add_directory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a9cb284b4e2f10f", "name": "Dangling fetch: POST /api/personal/reload (static/js/admin.js:1819)", "shortDescription": {"text": "Dangling fetch: POST /api/personal/reload (static/js/admin.js:1819)"}, "fullDescription": {"text": "`static/js/admin.js:1819` calls `POST /api/personal/reload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/personal/reload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d6978745e032f4a", "name": "Dangling fetch: GET /api/auth/features (static/js/admin.js:1965)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/features (static/js/admin.js:1965)"}, "fullDescription": {"text": "`static/js/admin.js:1965` calls `GET /api/auth/features` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/features`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-396fe43181fea89a", "name": "Dangling fetch: POST /api/auth/features (static/js/admin.js:1975)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/features (static/js/admin.js:1975)"}, "fullDescription": {"text": "`static/js/admin.js:1975` calls `POST /api/auth/features` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/features`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b88e413c6dd2ce6", "name": "Dangling fetch: GET /api/storage/status (static/js/admin.js:2037)", "shortDescription": {"text": "Dangling fetch: GET /api/storage/status (static/js/admin.js:2037)"}, "fullDescription": {"text": "`static/js/admin.js:2037` calls `GET /api/storage/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/storage/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57af6bb17677ad45", "name": "Dangling fetch: POST /api/storage/config (static/js/admin.js:2105)", "shortDescription": {"text": "Dangling fetch: POST /api/storage/config (static/js/admin.js:2105)"}, "fullDescription": {"text": "`static/js/admin.js:2105` calls `POST /api/storage/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/storage/config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfb1be9085983485", "name": "Dangling fetch: POST /api/storage/test (static/js/admin.js:2131)", "shortDescription": {"text": "Dangling fetch: POST /api/storage/test (static/js/admin.js:2131)"}, "fullDescription": {"text": "`static/js/admin.js:2131` calls `POST /api/storage/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/storage/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e897591b8faa9b33", "name": "Dangling fetch: DELETE /api/admin/wipe/${kind} (static/js/admin.js:2213)", "shortDescription": {"text": "Dangling fetch: DELETE /api/admin/wipe/${kind} (static/js/admin.js:2213)"}, "fullDescription": {"text": "`static/js/admin.js:2213` calls `DELETE /api/admin/wipe/${kind}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/wipe/<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-fadf9826980586f0", "name": "Dangling fetch: GET /api/stt/stats (static/js/voiceRecorder.js:31)", "shortDescription": {"text": "Dangling fetch: GET /api/stt/stats (static/js/voiceRecorder.js:31)"}, "fullDescription": {"text": "`static/js/voiceRecorder.js:31` calls `GET /api/stt/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stt/stats`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6cdae84c30a45d1", "name": "Dangling fetch: POST /api/stt/transcribe (static/js/voiceRecorder.js:115)", "shortDescription": {"text": "Dangling fetch: POST /api/stt/transcribe (static/js/voiceRecorder.js:115)"}, "fullDescription": {"text": "`static/js/voiceRecorder.js:115` calls `POST /api/stt/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stt/transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94d6dadd16ab3c91", "name": "Dangling fetch: GET /api/auth/settings (static/js/emailLibrary.js:322)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/emailLibrary.js:322)"}, "fullDescription": {"text": "`static/js/emailLibrary.js:322` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed56ab8047c9ffb8", "name": "Dangling fetch: GET /api/auth/status (static/js/modeSwitcher.js:20)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/status (static/js/modeSwitcher.js:20)"}, "fullDescription": {"text": "`static/js/modeSwitcher.js:20` calls `GET /api/auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03886b7380aec987", "name": "Dangling fetch: POST /api/auth/active-mode (static/js/modeSwitcher.js:26)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/active-mode (static/js/modeSwitcher.js:26)"}, "fullDescription": {"text": "`static/js/modeSwitcher.js:26` calls `POST /api/auth/active-mode` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/active-mode`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf666acd6a31e732", "name": "Dangling fetch: GET /api/auth/features (static/js/censor.js:56)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/features (static/js/censor.js:56)"}, "fullDescription": {"text": "`static/js/censor.js:56` calls `GET /api/auth/features` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/features`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2df9348a795f4b5", "name": "Dangling fetch: GET /api/auth/settings (static/js/keyboard-shortcuts.js:59)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/keyboard-shortcuts.js:59)"}, "fullDescription": {"text": "`static/js/keyboard-shortcuts.js:59` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2769cfbe0268746a", "name": "Dangling fetch: GET /api/brains/${encodeURIComponent(brainId)} (static/js/memoryGraph.js:401)", "shortDescription": {"text": "Dangling fetch: GET /api/brains/${encodeURIComponent(brainId)} (static/js/memoryGraph.js:401)"}, "fullDescription": {"text": "`static/js/memoryGraph.js:401` calls `GET /api/brains/${encodeURIComponent(brainId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/brains/<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-e50e84d6613058a5", "name": "Dangling fetch: GET /api/auth/status (static/js/init.js:29)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/status (static/js/init.js:29)"}, "fullDescription": {"text": "`static/js/init.js:29` calls `GET /api/auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2211455235310cb9", "name": "Dangling fetch: GET /api/auth/settings (static/js/tasks.js:184)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/tasks.js:184)"}, "fullDescription": {"text": "`static/js/tasks.js:184` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aa05e4bf120a83b", "name": "Dangling fetch: POST /api/auth/settings (static/js/tasks.js:197)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/settings (static/js/tasks.js:197)"}, "fullDescription": {"text": "`static/js/tasks.js:197` calls `POST /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b808e80d1b663c10", "name": "Dangling fetch: GET /api/hwfit/models?${fallbackParams} (static/js/cookbook-hwfit.js:517)", "shortDescription": {"text": "Dangling fetch: GET /api/hwfit/models?${fallbackParams} (static/js/cookbook-hwfit.js:517)"}, "fullDescription": {"text": "`static/js/cookbook-hwfit.js:517` calls `GET /api/hwfit/models?${fallbackParams}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hwfit/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a2807e84ef40018", "name": "Dangling fetch: POST /api/notes/fire-reminder (static/js/notes.js:955)", "shortDescription": {"text": "Dangling fetch: POST /api/notes/fire-reminder (static/js/notes.js:955)"}, "fullDescription": {"text": "`static/js/notes.js:955` calls `POST /api/notes/fire-reminder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notes/fire-reminder`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8405bfa7cb12f623", "name": "Dangling fetch: GET /api/auth/status (static/js/theme.js:108)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/status (static/js/theme.js:108)"}, "fullDescription": {"text": "`static/js/theme.js:108` calls `GET /api/auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c06891a4843e7223", "name": "Dangling fetch: PUT /api/prefs/custom-themes (static/js/theme.js:197)", "shortDescription": {"text": "Dangling fetch: PUT /api/prefs/custom-themes (static/js/theme.js:197)"}, "fullDescription": {"text": "`static/js/theme.js:197` calls `PUT /api/prefs/custom-themes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/prefs/custom-themes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4cd327b2bf9b7937", "name": "Dangling fetch: PUT /api/prefs/theme (static/js/theme.js:567)", "shortDescription": {"text": "Dangling fetch: PUT /api/prefs/theme (static/js/theme.js:567)"}, "fullDescription": {"text": "`static/js/theme.js:567` calls `PUT /api/prefs/theme` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/prefs/theme`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b330a3f2bdb9368", "name": "Dangling fetch: GET /api/prefs/theme (static/js/theme.js:591)", "shortDescription": {"text": "Dangling fetch: GET /api/prefs/theme (static/js/theme.js:591)"}, "fullDescription": {"text": "`static/js/theme.js:591` calls `GET /api/prefs/theme` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/prefs/theme`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac2d84df8235e9d8", "name": "Dangling fetch: GET /api/fonts/custom (static/js/theme.js:1240)", "shortDescription": {"text": "Dangling fetch: GET /api/fonts/custom (static/js/theme.js:1240)"}, "fullDescription": {"text": "`static/js/theme.js:1240` calls `GET /api/fonts/custom` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/fonts/custom`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c8ee8fad5bb5bff", "name": "Dangling fetch: GET /api/prefs/custom-themes (static/js/theme.js:2188)", "shortDescription": {"text": "Dangling fetch: GET /api/prefs/custom-themes (static/js/theme.js:2188)"}, "fullDescription": {"text": "`static/js/theme.js:2188` calls `GET /api/prefs/custom-themes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/prefs/custom-themes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db4b2c5e757b41b0", "name": "Dangling fetch: GET /api/auth/status (static/js/cookbook.js:139)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/status (static/js/cookbook.js:139)"}, "fullDescription": {"text": "`static/js/cookbook.js:139` calls `GET /api/auth/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b546437398cb8c44", "name": "Dangling fetch: GET /api/hwfit/system?${qp} (static/js/cookbook.js:1281)", "shortDescription": {"text": "Dangling fetch: GET /api/hwfit/system?${qp} (static/js/cookbook.js:1281)"}, "fullDescription": {"text": "`static/js/cookbook.js:1281` calls `GET /api/hwfit/system?${qp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hwfit/system`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11d7753c67079a56", "name": "Dangling fetch: PUT /api/upload/${att.id}/vision (static/js/chatRenderer.js:323)", "shortDescription": {"text": "Dangling fetch: PUT /api/upload/${att.id}/vision (static/js/chatRenderer.js:323)"}, "fullDescription": {"text": "`static/js/chatRenderer.js:323` calls `PUT /api/upload/${att.id}/vision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/upload/<p>/vision`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e654b315a1d8d0d9", "name": "Dangling fetch: GET /api/upload/${att.id}/vision (static/js/chatRenderer.js:387)", "shortDescription": {"text": "Dangling fetch: GET /api/upload/${att.id}/vision (static/js/chatRenderer.js:387)"}, "fullDescription": {"text": "`static/js/chatRenderer.js:387` calls `GET /api/upload/${att.id}/vision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/upload/<p>/vision`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dcdeeb9cec197350", "name": "Dangling fetch: GET /api/auth/settings (static/js/tts-ai.js:35)", "shortDescription": {"text": "Dangling fetch: GET /api/auth/settings (static/js/tts-ai.js:35)"}, "fullDescription": {"text": "`static/js/tts-ai.js:35` calls `GET /api/auth/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7590a950e482284f", "name": "Dangling fetch: GET /api/tts/stats (static/js/tts-ai.js:44)", "shortDescription": {"text": "Dangling fetch: GET /api/tts/stats (static/js/tts-ai.js:44)"}, "fullDescription": {"text": "`static/js/tts-ai.js:44` calls `GET /api/tts/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tts/stats`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f84e24a78dabaa71", "name": "Dangling fetch: POST /api/tts/synthesize (static/js/tts-ai.js:132)", "shortDescription": {"text": "Dangling fetch: POST /api/tts/synthesize (static/js/tts-ai.js:132)"}, "fullDescription": {"text": "`static/js/tts-ai.js:132` calls `POST /api/tts/synthesize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tts/synthesize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62af9757d2e19fe4", "name": "Dangling fetch: GET /api/hwfit/profiles?${params} (static/js/cookbookServe.js:828)", "shortDescription": {"text": "Dangling fetch: GET /api/hwfit/profiles?${params} (static/js/cookbookServe.js:828)"}, "fullDescription": {"text": "`static/js/cookbookServe.js:828` calls `GET /api/hwfit/profiles?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hwfit/profiles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccae0de7930e2ffd", "name": "Dangling fetch: GET /api/model/cached${params} (static/js/cookbookServe.js:1965)", "shortDescription": {"text": "Dangling fetch: GET /api/model/cached${params} (static/js/cookbookServe.js:1965)"}, "fullDescription": {"text": "`static/js/cookbookServe.js:1965` calls `GET /api/model/cached${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/model/cached/<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-504c1e942221dd39", "name": "Unused endpoint: GET /api/generated-image/{filename}", "shortDescription": {"text": "Unused endpoint: GET /api/generated-image/{filename}"}, "fullDescription": {"text": "`app.py` declares `GET /api/generated-image/{filename}` 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": "`app.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-5f9819d9ecb49931", "name": "Unused endpoint: GET /calendar", "shortDescription": {"text": "Unused endpoint: GET /calendar"}, "fullDescription": {"text": "`app.py` declares `GET /calendar` 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-9c4ef629fd907879", "name": "Unused endpoint: GET /cookbook", "shortDescription": {"text": "Unused endpoint: GET /cookbook"}, "fullDescription": {"text": "`app.py` declares `GET /cookbook` 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-2036430dc3a32669", "name": "Unused endpoint: GET /email", "shortDescription": {"text": "Unused endpoint: GET /email"}, "fullDescription": {"text": "`app.py` declares `GET /email` 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-279d61489dedfa5f", "name": "Unused endpoint: GET /memory", "shortDescription": {"text": "Unused endpoint: GET /memory"}, "fullDescription": {"text": "`app.py` declares `GET /memory` 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-a460cef1f3efcd6e", "name": "Unused endpoint: GET /gallery", "shortDescription": {"text": "Unused endpoint: GET /gallery"}, "fullDescription": {"text": "`app.py` declares `GET /gallery` 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-fd0e06afbaab19b3", "name": "Unused endpoint: GET /tasks", "shortDescription": {"text": "Unused endpoint: GET /tasks"}, "fullDescription": {"text": "`app.py` declares `GET /tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea1e9787d0246672", "name": "Unused endpoint: GET /mission-control", "shortDescription": {"text": "Unused endpoint: GET /mission-control"}, "fullDescription": {"text": "`app.py` declares `GET /mission-control` 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": "`app.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-60ce72dcd3e9a568", "name": "Unused endpoint: GET /library", "shortDescription": {"text": "Unused endpoint: GET /library"}, "fullDescription": {"text": "`app.py` declares `GET /library` 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-f91497d0b1854aed", "name": "Unused endpoint: GET /business/chemical-supplier", "shortDescription": {"text": "Unused endpoint: GET /business/chemical-supplier"}, "fullDescription": {"text": "`app.py` declares `GET /business/chemical-supplier` 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-035a846443eafdf3", "name": "Unused endpoint: GET /business/chemical-supplier/{page_name}", "shortDescription": {"text": "Unused endpoint: GET /business/chemical-supplier/{page_name}"}, "fullDescription": {"text": "`app.py` declares `GET /business/chemical-supplier/{page_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-67f8e76d421fa820", "name": "Unused endpoint: GET /business/contech", "shortDescription": {"text": "Unused endpoint: GET /business/contech"}, "fullDescription": {"text": "`app.py` declares `GET /business/contech` 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-0d7120d4919e0849", "name": "Unused endpoint: GET /business/contech/{page_name}", "shortDescription": {"text": "Unused endpoint: GET /business/contech/{page_name}"}, "fullDescription": {"text": "`app.py` declares `GET /business/contech/{page_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-a282a367387e9e3c", "name": "Unused endpoint: GET /backgrounds", "shortDescription": {"text": "Unused endpoint: GET /backgrounds"}, "fullDescription": {"text": "`app.py` declares `GET /backgrounds` 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-6a4dfcad3eb1618a", "name": "Unused endpoint: GET /login", "shortDescription": {"text": "Unused endpoint: GET /login"}, "fullDescription": {"text": "`app.py` declares `GET /login` 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-c9e449c3b9e73b73", "name": "Unused endpoint: ANY /logout", "shortDescription": {"text": "Unused endpoint: ANY /logout"}, "fullDescription": {"text": "`app.py` declares `ANY /logout` 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-6c2507f3182299a0", "name": "Unused endpoint: GET /api/version", "shortDescription": {"text": "Unused endpoint: GET /api/version"}, "fullDescription": {"text": "`app.py` declares `GET /api/version` 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": "`app.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-52765bcf81a6e09b", "name": "Unused endpoint: GET /api/ready", "shortDescription": {"text": "Unused endpoint: GET /api/ready"}, "fullDescription": {"text": "`app.py` declares `GET /api/ready` 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-f279069c5e862217", "name": "Unused endpoint: GET /pair", "shortDescription": {"text": "Unused endpoint: GET /pair"}, "fullDescription": {"text": "`companion/routes.py` declares `GET /pair` 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-e343c1fa58c93a21", "name": "Unused endpoint: POST /pair", "shortDescription": {"text": "Unused endpoint: POST /pair"}, "fullDescription": {"text": "`companion/routes.py` declares `POST /pair` 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-012773a464fa99c8", "name": "Unused endpoint: POST /numbers/import", "shortDescription": {"text": "Unused endpoint: POST /numbers/import"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `POST /numbers/import` 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-1aa0d24e7b016aef", "name": "Unused endpoint: GET /numbers", "shortDescription": {"text": "Unused endpoint: GET /numbers"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `GET /numbers` 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-a6406e307cc4c796", "name": "Unused endpoint: POST /numbers/{number_id}/provision", "shortDescription": {"text": "Unused endpoint: POST /numbers/{number_id}/provision"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `POST /numbers/{number_id}/provision` 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-53c4c0323773185a", "name": "Unused endpoint: POST /assignments", "shortDescription": {"text": "Unused endpoint: POST /assignments"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `POST /assignments` 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-d97657e3dc9ab2e9", "name": "Unused endpoint: DELETE /assignments/{assignment_id}", "shortDescription": {"text": "Unused endpoint: DELETE /assignments/{assignment_id}"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `DELETE /assignments/{assignment_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-e1b7bee247ffc801", "name": "Unused endpoint: GET /summary", "shortDescription": {"text": "Unused endpoint: GET /summary"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `GET /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-7b8d6d9e9ebb4b09", "name": "Unused endpoint: POST /panic", "shortDescription": {"text": "Unused endpoint: POST /panic"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `POST /panic` 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-5d517791c2b3ade4", "name": "Unused endpoint: POST /webhooks/openwa", "shortDescription": {"text": "Unused endpoint: POST /webhooks/openwa"}, "fullDescription": {"text": "`docs/whatsapp-lab/reference/whatsapp_fleet_routes.py` declares `POST /webhooks/openwa` 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-251e3dbd600caba5", "name": "Unused endpoint: GET /v1/models", "shortDescription": {"text": "Unused endpoint: GET /v1/models"}, "fullDescription": {"text": "`scripts/diffusion_server.py` declares `GET /v1/models` 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-347ef23ab91848f0", "name": "Unused endpoint: POST /v1/images/generations", "shortDescription": {"text": "Unused endpoint: POST /v1/images/generations"}, "fullDescription": {"text": "`scripts/diffusion_server.py` declares `POST /v1/images/generations` 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-970f907bd25af793", "name": "Unused endpoint: POST /v1/images/inpaint", "shortDescription": {"text": "Unused endpoint: POST /v1/images/inpaint"}, "fullDescription": {"text": "`scripts/diffusion_server.py` declares `POST /v1/images/inpaint` 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-35bd0071352fd56b", "name": "Unused endpoint: POST /v1/images/harmonize", "shortDescription": {"text": "Unused endpoint: POST /v1/images/harmonize"}, "fullDescription": {"text": "`scripts/diffusion_server.py` declares `POST /v1/images/harmonize` 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-45c45555041fa74b", "name": "Unused endpoint: GET /system", "shortDescription": {"text": "Unused endpoint: GET /system"}, "fullDescription": {"text": "`routes/hwfit_routes.py` declares `GET /system` 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-6d9534131ed7ca41", "name": "Unused endpoint: GET /profiles", "shortDescription": {"text": "Unused endpoint: GET /profiles"}, "fullDescription": {"text": "`routes/hwfit_routes.py` declares `GET /profiles` 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-5c0aed83ee15ffc6", "name": "Unused endpoint: GET /image-models", "shortDescription": {"text": "Unused endpoint: GET /image-models"}, "fullDescription": {"text": "`routes/hwfit_routes.py` declares `GET /image-models` 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-4a12a9bd91f7e8b8", "name": "Unused endpoint: POST /api/gallery/upload", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/upload"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e4d4797e5043e1d", "name": "Unused endpoint: POST /api/gallery/{image_id}/replace", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/{image_id}/replace"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/{image_id}/replace` 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-32bc838333a2769d", "name": "Unused endpoint: POST /api/gallery/{image_id}/rename", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/{image_id}/rename"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/{image_id}/rename` 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-bd2566dc90d6d2a5", "name": "Unused endpoint: POST /api/gallery/{image_id}/rotate", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/{image_id}/rotate"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/{image_id}/rotate` 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-6a29f328b3a0ad20", "name": "Unused endpoint: POST /api/gallery/ai-upscale", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/ai-upscale"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/ai-upscale` 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-daa36793be0a19b7", "name": "Unused endpoint: POST /api/gallery/style-transfer", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/style-transfer"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/style-transfer` 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-a247b71180396f44", "name": "Unused endpoint: GET /api/gallery/tags", "shortDescription": {"text": "Unused endpoint: GET /api/gallery/tags"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `GET /api/gallery/tags` 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-b084476c864f2b2a", "name": "Unused endpoint: GET /api/gallery/albums", "shortDescription": {"text": "Unused endpoint: GET /api/gallery/albums"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `GET /api/gallery/albums` 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-89b3da950dd4fd8d", "name": "Unused endpoint: POST /api/gallery/albums", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/albums"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/albums` 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-3c8fd71877c420be", "name": "Unused endpoint: GET /api/gallery/stats", "shortDescription": {"text": "Unused endpoint: GET /api/gallery/stats"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `GET /api/gallery/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-4b9f5b4ee13fd47f", "name": "Unused endpoint: POST /api/gallery/ai-tag-batch", "shortDescription": {"text": "Unused endpoint: POST /api/gallery/ai-tag-batch"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `POST /api/gallery/ai-tag-batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09b1735973f6af1a", "name": "Unused endpoint: GET /api/gallery/{image_id}", "shortDescription": {"text": "Unused endpoint: GET /api/gallery/{image_id}"}, "fullDescription": {"text": "`routes/gallery_routes.py` declares `GET /api/gallery/{image_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}}]}}, "automationDetails": {"id": "repobility/18544"}, "properties": {"repository": "ruanbluiz/odysseus", "repoUrl": "https://github.com/ruanbluiz/odysseus", "branch": "main"}, "results": [{"ruleId": "scanner-9f34778ad6308db0", "level": "note", "message": {"text": "Possibly dead Python function: find_admin_user"}, "properties": {"repobilityId": "d75666f09e003659", "scanner": "scanner-primary", "fingerprint": "9f34778ad6308db0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion/pairing.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-903e749f8718417a", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "903e749f8718417a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/whatsapp-lab/reference/0010_fleet_whatsapp.py:95"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe8cb22bf58a7969", "level": "note", "message": {"text": "Possibly dead Python function: set_description"}, "properties": {"repobilityId": "4d8e45b086defd4c", "scanner": "scanner-primary", "fingerprint": "fe8cb22bf58a7969", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hf_download.py:93"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da709d77729d8b7a", "level": "note", "message": {"text": "Possibly dead Python function: set_postfix"}, "properties": {"repobilityId": "3fbaa7a42ab18e67", "scanner": "scanner-primary", "fingerprint": "da709d77729d8b7a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hf_download.py:96"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-beedc84ced06de49", "level": "note", "message": {"text": "Possibly dead Python function: set_postfix_str"}, "properties": {"repobilityId": "71e2f084479033f3", "scanner": "scanner-primary", "fingerprint": "beedc84ced06de49", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hf_download.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6caf43d751c04df7", "level": "note", "message": {"text": "Possibly dead Python function: quiet_logs"}, "properties": {"repobilityId": "3783e1948a7b1651", "scanner": "scanner-primary", "fingerprint": "6caf43d751c04df7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_lib/cli.py:49"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3131c45f4c4c4f3d", "level": "note", "message": {"text": "Possibly dead Python function: emit"}, "properties": {"repobilityId": "fecc700ec874b669", "scanner": "scanner-primary", "fingerprint": "3131c45f4c4c4f3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_lib/cli.py:62"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e60f858ea181d43f", "level": "note", "message": {"text": "Possibly dead Python function: common_parser"}, "properties": {"repobilityId": "099ad14b556ddd65", "scanner": "scanner-primary", "fingerprint": "e60f858ea181d43f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_lib/cli.py:160"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91cd34ebf6068495", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "91cd34ebf6068495", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_routes.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a33df8c8febaf86", "level": "note", "message": {"text": "Possibly dead Python function: handle_startendtag"}, "properties": {"repobilityId": "259e69d47dc2412b", "scanner": "scanner-primary", "fingerprint": "5a33df8c8febaf86", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_routes.py:381"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24449c1b88333912", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "24449c1b88333912", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_routes.py:385"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4384c54c17900dd6", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "4384c54c17900dd6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_routes.py:394"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dd76fa634673022", "level": "note", "message": {"text": "Possibly dead Python function: require_owner"}, "properties": {"repobilityId": "08cd706909dee345", "scanner": "scanner-primary", "fingerprint": "5dd76fa634673022", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_helpers.py:168"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63092ab41a591786", "level": "note", "message": {"text": "Possibly dead Python function: try_fallback_endpoint"}, "properties": {"repobilityId": "54693b4ec7a3d243", "scanner": "scanner-primary", "fingerprint": "63092ab41a591786", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_helpers.py:201"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8727ddf08630064c", "level": "note", "message": {"text": "Possibly dead Python function: periodic_rate_limit_cleanup"}, "properties": {"repobilityId": "2c3011295e4a042a", "scanner": "scanner-primary", "fingerprint": "8727ddf08630064c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/upload_routes.py:222"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24d6c94bb8b267de", "level": "note", "message": {"text": "Possibly dead Python function: register"}, "properties": {"repobilityId": "3dcfff96740bd31f", "scanner": "scanner-primary", "fingerprint": "24d6c94bb8b267de", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modules/registry/tools/runtime.py:65"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98844dd62f721be7", "level": "note", "message": {"text": "Possibly dead Python function: set_voice"}, "properties": {"repobilityId": "6e02d44fa8852dd7", "scanner": "scanner-primary", "fingerprint": "98844dd62f721be7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/tts/tts_service.py:192"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5e8d30a439f5043", "level": "note", "message": {"text": "Possibly dead Python function: start_background"}, "properties": {"repobilityId": "833826065b0c8d33", "scanner": "scanner-primary", "fingerprint": "f5e8d30a439f5043", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/research/service.py:147"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11d26df57b8bd205", "level": "note", "message": {"text": "Possibly dead Python function: stage_ideate"}, "properties": {"repobilityId": "e24f20abd56c4335", "scanner": "scanner-primary", "fingerprint": "11d26df57b8bd205", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:351"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6f51e6db034ebe17", "level": "note", "message": {"text": "Possibly dead Python function: stage_script"}, "properties": {"repobilityId": "f3dfacab51f02841", "scanner": "scanner-primary", "fingerprint": "6f51e6db034ebe17", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:404"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c9f4e3a377c75cd2", "level": "note", "message": {"text": "Possibly dead Python function: stage_voiceover"}, "properties": {"repobilityId": "4b5c674b9402b02a", "scanner": "scanner-primary", "fingerprint": "c9f4e3a377c75cd2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:443"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bfea4f8b3ee31072", "level": "note", "message": {"text": "Possibly dead Python function: stage_visuals"}, "properties": {"repobilityId": "432b0343d4f26886", "scanner": "scanner-primary", "fingerprint": "bfea4f8b3ee31072", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:476"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95b47c0c6760a2a3", "level": "note", "message": {"text": "Possibly dead Python function: stage_render"}, "properties": {"repobilityId": "e973a3dbb14ee87e", "scanner": "scanner-primary", "fingerprint": "95b47c0c6760a2a3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:497"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d674bb7bc5ed9a1d", "level": "note", "message": {"text": "Possibly dead Python function: stage_package"}, "properties": {"repobilityId": "025a791f1e05893a", "scanner": "scanner-primary", "fingerprint": "d674bb7bc5ed9a1d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/automation_hub/pipeline.py:606"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01ff00d29bc44f01", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/app.js:3800"}, "properties": {"repobilityId": "59ba33ff2299d9c8", "scanner": "scanner-primary", "fingerprint": "01ff00d29bc44f01", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5428d8fe1d273265", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/guia-paper/boot.js:83"}, "properties": {"repobilityId": "70c6b17fd0cdd0ea", "scanner": "scanner-primary", "fingerprint": "5428d8fe1d273265", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-337074d4e8f2721d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/js/slashCommands.js:2392"}, "properties": {"repobilityId": "a4fc336257a1d38f", "scanner": "scanner-primary", "fingerprint": "337074d4e8f2721d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-40fe62f86bde49ac", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 static/js/notes.js:2855"}, "properties": {"repobilityId": "63663e502d97fe68", "scanner": "scanner-primary", "fingerprint": "40fe62f86bde49ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0b9e7b338949c664", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/js/editor/wire-import.js:118"}, "properties": {"repobilityId": "9df38802c7c5eea5", "scanner": "scanner-primary", "fingerprint": "0b9e7b338949c664", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-f587f6fb5def08fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/mammoth.browser.min.js:6"}, "properties": {"repobilityId": "46af0bf77c23a0d4", "scanner": "scanner-primary", "fingerprint": "f587f6fb5def08fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab340a0e501ffff9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/xlsx.full.min.js:13"}, "properties": {"repobilityId": "48e8c75f99fbdf69", "scanner": "scanner-primary", "fingerprint": "ab340a0e501ffff9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab83cce2d95a4dbb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/highlight.min.js:107"}, "properties": {"repobilityId": "2791491f6372749f", "scanner": "scanner-primary", "fingerprint": "ab83cce2d95a4dbb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-272c3b87f15d32b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/lib/docx.umd.min.js:4201"}, "properties": {"repobilityId": "743eb9e286bbcb97", "scanner": "scanner-primary", "fingerprint": "272c3b87f15d32b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-460c8f7ce032621f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 templates/builder/business-onepage/src/components/Contato.tsx:10"}, "properties": {"repobilityId": "3dee51ee47c935ff", "scanner": "scanner-primary", "fingerprint": "460c8f7ce032621f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e6dd1e1efb7973c7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 templates/builder/business-onepage/src/components/Contato.tsx:13"}, "properties": {"repobilityId": "98a9f9f33e92f7cb", "scanner": "scanner-primary", "fingerprint": "e6dd1e1efb7973c7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59868562782cd0f8", "level": "warning", "message": {"text": "Privileged port 1000 in use"}, "properties": {"repobilityId": "5ac9fc9372cfe169", "scanner": "scanner-primary", "fingerprint": "59868562782cd0f8", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb0acdfe8e7021df", "level": "warning", "message": {"text": "Privileged port 993 in use"}, "properties": {"repobilityId": "a36e56a26353e9ee", "scanner": "scanner-primary", "fingerprint": "cb0acdfe8e7021df", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/settings.js"}, "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-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-fd5ca59f9642964b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/download.html:527"}, "properties": {"repobilityId": "2e80cdbcf03c3f98", "scanner": "scanner-primary", "fingerprint": "fd5ca59f9642964b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/download.html"}, "region": {"startLine": 527}}}]}, {"ruleId": "scanner-272db59e5078e843", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/login.html:739"}, "properties": {"repobilityId": "fb9725e3edd2d955", "scanner": "scanner-primary", "fingerprint": "272db59e5078e843", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/login.html"}, "region": {"startLine": 739}}}]}, {"ruleId": "scanner-7d888878fe2629b2", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in static/login.html:1028"}, "properties": {"repobilityId": "8fee4880242d9324", "scanner": "scanner-primary", "fingerprint": "7d888878fe2629b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/login.html"}, "region": {"startLine": 1028}}}]}, {"ruleId": "scanner-1d0a5e8c4d91afa6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/app.js:680"}, "properties": {"repobilityId": "25869ecb6dadc3f6", "scanner": "scanner-primary", "fingerprint": "1d0a5e8c4d91afa6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/app.js"}, "region": {"startLine": 680}}}]}, {"ruleId": "scanner-c6de9db0646108c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing.html:668"}, "properties": {"repobilityId": "b09163b0f28b6ba2", "scanner": "scanner-primary", "fingerprint": "c6de9db0646108c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing.html"}, "region": {"startLine": 668}}}]}, {"ruleId": "scanner-0cb481a8b8ad0794", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/boot.js:75"}, "properties": {"repobilityId": "59a49b1560c4ca49", "scanner": "scanner-primary", "fingerprint": "0cb481a8b8ad0794", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/boot.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-f82977ebe0111c08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/ui.js:38"}, "properties": {"repobilityId": "d99aa1351303f7f3", "scanner": "scanner-primary", "fingerprint": "f82977ebe0111c08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/ui.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-9153739536ba9e2d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/util.js:45"}, "properties": {"repobilityId": "dad50209787485bc", "scanner": "scanner-primary", "fingerprint": "9153739536ba9e2d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/util.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-4bd26cd1a66ed5f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/router.js:107"}, "properties": {"repobilityId": "711da27f28ebee87", "scanner": "scanner-primary", "fingerprint": "4bd26cd1a66ed5f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/router.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-c1cadabc18f3d3a5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/home.js:82"}, "properties": {"repobilityId": "3b19e11e1ad159bd", "scanner": "scanner-primary", "fingerprint": "c1cadabc18f3d3a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/home.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-34c12c4d9ab2ca61", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/news.js:17"}, "properties": {"repobilityId": "cd6ad2c624c488ce", "scanner": "scanner-primary", "fingerprint": "34c12c4d9ab2ca61", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/news.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-8ec4511a5b5e3bfd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/opportunities.js:19"}, "properties": {"repobilityId": "042ebdd62925dd66", "scanner": "scanner-primary", "fingerprint": "8ec4511a5b5e3bfd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/opportunities.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-07b3a5aa39a11114", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/directory.js:28"}, "properties": {"repobilityId": "abe89d339e40f990", "scanner": "scanner-primary", "fingerprint": "07b3a5aa39a11114", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/directory.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-605fcaf632ec0fd5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pageEditor.js:13"}, "properties": {"repobilityId": "4bd452fec3ec844a", "scanner": "scanner-primary", "fingerprint": "605fcaf632ec0fd5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/pageEditor.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-eacaad37a6af8af1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/company.js:10"}, "properties": {"repobilityId": "8fbcae1f5ddf1371", "scanner": "scanner-primary", "fingerprint": "eacaad37a6af8af1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/company.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-f76d6160be0790fa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagesAdmin.js:11"}, "properties": {"repobilityId": "e34d71ad1f59514a", "scanner": "scanner-primary", "fingerprint": "f76d6160be0790fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/pagesAdmin.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-a7cd3809bb24289b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/pagePublic.js:12"}, "properties": {"repobilityId": "3793251c805fe495", "scanner": "scanner-primary", "fingerprint": "a7cd3809bb24289b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/pagePublic.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-4b30ed416637c99e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/guia-paper/js/views/market.js:13"}, "properties": {"repobilityId": "312f46616b6e148f", "scanner": "scanner-primary", "fingerprint": "4b30ed416637c99e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/guia-paper/js/views/market.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-2c6f229dfb78e22c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/colorPicker.js:101"}, "properties": {"repobilityId": "5d583c19abac714a", "scanner": "scanner-primary", "fingerprint": "2c6f229dfb78e22c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/colorPicker.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-16645571d063356f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/marketplace.js:240"}, "properties": {"repobilityId": "1e25e6cefa6aacd9", "scanner": "scanner-primary", "fingerprint": "16645571d063356f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/marketplace.js"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-30f3c47455515b7d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/settings.js:178"}, "properties": {"repobilityId": "fd495d2812bafb96", "scanner": "scanner-primary", "fingerprint": "30f3c47455515b7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/settings.js"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-006c0ccc86658278", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/models.js:106"}, "properties": {"repobilityId": "ae47e169f069ad4c", "scanner": "scanner-primary", "fingerprint": "006c0ccc86658278", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/models.js"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-62490bcbe2cabc06", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-diagnosis.js:520"}, "properties": {"repobilityId": "de5e0498c3574ecd", "scanner": "scanner-primary", "fingerprint": "62490bcbe2cabc06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbook-diagnosis.js"}, "region": {"startLine": 520}}}]}, {"ruleId": "scanner-896eed20486a7355", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/group.js:64"}, "properties": {"repobilityId": "14b929896614c8c1", "scanner": "scanner-primary", "fingerprint": "896eed20486a7355", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/group.js"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-adf202067289daba", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/group.js:550"}, "properties": {"repobilityId": "47778fc9e794ddf5", "scanner": "scanner-primary", "fingerprint": "adf202067289daba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/group.js"}, "region": {"startLine": 550}}}]}, {"ruleId": "scanner-c8b6209390b2f76f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/presets.js:115"}, "properties": {"repobilityId": "210b78a4df5aa601", "scanner": "scanner-primary", "fingerprint": "c8b6209390b2f76f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/presets.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-d6829e27262ec0ac", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/presets.js:410"}, "properties": {"repobilityId": "4bcf0a647b02eeaa", "scanner": "scanner-primary", "fingerprint": "d6829e27262ec0ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/presets.js"}, "region": {"startLine": 410}}}]}, {"ruleId": "scanner-d00b22955d58715e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailInbox.js:296"}, "properties": {"repobilityId": "00791ad77b5320de", "scanner": "scanner-primary", "fingerprint": "d00b22955d58715e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emailInbox.js"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-f36953b2844723de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/assistant.js:93"}, "properties": {"repobilityId": "3608686287c9938e", "scanner": "scanner-primary", "fingerprint": "f36953b2844723de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/assistant.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-0fd547110ccfa0b7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/documentLibrary.js:196"}, "properties": {"repobilityId": "6ea5caf1983bfd09", "scanner": "scanner-primary", "fingerprint": "0fd547110ccfa0b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/documentLibrary.js"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-c3a5d4be1697044b", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in static/js/documentLibrary.js:1363"}, "properties": {"repobilityId": "219ad64f9e49076b", "scanner": "scanner-primary", "fingerprint": "c3a5d4be1697044b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/documentLibrary.js"}, "region": {"startLine": 1363}}}]}, {"ruleId": "scanner-2c5ee09120444f76", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/guideAvatar.js:328"}, "properties": {"repobilityId": "b60f16a1414e00ec", "scanner": "scanner-primary", "fingerprint": "2c5ee09120444f76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/guideAvatar.js"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-9d8686a54c188f49", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/document.js:299"}, "properties": {"repobilityId": "4b35ad17c59957c1", "scanner": "scanner-primary", "fingerprint": "9d8686a54c188f49", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/document.js"}, "region": {"startLine": 299}}}]}, {"ruleId": "scanner-5ef3ab56fe0062ba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modalManager.js:320"}, "properties": {"repobilityId": "c46d1564ebf73b69", "scanner": "scanner-primary", "fingerprint": "5ef3ab56fe0062ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/modalManager.js"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-91ff59d10cf0bad2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/automationHub.js:222"}, "properties": {"repobilityId": "49f336fcdc66a379", "scanner": "scanner-primary", "fingerprint": "91ff59d10cf0bad2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/automationHub.js"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-3120955834db295e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/spinner.js:279"}, "properties": {"repobilityId": "19fffcfc1cd9faa4", "scanner": "scanner-primary", "fingerprint": "3120955834db295e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/spinner.js"}, "region": {"startLine": 279}}}]}, {"ruleId": "scanner-3decdc45749bbc3e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/galleryEditor.js:488"}, "properties": {"repobilityId": "c1e72717927c1be2", "scanner": "scanner-primary", "fingerprint": "3decdc45749bbc3e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/galleryEditor.js"}, "region": {"startLine": 488}}}]}, {"ruleId": "scanner-5d28d9157ba28c87", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tourHints.js:75"}, "properties": {"repobilityId": "8d825e3c3ba37474", "scanner": "scanner-primary", "fingerprint": "5d28d9157ba28c87", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/tourHints.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-b0cb78166dfb33c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/admin.js:36"}, "properties": {"repobilityId": "2e893fbfa43c1aa4", "scanner": "scanner-primary", "fingerprint": "b0cb78166dfb33c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/admin.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-88e226cfe8c78b35", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/rag.js:30"}, "properties": {"repobilityId": "e08caaafd2b8762d", "scanner": "scanner-primary", "fingerprint": "88e226cfe8c78b35", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/rag.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-c0680305bef59de2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookDownload.js:318"}, "properties": {"repobilityId": "95f293148a59eb00", "scanner": "scanner-primary", "fingerprint": "c0680305bef59de2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbookDownload.js"}, "region": {"startLine": 318}}}]}, {"ruleId": "scanner-a1999aef9b7c1fb3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memory.js:67"}, "properties": {"repobilityId": "d9a72c483c761b8d", "scanner": "scanner-primary", "fingerprint": "a1999aef9b7c1fb3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/memory.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-8853bc9045abe3d3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/whatsappLab.js:231"}, "properties": {"repobilityId": "c0cbce65aaa8585a", "scanner": "scanner-primary", "fingerprint": "8853bc9045abe3d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/whatsappLab.js"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-e4468c697ede1c84", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatStream.js:233"}, "properties": {"repobilityId": "7840ef0d13955cdd", "scanner": "scanner-primary", "fingerprint": "e4468c697ede1c84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/chatStream.js"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-6584acf36737d917", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/video.js:277"}, "properties": {"repobilityId": "fe70a940cbd74ecb", "scanner": "scanner-primary", "fingerprint": "6584acf36737d917", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/video.js"}, "region": {"startLine": 277}}}]}, {"ruleId": "scanner-775f195318d10ede", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/ui.js:323"}, "properties": {"repobilityId": "e3c3e705bd836d53", "scanner": "scanner-primary", "fingerprint": "775f195318d10ede", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/ui.js"}, "region": {"startLine": 323}}}]}, {"ruleId": "scanner-591bd54f87d3128f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/customerPages.js:152"}, "properties": {"repobilityId": "be82b63d91c542ac", "scanner": "scanner-primary", "fingerprint": "591bd54f87d3128f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/customerPages.js"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-86397cd0ee58ceb6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emailLibrary.js:68"}, "properties": {"repobilityId": "d10feb3020c200d7", "scanner": "scanner-primary", "fingerprint": "86397cd0ee58ceb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emailLibrary.js"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-9d3de9904da817ac", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/emailLibrary.js:4238"}, "properties": {"repobilityId": "892bab42ebbe15be", "scanner": "scanner-primary", "fingerprint": "9d3de9904da817ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emailLibrary.js"}, "region": {"startLine": 4238}}}]}, {"ruleId": "scanner-a22cde7b2f1464a2", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary.js:2789"}, "properties": {"repobilityId": "ab7a1468af3195ff", "scanner": "scanner-primary", "fingerprint": "a22cde7b2f1464a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emailLibrary.js"}, "region": {"startLine": 2789}}}]}, {"ruleId": "scanner-1438fcfa9d9410ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brainAttach.js:92"}, "properties": {"repobilityId": "7c814fb2cace04f7", "scanner": "scanner-primary", "fingerprint": "1438fcfa9d9410ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/brainAttach.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-17f27f01e98a3276", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashAutocomplete.js:133"}, "properties": {"repobilityId": "38bc182d89bcc2c2", "scanner": "scanner-primary", "fingerprint": "17f27f01e98a3276", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/slashAutocomplete.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-2467c1497b14ae2c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/slashCommands.js:265"}, "properties": {"repobilityId": "b77aae7ffc2388c3", "scanner": "scanner-primary", "fingerprint": "2467c1497b14ae2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/slashCommands.js"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-a850c17906bfe7a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modeSwitcher.js:76"}, "properties": {"repobilityId": "549dfa58e5543e9a", "scanner": "scanner-primary", "fingerprint": "a850c17906bfe7a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/modeSwitcher.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-2a8df059cbce0c67", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/businessDashboard.js:1181"}, "properties": {"repobilityId": "ce5db651e9631b53", "scanner": "scanner-primary", "fingerprint": "2a8df059cbce0c67", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/businessDashboard.js"}, "region": {"startLine": 1181}}}]}, {"ruleId": "scanner-284fa4ecdf567b22", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/researchSynapse.js:29"}, "properties": {"repobilityId": "7c85fab0fb25b7ab", "scanner": "scanner-primary", "fingerprint": "284fa4ecdf567b22", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/researchSynapse.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-ee04ba8b2f58ec63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/brains.js:147"}, "properties": {"repobilityId": "f8b5b65544ce07a2", "scanner": "scanner-primary", "fingerprint": "ee04ba8b2f58ec63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/brains.js"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-997f48c01a050576", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chat.js:187"}, "properties": {"repobilityId": "536c28736dbfb4c2", "scanner": "scanner-primary", "fingerprint": "997f48c01a050576", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/chat.js"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-5b1971fca87abcdc", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/chat.js:2430"}, "properties": {"repobilityId": "3c713254f61162a9", "scanner": "scanner-primary", "fingerprint": "5b1971fca87abcdc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/chat.js"}, "region": {"startLine": 2430}}}]}, {"ruleId": "scanner-d93a7dd60363acc4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/navCustomize.js:347"}, "properties": {"repobilityId": "8e48c7ae0e660a30", "scanner": "scanner-primary", "fingerprint": "d93a7dd60363acc4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/navCustomize.js"}, "region": {"startLine": 347}}}]}, {"ruleId": "scanner-efacebae4c7d269e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/emojiPicker.js:121"}, "properties": {"repobilityId": "a1ca2e5e3671da70", "scanner": "scanner-primary", "fingerprint": "efacebae4c7d269e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emojiPicker.js"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-c46ca00c0eb7a4ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/missionControl.js:608"}, "properties": {"repobilityId": "8139c05863380fd6", "scanner": "scanner-primary", "fingerprint": "c46ca00c0eb7a4ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/missionControl.js"}, "region": {"startLine": 608}}}]}, {"ruleId": "scanner-5a3c66558400fe60", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/harnessPickerFactory.js:112"}, "properties": {"repobilityId": "461ab8609d105145", "scanner": "scanner-primary", "fingerprint": "5a3c66558400fe60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/harnessPickerFactory.js"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-499ddae62658808e", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in static/js/codeRunner.js:208"}, "properties": {"repobilityId": "95cbfdc73dcc1eec", "scanner": "scanner-primary", "fingerprint": "499ddae62658808e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/codeRunner.js"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-22d40563769e3d5b", "level": "note", "message": {"text": "Insecure pattern 'document_write' in static/js/codeRunner.js:366"}, "properties": {"repobilityId": "ec1ef96d9dc18d74", "scanner": "scanner-primary", "fingerprint": "22d40563769e3d5b", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/codeRunner.js"}, "region": {"startLine": 366}}}]}, {"ruleId": "scanner-580b68ddb77da3ec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/codeRunner.js:19"}, "properties": {"repobilityId": "87debe3f1eed274d", "scanner": "scanner-primary", "fingerprint": "580b68ddb77da3ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/codeRunner.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-af9c956e61228414", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/builder.js:313"}, "properties": {"repobilityId": "a0691edd29c8fb47", "scanner": "scanner-primary", "fingerprint": "af9c956e61228414", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/builder.js"}, "region": {"startLine": 313}}}]}, {"ruleId": "scanner-707b6767391960cf", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in static/js/builder.js:1435"}, "properties": {"repobilityId": "71fa6f7ea960b54e", "scanner": "scanner-primary", "fingerprint": "707b6767391960cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/builder.js"}, "region": {"startLine": 1435}}}]}, {"ruleId": "scanner-8095c658492c4901", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/keyboard-shortcuts.js:213"}, "properties": {"repobilityId": "d4294efed92f2ce5", "scanner": "scanner-primary", "fingerprint": "8095c658492c4901", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/keyboard-shortcuts.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-7a398f2c35bc20cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/gallery.js:355"}, "properties": {"repobilityId": "5f3767232366c42a", "scanner": "scanner-primary", "fingerprint": "7a398f2c35bc20cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/gallery.js"}, "region": {"startLine": 355}}}]}, {"ruleId": "scanner-c42d88ea21b4f10e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/signature.js:309"}, "properties": {"repobilityId": "124f4f9cd16c8262", "scanner": "scanner-primary", "fingerprint": "c42d88ea21b4f10e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/signature.js"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-4e6b02c036c7bccd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/memoryGraph.js:212"}, "properties": {"repobilityId": "da2b5e3a48cc18ba", "scanner": "scanner-primary", "fingerprint": "4e6b02c036c7bccd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/memoryGraph.js"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-800c70917c473e3f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/memoryGraph.js:406"}, "properties": {"repobilityId": "f50add1fa0f22491", "scanner": "scanner-primary", "fingerprint": "800c70917c473e3f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/memoryGraph.js"}, "region": {"startLine": 406}}}]}, {"ruleId": "scanner-705c2d0ac8c9172e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookRunning.js:349"}, "properties": {"repobilityId": "0b860f59b96cf1ca", "scanner": "scanner-primary", "fingerprint": "705c2d0ac8c9172e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbookRunning.js"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-5040b5be1ad95105", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookRunning.js:1657"}, "properties": {"repobilityId": "040e773cfc02c21e", "scanner": "scanner-primary", "fingerprint": "5040b5be1ad95105", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbookRunning.js"}, "region": {"startLine": 1657}}}]}, {"ruleId": "scanner-4c614275eacd768e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/skills.js:244"}, "properties": {"repobilityId": "3570f3fa84a289dd", "scanner": "scanner-primary", "fingerprint": "4c614275eacd768e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/skills.js"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-363a62e03860c7d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/sessions.js:70"}, "properties": {"repobilityId": "2c3f443f2592917d", "scanner": "scanner-primary", "fingerprint": "363a62e03860c7d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/sessions.js"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-a1e64158674ca0e3", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in static/js/sessions.js:1505"}, "properties": {"repobilityId": "fefd8555708456a7", "scanner": "scanner-primary", "fingerprint": "a1e64158674ca0e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/sessions.js"}, "region": {"startLine": 1505}}}]}, {"ruleId": "scanner-a0cb319c26630da3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/section-management.js:21"}, "properties": {"repobilityId": "38ca36e37deb4892", "scanner": "scanner-primary", "fingerprint": "a0cb319c26630da3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/section-management.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-0d2f5e269236f3a6", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/section-management.js:160"}, "properties": {"repobilityId": "715939c7d68238f6", "scanner": "scanner-primary", "fingerprint": "0d2f5e269236f3a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/section-management.js"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-67a3391e7b4252ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tasks.js:378"}, "properties": {"repobilityId": "6d2356009a0d9406", "scanner": "scanner-primary", "fingerprint": "67a3391e7b4252ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/tasks.js"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-485f49ceb5991fd5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/usersAdmin.js:149"}, "properties": {"repobilityId": "5a53c27d30ee56c1", "scanner": "scanner-primary", "fingerprint": "485f49ceb5991fd5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/usersAdmin.js"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-ffda85837dfa0bd0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook-hwfit.js:123"}, "properties": {"repobilityId": "81f5a553bae5b2d7", "scanner": "scanner-primary", "fingerprint": "ffda85837dfa0bd0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbook-hwfit.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-95c4de802a0db3f9", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbook-hwfit.js:459"}, "properties": {"repobilityId": "1a14de4c7b8b139a", "scanner": "scanner-primary", "fingerprint": "95c4de802a0db3f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbook-hwfit.js"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-671877e5cedade85", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/search-chat.js:24"}, "properties": {"repobilityId": "9f2b4b96a23f1a0d", "scanner": "scanner-primary", "fingerprint": "671877e5cedade85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/search-chat.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-744cdfba6fa9bf6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/notes.js:89"}, "properties": {"repobilityId": "0c5fc1c7c8956c16", "scanner": "scanner-primary", "fingerprint": "744cdfba6fa9bf6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/notes.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-8f3220208a997c51", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/notes.js:1740"}, "properties": {"repobilityId": "4ca3fea43c099f10", "scanner": "scanner-primary", "fingerprint": "8f3220208a997c51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/notes.js"}, "region": {"startLine": 1740}}}]}, {"ruleId": "scanner-af913ce76b36f440", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/theme.js:737"}, "properties": {"repobilityId": "59e8a74d761b3456", "scanner": "scanner-primary", "fingerprint": "af913ce76b36f440", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/theme.js"}, "region": {"startLine": 737}}}]}, {"ruleId": "scanner-b1da7668dba4d3e8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbook.js:156"}, "properties": {"repobilityId": "679ddef8127388df", "scanner": "scanner-primary", "fingerprint": "b1da7668dba4d3e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbook.js"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-6974c4a51e351961", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/chatRenderer.js:164"}, "properties": {"repobilityId": "8c6ab335979a388f", "scanner": "scanner-primary", "fingerprint": "6974c4a51e351961", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/chatRenderer.js"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-92cab93533191357", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/tts-ai.js:74"}, "properties": {"repobilityId": "f7fc68f368dbc00c", "scanner": "scanner-primary", "fingerprint": "92cab93533191357", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/tts-ai.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-5998f05fd3827c24", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/agents.js:1096"}, "properties": {"repobilityId": "0711c94d7b75f4fc", "scanner": "scanner-primary", "fingerprint": "5998f05fd3827c24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/agents.js"}, "region": {"startLine": 1096}}}]}, {"ruleId": "scanner-33955452115c7bcb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/modelPicker.js:293"}, "properties": {"repobilityId": "1110fcfa7bf77301", "scanner": "scanner-primary", "fingerprint": "33955452115c7bcb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/modelPicker.js"}, "region": {"startLine": 293}}}]}, {"ruleId": "scanner-a64ca5f9db805e7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/calendar.js:445"}, "properties": {"repobilityId": "92ac16a0310687ce", "scanner": "scanner-primary", "fingerprint": "a64ca5f9db805e7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/calendar.js"}, "region": {"startLine": 445}}}]}, {"ruleId": "scanner-170022a79e31d5a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/cookbookServe.js:321"}, "properties": {"repobilityId": "30df73238f854e2e", "scanner": "scanner-primary", "fingerprint": "170022a79e31d5a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbookServe.js"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-75cf05ebafa2bf6e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in static/js/cookbookServe.js:729"}, "properties": {"repobilityId": "7fc8fc9d47d6fb55", "scanner": "scanner-primary", "fingerprint": "75cf05ebafa2bf6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/cookbookServe.js"}, "region": {"startLine": 729}}}]}, {"ruleId": "scanner-ceb9c411c58955a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/markdown.js:80"}, "properties": {"repobilityId": "04d4e0666ea837d3", "scanner": "scanner-primary", "fingerprint": "ceb9c411c58955a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/markdown.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-a29bfd97d6f1a863", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/research/panel.js:34"}, "properties": {"repobilityId": "c22f9cd5d71abee5", "scanner": "scanner-primary", "fingerprint": "a29bfd97d6f1a863", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/research/panel.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-010e4160c500555c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/layer-panel.js:87"}, "properties": {"repobilityId": "489756e31b5d6be6", "scanner": "scanner-primary", "fingerprint": "010e4160c500555c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/layer-panel.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-4416c0dd89b15043", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-inpaint-controls.js:104"}, "properties": {"repobilityId": "61ed88961022f942", "scanner": "scanner-primary", "fingerprint": "4416c0dd89b15043", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/wire-inpaint-controls.js"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-68f611805566877f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/clipboard-and-drop.js:92"}, "properties": {"repobilityId": "87e4a2650c056247", "scanner": "scanner-primary", "fingerprint": "68f611805566877f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/clipboard-and-drop.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-9f6756cd2596aea3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-selection-controls.js:144"}, "properties": {"repobilityId": "d19cedf79ea00ec0", "scanner": "scanner-primary", "fingerprint": "9f6756cd2596aea3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/wire-selection-controls.js"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-53532d215543114f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/history-panel.js:81"}, "properties": {"repobilityId": "8b57ce4496014455", "scanner": "scanner-primary", "fingerprint": "53532d215543114f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/history-panel.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-5ce1dbd23521e93c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/wire-import.js:118"}, "properties": {"repobilityId": "e07b1cf1670f4b05", "scanner": "scanner-primary", "fingerprint": "5ce1dbd23521e93c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/wire-import.js"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-8df53b3d737bf25f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tools-misc.js:111"}, "properties": {"repobilityId": "ad92c1b347521055", "scanner": "scanner-primary", "fingerprint": "8df53b3d737bf25f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/ai-tools-misc.js"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-6cf8733dfec1907e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/shortcuts-popover.js:39"}, "properties": {"repobilityId": "8b8fd3e1a8d292bd", "scanner": "scanner-primary", "fingerprint": "6cf8733dfec1907e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/shortcuts-popover.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-cfd794c38123dd25", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-models.js:99"}, "properties": {"repobilityId": "84c4433b99286db4", "scanner": "scanner-primary", "fingerprint": "cfd794c38123dd25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/ai-models.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-ea23fdb384d974fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/ai-tool-runner.js:55"}, "properties": {"repobilityId": "06e6d936056d42de", "scanner": "scanner-primary", "fingerprint": "ea23fdb384d974fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/ai-tool-runner.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-8c38ad0fd4a26d10", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/fx/adj-popup.js:142"}, "properties": {"repobilityId": "a68b5fa99d9c9425", "scanner": "scanner-primary", "fingerprint": "8c38ad0fd4a26d10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/fx/adj-popup.js"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-d4afbf31c6d9ef04", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/editor/tools/transform-session.js:90"}, "properties": {"repobilityId": "e331de66b8d26acf", "scanner": "scanner-primary", "fingerprint": "d4afbf31c6d9ef04", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/editor/tools/transform-session.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-32c61cd9c715a99b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/stream.js:105"}, "properties": {"repobilityId": "9612ca4da06cc156", "scanner": "scanner-primary", "fingerprint": "32c61cd9c715a99b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/stream.js"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-dc9b4f1fc464845a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/vote.js:47"}, "properties": {"repobilityId": "461a9b9118d8aeef", "scanner": "scanner-primary", "fingerprint": "dc9b4f1fc464845a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/vote.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-379a5f2606fc8f77", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/probe.js:28"}, "properties": {"repobilityId": "8470f2be40dd6376", "scanner": "scanner-primary", "fingerprint": "379a5f2606fc8f77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/probe.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-900ae4cf637ee495", "level": "note", "message": {"text": "Insecure pattern 'document_write' in static/js/compare/index.js:1101"}, "properties": {"repobilityId": "d6062067dfa71989", "scanner": "scanner-primary", "fingerprint": "900ae4cf637ee495", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/index.js"}, "region": {"startLine": 1101}}}]}, {"ruleId": "scanner-4cf2b658e39f18e9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/index.js:315"}, "properties": {"repobilityId": "43f016173027ab0b", "scanner": "scanner-primary", "fingerprint": "4cf2b658e39f18e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/index.js"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-e2218d5de1af24e9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/panes.js:69"}, "properties": {"repobilityId": "583b49a812992055", "scanner": "scanner-primary", "fingerprint": "e2218d5de1af24e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/panes.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-700a085ac9cf8f70", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/scoreboard.js:53"}, "properties": {"repobilityId": "f7ea6a36478c274a", "scanner": "scanner-primary", "fingerprint": "700a085ac9cf8f70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/scoreboard.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-7c52e8d12f5f79e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/js/compare/selector.js:78"}, "properties": {"repobilityId": "3ec7a433a1a4bcde", "scanner": "scanner-primary", "fingerprint": "7c52e8d12f5f79e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/compare/selector.js"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-293c97c85547bec7", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in static/js/emailLibrary/utils.js:159"}, "properties": {"repobilityId": "01646c3c12159b6c", "scanner": "scanner-primary", "fingerprint": "293c97c85547bec7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/js/emailLibrary/utils.js"}, "region": {"startLine": 159}}}]}, {"ruleId": "scanner-18f1d2d7a1018b32", "level": "note", "message": {"text": "Insecure pattern 'document_write' in static/lib/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "4a311d47659294a6", "scanner": "scanner-primary", "fingerprint": "18f1d2d7a1018b32", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-1286857463b7566d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "9f4d2a697cb2867b", "scanner": "scanner-primary", "fingerprint": "1286857463b7566d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-01d3c250843bf1d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in static/lib/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "858ecca380abd178", "scanner": "scanner-primary", "fingerprint": "01d3c250843bf1d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-ab3d87441881e5a8", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in static/lib/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "6d9c1fbe14040bbb", "scanner": "scanner-primary", "fingerprint": "ab3d87441881e5a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-bd058e2b88c87bf1", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in static/lib/mammoth.browser.min.js:5"}, "properties": {"repobilityId": "a3b3b0b3b5a174bf", "scanner": "scanner-primary", "fingerprint": "bd058e2b88c87bf1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/mammoth.browser.min.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-3d95bd90954e894f", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in static/lib/xlsx.full.min.js:10"}, "properties": {"repobilityId": "e936c1231bcab0a4", "scanner": "scanner-primary", "fingerprint": "3d95bd90954e894f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/xlsx.full.min.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-90d9622f7d7104a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/highlight.min.js:271"}, "properties": {"repobilityId": "6e22d71f16a943ee", "scanner": "scanner-primary", "fingerprint": "90d9622f7d7104a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/highlight.min.js"}, "region": {"startLine": 271}}}]}, {"ruleId": "scanner-93f24babd1f685d8", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in static/lib/docx.umd.min.js:18524"}, "properties": {"repobilityId": "663ff03291b08b6d", "scanner": "scanner-primary", "fingerprint": "93f24babd1f685d8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/docx.umd.min.js"}, "region": {"startLine": 18524}}}]}, {"ruleId": "scanner-c9b79121711f06aa", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in static/lib/docx.umd.min.js:2849"}, "properties": {"repobilityId": "34e99416b97006f4", "scanner": "scanner-primary", "fingerprint": "c9b79121711f06aa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/docx.umd.min.js"}, "region": {"startLine": 2849}}}]}, {"ruleId": "scanner-aa28df8091550212", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in static/lib/d3.v7.min.js:2"}, "properties": {"repobilityId": "fe8d8f0d4a003206", "scanner": "scanner-primary", "fingerprint": "aa28df8091550212", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/d3.v7.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-cf81aea14e879da5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/lib/d3.v7.min.js:2"}, "properties": {"repobilityId": "9b728522d972b097", "scanner": "scanner-primary", "fingerprint": "cf81aea14e879da5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/lib/d3.v7.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-b8292c66ed5d85d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:756"}, "properties": {"repobilityId": "cba7363c134f7b1d", "scanner": "scanner-primary", "fingerprint": "b8292c66ed5d85d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/index.html"}, "region": {"startLine": 756}}}]}, {"ruleId": "scanner-009ac5d370e46706", "level": "error", "message": {"text": "Possible secret in scripts/demo_email/demo_account.py"}, "properties": {"repobilityId": "83864d879a383f0f", "scanner": "scanner-primary", "fingerprint": "009ac5d370e46706", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_email/demo_account.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-f7ead82686e89531", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in src/builtin_actions.py:464"}, "properties": {"repobilityId": "57a8b37928ffded5", "scanner": "scanner-primary", "fingerprint": "f7ead82686e89531", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/builtin_actions.py"}, "region": {"startLine": 464}}}]}, {"ruleId": "scanner-948c75364c3b8922", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "21aa8243ba1058d6", "scanner": "scanner-primary", "fingerprint": "948c75364c3b8922", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/windows-desktop-release.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-948c75364c3b8922", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "95b38bf9e287429c", "scanner": "scanner-primary", "fingerprint": "948c75364c3b8922", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/windows-desktop-release.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-948c75364c3b8922", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3d06d9fc2d769631", "scanner": "scanner-primary", "fingerprint": "948c75364c3b8922", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/windows-desktop-release.yml"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-22f81cdc041766a6", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "fe6d9e4c073a095d", "scanner": "scanner-primary", "fingerprint": "22f81cdc041766a6", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/windows-desktop-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2db76986bccaa12e", "level": "note", "message": {"text": "Very large file: app.py (1398 lines)"}, "properties": {"repobilityId": "5a74e6652f3a10d4", "scanner": "scanner-primary", "fingerprint": "2db76986bccaa12e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9655114d351ef87", "level": "note", "message": {"text": "Very large file: tests/test_open_platform_foundation.py (4195 lines)"}, "properties": {"repobilityId": "7aa0106a8f796ade", "scanner": "scanner-primary", "fingerprint": "f9655114d351ef87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-66e515f13bdbd91c", "level": "note", "message": {"text": "Very large file: static/app.js (4371 lines)"}, "properties": {"repobilityId": "1c051419cfdea300", "scanner": "scanner-primary", "fingerprint": "66e515f13bdbd91c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-866f587c2da3def5", "level": "note", "message": {"text": "Very large file: static/js/settings.js (4575 lines)"}, "properties": {"repobilityId": "b4efbcbde12d9352", "scanner": "scanner-primary", "fingerprint": "866f587c2da3def5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-721e4699c78d61cf", "level": "note", "message": {"text": "Very large file: static/js/emailInbox.js (1245 lines)"}, "properties": {"repobilityId": "f60ac545c67c8613", "scanner": "scanner-primary", "fingerprint": "721e4699c78d61cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f236e8d83a62a232", "level": "note", "message": {"text": "Very large file: static/js/documentLibrary.js (3358 lines)"}, "properties": {"repobilityId": "5b9acb7d5b2f51af", "scanner": "scanner-primary", "fingerprint": "f236e8d83a62a232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6eb344091032d9b4", "level": "note", "message": {"text": "Very large file: static/js/document.js (9574 lines)"}, "properties": {"repobilityId": "acc1db166ff2e1a7", "scanner": "scanner-primary", "fingerprint": "6eb344091032d9b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3db048d380c1985e", "level": "note", "message": {"text": "Very large file: static/js/modalManager.js (1599 lines)"}, "properties": {"repobilityId": "79b530258da20788", "scanner": "scanner-primary", "fingerprint": "3db048d380c1985e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e8e9077199ba89c", "level": "note", "message": {"text": "Very large file: static/js/galleryEditor.js (3798 lines)"}, "properties": {"repobilityId": "396889b0a47ea947", "scanner": "scanner-primary", "fingerprint": "9e8e9077199ba89c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a202aec4bdedfd39", "level": "note", "message": {"text": "Very large file: static/js/admin.js (2267 lines)"}, "properties": {"repobilityId": "20bae41ba1adc47c", "scanner": "scanner-primary", "fingerprint": "a202aec4bdedfd39", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dcc02039d79f4112", "level": "note", "message": {"text": "Very large file: static/js/memory.js (1431 lines)"}, "properties": {"repobilityId": "5dd8d7f0d74b7948", "scanner": "scanner-primary", "fingerprint": "dcc02039d79f4112", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-264a6c5d2074dd26", "level": "note", "message": {"text": "Very large file: static/js/video.js (1666 lines)"}, "properties": {"repobilityId": "595d694b4ea5efe9", "scanner": "scanner-primary", "fingerprint": "264a6c5d2074dd26", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-73c40d57514eee94", "level": "note", "message": {"text": "Very large file: static/js/ui.js (1304 lines)"}, "properties": {"repobilityId": "d65a0157c4918ecf", "scanner": "scanner-primary", "fingerprint": "73c40d57514eee94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bf0652ddf08bad8", "level": "note", "message": {"text": "Very large file: static/js/emailLibrary.js (5217 lines)"}, "properties": {"repobilityId": "6ff41ff9cc1f4980", "scanner": "scanner-primary", "fingerprint": "2bf0652ddf08bad8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d31d1d0994c3eadf", "level": "note", "message": {"text": "Very large file: static/js/slashCommands.js (6099 lines)"}, "properties": {"repobilityId": "34c925588c8564cb", "scanner": "scanner-primary", "fingerprint": "d31d1d0994c3eadf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-66324c63e2e1786c", "level": "note", "message": {"text": "Very large file: static/js/businessDashboard.js (2464 lines)"}, "properties": {"repobilityId": "668cafb4de8799b9", "scanner": "scanner-primary", "fingerprint": "66324c63e2e1786c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cf920a514eefba5e", "level": "note", "message": {"text": "Very large file: static/js/chat.js (4577 lines)"}, "properties": {"repobilityId": "f4e7a876f7ee6f63", "scanner": "scanner-primary", "fingerprint": "cf920a514eefba5e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9cd157aa2276316", "level": "note", "message": {"text": "Very large file: static/js/builder.js (1713 lines)"}, "properties": {"repobilityId": "6a162b3e8b4d74c7", "scanner": "scanner-primary", "fingerprint": "f9cd157aa2276316", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13913f227628ba73", "level": "note", "message": {"text": "Very large file: static/js/gallery.js (2835 lines)"}, "properties": {"repobilityId": "04c717e4e278f937", "scanner": "scanner-primary", "fingerprint": "13913f227628ba73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c10fbb84766f55e3", "level": "note", "message": {"text": "Very large file: static/js/cookbookRunning.js (3218 lines)"}, "properties": {"repobilityId": "e4c9aa16b8ae623e", "scanner": "scanner-primary", "fingerprint": "c10fbb84766f55e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b81c916c92660d1a", "level": "note", "message": {"text": "Very large file: static/js/skills.js (2104 lines)"}, "properties": {"repobilityId": "d7dd3faad9c8d12a", "scanner": "scanner-primary", "fingerprint": "b81c916c92660d1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ac90c68b4a8e64d1", "level": "note", "message": {"text": "Very large file: static/js/sessions.js (3272 lines)"}, "properties": {"repobilityId": "0ab17ba89aef738f", "scanner": "scanner-primary", "fingerprint": "ac90c68b4a8e64d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c30d976ec2649fe", "level": "note", "message": {"text": "Very large file: static/js/tasks.js (2702 lines)"}, "properties": {"repobilityId": "5136205a32b319d7", "scanner": "scanner-primary", "fingerprint": "7c30d976ec2649fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-22c7876c5592f136", "level": "note", "message": {"text": "Very large file: static/js/cookbook-hwfit.js (1790 lines)"}, "properties": {"repobilityId": "2b116842168b731c", "scanner": "scanner-primary", "fingerprint": "22c7876c5592f136", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4b131ca793b64f97", "level": "note", "message": {"text": "Very large file: static/js/notes.js (5024 lines)"}, "properties": {"repobilityId": "b918f5ea9da9b7e0", "scanner": "scanner-primary", "fingerprint": "4b131ca793b64f97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7d734f5f92e9d09f", "level": "note", "message": {"text": "Very large file: static/js/theme.js (2243 lines)"}, "properties": {"repobilityId": "f349b4eaf59a3b76", "scanner": "scanner-primary", "fingerprint": "7d734f5f92e9d09f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aa6f31719548b699", "level": "note", "message": {"text": "Very large file: static/js/cookbook.js (2036 lines)"}, "properties": {"repobilityId": "1486b1f3703e4b12", "scanner": "scanner-primary", "fingerprint": "aa6f31719548b699", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d12a353330570bb2", "level": "note", "message": {"text": "Very large file: static/js/chatRenderer.js (2328 lines)"}, "properties": {"repobilityId": "c1497005461f1c4b", "scanner": "scanner-primary", "fingerprint": "d12a353330570bb2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d3ac9898df1740c", "level": "note", "message": {"text": "Very large file: static/js/agents.js (1670 lines)"}, "properties": {"repobilityId": "6e18c9b92bbe04e7", "scanner": "scanner-primary", "fingerprint": "0d3ac9898df1740c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-722b8cc701006f33", "level": "note", "message": {"text": "Very large file: static/js/calendar.js (3348 lines)"}, "properties": {"repobilityId": "e6017690b716e021", "scanner": "scanner-primary", "fingerprint": "722b8cc701006f33", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fbb72195e29d805", "level": "note", "message": {"text": "Very large file: static/js/cookbookServe.js (2086 lines)"}, "properties": {"repobilityId": "39845fa39ad3234c", "scanner": "scanner-primary", "fingerprint": "4fbb72195e29d805", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f12a075db6adf7ef", "level": "note", "message": {"text": "Very large file: static/js/research/panel.js (1751 lines)"}, "properties": {"repobilityId": "230e5e7405d1b6b9", "scanner": "scanner-primary", "fingerprint": "f12a075db6adf7ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46858f847593e25f", "level": "note", "message": {"text": "Very large file: static/js/compare/index.js (1482 lines)"}, "properties": {"repobilityId": "742027a7eddb54dd", "scanner": "scanner-primary", "fingerprint": "46858f847593e25f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c26317e519f4e2ba", "level": "note", "message": {"text": "Very large file: static/js/compare/selector.js (1335 lines)"}, "properties": {"repobilityId": "12ed2c703eaab5ee", "scanner": "scanner-primary", "fingerprint": "c26317e519f4e2ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-43dc98d1524de01b", "level": "note", "message": {"text": "Very large file: static/lib/highlight.min.js (1212 lines)"}, "properties": {"repobilityId": "1e8b7ac21c05a8c3", "scanner": "scanner-primary", "fingerprint": "43dc98d1524de01b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5e82676eaa28671", "level": "note", "message": {"text": "Very large file: static/lib/docx.umd.min.js (20116 lines)"}, "properties": {"repobilityId": "35f462cdf0cac5c1", "scanner": "scanner-primary", "fingerprint": "d5e82676eaa28671", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f74d53690e3d6d35", "level": "note", "message": {"text": "Very large file: routes/gallery_routes.py (1872 lines)"}, "properties": {"repobilityId": "c97860af97cd20d3", "scanner": "scanner-primary", "fingerprint": "f74d53690e3d6d35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e4fc3e62ee29fa1", "level": "note", "message": {"text": "Very large file: routes/cookbook_routes.py (2138 lines)"}, "properties": {"repobilityId": "67ba2d31c136448b", "scanner": "scanner-primary", "fingerprint": "2e4fc3e62ee29fa1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-984bbd417d963cc6", "level": "note", "message": {"text": "Very large file: routes/email_routes.py (2994 lines)"}, "properties": {"repobilityId": "60c9257ffcce92fb", "scanner": "scanner-primary", "fingerprint": "984bbd417d963cc6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b24eefab4be3bf62", "level": "note", "message": {"text": "Very large file: routes/email_pollers.py (1111 lines)"}, "properties": {"repobilityId": "1e45c7bdb6d9e3f3", "scanner": "scanner-primary", "fingerprint": "b24eefab4be3bf62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-215e3381487b1812", "level": "note", "message": {"text": "Very large file: routes/session_routes.py (1267 lines)"}, "properties": {"repobilityId": "22ffc0ded8ac5f1a", "scanner": "scanner-primary", "fingerprint": "215e3381487b1812", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f5140c4ec6b9fad4", "level": "note", "message": {"text": "Very large file: routes/model_routes.py (1782 lines)"}, "properties": {"repobilityId": "5180b17106495f8a", "scanner": "scanner-primary", "fingerprint": "f5140c4ec6b9fad4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7ed3a8a014be6faa", "level": "note", "message": {"text": "Very large file: routes/skills_routes.py (1812 lines)"}, "properties": {"repobilityId": "910853798a0c432a", "scanner": "scanner-primary", "fingerprint": "7ed3a8a014be6faa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8fe09ce52b07442", "level": "note", "message": {"text": "Very large file: routes/document_routes.py (1568 lines)"}, "properties": {"repobilityId": "7e231d1fd0b30570", "scanner": "scanner-primary", "fingerprint": "f8fe09ce52b07442", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f01d5517c569ec48", "level": "note", "message": {"text": "Very large file: routes/email_helpers.py (2908 lines)"}, "properties": {"repobilityId": "ff531ed34bab82fb", "scanner": "scanner-primary", "fingerprint": "f01d5517c569ec48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-54d6ff6784b34041", "level": "note", "message": {"text": "Very large file: routes/agents_routes.py (1618 lines)"}, "properties": {"repobilityId": "c93551caadabf9d6", "scanner": "scanner-primary", "fingerprint": "54d6ff6784b34041", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5a1cfd74bafac86c", "level": "note", "message": {"text": "Very large file: routes/chat_routes.py (1510 lines)"}, "properties": {"repobilityId": "b0626109994df6e7", "scanner": "scanner-primary", "fingerprint": "5a1cfd74bafac86c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1384f7067e163e5f", "level": "note", "message": {"text": "Very large file: routes/calendar_routes.py (1257 lines)"}, "properties": {"repobilityId": "d24072209797164b", "scanner": "scanner-primary", "fingerprint": "1384f7067e163e5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-64540647ea5f47cd", "level": "note", "message": {"text": "Very large file: core/database.py (3138 lines)"}, "properties": {"repobilityId": "94ac5fbaad5e77b2", "scanner": "scanner-primary", "fingerprint": "64540647ea5f47cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d685711bcc2f64ea", "level": "note", "message": {"text": "Very large file: core/auth.py (1709 lines)"}, "properties": {"repobilityId": "45a183b36120eb8e", "scanner": "scanner-primary", "fingerprint": "d685711bcc2f64ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9a1c3784508bf782", "level": "note", "message": {"text": "Very large file: mcp_servers/email_server.py (1714 lines)"}, "properties": {"repobilityId": "b8cd06651cbf1037", "scanner": "scanner-primary", "fingerprint": "9a1c3784508bf782", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-df56726e6747d576", "level": "note", "message": {"text": "Very large file: src/task_scheduler.py (2373 lines)"}, "properties": {"repobilityId": "0c896bbf14706b76", "scanner": "scanner-primary", "fingerprint": "df56726e6747d576", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5f8b7066f54fd0e1", "level": "note", "message": {"text": "Very large file: src/tool_schemas.py (1407 lines)"}, "properties": {"repobilityId": "c2102e4d3187aacf", "scanner": "scanner-primary", "fingerprint": "5f8b7066f54fd0e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-74ce5b9626b51c63", "level": "note", "message": {"text": "Very large file: src/tool_implementations.py (4234 lines)"}, "properties": {"repobilityId": "9745a8c6bb762731", "scanner": "scanner-primary", "fingerprint": "74ce5b9626b51c63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65926617c3fbc054", "level": "note", "message": {"text": "Very large file: src/ai_brains.py (2377 lines)"}, "properties": {"repobilityId": "adeca2c011ee377c", "scanner": "scanner-primary", "fingerprint": "65926617c3fbc054", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f427bcae43484076", "level": "note", "message": {"text": "Very large file: src/llm_core.py (1486 lines)"}, "properties": {"repobilityId": "96f0222cc0500292", "scanner": "scanner-primary", "fingerprint": "f427bcae43484076", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c2403b27cb089bde", "level": "note", "message": {"text": "Very large file: src/builtin_actions.py (2466 lines)"}, "properties": {"repobilityId": "5e33501b2f7c28dd", "scanner": "scanner-primary", "fingerprint": "c2403b27cb089bde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9404d008e6d10407", "level": "note", "message": {"text": "Very large file: src/agent_loop.py (2462 lines)"}, "properties": {"repobilityId": "c44f52f8fb9b5ce6", "scanner": "scanner-primary", "fingerprint": "9404d008e6d10407", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ddf5df69629ec308", "level": "note", "message": {"text": "Very large file: src/visual_report.py (1902 lines)"}, "properties": {"repobilityId": "062e2acfad45fad9", "scanner": "scanner-primary", "fingerprint": "ddf5df69629ec308", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a76aeb3f6524e42d", "level": "note", "message": {"text": "Very large file: src/ai_interaction.py (1861 lines)"}, "properties": {"repobilityId": "0f224411c05cfa02", "scanner": "scanner-primary", "fingerprint": "a76aeb3f6524e42d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-58ac4bdd8d2e5578", "level": "note", "message": {"text": "53 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "58ac4bdd8d2e5578", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "56519e3b3d8d9ead", "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": "fcabd6402ebd29c5", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "f8a682f702e3d839", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "09b3d383f734763d", "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": "a5ac7f2970b4906a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-6f5bb20983cc8c82", "level": "none", "message": {"text": "Commented-code block (5 lines) in app.py:22"}, "properties": {"repobilityId": "aea4b62d4d4f2bdd", "scanner": "scanner-primary", "fingerprint": "6f5bb20983cc8c82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de2d18cc669189dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in _devboot.py:16"}, "properties": {"repobilityId": "6608a753ac60d021", "scanner": "scanner-primary", "fingerprint": "de2d18cc669189dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83467ac18288e1aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_security_regressions.py:851"}, "properties": {"repobilityId": "30d527914a88058c", "scanner": "scanner-primary", "fingerprint": "83467ac18288e1aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09c3ff616d86680e", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/conftest.py:43"}, "properties": {"repobilityId": "6bdcbb88c5bf36da", "scanner": "scanner-primary", "fingerprint": "09c3ff616d86680e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9af52eb4150188fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/test_companion_readonly.py:21"}, "properties": {"repobilityId": "ae863f3dfd370fcc", "scanner": "scanner-primary", "fingerprint": "9af52eb4150188fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a096abec3d249e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_hwfit_macos.py:133"}, "properties": {"repobilityId": "ab8db809c9f520d2", "scanner": "scanner-primary", "fingerprint": "2a096abec3d249e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13746101840c2456", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_blind_compare_redaction.py:27"}, "properties": {"repobilityId": "c52b4c5f01c79b6d", "scanner": "scanner-primary", "fingerprint": "13746101840c2456", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfcc0e2ad8085420", "level": "note", "message": {"text": "Legacy-named symbol `test_current_brand_root_wins_over_legacy` in tests/test_device_store.py:51"}, "properties": {"repobilityId": "e640e8b8980f15dd", "scanner": "scanner-primary", "fingerprint": "cfcc0e2ad8085420", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-827b951ce1692ae6", "level": "note", "message": {"text": "Legacy-named symbol `anthropic_v1` in tests/test_provider_endpoints.py:44"}, "properties": {"repobilityId": "209b17915f64627e", "scanner": "scanner-primary", "fingerprint": "827b951ce1692ae6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3752f9c081d2e314", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_skills_manager_owner_isolation.py:83"}, "properties": {"repobilityId": "86f0e7519dfc30b0", "scanner": "scanner-primary", "fingerprint": "3752f9c081d2e314", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d3b0eede300087e", "level": "note", "message": {"text": "Legacy-named symbol `test_localhost_v1` in tests/test_ollama_port_detection.py:31"}, "properties": {"repobilityId": "07cadd8983c74b0f", "scanner": "scanner-primary", "fingerprint": "7d3b0eede300087e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6ed36920e316e11b", "level": "note", "message": {"text": "Legacy-named symbol `test_anthropic_v1_base_does_not_double_v1` in tests/test_endpoint_resolver.py:147"}, "properties": {"repobilityId": "8493672e23b8d95d", "scanner": "scanner-primary", "fingerprint": "6ed36920e316e11b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5350e26bb843d026", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_session_ghost_delete.py:27"}, "properties": {"repobilityId": "1ca0022f657ef939", "scanner": "scanner-primary", "fingerprint": "5350e26bb843d026", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5c70568de04cbea", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_upload_handler_atomicity.py:184"}, "properties": {"repobilityId": "a276c5863ad19a86", "scanner": "scanner-primary", "fingerprint": "b5c70568de04cbea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-872c9604b2f9c8e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_carddav_url_hardening.py:26"}, "properties": {"repobilityId": "ade22ea8b7ba793a", "scanner": "scanner-primary", "fingerprint": "872c9604b2f9c8e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15c09181b1cf7d15", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_null_owner_gates.py:21"}, "properties": {"repobilityId": "0e3e8432e9ce95e8", "scanner": "scanner-primary", "fingerprint": "15c09181b1cf7d15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-761083d196792471", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_task_scheduler_session_delivery.py:17"}, "properties": {"repobilityId": "5f41e6d5e2b692e2", "scanner": "scanner-primary", "fingerprint": "761083d196792471", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67631690a10b669c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_builder_verify.py:430"}, "properties": {"repobilityId": "c373d45d7913598f", "scanner": "scanner-primary", "fingerprint": "67631690a10b669c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-927f6db633c6a1dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_memory_routes_session_owner.py:18"}, "properties": {"repobilityId": "b5cef550133374ba", "scanner": "scanner-primary", "fingerprint": "927f6db633c6a1dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64cb29e221e09af0", "level": "note", "message": {"text": "Legacy-named symbol `test_anthropic_probe_does_not_double_v1` in tests/test_model_routes.py:349"}, "properties": {"repobilityId": "32420b0c323fc340", "scanner": "scanner-primary", "fingerprint": "64cb29e221e09af0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cbddb40b54c3fb77", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/test_auth_event_loop.py:22"}, "properties": {"repobilityId": "10aaeec5747c9a58", "scanner": "scanner-primary", "fingerprint": "cbddb40b54c3fb77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6228085b686c8db", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_session_owner_attribution.py:22"}, "properties": {"repobilityId": "234ef2ad84498fbb", "scanner": "scanner-primary", "fingerprint": "d6228085b686c8db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d79a246e6c6d61c", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/sw.js:1"}, "properties": {"repobilityId": "c6d999d103402873", "scanner": "scanner-primary", "fingerprint": "4d79a246e6c6d61c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31597e30c3128aa3", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/app.js:47"}, "properties": {"repobilityId": "8c1a769754ff5d20", "scanner": "scanner-primary", "fingerprint": "31597e30c3128aa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b97d53f38b5800a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/app.js:403"}, "properties": {"repobilityId": "2d7ef3740629e95f", "scanner": "scanner-primary", "fingerprint": "0b97d53f38b5800a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-851aee677d73c606", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/guia-paper/js/adapterSupabase.js:1"}, "properties": {"repobilityId": "c15cec716df3ca64", "scanner": "scanner-primary", "fingerprint": "851aee677d73c606", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c13040add6c3b26e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/guia-paper/js/supabaseClient.js:2"}, "properties": {"repobilityId": "04cf2fcba0f189d8", "scanner": "scanner-primary", "fingerprint": "c13040add6c3b26e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2aeb7ee73e8d72aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/guia-paper/js/adapter.js:1"}, "properties": {"repobilityId": "76fc460378d16461", "scanner": "scanner-primary", "fingerprint": "2aeb7ee73e8d72aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-775f00f01c8f9f69", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/colorPicker.js:1"}, "properties": {"repobilityId": "3868f8431f67019a", "scanner": "scanner-primary", "fingerprint": "775f00f01c8f9f69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-579eacff3593c1ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/marketplace.js:53"}, "properties": {"repobilityId": "bc60fd533e69a554", "scanner": "scanner-primary", "fingerprint": "579eacff3593c1ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6dbe6ed83bfe877", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/settings.js:2423"}, "properties": {"repobilityId": "27b2a51d1c410d91", "scanner": "scanner-primary", "fingerprint": "b6dbe6ed83bfe877", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa1833d62f90cc7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/settings.js:55"}, "properties": {"repobilityId": "ecb1b947433811bb", "scanner": "scanner-primary", "fingerprint": "3fa1833d62f90cc7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00534997331e9087", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/a11y.js:3"}, "properties": {"repobilityId": "4e0c381bc1a10403", "scanner": "scanner-primary", "fingerprint": "00534997331e9087", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d484aa6baed6baf7", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/group.js:617"}, "properties": {"repobilityId": "1d850c35d25950e7", "scanner": "scanner-primary", "fingerprint": "d484aa6baed6baf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-932beaad5bdbc501", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/group.js:185"}, "properties": {"repobilityId": "ae2d0fe4de3282cd", "scanner": "scanner-primary", "fingerprint": "932beaad5bdbc501", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-10e374e582ad5998", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/presets.js:786"}, "properties": {"repobilityId": "3d691dec40eb57d3", "scanner": "scanner-primary", "fingerprint": "10e374e582ad5998", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbe7c85687a7e000", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/presets.js:397"}, "properties": {"repobilityId": "60b082ed2f8226b8", "scanner": "scanner-primary", "fingerprint": "dbe7c85687a7e000", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8d3e4df8fc4eed3c", "level": "none", "message": {"text": "Commented-code block (7 lines) in static/js/emailInbox.js:93"}, "properties": {"repobilityId": "d73e05e9b90ad466", "scanner": "scanner-primary", "fingerprint": "8d3e4df8fc4eed3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26d742868db0dec5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailInbox.js:688"}, "properties": {"repobilityId": "96e83fb249d33387", "scanner": "scanner-primary", "fingerprint": "26d742868db0dec5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c17d2e83e45089a", "level": "none", "message": {"text": "Commented-code block (8 lines) in static/js/documentLibrary.js:456"}, "properties": {"repobilityId": "d4cd6b71cc4b3d38", "scanner": "scanner-primary", "fingerprint": "4c17d2e83e45089a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9230269d306d3b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/documentLibrary.js:997"}, "properties": {"repobilityId": "85babbecce303458", "scanner": "scanner-primary", "fingerprint": "a9230269d306d3b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-adcf9ac8c6c9e07b", "level": "note", "message": {"text": "Legacy-named symbol `chunkOld` in static/js/document.js:7381"}, "properties": {"repobilityId": "f736ff75ef37a05c", "scanner": "scanner-primary", "fingerprint": "adcf9ac8c6c9e07b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5c07dbc4f903cd07", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/document.js:1384"}, "properties": {"repobilityId": "3907b454f6af5cd1", "scanner": "scanner-primary", "fingerprint": "5c07dbc4f903cd07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a00029a0be26d254", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/document.js:2991"}, "properties": {"repobilityId": "a133b674516d66d7", "scanner": "scanner-primary", "fingerprint": "a00029a0be26d254", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-668d26cbbf2fe548", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/modalManager.js:59"}, "properties": {"repobilityId": "4bf10506602a82a5", "scanner": "scanner-primary", "fingerprint": "668d26cbbf2fe548", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a3abbd1d18cbd07", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/automationHub.js:57"}, "properties": {"repobilityId": "020f4e8910d9988e", "scanner": "scanner-primary", "fingerprint": "1a3abbd1d18cbd07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2541984c2663234", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/galleryEditor.js:156"}, "properties": {"repobilityId": "a715958bd875b0e0", "scanner": "scanner-primary", "fingerprint": "f2541984c2663234", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d8011c64214f810", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/galleryEditor.js:806"}, "properties": {"repobilityId": "e2c5195453fafe72", "scanner": "scanner-primary", "fingerprint": "8d8011c64214f810", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bf1584d0887d3b3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/sidebar-layout.js:110"}, "properties": {"repobilityId": "9af51f09bed32bb8", "scanner": "scanner-primary", "fingerprint": "bf1584d0887d3b3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ef7e526f3260414", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/tourHints.js:1"}, "properties": {"repobilityId": "cbf787463f0fc842", "scanner": "scanner-primary", "fingerprint": "2ef7e526f3260414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89e4f8b59072983c", "level": "note", "message": {"text": "Legacy-named symbol `listLegacy` in static/js/admin.js:403"}, "properties": {"repobilityId": "4c9d1294d7724256", "scanner": "scanner-primary", "fingerprint": "89e4f8b59072983c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2ef37c105c9ee4ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/admin.js:210"}, "properties": {"repobilityId": "56a6b45534566545", "scanner": "scanner-primary", "fingerprint": "2ef37c105c9ee4ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-628ecb04fc863836", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/admin.js:195"}, "properties": {"repobilityId": "84f8330a136f49ff", "scanner": "scanner-primary", "fingerprint": "628ecb04fc863836", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4133b82a9a86b44a", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/escMenuStack.js:64"}, "properties": {"repobilityId": "abc0118615ec9c10", "scanner": "scanner-primary", "fingerprint": "4133b82a9a86b44a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8fe1db1e1d9a752", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/cookbookDownload.js:1"}, "properties": {"repobilityId": "bee5c850424cefc9", "scanner": "scanner-primary", "fingerprint": "c8fe1db1e1d9a752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b21ba222f8f48425", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/modalSnap.js:3"}, "properties": {"repobilityId": "f02f29ae98a89d95", "scanner": "scanner-primary", "fingerprint": "b21ba222f8f48425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9abaf5ea8e482c1", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/tileManager.js:176"}, "properties": {"repobilityId": "3f2345e72d6630bc", "scanner": "scanner-primary", "fingerprint": "a9abaf5ea8e482c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c997f7bfca7fd451", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memory.js:437"}, "properties": {"repobilityId": "7ac20d512c24b9ef", "scanner": "scanner-primary", "fingerprint": "c997f7bfca7fd451", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d120c200322bc3d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/whatsappLab.js:4"}, "properties": {"repobilityId": "eb99b01c3ab18381", "scanner": "scanner-primary", "fingerprint": "d120c200322bc3d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fae1dac7f5ab677", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/chatStream.js:138"}, "properties": {"repobilityId": "d6d8dfbc284e869b", "scanner": "scanner-primary", "fingerprint": "9fae1dac7f5ab677", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc95fbbd2eda530f", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/ui.js:236"}, "properties": {"repobilityId": "2c0bcf06cb81e187", "scanner": "scanner-primary", "fingerprint": "fc95fbbd2eda530f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-901ca9e6c4e6333c", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emailLibrary.js:546"}, "properties": {"repobilityId": "4b5d0fe95e652a42", "scanner": "scanner-primary", "fingerprint": "901ca9e6c4e6333c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-becbe147b10af91c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/emailLibrary.js:1693"}, "properties": {"repobilityId": "2821daec032ae438", "scanner": "scanner-primary", "fingerprint": "becbe147b10af91c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5e78925109dff8f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/brainAttach.js:3"}, "properties": {"repobilityId": "ccc0020ce3370ab5", "scanner": "scanner-primary", "fingerprint": "5e78925109dff8f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8dfb3799180fe0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/slashAutocomplete.js:10"}, "properties": {"repobilityId": "961a1542e1dbc707", "scanner": "scanner-primary", "fingerprint": "a8dfb3799180fe0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0cf9a320e494854", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/slashCommands.js:1852"}, "properties": {"repobilityId": "28cf76ef0714aaf6", "scanner": "scanner-primary", "fingerprint": "d0cf9a320e494854", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96220258d48c4564", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/slashCommands.js:583"}, "properties": {"repobilityId": "60c63271a596f368", "scanner": "scanner-primary", "fingerprint": "96220258d48c4564", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-39f5681e89799cba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/modeSwitcher.js:20"}, "properties": {"repobilityId": "6ed730d5104facaf", "scanner": "scanner-primary", "fingerprint": "39f5681e89799cba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc597726a8a204d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/businessDashboard.js:510"}, "properties": {"repobilityId": "1bed236759a6b866", "scanner": "scanner-primary", "fingerprint": "bc597726a8a204d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9802b57f1a7793bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/chat.js:31"}, "properties": {"repobilityId": "d18efd6da52d590c", "scanner": "scanner-primary", "fingerprint": "9802b57f1a7793bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d41819726866cf96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chat.js:683"}, "properties": {"repobilityId": "870e879a3eca32e8", "scanner": "scanner-primary", "fingerprint": "d41819726866cf96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0918f0816c04ea0e", "level": "none", "message": {"text": "Commented-code block (10 lines) in static/js/navCustomize.js:1"}, "properties": {"repobilityId": "fd290dfd670be634", "scanner": "scanner-primary", "fingerprint": "0918f0816c04ea0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8256b9373435d781", "level": "none", "message": {"text": "Commented-code block (30 lines) in static/js/windowDrag.js:8"}, "properties": {"repobilityId": "eab46ecfd43e1a0a", "scanner": "scanner-primary", "fingerprint": "8256b9373435d781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9717afc2a11b395d", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emojiPicker.js:273"}, "properties": {"repobilityId": "01772822c63c9c80", "scanner": "scanner-primary", "fingerprint": "9717afc2a11b395d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecd368bcab4b370e", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/harnessPickerFactory.js:6"}, "properties": {"repobilityId": "5596722d511fe161", "scanner": "scanner-primary", "fingerprint": "ecd368bcab4b370e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d87ae9d87aa48c4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/harnessPickerFactory.js:50"}, "properties": {"repobilityId": "5a1850b3a477fefd", "scanner": "scanner-primary", "fingerprint": "d87ae9d87aa48c4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0fe65cf35efc0baf", "level": "note", "message": {"text": "Legacy-named symbol `addCopyBtn_unused` in static/js/codeRunner.js:93"}, "properties": {"repobilityId": "b81bf13aa5ff6eae", "scanner": "scanner-primary", "fingerprint": "0fe65cf35efc0baf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f6d78b0bd5bc45b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/builder.js:3"}, "properties": {"repobilityId": "2fd6412f5674b3c9", "scanner": "scanner-primary", "fingerprint": "f6d78b0bd5bc45b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78820455083a6002", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/builder.js:1271"}, "properties": {"repobilityId": "ce429131da57be50", "scanner": "scanner-primary", "fingerprint": "78820455083a6002", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2cbc61da260ea3df", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/keyboard-shortcuts.js:64"}, "properties": {"repobilityId": "e1c8512965c5fc36", "scanner": "scanner-primary", "fingerprint": "2cbc61da260ea3df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95c4e25e9fa13b37", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/keyboard-shortcuts.js:188"}, "properties": {"repobilityId": "b0ea7928630187d4", "scanner": "scanner-primary", "fingerprint": "95c4e25e9fa13b37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-13eb48058e84eaff", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/gallery.js:822"}, "properties": {"repobilityId": "adeb5ecea619bb6f", "scanner": "scanner-primary", "fingerprint": "13eb48058e84eaff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6a836f5a9c49291", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/gallery.js:700"}, "properties": {"repobilityId": "11f67ee106159002", "scanner": "scanner-primary", "fingerprint": "c6a836f5a9c49291", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9628169a7c8e036c", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/signature.js:9"}, "properties": {"repobilityId": "3323d520f9998380", "scanner": "scanner-primary", "fingerprint": "9628169a7c8e036c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30da5c94512c6b02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/signature.js:315"}, "properties": {"repobilityId": "faf1bd25645ad1a3", "scanner": "scanner-primary", "fingerprint": "30da5c94512c6b02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ff27e3857afc5c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/memoryGraph.js:401"}, "properties": {"repobilityId": "19966ef88386775e", "scanner": "scanner-primary", "fingerprint": "2ff27e3857afc5c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bf611ee9125f8bcd", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/harnessPicker.js:3"}, "properties": {"repobilityId": "b1ecdc47bf378009", "scanner": "scanner-primary", "fingerprint": "bf611ee9125f8bcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1da3d90cf6057cac", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/cookbookRunning.js:1"}, "properties": {"repobilityId": "0b4402de92fbcf6d", "scanner": "scanner-primary", "fingerprint": "1da3d90cf6057cac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca8bec3719d22e74", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookRunning.js:339"}, "properties": {"repobilityId": "b46647a96a05f930", "scanner": "scanner-primary", "fingerprint": "ca8bec3719d22e74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0091cf7f1ada3cf9", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/skills.js:775"}, "properties": {"repobilityId": "2a2cf13d26d05d08", "scanner": "scanner-primary", "fingerprint": "0091cf7f1ada3cf9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45fdd4738c53afb5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/skills.js:41"}, "properties": {"repobilityId": "046b01d33d86c9ee", "scanner": "scanner-primary", "fingerprint": "45fdd4738c53afb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3f39cbbe662f3814", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/sessions.js:1494"}, "properties": {"repobilityId": "38308f22bad8ab74", "scanner": "scanner-primary", "fingerprint": "3f39cbbe662f3814", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf8808d91a465422", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/sessions.js:227"}, "properties": {"repobilityId": "abf552529a66e6ad", "scanner": "scanner-primary", "fingerprint": "bf8808d91a465422", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9c73f315c08e7719", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/platform.js:1"}, "properties": {"repobilityId": "63d9f0b5694c8b02", "scanner": "scanner-primary", "fingerprint": "9c73f315c08e7719", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6230f253bc88ffe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/windowResize.js:1"}, "properties": {"repobilityId": "c7647e71f93389bc", "scanner": "scanner-primary", "fingerprint": "6230f253bc88ffe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a873688bd97b1482", "level": "none", "message": {"text": "Commented-code block (7 lines) in static/js/section-management.js:185"}, "properties": {"repobilityId": "dcccfac6eb9cda1a", "scanner": "scanner-primary", "fingerprint": "a873688bd97b1482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fb7aeecb73d9ba8", "level": "none", "message": {"text": "Commented-code block (7 lines) in static/js/init.js:20"}, "properties": {"repobilityId": "a5151d554f7fbc5b", "scanner": "scanner-primary", "fingerprint": "4fb7aeecb73d9ba8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b66d7d68c797e4b", "level": "none", "message": {"text": "Commented-code block (7 lines) in static/js/tasks.js:836"}, "properties": {"repobilityId": "7ae975f86528f896", "scanner": "scanner-primary", "fingerprint": "1b66d7d68c797e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23b03ff0a647ff1f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tasks.js:43"}, "properties": {"repobilityId": "d779e3400bd6bf85", "scanner": "scanner-primary", "fingerprint": "23b03ff0a647ff1f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9cfec22cf30d7893", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/usersAdmin.js:3"}, "properties": {"repobilityId": "4be15c8d85b29f9d", "scanner": "scanner-primary", "fingerprint": "9cfec22cf30d7893", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-444828730272928a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/usersAdmin.js:61"}, "properties": {"repobilityId": "054a47a88c52cc17", "scanner": "scanner-primary", "fingerprint": "444828730272928a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f91f931fd13f4608", "level": "note", "message": {"text": "Legacy-named symbol `hwfit_scan_cache_v1` in static/js/cookbook-hwfit.js:214"}, "properties": {"repobilityId": "764b193df56dfdbf", "scanner": "scanner-primary", "fingerprint": "f91f931fd13f4608", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-74dbfa5fa2b11478", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/cookbook-hwfit.js:73"}, "properties": {"repobilityId": "a7910b83e2077883", "scanner": "scanner-primary", "fingerprint": "74dbfa5fa2b11478", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55a06fc97e9a2441", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook-hwfit.js:449"}, "properties": {"repobilityId": "dd59e2a067ab3499", "scanner": "scanner-primary", "fingerprint": "55a06fc97e9a2441", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1ef4e1bd3c1a03db", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/notes.js:674"}, "properties": {"repobilityId": "5e1247e3a89389ad", "scanner": "scanner-primary", "fingerprint": "1ef4e1bd3c1a03db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9902d29595df8c3b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/notes.js:419"}, "properties": {"repobilityId": "d3d75a69b44bdd8c", "scanner": "scanner-primary", "fingerprint": "9902d29595df8c3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae29560af0d85792", "level": "note", "message": {"text": "Legacy-named symbol `saveNameInputOld` in static/js/theme.js:981"}, "properties": {"repobilityId": "1d3fe48710a2c4ab", "scanner": "scanner-primary", "fingerprint": "ae29560af0d85792", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6be7823b7911ce1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/theme.js:630"}, "properties": {"repobilityId": "c673f3339bad3b1d", "scanner": "scanner-primary", "fingerprint": "6be7823b7911ce1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-101c0847df983f76", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/theme.js:1240"}, "properties": {"repobilityId": "b74d8d6801c4b51f", "scanner": "scanner-primary", "fingerprint": "101c0847df983f76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-66729555ff4a36e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/cookbook.js:38"}, "properties": {"repobilityId": "e25f0c9a966fb95e", "scanner": "scanner-primary", "fingerprint": "66729555ff4a36e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cec8a55ceca732d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbook.js:660"}, "properties": {"repobilityId": "3dbf7ba20ca2ebf2", "scanner": "scanner-primary", "fingerprint": "cec8a55ceca732d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-435975fc6f65b3b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/chatRenderer.js:280"}, "properties": {"repobilityId": "235e065e9fb85535", "scanner": "scanner-primary", "fingerprint": "435975fc6f65b3b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1406fe6bf17201b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/chatRenderer.js:323"}, "properties": {"repobilityId": "39d8b9348c6ecd6e", "scanner": "scanner-primary", "fingerprint": "1406fe6bf17201b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2d624c7af361071", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/tts-ai.js:44"}, "properties": {"repobilityId": "d343ca714a654903", "scanner": "scanner-primary", "fingerprint": "c2d624c7af361071", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-52e2b5b60c28d587", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/calendar.js:243"}, "properties": {"repobilityId": "b06a6a23ba6654ef", "scanner": "scanner-primary", "fingerprint": "52e2b5b60c28d587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4aa67a683bb409bd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/calendar.js:120"}, "properties": {"repobilityId": "b193b36ed85e1572", "scanner": "scanner-primary", "fingerprint": "4aa67a683bb409bd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-87a7cb2058bdda7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/cookbookServe.js:1"}, "properties": {"repobilityId": "f8f037cf5e6b265a", "scanner": "scanner-primary", "fingerprint": "87a7cb2058bdda7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e09f45c8a4a9d04c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/cookbookServe.js:139"}, "properties": {"repobilityId": "fc22d04372ed9fe2", "scanner": "scanner-primary", "fingerprint": "e09f45c8a4a9d04c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f693732107964d33", "level": "none", "message": {"text": "Commented-code block (8 lines) in static/js/markdown.js:232"}, "properties": {"repobilityId": "8c206e986298c9d3", "scanner": "scanner-primary", "fingerprint": "f693732107964d33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c2a4e5e479178d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/research/jobs.js:72"}, "properties": {"repobilityId": "3c008fc320cda1c7", "scanner": "scanner-primary", "fingerprint": "3c2a4e5e479178d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-94935e555325b8ed", "level": "none", "message": {"text": "Commented-code block (8 lines) in static/js/editor/wire-topbar.js:78"}, "properties": {"repobilityId": "4205f30861d393df", "scanner": "scanner-primary", "fingerprint": "94935e555325b8ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a40df5297a6ab4ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/editor/keyboard-shortcuts.js:129"}, "properties": {"repobilityId": "ff02a5bdbdd14c67", "scanner": "scanner-primary", "fingerprint": "a40df5297a6ab4ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-894d40dd9f251f98", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-tools-misc.js:176"}, "properties": {"repobilityId": "5f5c145d28d27e2c", "scanner": "scanner-primary", "fingerprint": "894d40dd9f251f98", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-282c91b05ec387e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/editor/stroke-pipeline.js:84"}, "properties": {"repobilityId": "d18cdebdfe813a5d", "scanner": "scanner-primary", "fingerprint": "282c91b05ec387e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74cb3833edd6143b", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/editor/canvas-events.js:137"}, "properties": {"repobilityId": "07b877c1986c3c76", "scanner": "scanner-primary", "fingerprint": "74cb3833edd6143b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd8bc17b3d4d0053", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/editor/ai-inpaint.js:123"}, "properties": {"repobilityId": "dc789d9c47641c52", "scanner": "scanner-primary", "fingerprint": "bd8bc17b3d4d0053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0eaad851dede7452", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/editor/ai-inpaint.js:139"}, "properties": {"repobilityId": "b82188170328a9cb", "scanner": "scanner-primary", "fingerprint": "0eaad851dede7452", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef43694981e0b735", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/editor/fx/adj-popup.js:107"}, "properties": {"repobilityId": "604c7577c9e86f92", "scanner": "scanner-primary", "fingerprint": "ef43694981e0b735", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2189cecb68e3edd", "level": "none", "message": {"text": "Commented-code block (7 lines) in static/js/editor/tools/transform-handles.js:51"}, "properties": {"repobilityId": "623ad8cccf16b817", "scanner": "scanner-primary", "fingerprint": "b2189cecb68e3edd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f8ce784751fafc5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/models.js:57"}, "properties": {"repobilityId": "f5fbaa8e41fef435", "scanner": "scanner-primary", "fingerprint": "7f8ce784751fafc5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b8df5183f0c6db5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/js/compare/stream.js:235"}, "properties": {"repobilityId": "dbee7b0112f7bc61", "scanner": "scanner-primary", "fingerprint": "b8df5183f0c6db5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7d08e17497569bd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/stream.js:97"}, "properties": {"repobilityId": "b33a2c2553b8b02f", "scanner": "scanner-primary", "fingerprint": "c7d08e17497569bd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6356496c2f132d80", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/probe.js:45"}, "properties": {"repobilityId": "735e8cfdc4e0e0ea", "scanner": "scanner-primary", "fingerprint": "6356496c2f132d80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17d1fd747169c64d", "level": "none", "message": {"text": "Commented-code block (9 lines) in static/js/compare/index.js:545"}, "properties": {"repobilityId": "5ce3d851927cc65a", "scanner": "scanner-primary", "fingerprint": "17d1fd747169c64d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac0d3bcb0424842d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/index.js:222"}, "properties": {"repobilityId": "6eb48e4d86ec8e4d", "scanner": "scanner-primary", "fingerprint": "ac0d3bcb0424842d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17893fb294e8545b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/panes.js:393"}, "properties": {"repobilityId": "eb036cccfa60e78a", "scanner": "scanner-primary", "fingerprint": "17893fb294e8545b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1bea18f46bccad60", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/compare/selector.js:967"}, "properties": {"repobilityId": "20847a9e7201974e", "scanner": "scanner-primary", "fingerprint": "1bea18f46bccad60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d215fb634617eecc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/js/compare/selector.js:1009"}, "properties": {"repobilityId": "feb9afe4039f04ee", "scanner": "scanner-primary", "fingerprint": "d215fb634617eecc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46d657c92fc1ea43", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/replyRecipients.js:15"}, "properties": {"repobilityId": "c028d106e81cbd32", "scanner": "scanner-primary", "fingerprint": "46d657c92fc1ea43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b279677820d392f", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/utils.js:6"}, "properties": {"repobilityId": "bd35b652f9533538", "scanner": "scanner-primary", "fingerprint": "4b279677820d392f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6737995f6105cd57", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/state.js:3"}, "properties": {"repobilityId": "b404156fade3c756", "scanner": "scanner-primary", "fingerprint": "6737995f6105cd57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3615f224241e9636", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/emailLibrary/signatureFold.js:7"}, "properties": {"repobilityId": "0ee9f41e26114272", "scanner": "scanner-primary", "fingerprint": "3615f224241e9636", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e764191d6e4a71a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in static/js/calendar/reminders.js:3"}, "properties": {"repobilityId": "60c4f322b400086d", "scanner": "scanner-primary", "fingerprint": "e764191d6e4a71a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0412061cf5b33aae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "51132a4070ad9d48", "scanner": "scanner-primary", "fingerprint": "0412061cf5b33aae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a9f8bf36e7916772", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/lib/d3.v7.min.js:2"}, "properties": {"repobilityId": "0785f45573f93e74", "scanner": "scanner-primary", "fingerprint": "a9f8bf36e7916772", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b75ce07be3ea502", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/add_hwfit_models.py:269"}, "properties": {"repobilityId": "962f0a712a84d506", "scanner": "scanner-primary", "fingerprint": "9b75ce07be3ea502", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd3e4b481d51ca0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/diffusion_server.py:57"}, "properties": {"repobilityId": "c2cf415e4d2386ba", "scanner": "scanner-primary", "fingerprint": "bd3e4b481d51ca0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4a662bbf5d20518", "level": "note", "message": {"text": "Stub function `set_postfix` (body is just `pass`/`return`) \u2014 scripts/hf_download.py:96"}, "properties": {"repobilityId": "956f5ba5ea236fcc", "scanner": "scanner-primary", "fingerprint": "d4a662bbf5d20518", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-f5601d50d5600030", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/gallery_routes.py:886"}, "properties": {"repobilityId": "7bac81c4b30e08e3", "scanner": "scanner-primary", "fingerprint": "f5601d50d5600030", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73ffd310c141784a", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/cookbook_routes.py:458"}, "properties": {"repobilityId": "c2d37b6dde08a513", "scanner": "scanner-primary", "fingerprint": "73ffd310c141784a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2387832ebc9ed2ca", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/cookbook_routes.py:398"}, "properties": {"repobilityId": "82e61071507f123c", "scanner": "scanner-primary", "fingerprint": "2387832ebc9ed2ca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59aa6f1f51096c0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/shell_routes.py:18"}, "properties": {"repobilityId": "94b04bbc88b37a29", "scanner": "scanner-primary", "fingerprint": "59aa6f1f51096c0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7347f15a08dad2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/webhook_routes.py:47"}, "properties": {"repobilityId": "e0e934d3681851dd", "scanner": "scanner-primary", "fingerprint": "b7347f15a08dad2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-548e038d92fc0c5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/contacts_routes.py:493"}, "properties": {"repobilityId": "bcfd4ad879db9885", "scanner": "scanner-primary", "fingerprint": "548e038d92fc0c5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72025586b8c2b0dd", "level": "none", "message": {"text": "Commented-code block (7 lines) in routes/memory_routes.py:383"}, "properties": {"repobilityId": "f142a36274315e20", "scanner": "scanner-primary", "fingerprint": "72025586b8c2b0dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa2cb5e47094e0c2", "level": "none", "message": {"text": "Commented-code block (12 lines) in routes/email_routes.py:427"}, "properties": {"repobilityId": "2256a5c7dd802a05", "scanner": "scanner-primary", "fingerprint": "fa2cb5e47094e0c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0b852796085b1bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/cookbook_helpers.py:234"}, "properties": {"repobilityId": "6d3e9d0cb7bddf56", "scanner": "scanner-primary", "fingerprint": "b0b852796085b1bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93ec76f23e3a72a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/email_pollers.py:189"}, "properties": {"repobilityId": "d694c9caaab87007", "scanner": "scanner-primary", "fingerprint": "93ec76f23e3a72a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c16a32cde26b0624", "level": "none", "message": {"text": "Commented-code block (9 lines) in routes/session_routes.py:185"}, "properties": {"repobilityId": "a3ddd90142ada580", "scanner": "scanner-primary", "fingerprint": "c16a32cde26b0624", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ae9ef849d072a93", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/model_routes.py:319"}, "properties": {"repobilityId": "cfe3438b5dbd3be1", "scanner": "scanner-primary", "fingerprint": "9ae9ef849d072a93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36d98acaa22b4040", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/note_routes.py:207"}, "properties": {"repobilityId": "58814fd8bf26fbce", "scanner": "scanner-primary", "fingerprint": "36d98acaa22b4040", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1284f45fbf34efcd", "level": "none", "message": {"text": "Commented-code block (8 lines) in routes/builder_routes.py:151"}, "properties": {"repobilityId": "5644d24e070dd5da", "scanner": "scanner-primary", "fingerprint": "1284f45fbf34efcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb0ff2277bad5211", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/auth_routes.py:800"}, "properties": {"repobilityId": "2bcccb35729c7c8e", "scanner": "scanner-primary", "fingerprint": "cb0ff2277bad5211", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1818105b44a77a37", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/document_routes.py:60"}, "properties": {"repobilityId": "1878066d21cc05a5", "scanner": "scanner-primary", "fingerprint": "1818105b44a77a37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efa48d732fca3c73", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/desktop_routes.py:731"}, "properties": {"repobilityId": "a924d5a6e567d2f8", "scanner": "scanner-primary", "fingerprint": "efa48d732fca3c73", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c83e6bec8266685", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/email_helpers.py:390"}, "properties": {"repobilityId": "d9e3369681724198", "scanner": "scanner-primary", "fingerprint": "0c83e6bec8266685", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5db730782b9955bd", "level": "note", "message": {"text": "Legacy-named symbol `msgs_to_copy` in routes/history_routes.py:459"}, "properties": {"repobilityId": "a036324ce6bce05a", "scanner": "scanner-primary", "fingerprint": "5db730782b9955bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9cad05b7f069f386", "level": "none", "message": {"text": "Commented-code block (12 lines) in routes/emoji_routes.py:1"}, "properties": {"repobilityId": "ae8f9ab9617c6e27", "scanner": "scanner-primary", "fingerprint": "9cad05b7f069f386", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceef9d1aedc8640c", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/chat_routes.py:484"}, "properties": {"repobilityId": "03e8e5faa3d9b092", "scanner": "scanner-primary", "fingerprint": "ceef9d1aedc8640c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02a5e3bb4a067d24", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/calendar_routes.py:21"}, "properties": {"repobilityId": "837d2e0f374e562e", "scanner": "scanner-primary", "fingerprint": "02a5e3bb4a067d24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71c792e06f92ed35", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/chat_helpers.py:169"}, "properties": {"repobilityId": "1a73b4a975adad94", "scanner": "scanner-primary", "fingerprint": "71c792e06f92ed35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd0d43c3f15ae8e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in routes/task_routes.py:708"}, "properties": {"repobilityId": "18426ff942c8ccbc", "scanner": "scanner-primary", "fingerprint": "fd0d43c3f15ae8e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-569175187ba1c7a2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 routes/task_routes.py:338"}, "properties": {"repobilityId": "6f537fb1e18b77af", "scanner": "scanner-primary", "fingerprint": "569175187ba1c7a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db73290c3de06aa4", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in modules/video/schema/timeline.py:151"}, "properties": {"repobilityId": "bcb6c8a7725d38ff", "scanner": "scanner-primary", "fingerprint": "db73290c3de06aa4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0730b8e94f67fbae", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/hwfit/hardware.py:243"}, "properties": {"repobilityId": "691d4a1dcad57fac", "scanner": "scanner-primary", "fingerprint": "0730b8e94f67fbae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df9b322d130dc9db", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/hwfit/fit.py:307"}, "properties": {"repobilityId": "2ec2e99cbdf8240a", "scanner": "scanner-primary", "fingerprint": "df9b322d130dc9db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb2cebcd0a24c135", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/hwfit/models.py:137"}, "properties": {"repobilityId": "a8c8927e3937f73c", "scanner": "scanner-primary", "fingerprint": "cb2cebcd0a24c135", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22c0364a1e00b5fe", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in services/search/ranking.py:82"}, "properties": {"repobilityId": "cf8fb24e66dbf1cb", "scanner": "scanner-primary", "fingerprint": "22c0364a1e00b5fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c1b2cf26c1438066", "level": "note", "message": {"text": "Legacy-named symbol `body_copy` in services/search/content.py:327"}, "properties": {"repobilityId": "dd2d817bcb0de051", "scanner": "scanner-primary", "fingerprint": "c1b2cf26c1438066", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a6f8e98fb9c5494a", "level": "none", "message": {"text": "Commented-code block (10 lines) in services/search/providers.py:145"}, "properties": {"repobilityId": "f0cfb35fdf69da1d", "scanner": "scanner-primary", "fingerprint": "a6f8e98fb9c5494a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f5619fa52efb88d", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/memory/skills.py:789"}, "properties": {"repobilityId": "8b2d20bdb415fd73", "scanner": "scanner-primary", "fingerprint": "9f5619fa52efb88d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55b3f5723f36df29", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/memory/memory_extractor.py:435"}, "properties": {"repobilityId": "13dbc36aec236afb", "scanner": "scanner-primary", "fingerprint": "55b3f5723f36df29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4dcf0ea5b7c0361", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/memory/skill_extractor.py:145"}, "properties": {"repobilityId": "7ba34cc69ffd714e", "scanner": "scanner-primary", "fingerprint": "a4dcf0ea5b7c0361", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5c55862afac5d7b", "level": "none", "message": {"text": "Commented-code block (8 lines) in services/stt/stt_service.py:68"}, "properties": {"repobilityId": "848971200731eff2", "scanner": "scanner-primary", "fingerprint": "e5c55862afac5d7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7569ca12acf2c3b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/database.py:667"}, "properties": {"repobilityId": "6fd56fcaa66b2e69", "scanner": "scanner-primary", "fingerprint": "7569ca12acf2c3b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163c3e367fc442d9", "level": "note", "message": {"text": "Legacy-named symbol `archived_old` in core/session_manager.py:630"}, "properties": {"repobilityId": "b65b6dc0ca57171c", "scanner": "scanner-primary", "fingerprint": "163c3e367fc442d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be51b696017a2c54", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/auth.py:36"}, "properties": {"repobilityId": "9c296155c3066786", "scanner": "scanner-primary", "fingerprint": "be51b696017a2c54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a3a1adaa66815db", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/middleware.py:152"}, "properties": {"repobilityId": "b76dfb3c8dc5b885", "scanner": "scanner-primary", "fingerprint": "2a3a1adaa66815db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a18ce750d017b5dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp_servers/email_server.py:47"}, "properties": {"repobilityId": "05cf66276274f46a", "scanner": "scanner-primary", "fingerprint": "a18ce750d017b5dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6dfd19e27738412", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/versions/0011_builder_projects.py:70"}, "properties": {"repobilityId": "1d8b36783b4a7875", "scanner": "scanner-primary", "fingerprint": "f6dfd19e27738412", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-054dd47017dcc528", "level": "note", "message": {"text": "Stub function `collection` (body is just `pass`/`return`) \u2014 src/pgvector_store.py:301"}, "properties": {"repobilityId": "d2366e573f4b891c", "scanner": "scanner-primary", "fingerprint": "054dd47017dcc528", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-29a8f9739b1534f2", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in src/chat_processor.py:141"}, "properties": {"repobilityId": "996af4565ce2e06a", "scanner": "scanner-primary", "fingerprint": "29a8f9739b1534f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56afa60ceefe988a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/chat_processor.py:287"}, "properties": {"repobilityId": "86b19188dad4b724", "scanner": "scanner-primary", "fingerprint": "56afa60ceefe988a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74e1e53cda982694", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/context_compactor.py:205"}, "properties": {"repobilityId": "55d76d46406b76b9", "scanner": "scanner-primary", "fingerprint": "74e1e53cda982694", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d94c251e144cfda6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/task_scheduler.py:76"}, "properties": {"repobilityId": "9da668ec0a088b26", "scanner": "scanner-primary", "fingerprint": "d94c251e144cfda6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be5f6ea8bf620b7b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/tool_index.py:28"}, "properties": {"repobilityId": "4e19cdcd1bfc365e", "scanner": "scanner-primary", "fingerprint": "be5f6ea8bf620b7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dd96fb10e62f631", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/email_thread_parser.py:68"}, "properties": {"repobilityId": "646c4d78e55ce35a", "scanner": "scanner-primary", "fingerprint": "4dd96fb10e62f631", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a52df5b42419cc4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/tool_implementations.py:1709"}, "properties": {"repobilityId": "f19240d239cfb1ee", "scanner": "scanner-primary", "fingerprint": "a52df5b42419cc4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db6ad84432e66f4a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/auth_helpers.py:24"}, "properties": {"repobilityId": "42467b4ab07d1563", "scanner": "scanner-primary", "fingerprint": "db6ad84432e66f4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78f428c057e27ab9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bg_jobs.py:89"}, "properties": {"repobilityId": "3457ecc39c9818b0", "scanner": "scanner-primary", "fingerprint": "78f428c057e27ab9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc85a914167017cd", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bg_jobs.py:128"}, "properties": {"repobilityId": "454034950442a755", "scanner": "scanner-primary", "fingerprint": "fc85a914167017cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-793f0e6a15f38c63", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/upload_handler.py:61"}, "properties": {"repobilityId": "2664684b84d74795", "scanner": "scanner-primary", "fingerprint": "793f0e6a15f38c63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78a1a140f8a3e542", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/ai_brains.py:1567"}, "properties": {"repobilityId": "b000b5c8a9133c9f", "scanner": "scanner-primary", "fingerprint": "78a1a140f8a3e542", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09b2749d46ef00bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/deep_research.py:559"}, "properties": {"repobilityId": "b9b99e20f08bc6dd", "scanner": "scanner-primary", "fingerprint": "09b2749d46ef00bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c183d71beea8984", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/agent_tools.py:50"}, "properties": {"repobilityId": "cb391f44bc57d2c0", "scanner": "scanner-primary", "fingerprint": "5c183d71beea8984", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46136c4bf8989743", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/config.py:8"}, "properties": {"repobilityId": "8dc931421fe56a7a", "scanner": "scanner-primary", "fingerprint": "46136c4bf8989743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-895018c89dfecd17", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/personal_docs.py:249"}, "properties": {"repobilityId": "e3470e7ae66bd6f9", "scanner": "scanner-primary", "fingerprint": "895018c89dfecd17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9bb591a915e83ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/youtube_handler.py:206"}, "properties": {"repobilityId": "7798c70297baa554", "scanner": "scanner-primary", "fingerprint": "c9bb591a915e83ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-326b4248f2d4a8f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/chat_handler.py:188"}, "properties": {"repobilityId": "d9d5452a749d1fe3", "scanner": "scanner-primary", "fingerprint": "326b4248f2d4a8f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37df4ffde21a2dbc", "level": "note", "message": {"text": "Legacy-named symbol `_migrate_from_legacy` in src/memory.py:260"}, "properties": {"repobilityId": "10d76e539e2d1b4c", "scanner": "scanner-primary", "fingerprint": "37df4ffde21a2dbc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-90924cd1bb222117", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/memory.py:194"}, "properties": {"repobilityId": "d1affc7f748e0d4b", "scanner": "scanner-primary", "fingerprint": "90924cd1bb222117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-532dff075bb15786", "level": "note", "message": {"text": "Legacy-named symbol `include_legacy` in src/research_handler.py:231"}, "properties": {"repobilityId": "ab51ee78ba02c47f", "scanner": "scanner-primary", "fingerprint": "532dff075bb15786", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f8260647c6d8f600", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/research_handler.py:373"}, "properties": {"repobilityId": "6837307bb0bc42ec", "scanner": "scanner-primary", "fingerprint": "f8260647c6d8f600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0eb11a5a64b0a1e", "level": "note", "message": {"text": "Legacy-named symbol `last_copy` in src/llm_core.py:705"}, "properties": {"repobilityId": "51907a2816e84f57", "scanner": "scanner-primary", "fingerprint": "d0eb11a5a64b0a1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c9197ebddd631b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/llm_core.py:51"}, "properties": {"repobilityId": "bc329e3eb1bf5dd3", "scanner": "scanner-primary", "fingerprint": "9c9197ebddd631b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fc2e563740acaa3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/event_bus.py:123"}, "properties": {"repobilityId": "1f3bbf093cac3e94", "scanner": "scanner-primary", "fingerprint": "4fc2e563740acaa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42e8b5711f333e85", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/tool_execution.py:161"}, "properties": {"repobilityId": "0f88e841a86bd785", "scanner": "scanner-primary", "fingerprint": "42e8b5711f333e85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-049caaf4f7ef6eb8", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/webhook_manager.py:141"}, "properties": {"repobilityId": "78d2e770b0939e0d", "scanner": "scanner-primary", "fingerprint": "049caaf4f7ef6eb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c17f7c8011b1a8ab", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/builtin_mcp.py:133"}, "properties": {"repobilityId": "4f00787aaaab50eb", "scanner": "scanner-primary", "fingerprint": "c17f7c8011b1a8ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad05e86de7eaa1bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/builtin_actions.py:1540"}, "properties": {"repobilityId": "db4f4514bf89f203", "scanner": "scanner-primary", "fingerprint": "ad05e86de7eaa1bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6338345d11ab40c5", "level": "note", "message": {"text": "Stub function `commit` (body is just `pass`/`return`) \u2014 src/builtin_actions.py:2193"}, "properties": {"repobilityId": "41535b83ceea0024", "scanner": "scanner-primary", "fingerprint": "6338345d11ab40c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c725e24791289a61", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/tool_parsing.py:57"}, "properties": {"repobilityId": "c10738a13236b34f", "scanner": "scanner-primary", "fingerprint": "c725e24791289a61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42f79fd2f5db03b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pdf_forms.py:298"}, "properties": {"repobilityId": "35a0142253c77312", "scanner": "scanner-primary", "fingerprint": "42f79fd2f5db03b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2398bdedb83b734c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/preset_manager.py:168"}, "properties": {"repobilityId": "fa2ac0f180db1b91", "scanner": "scanner-primary", "fingerprint": "2398bdedb83b734c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63b4194f04145dfb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/data_planes.py:55"}, "properties": {"repobilityId": "dc644ac41fe69924", "scanner": "scanner-primary", "fingerprint": "63b4194f04145dfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f31a8bd8284bac12", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/agent_loop.py:453"}, "properties": {"repobilityId": "b22d2244c88f0392", "scanner": "scanner-primary", "fingerprint": "f31a8bd8284bac12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32362a407e43f3e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/visual_report.py:32"}, "properties": {"repobilityId": "90d6620fa75c85d1", "scanner": "scanner-primary", "fingerprint": "32362a407e43f3e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5546a92d93ecb2d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/settings.py:135"}, "properties": {"repobilityId": "1d795a9a959780e2", "scanner": "scanner-primary", "fingerprint": "b5546a92d93ecb2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3790bcb4c7ae6dae", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pdf_form_doc.py:97"}, "properties": {"repobilityId": "1d2a3fc9285b5608", "scanner": "scanner-primary", "fingerprint": "3790bcb4c7ae6dae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60c6c47d79a59d74", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bg_monitor.py:111"}, "properties": {"repobilityId": "c7992d409ff12f19", "scanner": "scanner-primary", "fingerprint": "60c6c47d79a59d74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5f0e07e771b2ca5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/teacher_escalation.py:126"}, "properties": {"repobilityId": "be9175023f14e6f4", "scanner": "scanner-primary", "fingerprint": "a5f0e07e771b2ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b685858d8ffcfe77", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/embeddings.py:17"}, "properties": {"repobilityId": "787df81771575783", "scanner": "scanner-primary", "fingerprint": "b685858d8ffcfe77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee4b2393085fa97e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/endpoint_resolver.py:20"}, "properties": {"repobilityId": "364e9ea85a6cd509", "scanner": "scanner-primary", "fingerprint": "ee4b2393085fa97e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed748b2b7762c58c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/chat_helpers.py:25"}, "properties": {"repobilityId": "2bc1bb5afa6c71f0", "scanner": "scanner-primary", "fingerprint": "ed748b2b7762c58c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9dbbbdbe3b137e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/document_processor.py:409"}, "properties": {"repobilityId": "84b7120021199e4e", "scanner": "scanner-primary", "fingerprint": "d9dbbbdbe3b137e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bc4ee6e5d1421c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/ai_interaction.py:745"}, "properties": {"repobilityId": "aeaebe6c4962d3e8", "scanner": "scanner-primary", "fingerprint": "8bc4ee6e5d1421c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f61b435718840d9", "level": "error", "message": {"text": "Blocking `httpx.get(...)` inside `async def do_list_models` \u2014 src/ai_interaction.py:1156"}, "properties": {"repobilityId": "56a5fac77d3b1e19", "scanner": "scanner-primary", "fingerprint": "6f61b435718840d9", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ai_interaction.py"}, "region": {"startLine": 1156}}}]}, {"ruleId": "scanner-de33bb6621036d47", "level": "error", "message": {"text": "Blocking `httpx.get(...)` inside `async def do_generate_image` \u2014 src/ai_interaction.py:1763"}, "properties": {"repobilityId": "a69d5c9ab2c9eda7", "scanner": "scanner-primary", "fingerprint": "de33bb6621036d47", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ai_interaction.py"}, "region": {"startLine": 1763}}}]}, {"ruleId": "scanner-faa95d099213f5b8", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in src/search/ranking.py:40"}, "properties": {"repobilityId": "a5516994755cbbda", "scanner": "scanner-primary", "fingerprint": "faa95d099213f5b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8d4ac578444635d5", "level": "note", "message": {"text": "Legacy-named symbol `body_copy` in src/search/content.py:332"}, "properties": {"repobilityId": "1f789b53511cfc1a", "scanner": "scanner-primary", "fingerprint": "8d4ac578444635d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e859532605c17f75", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/search/content.py:319"}, "properties": {"repobilityId": "72578216f72cab04", "scanner": "scanner-primary", "fingerprint": "e859532605c17f75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6e3e4ef574d3f86", "level": "note", "message": {"text": "173 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "de17554fd99fb932", "scanner": "scanner-primary", "fingerprint": "d6e3e4ef574d3f86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "c77a1e77d46022a1", "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": "86c0d829c1d50ead", "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": "ab8f18a862109399", "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": "e572195ce79d5117", "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": "c8ac82752e4357e8", "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": "ec5c9d178e014c9a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "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": "a89b10480addf082", "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": "9d90a577925fe3e8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "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": "413385bbbff29918", "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": "d12bef328d6bc163", "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": "139cda57e21fbe10", "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": "1a0c322ca2c5aed3", "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": "cdb50f0678486656", "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": "47fc2455e213f835", "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": "9b6b1339ed9237ee", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "9ce4f58f9b0940bc", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "a5ad299e632d3d5f", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "83d30b9b2dbfb8c4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "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": "8c17aa10e9a6ea14", "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": "388f61e5cde5573a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-6444d3a38be38e59", "level": "error", "message": {"text": "FastAPI POST `pair_create` without auth dependency \u2014 companion/routes.py:178"}, "properties": {"repobilityId": "97e28bd32e21c0b0", "scanner": "scanner-primary", "fingerprint": "6444d3a38be38e59", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion/routes.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-b81f65fee30778ec", "level": "error", "message": {"text": "FastAPI POST `openwa_webhook` without auth dependency \u2014 docs/whatsapp-lab/reference/whatsapp_fleet_routes.py:80"}, "properties": {"repobilityId": "120bec0f48d5e42c", "scanner": "scanner-primary", "fingerprint": "b81f65fee30778ec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/whatsapp-lab/reference/whatsapp_fleet_routes.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-b3afb7b6dd8570da", "level": "error", "message": {"text": "FastAPI POST `generate_image` without auth dependency \u2014 scripts/diffusion_server.py:478"}, "properties": {"repobilityId": "a0d619cd72a3dda1", "scanner": "scanner-primary", "fingerprint": "b3afb7b6dd8570da", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/diffusion_server.py"}, "region": {"startLine": 478}}}]}, {"ruleId": "scanner-430411d23fb2b16d", "level": "error", "message": {"text": "FastAPI POST `inpaint_image` without auth dependency \u2014 scripts/diffusion_server.py:641"}, "properties": {"repobilityId": "e25246336822a8b9", "scanner": "scanner-primary", "fingerprint": "430411d23fb2b16d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/diffusion_server.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-2b4b72922c3bb41d", "level": "error", "message": {"text": "FastAPI POST `harmonize_image` without auth dependency \u2014 scripts/diffusion_server.py:974"}, "properties": {"repobilityId": "f210ea73047db816", "scanner": "scanner-primary", "fingerprint": "2b4b72922c3bb41d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/diffusion_server.py"}, "region": {"startLine": 974}}}]}, {"ruleId": "scanner-5bd0e513f82ced94", "level": "error", "message": {"text": "FastAPI POST `gallery_upload` without auth dependency \u2014 routes/gallery_routes.py:63"}, "properties": {"repobilityId": "99dd49f52ea3688c", "scanner": "scanner-primary", "fingerprint": "5bd0e513f82ced94", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-656798f0915b4310", "level": "error", "message": {"text": "FastAPI POST `gallery_replace` without auth dependency \u2014 routes/gallery_routes.py:142"}, "properties": {"repobilityId": "ed992c55745bd156", "scanner": "scanner-primary", "fingerprint": "656798f0915b4310", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-d8c0c65f579abb7f", "level": "error", "message": {"text": "FastAPI POST `gallery_rename` without auth dependency \u2014 routes/gallery_routes.py:191"}, "properties": {"repobilityId": "cad8301979005ba6", "scanner": "scanner-primary", "fingerprint": "d8c0c65f579abb7f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-6a4e82a878cf75c0", "level": "error", "message": {"text": "FastAPI POST `gallery_rotate` without auth dependency \u2014 routes/gallery_routes.py:217"}, "properties": {"repobilityId": "719d8b9eee122dcb", "scanner": "scanner-primary", "fingerprint": "6a4e82a878cf75c0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-4e92bcb46bdd8cfd", "level": "error", "message": {"text": "FastAPI POST `gallery_ai_upscale` without auth dependency \u2014 routes/gallery_routes.py:284"}, "properties": {"repobilityId": "0dbec7881a26db10", "scanner": "scanner-primary", "fingerprint": "4e92bcb46bdd8cfd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-2dfe595110504f8a", "level": "error", "message": {"text": "FastAPI POST `gallery_style_transfer` without auth dependency \u2014 routes/gallery_routes.py:327"}, "properties": {"repobilityId": "b81a0dde415f823e", "scanner": "scanner-primary", "fingerprint": "2dfe595110504f8a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 327}}}]}, {"ruleId": "scanner-ef0113de11bacbf5", "level": "error", "message": {"text": "FastAPI POST `create_album` without auth dependency \u2014 routes/gallery_routes.py:575"}, "properties": {"repobilityId": "8b9113832135035d", "scanner": "scanner-primary", "fingerprint": "ef0113de11bacbf5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 575}}}]}, {"ruleId": "scanner-f18ea445b992faea", "level": "error", "message": {"text": "FastAPI POST `ai_tag_batch` without auth dependency \u2014 routes/gallery_routes.py:623"}, "properties": {"repobilityId": "92182e22ef2254b4", "scanner": "scanner-primary", "fingerprint": "f18ea445b992faea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 623}}}]}, {"ruleId": "scanner-b7041cd8482c1ec4", "level": "error", "message": {"text": "FastAPI PATCH `patch_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:668"}, "properties": {"repobilityId": "7771ff9e181b1ebe", "scanner": "scanner-primary", "fingerprint": "b7041cd8482c1ec4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 668}}}]}, {"ruleId": "scanner-2c4301a5002131dc", "level": "error", "message": {"text": "FastAPI POST `gallery_download_zip` without auth dependency \u2014 routes/gallery_routes.py:719"}, "properties": {"repobilityId": "9dd9a3277db5c15b", "scanner": "scanner-primary", "fingerprint": "2c4301a5002131dc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 719}}}]}, {"ruleId": "scanner-db5b4bb75f858db6", "level": "error", "message": {"text": "FastAPI POST `clear_gallery_user_tags` without auth dependency \u2014 routes/gallery_routes.py:779"}, "properties": {"repobilityId": "55df358edfe703fd", "scanner": "scanner-primary", "fingerprint": "db5b4bb75f858db6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 779}}}]}, {"ruleId": "scanner-cbd7cbdedbb6dd92", "level": "error", "message": {"text": "FastAPI POST `clear_gallery_ai_tags` without auth dependency \u2014 routes/gallery_routes.py:803"}, "properties": {"repobilityId": "ea3af7ef99a17d45", "scanner": "scanner-primary", "fingerprint": "cbd7cbdedbb6dd92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 803}}}]}, {"ruleId": "scanner-da97eb82560ff49c", "level": "error", "message": {"text": "FastAPI POST `dedupe_gallery_tags` without auth dependency \u2014 routes/gallery_routes.py:829"}, "properties": {"repobilityId": "574f8517ebe51635", "scanner": "scanner-primary", "fingerprint": "da97eb82560ff49c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 829}}}]}, {"ruleId": "scanner-e42a45bc80f7102b", "level": "error", "message": {"text": "FastAPI DELETE `delete_gallery_image` without auth dependency \u2014 routes/gallery_routes.py:864"}, "properties": {"repobilityId": "2ff806d758e128d2", "scanner": "scanner-primary", "fingerprint": "e42a45bc80f7102b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 864}}}]}, {"ruleId": "scanner-d192c84e30bbde9c", "level": "error", "message": {"text": "FastAPI POST `inpaint_proxy` without auth dependency \u2014 routes/gallery_routes.py:977"}, "properties": {"repobilityId": "fbcfa5ece32600df", "scanner": "scanner-primary", "fingerprint": "d192c84e30bbde9c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 977}}}]}, {"ruleId": "scanner-7ab28997f011636e", "level": "error", "message": {"text": "FastAPI POST `harmonize_image` without auth dependency \u2014 routes/gallery_routes.py:1174"}, "properties": {"repobilityId": "a66b33b76a21b4f3", "scanner": "scanner-primary", "fingerprint": "7ab28997f011636e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1174}}}]}, {"ruleId": "scanner-a96f8687793f8963", "level": "error", "message": {"text": "FastAPI POST `sharpen_image` without auth dependency \u2014 routes/gallery_routes.py:1373"}, "properties": {"repobilityId": "ed17c9839b4b2ac9", "scanner": "scanner-primary", "fingerprint": "a96f8687793f8963", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1373}}}]}, {"ruleId": "scanner-b4f7f65801aef55c", "level": "error", "message": {"text": "FastAPI POST `denoise_image` without auth dependency \u2014 routes/gallery_routes.py:1398"}, "properties": {"repobilityId": "5601f65ccf424893", "scanner": "scanner-primary", "fingerprint": "b4f7f65801aef55c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1398}}}]}, {"ruleId": "scanner-aa86f264874bd548", "level": "error", "message": {"text": "FastAPI POST `upscale_image_local` without auth dependency \u2014 routes/gallery_routes.py:1448"}, "properties": {"repobilityId": "9195c7e8e6425f98", "scanner": "scanner-primary", "fingerprint": "aa86f264874bd548", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1448}}}]}, {"ruleId": "scanner-e8c6753a2fb4d198", "level": "error", "message": {"text": "FastAPI POST `remove_background` without auth dependency \u2014 routes/gallery_routes.py:1493"}, "properties": {"repobilityId": "c6a9b75991c0580c", "scanner": "scanner-primary", "fingerprint": "e8c6753a2fb4d198", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1493}}}]}, {"ruleId": "scanner-634771f83b7e00d5", "level": "error", "message": {"text": "FastAPI POST `enhance_face` without auth dependency \u2014 routes/gallery_routes.py:1586"}, "properties": {"repobilityId": "b1865808a47509e1", "scanner": "scanner-primary", "fingerprint": "634771f83b7e00d5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1586}}}]}, {"ruleId": "scanner-17f276e4a408b7a5", "level": "error", "message": {"text": "FastAPI PUT `update_album` without auth dependency \u2014 routes/gallery_routes.py:1669"}, "properties": {"repobilityId": "411d0336837d120f", "scanner": "scanner-primary", "fingerprint": "17f276e4a408b7a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1669}}}]}, {"ruleId": "scanner-21b823361cc7f4c4", "level": "error", "message": {"text": "FastAPI DELETE `delete_album` without auth dependency \u2014 routes/gallery_routes.py:1690"}, "properties": {"repobilityId": "58b7bd92dcd95f28", "scanner": "scanner-primary", "fingerprint": "21b823361cc7f4c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1690}}}]}, {"ruleId": "scanner-64d8d44cc480036e", "level": "error", "message": {"text": "FastAPI POST `add_to_album` without auth dependency \u2014 routes/gallery_routes.py:1706"}, "properties": {"repobilityId": "6badfeef427061ec", "scanner": "scanner-primary", "fingerprint": "64d8d44cc480036e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1706}}}]}, {"ruleId": "scanner-33d3628e0383d067", "level": "error", "message": {"text": "FastAPI POST `remove_from_album` without auth dependency \u2014 routes/gallery_routes.py:1724"}, "properties": {"repobilityId": "99954437886ebbcf", "scanner": "scanner-primary", "fingerprint": "33d3628e0383d067", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1724}}}]}, {"ruleId": "scanner-c72373b82c209635", "level": "error", "message": {"text": "FastAPI POST `toggle_favorite` without auth dependency \u2014 routes/gallery_routes.py:1745"}, "properties": {"repobilityId": "e52a60e05423a815", "scanner": "scanner-primary", "fingerprint": "c72373b82c209635", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1745}}}]}, {"ruleId": "scanner-0f97930d6eced32a", "level": "error", "message": {"text": "FastAPI POST `ai_tag_image` without auth dependency \u2014 routes/gallery_routes.py:1759"}, "properties": {"repobilityId": "8fab7c87bfd83d66", "scanner": "scanner-primary", "fingerprint": "0f97930d6eced32a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/gallery_routes.py"}, "region": {"startLine": 1759}}}]}, {"ruleId": "scanner-e283963099662b7f", "level": "error", "message": {"text": "FastAPI POST `generate_cookbook_ssh_key` without auth dependency \u2014 routes/cookbook_routes.py:283"}, "properties": {"repobilityId": "93ea7156765dcc7f", "scanner": "scanner-primary", "fingerprint": "e283963099662b7f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-f82d6c261afaf3e5", "level": "error", "message": {"text": "FastAPI POST `model_download` without auth dependency \u2014 routes/cookbook_routes.py:408"}, "properties": {"repobilityId": "d25f10da37af6e55", "scanner": "scanner-primary", "fingerprint": "f82d6c261afaf3e5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 408}}}]}, {"ruleId": "scanner-abbb5527c694ae6e", "level": "error", "message": {"text": "FastAPI POST `model_serve` without auth dependency \u2014 routes/cookbook_routes.py:823"}, "properties": {"repobilityId": "e02190cbcbcbfbd0", "scanner": "scanner-primary", "fingerprint": "abbb5527c694ae6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 823}}}]}, {"ruleId": "scanner-26d8d9ab1a4df353", "level": "error", "message": {"text": "FastAPI POST `server_setup` without auth dependency \u2014 routes/cookbook_routes.py:1218"}, "properties": {"repobilityId": "34274b1def4f0b15", "scanner": "scanner-primary", "fingerprint": "26d8d9ab1a4df353", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 1218}}}]}, {"ruleId": "scanner-27e748a7b440de4b", "level": "error", "message": {"text": "FastAPI POST `kill_pid` without auth dependency \u2014 routes/cookbook_routes.py:1618"}, "properties": {"repobilityId": "470925a3b14d75c7", "scanner": "scanner-primary", "fingerprint": "27e748a7b440de4b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 1618}}}]}, {"ruleId": "scanner-11f89f70c032bb99", "level": "error", "message": {"text": "FastAPI POST `save_cookbook_state` without auth dependency \u2014 routes/cookbook_routes.py:1683"}, "properties": {"repobilityId": "769160b8c63f779b", "scanner": "scanner-primary", "fingerprint": "11f89f70c032bb99", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cookbook_routes.py"}, "region": {"startLine": 1683}}}]}, {"ruleId": "scanner-a5174135d346a6ac", "level": "error", "message": {"text": "FastAPI POST `shell_exec` without auth dependency \u2014 routes/shell_routes.py:773"}, "properties": {"repobilityId": "4d050be0bc1c1b37", "scanner": "scanner-primary", "fingerprint": "a5174135d346a6ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/shell_routes.py"}, "region": {"startLine": 773}}}]}, {"ruleId": "scanner-5d325495ba7aa813", "level": "error", "message": {"text": "FastAPI POST `shell_stream` without auth dependency \u2014 routes/shell_routes.py:785"}, "properties": {"repobilityId": "aada21811d255e21", "scanner": "scanner-primary", "fingerprint": "5d325495ba7aa813", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/shell_routes.py"}, "region": {"startLine": 785}}}]}, {"ruleId": "scanner-8ccc65cd46d25f1d", "level": "error", "message": {"text": "FastAPI POST `install_package` without auth dependency \u2014 routes/shell_routes.py:1061"}, "properties": {"repobilityId": "eb9428708f889003", "scanner": "scanner-primary", "fingerprint": "8ccc65cd46d25f1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/shell_routes.py"}, "region": {"startLine": 1061}}}]}, {"ruleId": "scanner-a5db65ffee8057a8", "level": "error", "message": {"text": "FastAPI POST `expand_character_prompt` without auth dependency \u2014 routes/preset_routes.py:71"}, "properties": {"repobilityId": "e250de3b4b226e24", "scanner": "scanner-primary", "fingerprint": "a5db65ffee8057a8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/preset_routes.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-43853be880504a83", "level": "error", "message": {"text": "FastAPI POST `create_webhook` without auth dependency \u2014 routes/webhook_routes.py:103"}, "properties": {"repobilityId": "598b6f67d1d4f521", "scanner": "scanner-primary", "fingerprint": "43853be880504a83", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/webhook_routes.py"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-c4641624395eb9b4", "level": "error", "message": {"text": "FastAPI POST `test_webhook` without auth dependency \u2014 routes/webhook_routes.py:145"}, "properties": {"repobilityId": "5c39bb5eeedb5ec2", "scanner": "scanner-primary", "fingerprint": "c4641624395eb9b4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/webhook_routes.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-5afb3f5bdca89f9f", "level": "error", "message": {"text": "FastAPI PATCH `toggle_webhook` without auth dependency \u2014 routes/webhook_routes.py:157"}, "properties": {"repobilityId": "6178f54ccb4a962b", "scanner": "scanner-primary", "fingerprint": "5afb3f5bdca89f9f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/webhook_routes.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-538c9a77621936d7", "level": "error", "message": {"text": "FastAPI DELETE `delete_webhook` without auth dependency \u2014 routes/webhook_routes.py:167"}, "properties": {"repobilityId": "16640514d08e9e76", "scanner": "scanner-primary", "fingerprint": "538c9a77621936d7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/webhook_routes.py"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-25436544ce6c1235", "level": "error", "message": {"text": "FastAPI POST `sync_chat` without auth dependency \u2014 routes/webhook_routes.py:224"}, "properties": {"repobilityId": "dd1bd418d8568478", "scanner": "scanner-primary", "fingerprint": "25436544ce6c1235", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/webhook_routes.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-19adff9a146221ca", "level": "error", "message": {"text": "FastAPI DELETE `wipe` without auth dependency \u2014 routes/admin_wipe_routes.py:77"}, "properties": {"repobilityId": "52f3020b35262468", "scanner": "scanner-primary", "fingerprint": "19adff9a146221ca", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_wipe_routes.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-589221572f338256", "level": "error", "message": {"text": "FastAPI POST `start_comparison` without auth dependency \u2014 routes/compare_routes.py:32"}, "properties": {"repobilityId": "497f62cc9c341a58", "scanner": "scanner-primary", "fingerprint": "589221572f338256", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/compare_routes.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-3e882ec4e9efa431", "level": "error", "message": {"text": "FastAPI POST `vote_comparison` without auth dependency \u2014 routes/compare_routes.py:128"}, "properties": {"repobilityId": "5f392944b5ea0578", "scanner": "scanner-primary", "fingerprint": "3e882ec4e9efa431", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/compare_routes.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-d3079aa7f77aa89c", "level": "error", "message": {"text": "FastAPI POST `record_comparison` without auth dependency \u2014 routes/compare_routes.py:170"}, "properties": {"repobilityId": "c466b220131d50cc", "scanner": "scanner-primary", "fingerprint": "d3079aa7f77aa89c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/compare_routes.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-26f1c581309eb9cd", "level": "error", "message": {"text": "FastAPI DELETE `delete_comparison` without auth dependency \u2014 routes/compare_routes.py:226"}, "properties": {"repobilityId": "3114bbf5d538c32a", "scanner": "scanner-primary", "fingerprint": "26f1c581309eb9cd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/compare_routes.py"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-824e17624c75373e", "level": "error", "message": {"text": "FastAPI POST `post_estimate` without auth dependency \u2014 routes/billing_routes.py:82"}, "properties": {"repobilityId": "98692ae0eac490f2", "scanner": "scanner-primary", "fingerprint": "824e17624c75373e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-39394120cad393aa", "level": "error", "message": {"text": "FastAPI POST `post_topup` without auth dependency \u2014 routes/billing_routes.py:97"}, "properties": {"repobilityId": "2ade7e0338b96c74", "scanner": "scanner-primary", "fingerprint": "39394120cad393aa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-73e1699a4933949d", "level": "error", "message": {"text": "FastAPI POST `post_pricing_refresh` without auth dependency \u2014 routes/billing_routes.py:116"}, "properties": {"repobilityId": "8e44be6474643222", "scanner": "scanner-primary", "fingerprint": "73e1699a4933949d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-b91431825b1ff0e5", "level": "error", "message": {"text": "FastAPI POST `post_checkout` without auth dependency \u2014 routes/billing_routes.py:148"}, "properties": {"repobilityId": "d904856caa633b85", "scanner": "scanner-primary", "fingerprint": "b91431825b1ff0e5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-529a3a8dc5f27c85", "level": "error", "message": {"text": "FastAPI POST `stripe_webhook` without auth dependency \u2014 routes/billing_routes.py:182"}, "properties": {"repobilityId": "13f888721e7ab5bc", "scanner": "scanner-primary", "fingerprint": "529a3a8dc5f27c85", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-3dc5abd402100c7b", "level": "error", "message": {"text": "FastAPI POST `post_refund` without auth dependency \u2014 routes/billing_routes.py:216"}, "properties": {"repobilityId": "20db2f60fb866154", "scanner": "scanner-primary", "fingerprint": "3dc5abd402100c7b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_routes.py"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-27f3b1987dedabf1", "level": "error", "message": {"text": "FastAPI POST `debug_memory_relevance` without auth dependency \u2014 routes/memory_routes.py:66"}, "properties": {"repobilityId": "a959f5b6737385b9", "scanner": "scanner-primary", "fingerprint": "27f3b1987dedabf1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-8e7c58a2b81244ad", "level": "error", "message": {"text": "FastAPI POST `api_add_memory` without auth dependency \u2014 routes/memory_routes.py:81"}, "properties": {"repobilityId": "da823cf9c5d77a49", "scanner": "scanner-primary", "fingerprint": "8e7c58a2b81244ad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-aa2683fd3c2af639", "level": "error", "message": {"text": "FastAPI POST `search_memories` without auth dependency \u2014 routes/memory_routes.py:128"}, "properties": {"repobilityId": "38e7770945c5c489", "scanner": "scanner-primary", "fingerprint": "aa2683fd3c2af639", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-0e8bc5ebeba82441", "level": "error", "message": {"text": "FastAPI POST `extract_memory` without auth dependency \u2014 routes/memory_routes.py:203"}, "properties": {"repobilityId": "7a9cdbf71e2e52ac", "scanner": "scanner-primary", "fingerprint": "0e8bc5ebeba82441", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-d5a78d8d00e37353", "level": "error", "message": {"text": "FastAPI POST `api_audit_memories` without auth dependency \u2014 routes/memory_routes.py:249"}, "properties": {"repobilityId": "d1f9f55d1da83c17", "scanner": "scanner-primary", "fingerprint": "d5a78d8d00e37353", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-9e84fd93bebc5d0c", "level": "error", "message": {"text": "FastAPI POST `import_memories_from_file` without auth dependency \u2014 routes/memory_routes.py:324"}, "properties": {"repobilityId": "573fb05aacfe6037", "scanner": "scanner-primary", "fingerprint": "9e84fd93bebc5d0c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 324}}}]}, {"ruleId": "scanner-c63a9dff1e11d54a", "level": "error", "message": {"text": "FastAPI POST `pin_memory` without auth dependency \u2014 routes/memory_routes.py:477"}, "properties": {"repobilityId": "2dc8be25a509b192", "scanner": "scanner-primary", "fingerprint": "c63a9dff1e11d54a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 477}}}]}, {"ruleId": "scanner-6fbcc4c55e61df70", "level": "error", "message": {"text": "FastAPI PUT `update_memory` without auth dependency \u2014 routes/memory_routes.py:502"}, "properties": {"repobilityId": "18f2c699b79cb42b", "scanner": "scanner-primary", "fingerprint": "6fbcc4c55e61df70", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 502}}}]}, {"ruleId": "scanner-5a478f2c2e110cfd", "level": "error", "message": {"text": "FastAPI DELETE `delete_memory` without auth dependency \u2014 routes/memory_routes.py:524"}, "properties": {"repobilityId": "06d4a1918833ea02", "scanner": "scanner-primary", "fingerprint": "5a478f2c2e110cfd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_routes.py"}, "region": {"startLine": 524}}}]}, {"ruleId": "scanner-5c650064bbe61ef2", "level": "error", "message": {"text": "FastAPI POST `download_model` without auth dependency \u2014 routes/embedding_routes.py:137"}, "properties": {"repobilityId": "6617d3a5cc46ac42", "scanner": "scanner-primary", "fingerprint": "5c650064bbe61ef2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/embedding_routes.py"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-47b3633979556765", "level": "error", "message": {"text": "FastAPI DELETE `delete_model` without auth dependency \u2014 routes/embedding_routes.py:194"}, "properties": {"repobilityId": "c831752cc7d0f49e", "scanner": "scanner-primary", "fingerprint": "47b3633979556765", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/embedding_routes.py"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-e9bef869d4deafcc", "level": "error", "message": {"text": "FastAPI POST `set_endpoint` without auth dependency \u2014 routes/embedding_routes.py:235"}, "properties": {"repobilityId": "cf0ffb858867d60d", "scanner": "scanner-primary", "fingerprint": "e9bef869d4deafcc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/embedding_routes.py"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-27f41010c8b58561", "level": "error", "message": {"text": "FastAPI DELETE `clear_endpoint` without auth dependency \u2014 routes/embedding_routes.py:291"}, "properties": {"repobilityId": "14ac7263d3571f4b", "scanner": "scanner-primary", "fingerprint": "27f41010c8b58561", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/embedding_routes.py"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-c51989c3614b5aa9", "level": "error", "message": {"text": "FastAPI POST `revoke_publisher` without auth dependency \u2014 routes/registry_routes.py:145"}, "properties": {"repobilityId": "9ea77c7ece5cbabb", "scanner": "scanner-primary", "fingerprint": "c51989c3614b5aa9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/registry_routes.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-0608866f89957b05", "level": "error", "message": {"text": "FastAPI POST `publish_module` without auth dependency \u2014 routes/registry_routes.py:153"}, "properties": {"repobilityId": "c440e8f6862dc72c", "scanner": "scanner-primary", "fingerprint": "0608866f89957b05", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/registry_routes.py"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-8007d7e46b6ac039", "level": "error", "message": {"text": "FastAPI POST `unpublish_module` without auth dependency \u2014 routes/registry_routes.py:166"}, "properties": {"repobilityId": "2c77308592635d17", "scanner": "scanner-primary", "fingerprint": "8007d7e46b6ac039", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/registry_routes.py"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-777fce237bd569d4", "level": "error", "message": {"text": "FastAPI POST `upload_files_to_rag` without auth dependency \u2014 routes/personal_routes.py:198"}, "properties": {"repobilityId": "cb4c647b77d0aa7b", "scanner": "scanner-primary", "fingerprint": "777fce237bd569d4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/personal_routes.py"}, "region": {"startLine": 198}}}]}, {"ruleId": "scanner-142e4c948855c5b3", "level": "error", "message": {"text": "FastAPI POST `save_storage_config` without auth dependency \u2014 routes/storage_routes.py:230"}, "properties": {"repobilityId": "62970355918aa9ce", "scanner": "scanner-primary", "fingerprint": "142e4c948855c5b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/storage_routes.py"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-3e33428914bc0465", "level": "error", "message": {"text": "FastAPI POST `test_storage_backend` without auth dependency \u2014 routes/storage_routes.py:276"}, "properties": {"repobilityId": "a3253540b1c3aa39", "scanner": "scanner-primary", "fingerprint": "3e33428914bc0465", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/storage_routes.py"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-69e7bbcdbe1da882", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 routes/session_routes.py:331"}, "properties": {"repobilityId": "4b61073f5f0a7f40", "scanner": "scanner-primary", "fingerprint": "69e7bbcdbe1da882", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-0b67bda77881bdc1", "level": "error", "message": {"text": "FastAPI PATCH `rename_session` without auth dependency \u2014 routes/session_routes.py:457"}, "properties": {"repobilityId": "c438c9733e7d5c60", "scanner": "scanner-primary", "fingerprint": "0b67bda77881bdc1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 457}}}]}, {"ruleId": "scanner-85a78ec2541f0bc1", "level": "error", "message": {"text": "FastAPI POST `inject_messages` without auth dependency \u2014 routes/session_routes.py:539"}, "properties": {"repobilityId": "dc7a8f62466890fd", "scanner": "scanner-primary", "fingerprint": "85a78ec2541f0bc1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 539}}}]}, {"ruleId": "scanner-592681609f27a4a3", "level": "error", "message": {"text": "FastAPI POST `delete_session_beacon` without auth dependency \u2014 routes/session_routes.py:555"}, "properties": {"repobilityId": "64e84f3174f4abaf", "scanner": "scanner-primary", "fingerprint": "592681609f27a4a3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 555}}}]}, {"ruleId": "scanner-d543eff359b99be9", "level": "error", "message": {"text": "FastAPI POST `bulk_delete_sessions` without auth dependency \u2014 routes/session_routes.py:560"}, "properties": {"repobilityId": "d52548ba5a633883", "scanner": "scanner-primary", "fingerprint": "d543eff359b99be9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 560}}}]}, {"ruleId": "scanner-ae6ff454b5449b1e", "level": "error", "message": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 routes/session_routes.py:580"}, "properties": {"repobilityId": "cc7f0250dbe6b0ee", "scanner": "scanner-primary", "fingerprint": "ae6ff454b5449b1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 580}}}]}, {"ruleId": "scanner-1cb9d79221d2fa10", "level": "error", "message": {"text": "FastAPI DELETE `delete_all_sessions` without auth dependency \u2014 routes/session_routes.py:611"}, "properties": {"repobilityId": "d673e966874e971a", "scanner": "scanner-primary", "fingerprint": "1cb9d79221d2fa10", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 611}}}]}, {"ruleId": "scanner-2ae7239de197cabf", "level": "error", "message": {"text": "FastAPI POST `archive_session` without auth dependency \u2014 routes/session_routes.py:641"}, "properties": {"repobilityId": "8420320007f5bae9", "scanner": "scanner-primary", "fingerprint": "2ae7239de197cabf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-cc87c2a06e20001f", "level": "error", "message": {"text": "FastAPI POST `unarchive_session` without auth dependency \u2014 routes/session_routes.py:673"}, "properties": {"repobilityId": "93ad9555cb39b4f5", "scanner": "scanner-primary", "fingerprint": "cc87c2a06e20001f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 673}}}]}, {"ruleId": "scanner-ab9489f234f8ee5e", "level": "error", "message": {"text": "FastAPI POST `sessions_save_now` without auth dependency \u2014 routes/session_routes.py:838"}, "properties": {"repobilityId": "b6dc2202359caebc", "scanner": "scanner-primary", "fingerprint": "ab9489f234f8ee5e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 838}}}]}, {"ruleId": "scanner-4cfe076710744e24", "level": "error", "message": {"text": "FastAPI POST `create_session_openai` without auth dependency \u2014 routes/session_routes.py:846"}, "properties": {"repobilityId": "696b2ff3a27176b1", "scanner": "scanner-primary", "fingerprint": "4cfe076710744e24", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 846}}}]}, {"ruleId": "scanner-6b533253b37f2529", "level": "error", "message": {"text": "FastAPI POST `mark_session_important` without auth dependency \u2014 routes/session_routes.py:878"}, "properties": {"repobilityId": "13246f30f5599b9a", "scanner": "scanner-primary", "fingerprint": "6b533253b37f2529", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 878}}}]}, {"ruleId": "scanner-cbe23999858b5dc3", "level": "error", "message": {"text": "FastAPI POST `compact_session` without auth dependency \u2014 routes/session_routes.py:909"}, "properties": {"repobilityId": "6a40793cf6e52a8a", "scanner": "scanner-primary", "fingerprint": "cbe23999858b5dc3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 909}}}]}, {"ruleId": "scanner-d75a299abce76321", "level": "error", "message": {"text": "FastAPI POST `auto_sort_sessions` without auth dependency \u2014 routes/session_routes.py:987"}, "properties": {"repobilityId": "5ee3f7575f4f0fce", "scanner": "scanner-primary", "fingerprint": "d75a299abce76321", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/session_routes.py"}, "region": {"startLine": 987}}}]}, {"ruleId": "scanner-d60276c862197d76", "level": "error", "message": {"text": "FastAPI POST `probe_selected` without auth dependency \u2014 routes/model_routes.py:1014"}, "properties": {"repobilityId": "36c37a84ee0353f4", "scanner": "scanner-primary", "fingerprint": "d60276c862197d76", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1014}}}]}, {"ruleId": "scanner-8c72efc7ddb19e16", "level": "error", "message": {"text": "FastAPI POST `create_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1191"}, "properties": {"repobilityId": "f7c8fe47931ac10f", "scanner": "scanner-primary", "fingerprint": "8c72efc7ddb19e16", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1191}}}]}, {"ruleId": "scanner-cdd7012991354aa6", "level": "error", "message": {"text": "FastAPI POST `test_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1328"}, "properties": {"repobilityId": "ac6feff0551748f1", "scanner": "scanner-primary", "fingerprint": "cdd7012991354aa6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1328}}}]}, {"ruleId": "scanner-4dca4ffa646a725d", "level": "error", "message": {"text": "FastAPI PATCH `update_hidden_models` without auth dependency \u2014 routes/model_routes.py:1438"}, "properties": {"repobilityId": "de8e77a5cbf5cb57", "scanner": "scanner-primary", "fingerprint": "4dca4ffa646a725d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1438}}}]}, {"ruleId": "scanner-9b584da3dab5b734", "level": "error", "message": {"text": "FastAPI PATCH `toggle_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1559"}, "properties": {"repobilityId": "f331a80ccc1fe221", "scanner": "scanner-primary", "fingerprint": "9b584da3dab5b734", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1559}}}]}, {"ruleId": "scanner-a1a09131389985e8", "level": "error", "message": {"text": "FastAPI DELETE `delete_model_endpoint` without auth dependency \u2014 routes/model_routes.py:1734"}, "properties": {"repobilityId": "d271856d855a0520", "scanner": "scanner-primary", "fingerprint": "a1a09131389985e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1734}}}]}, {"ruleId": "scanner-8ae4005483806e00", "level": "error", "message": {"text": "FastAPI POST `update_tools` without auth dependency \u2014 routes/model_routes.py:1773"}, "properties": {"repobilityId": "51dcb9e693a5cb86", "scanner": "scanner-primary", "fingerprint": "8ae4005483806e00", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/model_routes.py"}, "region": {"startLine": 1773}}}]}, {"ruleId": "scanner-7396c684d957faa9", "level": "error", "message": {"text": "FastAPI PUT `set_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1367"}, "properties": {"repobilityId": "7c39d8da666c1893", "scanner": "scanner-primary", "fingerprint": "7396c684d957faa9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1367}}}]}, {"ruleId": "scanner-db5a56d9eeaaeb83", "level": "error", "message": {"text": "FastAPI DELETE `reset_builtin_override` without auth dependency \u2014 routes/skills_routes.py:1393"}, "properties": {"repobilityId": "0af41893d855126d", "scanner": "scanner-primary", "fingerprint": "db5a56d9eeaaeb83", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1393}}}]}, {"ruleId": "scanner-d95ea036c3afa320", "level": "error", "message": {"text": "FastAPI POST `add_skill` without auth dependency \u2014 routes/skills_routes.py:1406"}, "properties": {"repobilityId": "9cffa11b51bdb625", "scanner": "scanner-primary", "fingerprint": "d95ea036c3afa320", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1406}}}]}, {"ruleId": "scanner-9297cc180636ac50", "level": "error", "message": {"text": "FastAPI POST `upload_skills_to_cloud` without auth dependency \u2014 routes/skills_routes.py:1453"}, "properties": {"repobilityId": "51f8b4873b018d4b", "scanner": "scanner-primary", "fingerprint": "9297cc180636ac50", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1453}}}]}, {"ruleId": "scanner-6202938faddbf31e", "level": "error", "message": {"text": "FastAPI POST `download_library_skill` without auth dependency \u2014 routes/skills_routes.py:1473"}, "properties": {"repobilityId": "69e82af38cedac7a", "scanner": "scanner-primary", "fingerprint": "6202938faddbf31e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1473}}}]}, {"ruleId": "scanner-98f702017ae98599", "level": "error", "message": {"text": "FastAPI POST `test_skill` without auth dependency \u2014 routes/skills_routes.py:1536"}, "properties": {"repobilityId": "2bcdb1cb0e8d78ae", "scanner": "scanner-primary", "fingerprint": "98f702017ae98599", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1536}}}]}, {"ruleId": "scanner-36a46afe032e04d6", "level": "error", "message": {"text": "FastAPI POST `audit_all_skills` without auth dependency \u2014 routes/skills_routes.py:1617"}, "properties": {"repobilityId": "d9b2e1894c49b02c", "scanner": "scanner-primary", "fingerprint": "36a46afe032e04d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1617}}}]}, {"ruleId": "scanner-741515177f919602", "level": "error", "message": {"text": "FastAPI POST `audit_cancel` without auth dependency \u2014 routes/skills_routes.py:1706"}, "properties": {"repobilityId": "458416938883074f", "scanner": "scanner-primary", "fingerprint": "741515177f919602", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1706}}}]}, {"ruleId": "scanner-ba62fee541bc6fa9", "level": "error", "message": {"text": "FastAPI POST `save_skill_markdown` without auth dependency \u2014 routes/skills_routes.py:1719"}, "properties": {"repobilityId": "c1739c69a40498be", "scanner": "scanner-primary", "fingerprint": "ba62fee541bc6fa9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1719}}}]}, {"ruleId": "scanner-b5e5cac8a16620b0", "level": "error", "message": {"text": "FastAPI PUT `update_skill` without auth dependency \u2014 routes/skills_routes.py:1769"}, "properties": {"repobilityId": "c6c3b3e22f436827", "scanner": "scanner-primary", "fingerprint": "b5e5cac8a16620b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1769}}}]}, {"ruleId": "scanner-eebd7c2a9645e9ac", "level": "error", "message": {"text": "FastAPI DELETE `delete_skill` without auth dependency \u2014 routes/skills_routes.py:1788"}, "properties": {"repobilityId": "1c23cd5ffe867f20", "scanner": "scanner-primary", "fingerprint": "eebd7c2a9645e9ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1788}}}]}, {"ruleId": "scanner-6aedbad466da25d6", "level": "error", "message": {"text": "FastAPI POST `search_skills` without auth dependency \u2014 routes/skills_routes.py:1801"}, "properties": {"repobilityId": "4baac8eb90254b3a", "scanner": "scanner-primary", "fingerprint": "6aedbad466da25d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/skills_routes.py"}, "region": {"startLine": 1801}}}]}, {"ruleId": "scanner-b28264f28d615a36", "level": "error", "message": {"text": "FastAPI POST `add_server` without auth dependency \u2014 routes/mcp_routes.py:169"}, "properties": {"repobilityId": "aba05235b2a005ba", "scanner": "scanner-primary", "fingerprint": "b28264f28d615a36", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mcp_routes.py"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-00deb753ce2efce5", "level": "error", "message": {"text": "FastAPI POST `reconnect_server` without auth dependency \u2014 routes/mcp_routes.py:289"}, "properties": {"repobilityId": "9a3e10e344ddd34e", "scanner": "scanner-primary", "fingerprint": "00deb753ce2efce5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mcp_routes.py"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-f3437e6d9a91de05", "level": "error", "message": {"text": "FastAPI PATCH `toggle_server` without auth dependency \u2014 routes/mcp_routes.py:310"}, "properties": {"repobilityId": "3af16d43c05b3976", "scanner": "scanner-primary", "fingerprint": "f3437e6d9a91de05", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mcp_routes.py"}, "region": {"startLine": 310}}}]}, {"ruleId": "scanner-6b2217d5717fe392", "level": "error", "message": {"text": "FastAPI DELETE `delete_server` without auth dependency \u2014 routes/mcp_routes.py:332"}, "properties": {"repobilityId": "d21b27d99eef2a66", "scanner": "scanner-primary", "fingerprint": "6b2217d5717fe392", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mcp_routes.py"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-30713d93bb39b555", "level": "error", "message": {"text": "FastAPI PATCH `update_disabled_tools` without auth dependency \u2014 routes/mcp_routes.py:368"}, "properties": {"repobilityId": "90cfb43ad2f5c692", "scanner": "scanner-primary", "fingerprint": "30713d93bb39b555", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mcp_routes.py"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-2ec80f2f02bd1bbf", "level": "error", "message": {"text": "FastAPI PUT `set_pref` without auth dependency \u2014 routes/prefs_routes.py:171"}, "properties": {"repobilityId": "d5021bbd1f490d97", "scanner": "scanner-primary", "fingerprint": "2ec80f2f02bd1bbf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/prefs_routes.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-4072bbf8de451115", "level": "error", "message": {"text": "FastAPI POST `create_signature` without auth dependency \u2014 routes/signature_routes.py:65"}, "properties": {"repobilityId": "63ab4a295d337995", "scanner": "scanner-primary", "fingerprint": "4072bbf8de451115", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/signature_routes.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-2d09ccf9e1e796a5", "level": "error", "message": {"text": "FastAPI DELETE `delete_signature` without auth dependency \u2014 routes/signature_routes.py:97"}, "properties": {"repobilityId": "9084e19a39691e54", "scanner": "scanner-primary", "fingerprint": "2d09ccf9e1e796a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/signature_routes.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-88044cbf23476b53", "level": "error", "message": {"text": "FastAPI POST `openwa_webhook` without auth dependency \u2014 routes/whatsapp_fleet_routes.py:165"}, "properties": {"repobilityId": "5fa6b96305c1a077", "scanner": "scanner-primary", "fingerprint": "88044cbf23476b53", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/whatsapp_fleet_routes.py"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-9464c82c95cdd50a", "level": "error", "message": {"text": "FastAPI POST `create_note` without auth dependency \u2014 routes/note_routes.py:501"}, "properties": {"repobilityId": "4ead278d77f188c5", "scanner": "scanner-primary", "fingerprint": "9464c82c95cdd50a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 501}}}]}, {"ruleId": "scanner-bca68ca87e75cbcf", "level": "error", "message": {"text": "FastAPI PUT `update_note` without auth dependency \u2014 routes/note_routes.py:542"}, "properties": {"repobilityId": "c94d1c048fb44e50", "scanner": "scanner-primary", "fingerprint": "bca68ca87e75cbcf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 542}}}]}, {"ruleId": "scanner-76e16f5f74ee8c42", "level": "error", "message": {"text": "FastAPI DELETE `delete_note` without auth dependency \u2014 routes/note_routes.py:587"}, "properties": {"repobilityId": "90982d745ad42f37", "scanner": "scanner-primary", "fingerprint": "76e16f5f74ee8c42", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 587}}}]}, {"ruleId": "scanner-0e6e2a24502b6f45", "level": "error", "message": {"text": "FastAPI POST `toggle_pin` without auth dependency \u2014 routes/note_routes.py:602"}, "properties": {"repobilityId": "e965b365a276ceff", "scanner": "scanner-primary", "fingerprint": "0e6e2a24502b6f45", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 602}}}]}, {"ruleId": "scanner-d13b005be936b28d", "level": "error", "message": {"text": "FastAPI POST `toggle_archive` without auth dependency \u2014 routes/note_routes.py:617"}, "properties": {"repobilityId": "b7378b6984402b3a", "scanner": "scanner-primary", "fingerprint": "d13b005be936b28d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 617}}}]}, {"ruleId": "scanner-276bb9d29dd897bb", "level": "error", "message": {"text": "FastAPI POST `toggle_item` without auth dependency \u2014 routes/note_routes.py:632"}, "properties": {"repobilityId": "def1730bacb7930a", "scanner": "scanner-primary", "fingerprint": "276bb9d29dd897bb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 632}}}]}, {"ruleId": "scanner-8299a0637c95cbf3", "level": "error", "message": {"text": "FastAPI POST `fire_reminder` without auth dependency \u2014 routes/note_routes.py:654"}, "properties": {"repobilityId": "39a8384dea3dd071", "scanner": "scanner-primary", "fingerprint": "8299a0637c95cbf3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 654}}}]}, {"ruleId": "scanner-bee5cfb1dbee4a24", "level": "error", "message": {"text": "FastAPI POST `reorder_notes` without auth dependency \u2014 routes/note_routes.py:683"}, "properties": {"repobilityId": "6411ace6f7f2192d", "scanner": "scanner-primary", "fingerprint": "bee5cfb1dbee4a24", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/note_routes.py"}, "region": {"startLine": 683}}}]}, {"ruleId": "scanner-c3d0ba2056bfc13b", "level": "error", "message": {"text": "FastAPI POST `loop_settings_set` without auth dependency \u2014 routes/builder_routes.py:164"}, "properties": {"repobilityId": "f363cf61274763c3", "scanner": "scanner-primary", "fingerprint": "c3d0ba2056bfc13b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-40ed690955f60c19", "level": "error", "message": {"text": "FastAPI POST `create_project` without auth dependency \u2014 routes/builder_routes.py:183"}, "properties": {"repobilityId": "2726e605822f0175", "scanner": "scanner-primary", "fingerprint": "40ed690955f60c19", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-89300f997a6d1e09", "level": "error", "message": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 routes/builder_routes.py:207"}, "properties": {"repobilityId": "e0391767282dbb2e", "scanner": "scanner-primary", "fingerprint": "89300f997a6d1e09", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-e26907d35c79dd4a", "level": "error", "message": {"text": "FastAPI POST `bind_session` without auth dependency \u2014 routes/builder_routes.py:215"}, "properties": {"repobilityId": "f1fd63a465cc6534", "scanner": "scanner-primary", "fingerprint": "e26907d35c79dd4a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-7adbbd05941bd74a", "level": "error", "message": {"text": "FastAPI POST `dev_action` without auth dependency \u2014 routes/builder_routes.py:222"}, "properties": {"repobilityId": "6400cdd1797827b2", "scanner": "scanner-primary", "fingerprint": "7adbbd05941bd74a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-6df9b8e6a1bb08bd", "level": "error", "message": {"text": "FastAPI POST `verify_project` without auth dependency \u2014 routes/builder_routes.py:253"}, "properties": {"repobilityId": "a364bd72f6f72668", "scanner": "scanner-primary", "fingerprint": "6df9b8e6a1bb08bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-de59801601437913", "level": "error", "message": {"text": "FastAPI POST `heartbeat` without auth dependency \u2014 routes/builder_routes.py:278"}, "properties": {"repobilityId": "4ef95c3ba5cc1793", "scanner": "scanner-primary", "fingerprint": "de59801601437913", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 278}}}]}, {"ruleId": "scanner-04eed35b37a48ab4", "level": "error", "message": {"text": "FastAPI POST `terminal` without auth dependency \u2014 routes/builder_routes.py:316"}, "properties": {"repobilityId": "30e8e5acd9a1a41c", "scanner": "scanner-primary", "fingerprint": "04eed35b37a48ab4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-3ef0b8937491d5b8", "level": "error", "message": {"text": "FastAPI POST `browser_errors` without auth dependency \u2014 routes/builder_routes.py:376"}, "properties": {"repobilityId": "0cb0bc21c05b12e0", "scanner": "scanner-primary", "fingerprint": "3ef0b8937491d5b8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/builder_routes.py"}, "region": {"startLine": 376}}}]}, {"ruleId": "scanner-f708bacfea301c3f", "level": "error", "message": {"text": "FastAPI POST `first_run_setup` without auth dependency \u2014 routes/auth_routes.py:174"}, "properties": {"repobilityId": "4d13daed9ceada04", "scanner": "scanner-primary", "fingerprint": "f708bacfea301c3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-76bf9533443a205f", "level": "error", "message": {"text": "FastAPI POST `switch_org` without auth dependency \u2014 routes/auth_routes.py:367"}, "properties": {"repobilityId": "08cef7ddf746422c", "scanner": "scanner-primary", "fingerprint": "76bf9533443a205f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-a4e01aa6b0fe2213", "level": "error", "message": {"text": "FastAPI POST `set_active_mode` without auth dependency \u2014 routes/auth_routes.py:382"}, "properties": {"repobilityId": "dd1e47c510af71a1", "scanner": "scanner-primary", "fingerprint": "a4e01aa6b0fe2213", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 382}}}]}, {"ruleId": "scanner-01718f8c109a83c6", "level": "error", "message": {"text": "FastAPI PUT `set_org_privacy` without auth dependency \u2014 routes/auth_routes.py:425"}, "properties": {"repobilityId": "df50e4d17c471d1c", "scanner": "scanner-primary", "fingerprint": "01718f8c109a83c6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-2c4a37c67fa9fd0e", "level": "error", "message": {"text": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_routes.py:455"}, "properties": {"repobilityId": "f2a62046a07caf5a", "scanner": "scanner-primary", "fingerprint": "2c4a37c67fa9fd0e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 455}}}]}, {"ruleId": "scanner-a86b3122e4b8fbad", "level": "error", "message": {"text": "FastAPI POST `totp_setup` without auth dependency \u2014 routes/auth_routes.py:473"}, "properties": {"repobilityId": "3995c98a1d3d2b0e", "scanner": "scanner-primary", "fingerprint": "a86b3122e4b8fbad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-a07a587a85513edb", "level": "error", "message": {"text": "FastAPI POST `totp_confirm` without auth dependency \u2014 routes/auth_routes.py:496"}, "properties": {"repobilityId": "227a2d6950fea797", "scanner": "scanner-primary", "fingerprint": "a07a587a85513edb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 496}}}]}, {"ruleId": "scanner-6d767434738e5a43", "level": "error", "message": {"text": "FastAPI POST `totp_disable` without auth dependency \u2014 routes/auth_routes.py:509"}, "properties": {"repobilityId": "35f4433e6da5566f", "scanner": "scanner-primary", "fingerprint": "6d767434738e5a43", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 509}}}]}, {"ruleId": "scanner-b2237d93e7e1a83b", "level": "error", "message": {"text": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/auth_routes.py:535"}, "properties": {"repobilityId": "4268c0b0903bb579", "scanner": "scanner-primary", "fingerprint": "b2237d93e7e1a83b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 535}}}]}, {"ruleId": "scanner-ea03cfa6e88022bf", "level": "error", "message": {"text": "FastAPI PUT `update_user_privileges` without auth dependency \u2014 routes/auth_routes.py:559"}, "properties": {"repobilityId": "39c7fa40b60333ca", "scanner": "scanner-primary", "fingerprint": "ea03cfa6e88022bf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 559}}}]}, {"ruleId": "scanner-4694ebb4770f5a11", "level": "error", "message": {"text": "FastAPI PUT `rename_user` without auth dependency \u2014 routes/auth_routes.py:570"}, "properties": {"repobilityId": "7b95a532c3c39d55", "scanner": "scanner-primary", "fingerprint": "4694ebb4770f5a11", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 570}}}]}, {"ruleId": "scanner-f0c6cd48f35f6192", "level": "error", "message": {"text": "FastAPI POST `toggle_signup` without auth dependency \u2014 routes/auth_routes.py:631"}, "properties": {"repobilityId": "e35437718be86c5f", "scanner": "scanner-primary", "fingerprint": "f0c6cd48f35f6192", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 631}}}]}, {"ruleId": "scanner-6c749945fa4c3e2b", "level": "error", "message": {"text": "FastAPI PUT `set_signup_enabled` without auth dependency \u2014 routes/auth_routes.py:647"}, "properties": {"repobilityId": "7cd954c43fdd951d", "scanner": "scanner-primary", "fingerprint": "6c749945fa4c3e2b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 647}}}]}, {"ruleId": "scanner-699bddf58ee5ec89", "level": "error", "message": {"text": "FastAPI DELETE `admin_delete_user` without auth dependency \u2014 routes/auth_routes.py:656"}, "properties": {"repobilityId": "25aa5337860555c3", "scanner": "scanner-primary", "fingerprint": "699bddf58ee5ec89", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 656}}}]}, {"ruleId": "scanner-9dafd115826a7c69", "level": "error", "message": {"text": "FastAPI POST `set_features` without auth dependency \u2014 routes/auth_routes.py:684"}, "properties": {"repobilityId": "9e272036bbee2c15", "scanner": "scanner-primary", "fingerprint": "9dafd115826a7c69", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 684}}}]}, {"ruleId": "scanner-d260203535462472", "level": "error", "message": {"text": "FastAPI POST `set_settings` without auth dependency \u2014 routes/auth_routes.py:711"}, "properties": {"repobilityId": "8c69cf2a9ef46a8b", "scanner": "scanner-primary", "fingerprint": "d260203535462472", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 711}}}]}, {"ruleId": "scanner-c6a957d75e6b1506", "level": "error", "message": {"text": "FastAPI POST `create_integration` without auth dependency \u2014 routes/auth_routes.py:746"}, "properties": {"repobilityId": "f626502dc6417a9c", "scanner": "scanner-primary", "fingerprint": "c6a957d75e6b1506", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 746}}}]}, {"ruleId": "scanner-89211035bc835bb5", "level": "error", "message": {"text": "FastAPI PUT `update_integration_route` without auth dependency \u2014 routes/auth_routes.py:756"}, "properties": {"repobilityId": "dc278578d080e555", "scanner": "scanner-primary", "fingerprint": "89211035bc835bb5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 756}}}]}, {"ruleId": "scanner-416580b9576e2fc8", "level": "error", "message": {"text": "FastAPI DELETE `delete_integration_route` without auth dependency \u2014 routes/auth_routes.py:768"}, "properties": {"repobilityId": "adfa908285217644", "scanner": "scanner-primary", "fingerprint": "416580b9576e2fc8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 768}}}]}, {"ruleId": "scanner-c896b084b775c2d0", "level": "error", "message": {"text": "FastAPI POST `test_integration_route` without auth dependency \u2014 routes/auth_routes.py:779"}, "properties": {"repobilityId": "4c20521146f6c28f", "scanner": "scanner-primary", "fingerprint": "c896b084b775c2d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_routes.py"}, "region": {"startLine": 779}}}]}, {"ruleId": "scanner-d68cb8cfe8feae81", "level": "error", "message": {"text": "FastAPI POST `test_research` without auth dependency \u2014 routes/diagnostics_routes.py:60"}, "properties": {"repobilityId": "8c5793950cfdb814", "scanner": "scanner-primary", "fingerprint": "d68cb8cfe8feae81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/diagnostics_routes.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-0f3652b0712b639f", "level": "error", "message": {"text": "FastAPI POST `create_document` without auth dependency \u2014 routes/document_routes.py:47"}, "properties": {"repobilityId": "34d79521fc66db6a", "scanner": "scanner-primary", "fingerprint": "0f3652b0712b639f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-31257c2a710018ae", "level": "error", "message": {"text": "FastAPI POST `import_pdf` without auth dependency \u2014 routes/document_routes.py:120"}, "properties": {"repobilityId": "bc6d4e81251ed41f", "scanner": "scanner-primary", "fingerprint": "31257c2a710018ae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-8d99bb976dbdaf2d", "level": "error", "message": {"text": "FastAPI POST `archive_document` without auth dependency \u2014 routes/document_routes.py:353"}, "properties": {"repobilityId": "a1ed4e29876ce7fc", "scanner": "scanner-primary", "fingerprint": "8d99bb976dbdaf2d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 353}}}]}, {"ruleId": "scanner-efa0777c97b80eb7", "level": "error", "message": {"text": "FastAPI POST `extract_pdf_text` without auth dependency \u2014 routes/document_routes.py:366"}, "properties": {"repobilityId": "2f54c04637ef98de", "scanner": "scanner-primary", "fingerprint": "efa0777c97b80eb7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 366}}}]}, {"ruleId": "scanner-a454ec26343f2136", "level": "error", "message": {"text": "FastAPI POST `documents_export_zip` without auth dependency \u2014 routes/document_routes.py:423"}, "properties": {"repobilityId": "8701229e82718171", "scanner": "scanner-primary", "fingerprint": "a454ec26343f2136", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 423}}}]}, {"ruleId": "scanner-cadf8bde3aa4457e", "level": "error", "message": {"text": "FastAPI PUT `update_document` without auth dependency \u2014 routes/document_routes.py:483"}, "properties": {"repobilityId": "be8cff3cc93392c4", "scanner": "scanner-primary", "fingerprint": "cadf8bde3aa4457e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 483}}}]}, {"ruleId": "scanner-4d1f98be40749412", "level": "error", "message": {"text": "FastAPI PATCH `patch_document` without auth dependency \u2014 routes/document_routes.py:537"}, "properties": {"repobilityId": "e2ab24d70a8761eb", "scanner": "scanner-primary", "fingerprint": "4d1f98be40749412", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-d730cf94a3605c64", "level": "error", "message": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/document_routes.py:566"}, "properties": {"repobilityId": "e41def5329c5e917", "scanner": "scanner-primary", "fingerprint": "d730cf94a3605c64", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 566}}}]}, {"ruleId": "scanner-4f6ab3f7a4d7e83f", "level": "error", "message": {"text": "FastAPI POST `restore_version` without auth dependency \u2014 routes/document_routes.py:624"}, "properties": {"repobilityId": "d6203d0bb39e284d", "scanner": "scanner-primary", "fingerprint": "4f6ab3f7a4d7e83f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 624}}}]}, {"ruleId": "scanner-f0bca11fdfa38e5f", "level": "error", "message": {"text": "FastAPI POST `tidy_documents` without auth dependency \u2014 routes/document_routes.py:657"}, "properties": {"repobilityId": "02c59ab08b5111d4", "scanner": "scanner-primary", "fingerprint": "f0bca11fdfa38e5f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 657}}}]}, {"ruleId": "scanner-d6a037b45619ec33", "level": "error", "message": {"text": "FastAPI POST `ai_tidy_documents` without auth dependency \u2014 routes/document_routes.py:753"}, "properties": {"repobilityId": "1b4fc5d972d28a56", "scanner": "scanner-primary", "fingerprint": "d6a037b45619ec33", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 753}}}]}, {"ruleId": "scanner-3d3a1abc0e67c3be", "level": "error", "message": {"text": "FastAPI POST `export_pdf_preview` without auth dependency \u2014 routes/document_routes.py:841"}, "properties": {"repobilityId": "5f88ba978711bd1b", "scanner": "scanner-primary", "fingerprint": "3d3a1abc0e67c3be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 841}}}]}, {"ruleId": "scanner-c9dd8f49ca95838d", "level": "error", "message": {"text": "FastAPI POST `ai_fill_annotations` without auth dependency \u2014 routes/document_routes.py:1009"}, "properties": {"repobilityId": "723b1cc335bf3081", "scanner": "scanner-primary", "fingerprint": "c9dd8f49ca95838d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 1009}}}]}, {"ruleId": "scanner-ebf32bde342661b1", "level": "error", "message": {"text": "FastAPI POST `prepare_signed_reply` without auth dependency \u2014 routes/document_routes.py:1373"}, "properties": {"repobilityId": "1a3b2833dc7bf39e", "scanner": "scanner-primary", "fingerprint": "ebf32bde342661b1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/document_routes.py"}, "region": {"startLine": 1373}}}]}, {"ruleId": "scanner-a0551670d9eb3c95", "level": "error", "message": {"text": "FastAPI POST `create_draft` without auth dependency \u2014 routes/editor_draft_routes.py:102"}, "properties": {"repobilityId": "c8db10193543569d", "scanner": "scanner-primary", "fingerprint": "a0551670d9eb3c95", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/editor_draft_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-77889dc8c10d16c4", "level": "error", "message": {"text": "FastAPI PUT `update_draft` without auth dependency \u2014 routes/editor_draft_routes.py:125"}, "properties": {"repobilityId": "d937a430a5f3bb73", "scanner": "scanner-primary", "fingerprint": "77889dc8c10d16c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/editor_draft_routes.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-032f81a682a0094b", "level": "error", "message": {"text": "FastAPI DELETE `delete_draft` without auth dependency \u2014 routes/editor_draft_routes.py:154"}, "properties": {"repobilityId": "4fb7d958ee5ef19e", "scanner": "scanner-primary", "fingerprint": "032f81a682a0094b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/editor_draft_routes.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-8a22ef5ae1b96c45", "level": "error", "message": {"text": "FastAPI POST `desktop_update_download` without auth dependency \u2014 routes/desktop_routes.py:819"}, "properties": {"repobilityId": "8d63210fcd580e3b", "scanner": "scanner-primary", "fingerprint": "8a22ef5ae1b96c45", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/desktop_routes.py"}, "region": {"startLine": 819}}}]}, {"ruleId": "scanner-459bf286b1ef79f1", "level": "error", "message": {"text": "FastAPI POST `desktop_restart_to_update` without auth dependency \u2014 routes/desktop_routes.py:840"}, "properties": {"repobilityId": "359693048a9d199e", "scanner": "scanner-primary", "fingerprint": "459bf286b1ef79f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/desktop_routes.py"}, "region": {"startLine": 840}}}]}, {"ruleId": "scanner-568b7981e52c3356", "level": "error", "message": {"text": "FastAPI POST `open_desktop_update_page` without auth dependency \u2014 routes/desktop_routes.py:855"}, "properties": {"repobilityId": "ee912d37630306cb", "scanner": "scanner-primary", "fingerprint": "568b7981e52c3356", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/desktop_routes.py"}, "region": {"startLine": 855}}}]}, {"ruleId": "scanner-afa4e4c8192146b3", "level": "error", "message": {"text": "FastAPI POST `research_cancel` without auth dependency \u2014 routes/research_routes.py:141"}, "properties": {"repobilityId": "9c1bdd115233a3ba", "scanner": "scanner-primary", "fingerprint": "afa4e4c8192146b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-3e989e2be85310bc", "level": "error", "message": {"text": "FastAPI POST `research_result` without auth dependency \u2014 routes/research_routes.py:150"}, "properties": {"repobilityId": "3765cb7e1d2981e2", "scanner": "scanner-primary", "fingerprint": "3e989e2be85310bc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-00e6ab6fa247c757", "level": "error", "message": {"text": "FastAPI POST `research_hide_image` without auth dependency \u2014 routes/research_routes.py:193"}, "properties": {"repobilityId": "46062a3f566cf1fd", "scanner": "scanner-primary", "fingerprint": "00e6ab6fa247c757", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-d93ffaa4b33b9d9f", "level": "error", "message": {"text": "FastAPI POST `research_unhide_images` without auth dependency \u2014 routes/research_routes.py:205"}, "properties": {"repobilityId": "a4c99e0842bdb1b0", "scanner": "scanner-primary", "fingerprint": "d93ffaa4b33b9d9f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-52088f8dea37f6a3", "level": "error", "message": {"text": "FastAPI POST `research_archive` without auth dependency \u2014 routes/research_routes.py:292"}, "properties": {"repobilityId": "dc2f370dbf366701", "scanner": "scanner-primary", "fingerprint": "52088f8dea37f6a3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "scanner-d736a9bb606aed14", "level": "error", "message": {"text": "FastAPI DELETE `research_delete` without auth dependency \u2014 routes/research_routes.py:311"}, "properties": {"repobilityId": "2ec9c15043c0be8a", "scanner": "scanner-primary", "fingerprint": "d736a9bb606aed14", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-860d2d91f83200b5", "level": "error", "message": {"text": "FastAPI POST `research_start` without auth dependency \u2014 routes/research_routes.py:350"}, "properties": {"repobilityId": "385d666766c3d62f", "scanner": "scanner-primary", "fingerprint": "860d2d91f83200b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 350}}}]}, {"ruleId": "scanner-ae15a5f67c263776", "level": "error", "message": {"text": "FastAPI POST `research_result_peek` without auth dependency \u2014 routes/research_routes.py:486"}, "properties": {"repobilityId": "9b93cf8d3bd3ea59", "scanner": "scanner-primary", "fingerprint": "ae15a5f67c263776", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 486}}}]}, {"ruleId": "scanner-a2e095c79a18c2c0", "level": "error", "message": {"text": "FastAPI POST `research_spinoff` without auth dependency \u2014 routes/research_routes.py:508"}, "properties": {"repobilityId": "1075a92d63672904", "scanner": "scanner-primary", "fingerprint": "a2e095c79a18c2c0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/research_routes.py"}, "region": {"startLine": 508}}}]}, {"ruleId": "scanner-f724c95b9e16d44b", "level": "error", "message": {"text": "FastAPI POST `cleanup_endpoint` without auth dependency \u2014 routes/cleanup_routes.py:38"}, "properties": {"repobilityId": "155702925e40808c", "scanner": "scanner-primary", "fingerprint": "f724c95b9e16d44b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cleanup_routes.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-f0381e63ea486ba8", "level": "error", "message": {"text": "FastAPI PATCH `update_assistant_settings` without auth dependency \u2014 routes/assistant_routes.py:152"}, "properties": {"repobilityId": "cd51da67685b8742", "scanner": "scanner-primary", "fingerprint": "f0381e63ea486ba8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/assistant_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-28bf318681aff34f", "level": "error", "message": {"text": "FastAPI POST `run_check_in_now` without auth dependency \u2014 routes/assistant_routes.py:259"}, "properties": {"repobilityId": "7a60b1e6b928a02c", "scanner": "scanner-primary", "fingerprint": "28bf318681aff34f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/assistant_routes.py"}, "region": {"startLine": 259}}}]}, {"ruleId": "scanner-4b10892595c65d8d", "level": "error", "message": {"text": "FastAPI POST `truncate_session` without auth dependency \u2014 routes/history_routes.py:113"}, "properties": {"repobilityId": "b6f69fa10d4cd5c8", "scanner": "scanner-primary", "fingerprint": "4b10892595c65d8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-b1bfb06d4e0f0ff1", "level": "error", "message": {"text": "FastAPI POST `add_message` without auth dependency \u2014 routes/history_routes.py:127"}, "properties": {"repobilityId": "be5dad736a6aae3f", "scanner": "scanner-primary", "fingerprint": "b1bfb06d4e0f0ff1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-71c1eb13f7ec4446", "level": "error", "message": {"text": "FastAPI POST `delete_messages` without auth dependency \u2014 routes/history_routes.py:143"}, "properties": {"repobilityId": "c6f3340788ddbc7c", "scanner": "scanner-primary", "fingerprint": "71c1eb13f7ec4446", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-c68d613d4c5c84f0", "level": "error", "message": {"text": "FastAPI POST `edit_message` without auth dependency \u2014 routes/history_routes.py:202"}, "properties": {"repobilityId": "a771392d754c5fde", "scanner": "scanner-primary", "fingerprint": "c68d613d4c5c84f0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-78334ab730ded792", "level": "error", "message": {"text": "FastAPI POST `mark_stopped` without auth dependency \u2014 routes/history_routes.py:251"}, "properties": {"repobilityId": "948d1cdfe0a0ddaa", "scanner": "scanner-primary", "fingerprint": "78334ab730ded792", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 251}}}]}, {"ruleId": "scanner-091a2a33ab013857", "level": "error", "message": {"text": "FastAPI POST `update_last_meta` without auth dependency \u2014 routes/history_routes.py:302"}, "properties": {"repobilityId": "0d06b1c3acb4beb0", "scanner": "scanner-primary", "fingerprint": "091a2a33ab013857", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 302}}}]}, {"ruleId": "scanner-4968670fec308f02", "level": "error", "message": {"text": "FastAPI POST `merge_last_assistant` without auth dependency \u2014 routes/history_routes.py:349"}, "properties": {"repobilityId": "f9eb3d7d78a06d1d", "scanner": "scanner-primary", "fingerprint": "4968670fec308f02", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-a4a99428fdb0806d", "level": "error", "message": {"text": "FastAPI POST `fork_session` without auth dependency \u2014 routes/history_routes.py:432"}, "properties": {"repobilityId": "e35b8d88c1be88ad", "scanner": "scanner-primary", "fingerprint": "a4a99428fdb0806d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 432}}}]}, {"ruleId": "scanner-2194a1c0e3496911", "level": "error", "message": {"text": "FastAPI POST `compact_session` without auth dependency \u2014 routes/history_routes.py:489"}, "properties": {"repobilityId": "1cf81d07b7510228", "scanner": "scanner-primary", "fingerprint": "2194a1c0e3496911", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 489}}}]}, {"ruleId": "scanner-889d96cbb24ee529", "level": "error", "message": {"text": "FastAPI POST `install` without auth dependency \u2014 routes/tool_install_routes.py:64"}, "properties": {"repobilityId": "2f3d28f9d7561e42", "scanner": "scanner-primary", "fingerprint": "889d96cbb24ee529", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tool_install_routes.py"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-012221aa9388be88", "level": "error", "message": {"text": "FastAPI PATCH `patch` without auth dependency \u2014 routes/tool_install_routes.py:74"}, "properties": {"repobilityId": "1ed29972f6e84f38", "scanner": "scanner-primary", "fingerprint": "012221aa9388be88", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tool_install_routes.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-ad521f3b3b2ec0ec", "level": "error", "message": {"text": "FastAPI DELETE `uninstall` without auth dependency \u2014 routes/tool_install_routes.py:93"}, "properties": {"repobilityId": "3f91d26b3e12c39d", "scanner": "scanner-primary", "fingerprint": "ad521f3b3b2ec0ec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tool_install_routes.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-44d18856a0269635", "level": "error", "message": {"text": "FastAPI PUT `put_secret` without auth dependency \u2014 routes/tool_install_routes.py:102"}, "properties": {"repobilityId": "46fdb45d24aef074", "scanner": "scanner-primary", "fingerprint": "44d18856a0269635", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tool_install_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-94a276f69526f7fb", "level": "error", "message": {"text": "FastAPI POST `test` without auth dependency \u2014 routes/tool_install_routes.py:110"}, "properties": {"repobilityId": "81a254197af7631d", "scanner": "scanner-primary", "fingerprint": "94a276f69526f7fb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tool_install_routes.py"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-7f85c6dd3b47346c", "level": "error", "message": {"text": "FastAPI POST `transcribe_audio` without auth dependency \u2014 routes/stt_routes.py:23"}, "properties": {"repobilityId": "9c1ef33f968e8fdc", "scanner": "scanner-primary", "fingerprint": "7f85c6dd3b47346c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/stt_routes.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-c6ea02be8944ebcc", "level": "error", "message": {"text": "FastAPI PATCH `update_space` without auth dependency \u2014 routes/mission_control_routes.py:670"}, "properties": {"repobilityId": "fdcf5430bdb0109d", "scanner": "scanner-primary", "fingerprint": "c6ea02be8944ebcc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 670}}}]}, {"ruleId": "scanner-0310e2143440dbeb", "level": "error", "message": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 routes/mission_control_routes.py:694"}, "properties": {"repobilityId": "68c6fea7dbb3affd", "scanner": "scanner-primary", "fingerprint": "0310e2143440dbeb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 694}}}]}, {"ruleId": "scanner-5be02eb8efe0761d", "level": "error", "message": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/mission_control_routes.py:726"}, "properties": {"repobilityId": "20bdeef57ba23420", "scanner": "scanner-primary", "fingerprint": "5be02eb8efe0761d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 726}}}]}, {"ruleId": "scanner-29bf2b2149c0d65f", "level": "error", "message": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/mission_control_routes.py:743"}, "properties": {"repobilityId": "abcab3ba9d928b1e", "scanner": "scanner-primary", "fingerprint": "29bf2b2149c0d65f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 743}}}]}, {"ruleId": "scanner-61edcd49b0e0fae6", "level": "error", "message": {"text": "FastAPI POST `create_workflow` without auth dependency \u2014 routes/mission_control_routes.py:761"}, "properties": {"repobilityId": "fb686414eb449f13", "scanner": "scanner-primary", "fingerprint": "61edcd49b0e0fae6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 761}}}]}, {"ruleId": "scanner-1aca5998523add0e", "level": "error", "message": {"text": "FastAPI PATCH `update_workflow` without auth dependency \u2014 routes/mission_control_routes.py:786"}, "properties": {"repobilityId": "8c896ebd899247b0", "scanner": "scanner-primary", "fingerprint": "1aca5998523add0e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 786}}}]}, {"ruleId": "scanner-e6ab8948f2617132", "level": "error", "message": {"text": "FastAPI POST `run_workflow` without auth dependency \u2014 routes/mission_control_routes.py:806"}, "properties": {"repobilityId": "ceabf5650bd34423", "scanner": "scanner-primary", "fingerprint": "e6ab8948f2617132", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 806}}}]}, {"ruleId": "scanner-ea0092ace74a7e9f", "level": "error", "message": {"text": "FastAPI POST `stop_run` without auth dependency \u2014 routes/mission_control_routes.py:853"}, "properties": {"repobilityId": "55d8b666b075a663", "scanner": "scanner-primary", "fingerprint": "ea0092ace74a7e9f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 853}}}]}, {"ruleId": "scanner-efce89a0c46772ed", "level": "error", "message": {"text": "FastAPI POST `resolve_approval` without auth dependency \u2014 routes/mission_control_routes.py:869"}, "properties": {"repobilityId": "394507e5c8592364", "scanner": "scanner-primary", "fingerprint": "efce89a0c46772ed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 869}}}]}, {"ruleId": "scanner-966147c12f18dc91", "level": "error", "message": {"text": "FastAPI POST `harness_callback` without auth dependency \u2014 routes/mission_control_routes.py:880"}, "properties": {"repobilityId": "c6dd04eb4a35586d", "scanner": "scanner-primary", "fingerprint": "966147c12f18dc91", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 880}}}]}, {"ruleId": "scanner-7f186b36291aebf6", "level": "error", "message": {"text": "FastAPI POST `ask_orchestrator` without auth dependency \u2014 routes/mission_control_routes.py:914"}, "properties": {"repobilityId": "598705fb4e4d4455", "scanner": "scanner-primary", "fingerprint": "7f186b36291aebf6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/mission_control_routes.py"}, "region": {"startLine": 914}}}]}, {"ruleId": "scanner-d4a3f31241a78a05", "level": "error", "message": {"text": "FastAPI POST `synthesize_speech` without auth dependency \u2014 routes/tts_routes.py:30"}, "properties": {"repobilityId": "11e9132648ae6a92", "scanner": "scanner-primary", "fingerprint": "d4a3f31241a78a05", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tts_routes.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-9f351b81c8e37bce", "level": "error", "message": {"text": "FastAPI POST `clear_tts_cache` without auth dependency \u2014 routes/tts_routes.py:77"}, "properties": {"repobilityId": "afbe546ded4529d6", "scanner": "scanner-primary", "fingerprint": "9f351b81c8e37bce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tts_routes.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-6ffbe6dd8bf1e3f2", "level": "error", "message": {"text": "FastAPI POST `bind` without auth dependency \u2014 routes/agent_tools_routes.py:73"}, "properties": {"repobilityId": "c78760c07e8f01b1", "scanner": "scanner-primary", "fingerprint": "6ffbe6dd8bf1e3f2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agent_tools_routes.py"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-0632622098497e50", "level": "error", "message": {"text": "FastAPI DELETE `unbind` without auth dependency \u2014 routes/agent_tools_routes.py:88"}, "properties": {"repobilityId": "6f8436c854830c4d", "scanner": "scanner-primary", "fingerprint": "0632622098497e50", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agent_tools_routes.py"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-2c6bce39fc3a21e0", "level": "error", "message": {"text": "FastAPI POST `invoke` without auth dependency \u2014 routes/agent_tools_routes.py:94"}, "properties": {"repobilityId": "19aa3c98942471c0", "scanner": "scanner-primary", "fingerprint": "2c6bce39fc3a21e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agent_tools_routes.py"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-0b0bbadde3bad361", "level": "error", "message": {"text": "FastAPI POST `api_sync` without auth dependency \u2014 routes/memory_graph_routes.py:164"}, "properties": {"repobilityId": "c1632e7230ef5080", "scanner": "scanner-primary", "fingerprint": "0b0bbadde3bad361", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_graph_routes.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-6bade2e06b65c382", "level": "error", "message": {"text": "FastAPI POST `api_search` without auth dependency \u2014 routes/memory_graph_routes.py:220"}, "properties": {"repobilityId": "d4b57902ae5271d7", "scanner": "scanner-primary", "fingerprint": "6bade2e06b65c382", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_graph_routes.py"}, "region": {"startLine": 220}}}]}, {"ruleId": "scanner-fd9efcb31e2e2ec5", "level": "error", "message": {"text": "FastAPI POST `api_create_grant` without auth dependency \u2014 routes/memory_graph_routes.py:300"}, "properties": {"repobilityId": "c17001b89935dbd6", "scanner": "scanner-primary", "fingerprint": "fd9efcb31e2e2ec5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_graph_routes.py"}, "region": {"startLine": 300}}}]}, {"ruleId": "scanner-c13e6270456097c2", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_grant` without auth dependency \u2014 routes/memory_graph_routes.py:325"}, "properties": {"repobilityId": "cc9d3e7fa7205e15", "scanner": "scanner-primary", "fingerprint": "c13e6270456097c2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/memory_graph_routes.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-a8385ffe7fb790df", "level": "error", "message": {"text": "FastAPI POST `api_create_brain` without auth dependency \u2014 routes/brain_routes.py:386"}, "properties": {"repobilityId": "94464732418320df", "scanner": "scanner-primary", "fingerprint": "a8385ffe7fb790df", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 386}}}]}, {"ruleId": "scanner-7e03308112be50ae", "level": "error", "message": {"text": "FastAPI PATCH `api_update_brain` without auth dependency \u2014 routes/brain_routes.py:458"}, "properties": {"repobilityId": "79505cbfbf38d204", "scanner": "scanner-primary", "fingerprint": "7e03308112be50ae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 458}}}]}, {"ruleId": "scanner-f1feeae14add47b4", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_brain` without auth dependency \u2014 routes/brain_routes.py:472"}, "properties": {"repobilityId": "2deec2e741ebc8c0", "scanner": "scanner-primary", "fingerprint": "f1feeae14add47b4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 472}}}]}, {"ruleId": "scanner-9c67ee0fff9e0249", "level": "error", "message": {"text": "FastAPI POST `api_ingest_brain` without auth dependency \u2014 routes/brain_routes.py:485"}, "properties": {"repobilityId": "b30964074275d573", "scanner": "scanner-primary", "fingerprint": "9c67ee0fff9e0249", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 485}}}]}, {"ruleId": "scanner-ff2e8ea3900d5538", "level": "error", "message": {"text": "FastAPI POST `api_query_brain` without auth dependency \u2014 routes/brain_routes.py:588"}, "properties": {"repobilityId": "bedbcc47f252d6af", "scanner": "scanner-primary", "fingerprint": "ff2e8ea3900d5538", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 588}}}]}, {"ruleId": "scanner-c6de6535832dce5b", "level": "error", "message": {"text": "FastAPI POST `api_move_brain` without auth dependency \u2014 routes/brain_routes.py:608"}, "properties": {"repobilityId": "26699c6f479bb9b5", "scanner": "scanner-primary", "fingerprint": "c6de6535832dce5b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 608}}}]}, {"ruleId": "scanner-db2885c845b74fcd", "level": "error", "message": {"text": "FastAPI POST `api_query_brain_stream` without auth dependency \u2014 routes/brain_routes.py:641"}, "properties": {"repobilityId": "11b8780cad13de86", "scanner": "scanner-primary", "fingerprint": "db2885c845b74fcd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-fa909ee5ed144940", "level": "error", "message": {"text": "FastAPI DELETE `api_brain_chat_clear` without auth dependency \u2014 routes/brain_routes.py:732"}, "properties": {"repobilityId": "fa031b1345474980", "scanner": "scanner-primary", "fingerprint": "fa909ee5ed144940", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 732}}}]}, {"ruleId": "scanner-4312a81ba26976c8", "level": "error", "message": {"text": "FastAPI POST `api_attach_session` without auth dependency \u2014 routes/brain_routes.py:741"}, "properties": {"repobilityId": "75ddf49c1c9b0a31", "scanner": "scanner-primary", "fingerprint": "4312a81ba26976c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 741}}}]}, {"ruleId": "scanner-7e007429aa6e8cc6", "level": "error", "message": {"text": "FastAPI DELETE `api_detach_session` without auth dependency \u2014 routes/brain_routes.py:751"}, "properties": {"repobilityId": "073f1dfb8b7cd8d0", "scanner": "scanner-primary", "fingerprint": "7e007429aa6e8cc6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 751}}}]}, {"ruleId": "scanner-be11fef71c28b9bf", "level": "error", "message": {"text": "FastAPI POST `api_brain_reindex` without auth dependency \u2014 routes/brain_routes.py:769"}, "properties": {"repobilityId": "3800d1b5b2067d62", "scanner": "scanner-primary", "fingerprint": "be11fef71c28b9bf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 769}}}]}, {"ruleId": "scanner-113d571b72ceb387", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_brain_source` without auth dependency \u2014 routes/brain_routes.py:801"}, "properties": {"repobilityId": "edd76875e2f721cb", "scanner": "scanner-primary", "fingerprint": "113d571b72ceb387", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/brain_routes.py"}, "region": {"startLine": 801}}}]}, {"ruleId": "scanner-b22e903870de5e20", "level": "error", "message": {"text": "FastAPI POST `sync_manifest` without auth dependency \u2014 routes/sync_routes.py:137"}, "properties": {"repobilityId": "57c4c22df7acd67c", "scanner": "scanner-primary", "fingerprint": "b22e903870de5e20", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sync_routes.py"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-67a5f2dbd4d3c782", "level": "error", "message": {"text": "FastAPI POST `create_token` without auth dependency \u2014 routes/api_token_routes.py:49"}, "properties": {"repobilityId": "d2bd643d2b75448d", "scanner": "scanner-primary", "fingerprint": "67a5f2dbd4d3c782", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/api_token_routes.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-6557d6a87e9fcd65", "level": "error", "message": {"text": "FastAPI DELETE `delete_token` without auth dependency \u2014 routes/api_token_routes.py:82"}, "properties": {"repobilityId": "d401babdff3f1a4e", "scanner": "scanner-primary", "fingerprint": "6557d6a87e9fcd65", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/api_token_routes.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-9c580fa2021a68f9", "level": "error", "message": {"text": "FastAPI PUT `set_module` without auth dependency \u2014 routes/workspace_routes.py:49"}, "properties": {"repobilityId": "f606e56faad09ed5", "scanner": "scanner-primary", "fingerprint": "9c580fa2021a68f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/workspace_routes.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-202ed4ccc2fb2d32", "level": "error", "message": {"text": "FastAPI POST `import_data` without auth dependency \u2014 routes/backup_routes.py:62"}, "properties": {"repobilityId": "2ec4b23f22236ea1", "scanner": "scanner-primary", "fingerprint": "202ed4ccc2fb2d32", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/backup_routes.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-4356acf992db03bf", "level": "error", "message": {"text": "FastAPI POST `do_web_search` without auth dependency \u2014 routes/search_routes.py:46"}, "properties": {"repobilityId": "f151f778c54564e8", "scanner": "scanner-primary", "fingerprint": "4356acf992db03bf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/search_routes.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-720e0a3fcbd09354", "level": "error", "message": {"text": "FastAPI POST `search_with_provider` without auth dependency \u2014 routes/search_routes.py:87"}, "properties": {"repobilityId": "97fc54b9fee0c624", "scanner": "scanner-primary", "fingerprint": "720e0a3fcbd09354", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/search_routes.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-05410cc2d03c830d", "level": "error", "message": {"text": "FastAPI POST `create_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1064"}, "properties": {"repobilityId": "c898e0875d7eb4d8", "scanner": "scanner-primary", "fingerprint": "05410cc2d03c830d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1064}}}]}, {"ruleId": "scanner-f69269619f5559f7", "level": "error", "message": {"text": "FastAPI PATCH `update_harness_profile_route` without auth dependency \u2014 routes/agents_routes.py:1076"}, "properties": {"repobilityId": "0029bf6a6b21e1b8", "scanner": "scanner-primary", "fingerprint": "f69269619f5559f7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1076}}}]}, {"ruleId": "scanner-df62b94ffca9df98", "level": "error", "message": {"text": "FastAPI DELETE `delete_harness_profile` without auth dependency \u2014 routes/agents_routes.py:1094"}, "properties": {"repobilityId": "f794fdef0eb4a090", "scanner": "scanner-primary", "fingerprint": "df62b94ffca9df98", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1094}}}]}, {"ruleId": "scanner-520bac248884a90f", "level": "error", "message": {"text": "FastAPI PATCH `update_harness_location` without auth dependency \u2014 routes/agents_routes.py:1163"}, "properties": {"repobilityId": "9d4b709e3651f72e", "scanner": "scanner-primary", "fingerprint": "520bac248884a90f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1163}}}]}, {"ruleId": "scanner-cacae0bd5a64f1b2", "level": "error", "message": {"text": "FastAPI PATCH `update_harness_config` without auth dependency \u2014 routes/agents_routes.py:1213"}, "properties": {"repobilityId": "fcd8952ca975fc95", "scanner": "scanner-primary", "fingerprint": "cacae0bd5a64f1b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1213}}}]}, {"ruleId": "scanner-aa5a8751323c8aec", "level": "error", "message": {"text": "FastAPI POST `create_agent` without auth dependency \u2014 routes/agents_routes.py:1248"}, "properties": {"repobilityId": "2d2ffe7f28deea3c", "scanner": "scanner-primary", "fingerprint": "aa5a8751323c8aec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1248}}}]}, {"ruleId": "scanner-f4c77491cd9c2469", "level": "error", "message": {"text": "FastAPI POST `ensure_log_chat` without auth dependency \u2014 routes/agents_routes.py:1373"}, "properties": {"repobilityId": "007ac7d08b29802a", "scanner": "scanner-primary", "fingerprint": "f4c77491cd9c2469", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1373}}}]}, {"ruleId": "scanner-7667e679e1a7c926", "level": "error", "message": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 routes/agents_routes.py:1412"}, "properties": {"repobilityId": "a6ba315a115d7dfc", "scanner": "scanner-primary", "fingerprint": "7667e679e1a7c926", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1412}}}]}, {"ruleId": "scanner-3b4d6f961028e154", "level": "error", "message": {"text": "FastAPI PATCH `update_agent_runtime_config` without auth dependency \u2014 routes/agents_routes.py:1450"}, "properties": {"repobilityId": "9db47cd6a8ba2f13", "scanner": "scanner-primary", "fingerprint": "3b4d6f961028e154", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1450}}}]}, {"ruleId": "scanner-f6804529dc34ded5", "level": "error", "message": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 routes/agents_routes.py:1468"}, "properties": {"repobilityId": "edb0565dd003a67f", "scanner": "scanner-primary", "fingerprint": "f6804529dc34ded5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1468}}}]}, {"ruleId": "scanner-b09bd893003a4e90", "level": "error", "message": {"text": "FastAPI PATCH `update_tools` without auth dependency \u2014 routes/agents_routes.py:1547"}, "properties": {"repobilityId": "e86d6cdb65bd3509", "scanner": "scanner-primary", "fingerprint": "b09bd893003a4e90", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1547}}}]}, {"ruleId": "scanner-c6d25a1739abf227", "level": "error", "message": {"text": "FastAPI POST `test_agent` without auth dependency \u2014 routes/agents_routes.py:1565"}, "properties": {"repobilityId": "bdc64df54c7a8c60", "scanner": "scanner-primary", "fingerprint": "c6d25a1739abf227", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1565}}}]}, {"ruleId": "scanner-c343ac999de4929c", "level": "error", "message": {"text": "FastAPI POST `reconnect_agent` without auth dependency \u2014 routes/agents_routes.py:1584"}, "properties": {"repobilityId": "00273808deed5197", "scanner": "scanner-primary", "fingerprint": "c343ac999de4929c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/agents_routes.py"}, "region": {"startLine": 1584}}}]}, {"ruleId": "scanner-f350f44ceb0733b7", "level": "error", "message": {"text": "FastAPI POST `recover` without auth dependency \u2014 routes/supabase_auth_routes.py:144"}, "properties": {"repobilityId": "b634e0c9bd9e39f0", "scanner": "scanner-primary", "fingerprint": "f350f44ceb0733b7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/supabase_auth_routes.py"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-0c0048986e29c192", "level": "error", "message": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 routes/supabase_auth_routes.py:165"}, "properties": {"repobilityId": "68e2309c846afd57", "scanner": "scanner-primary", "fingerprint": "0c0048986e29c192", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/supabase_auth_routes.py"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-df42ba564d71d20d", "level": "error", "message": {"text": "FastAPI POST `create_job` without auth dependency \u2014 routes/video_routes.py:136"}, "properties": {"repobilityId": "96c4b9a0129076ea", "scanner": "scanner-primary", "fingerprint": "df42ba564d71d20d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-9b760c911aabe02d", "level": "error", "message": {"text": "FastAPI POST `cancel_job` without auth dependency \u2014 routes/video_routes.py:184"}, "properties": {"repobilityId": "43ca126fec80711f", "scanner": "scanner-primary", "fingerprint": "9b760c911aabe02d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-8ed7be25c3864cd4", "level": "error", "message": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 routes/video_routes.py:193"}, "properties": {"repobilityId": "5d22884a8b1d10b5", "scanner": "scanner-primary", "fingerprint": "8ed7be25c3864cd4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-fa4c2dc52990e34c", "level": "error", "message": {"text": "FastAPI POST `rerun_job` without auth dependency \u2014 routes/video_routes.py:204"}, "properties": {"repobilityId": "68a2eea47e48e029", "scanner": "scanner-primary", "fingerprint": "fa4c2dc52990e34c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-9e880a1fce51ae2c", "level": "error", "message": {"text": "FastAPI POST `create_social` without auth dependency \u2014 routes/video_routes.py:214"}, "properties": {"repobilityId": "3406cf951d9837d7", "scanner": "scanner-primary", "fingerprint": "9e880a1fce51ae2c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-3522b2478feb82a6", "level": "error", "message": {"text": "FastAPI POST `create_from_template` without auth dependency \u2014 routes/video_routes.py:231"}, "properties": {"repobilityId": "717711d0eb74db75", "scanner": "scanner-primary", "fingerprint": "3522b2478feb82a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-ac395140bf8ef52f", "level": "error", "message": {"text": "FastAPI POST `batch_create` without auth dependency \u2014 routes/video_routes.py:247"}, "properties": {"repobilityId": "b1ec5d288702bfd0", "scanner": "scanner-primary", "fingerprint": "ac395140bf8ef52f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-2cd2f6ec19d0a447", "level": "error", "message": {"text": "FastAPI POST `upload_asset` without auth dependency \u2014 routes/video_routes.py:257"}, "properties": {"repobilityId": "22a90d5d391db6c0", "scanner": "scanner-primary", "fingerprint": "2cd2f6ec19d0a447", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-05b9352419698d1f", "level": "error", "message": {"text": "FastAPI DELETE `delete_asset` without auth dependency \u2014 routes/video_routes.py:286"}, "properties": {"repobilityId": "93b35bafdd4b512f", "scanner": "scanner-primary", "fingerprint": "05b9352419698d1f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-1ad1a2dea1a792ff", "level": "error", "message": {"text": "FastAPI POST `expire_jobs` without auth dependency \u2014 routes/video_routes.py:295"}, "properties": {"repobilityId": "8d6d380a3eaa9f64", "scanner": "scanner-primary", "fingerprint": "1ad1a2dea1a792ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/video_routes.py"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-d871bdea7485000d", "level": "error", "message": {"text": "FastAPI POST `chat_endpoint` without auth dependency \u2014 routes/chat_routes.py:281"}, "properties": {"repobilityId": "78012cd0929a5837", "scanner": "scanner-primary", "fingerprint": "d871bdea7485000d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_routes.py"}, "region": {"startLine": 281}}}]}, {"ruleId": "scanner-5fd65547a2a50277", "level": "error", "message": {"text": "FastAPI POST `chat_stream` without auth dependency \u2014 routes/chat_routes.py:421"}, "properties": {"repobilityId": "a874243c41ae35f5", "scanner": "scanner-primary", "fingerprint": "5fd65547a2a50277", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_routes.py"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-44590e32c8f2023e", "level": "error", "message": {"text": "FastAPI POST `chat_stop` without auth dependency \u2014 routes/chat_routes.py:1312"}, "properties": {"repobilityId": "081f6c7f23af300b", "scanner": "scanner-primary", "fingerprint": "44590e32c8f2023e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_routes.py"}, "region": {"startLine": 1312}}}]}, {"ruleId": "scanner-873ec0f44817a214", "level": "error", "message": {"text": "FastAPI POST `inject_context` without auth dependency \u2014 routes/chat_routes.py:1339"}, "properties": {"repobilityId": "fab8214eedacfb64", "scanner": "scanner-primary", "fingerprint": "873ec0f44817a214", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_routes.py"}, "region": {"startLine": 1339}}}]}, {"ruleId": "scanner-62d82eb2cb8557b0", "level": "error", "message": {"text": "FastAPI POST `rewrite_message` without auth dependency \u2014 routes/chat_routes.py:1404"}, "properties": {"repobilityId": "32941f0249ed09c3", "scanner": "scanner-primary", "fingerprint": "62d82eb2cb8557b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/chat_routes.py"}, "region": {"startLine": 1404}}}]}, {"ruleId": "scanner-fc0a48a08a3871fc", "level": "error", "message": {"text": "FastAPI POST `save_config` without auth dependency \u2014 routes/calendar_routes.py:555"}, "properties": {"repobilityId": "2314df380e4b72d6", "scanner": "scanner-primary", "fingerprint": "fc0a48a08a3871fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 555}}}]}, {"ruleId": "scanner-627d169d545420ce", "level": "error", "message": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 routes/calendar_routes.py:580"}, "properties": {"repobilityId": "c89e632cc17ef4cf", "scanner": "scanner-primary", "fingerprint": "627d169d545420ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 580}}}]}, {"ruleId": "scanner-4b298fdf6b9aaa6e", "level": "error", "message": {"text": "FastAPI POST `sync_caldav_endpoint` without auth dependency \u2014 routes/calendar_routes.py:637"}, "properties": {"repobilityId": "6d1f1e424571113d", "scanner": "scanner-primary", "fingerprint": "4b298fdf6b9aaa6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 637}}}]}, {"ruleId": "scanner-e57ccc368b009743", "level": "error", "message": {"text": "FastAPI POST `create_event` without auth dependency \u2014 routes/calendar_routes.py:723"}, "properties": {"repobilityId": "735089aed6c74001", "scanner": "scanner-primary", "fingerprint": "e57ccc368b009743", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 723}}}]}, {"ruleId": "scanner-bde5863847ad7d98", "level": "error", "message": {"text": "FastAPI PUT `update_event` without auth dependency \u2014 routes/calendar_routes.py:797"}, "properties": {"repobilityId": "9907823047dc0687", "scanner": "scanner-primary", "fingerprint": "bde5863847ad7d98", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 797}}}]}, {"ruleId": "scanner-36cfbfe4dd3d4ef8", "level": "error", "message": {"text": "FastAPI DELETE `delete_event` without auth dependency \u2014 routes/calendar_routes.py:851"}, "properties": {"repobilityId": "7b9f263e2fbb1867", "scanner": "scanner-primary", "fingerprint": "36cfbfe4dd3d4ef8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 851}}}]}, {"ruleId": "scanner-663022299a62c4a4", "level": "error", "message": {"text": "FastAPI POST `create_calendar` without auth dependency \u2014 routes/calendar_routes.py:878"}, "properties": {"repobilityId": "808e1b1e7849f027", "scanner": "scanner-primary", "fingerprint": "663022299a62c4a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 878}}}]}, {"ruleId": "scanner-4e5b85affd43fe4f", "level": "error", "message": {"text": "FastAPI PUT `update_calendar` without auth dependency \u2014 routes/calendar_routes.py:896"}, "properties": {"repobilityId": "f3fcb9747c7515da", "scanner": "scanner-primary", "fingerprint": "4e5b85affd43fe4f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 896}}}]}, {"ruleId": "scanner-050f27d56d322643", "level": "error", "message": {"text": "FastAPI DELETE `delete_calendar` without auth dependency \u2014 routes/calendar_routes.py:913"}, "properties": {"repobilityId": "87c7203e1a70c5ab", "scanner": "scanner-primary", "fingerprint": "050f27d56d322643", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 913}}}]}, {"ruleId": "scanner-504d37a9073dd127", "level": "error", "message": {"text": "FastAPI POST `import_ics` without auth dependency \u2014 routes/calendar_routes.py:931"}, "properties": {"repobilityId": "4274decc3b9d150d", "scanner": "scanner-primary", "fingerprint": "504d37a9073dd127", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 931}}}]}, {"ruleId": "scanner-d521cb1ca10f2c52", "level": "error", "message": {"text": "FastAPI POST `quick_parse` without auth dependency \u2014 routes/calendar_routes.py:1114"}, "properties": {"repobilityId": "dcfaef187db6f6b1", "scanner": "scanner-primary", "fingerprint": "d521cb1ca10f2c52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/calendar_routes.py"}, "region": {"startLine": 1114}}}]}, {"ruleId": "scanner-3cd9565b751b858e", "level": "error", "message": {"text": "FastAPI POST `save_config` without auth dependency \u2014 routes/vault_routes.py:294"}, "properties": {"repobilityId": "673cf5dadef80e9e", "scanner": "scanner-primary", "fingerprint": "3cd9565b751b858e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vault_routes.py"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-16366124d288d4a4", "level": "error", "message": {"text": "FastAPI POST `unlock` without auth dependency \u2014 routes/vault_routes.py:335"}, "properties": {"repobilityId": "6db48a14e0db8ba5", "scanner": "scanner-primary", "fingerprint": "16366124d288d4a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vault_routes.py"}, "region": {"startLine": 335}}}]}, {"ruleId": "scanner-2f1c9694df7b74aa", "level": "error", "message": {"text": "FastAPI POST `lock` without auth dependency \u2014 routes/vault_routes.py:357"}, "properties": {"repobilityId": "4ff983e4f449f144", "scanner": "scanner-primary", "fingerprint": "2f1c9694df7b74aa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vault_routes.py"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-81a138dd19822778", "level": "error", "message": {"text": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1012"}, "properties": {"repobilityId": "21f61c152f00b814", "scanner": "scanner-primary", "fingerprint": "81a138dd19822778", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1012}}}]}, {"ruleId": "scanner-142aa2251ac708c8", "level": "error", "message": {"text": "FastAPI PUT `save_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1013"}, "properties": {"repobilityId": "fc2c247afb7b77e0", "scanner": "scanner-primary", "fingerprint": "142aa2251ac708c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1013}}}]}, {"ruleId": "scanner-1b29d8d28457b2ac", "level": "error", "message": {"text": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1042"}, "properties": {"repobilityId": "b0cf65bdf3b71674", "scanner": "scanner-primary", "fingerprint": "1b29d8d28457b2ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1042}}}]}, {"ruleId": "scanner-7e66b00a8e7d3003", "level": "error", "message": {"text": "FastAPI POST `create_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1043"}, "properties": {"repobilityId": "170ea8e6b8130433", "scanner": "scanner-primary", "fingerprint": "7e66b00a8e7d3003", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1043}}}]}, {"ruleId": "scanner-cc8e1f423ce8dcac", "level": "error", "message": {"text": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1064"}, "properties": {"repobilityId": "db66814b63982d92", "scanner": "scanner-primary", "fingerprint": "cc8e1f423ce8dcac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1064}}}]}, {"ruleId": "scanner-578b0f55c1d0b660", "level": "error", "message": {"text": "FastAPI PUT `update_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1065"}, "properties": {"repobilityId": "8e85e6e0ca3c3231", "scanner": "scanner-primary", "fingerprint": "578b0f55c1d0b660", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1065}}}]}, {"ruleId": "scanner-9053da9fb6f77d52", "level": "error", "message": {"text": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1092"}, "properties": {"repobilityId": "6396528c2dfd7af4", "scanner": "scanner-primary", "fingerprint": "9053da9fb6f77d52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1092}}}]}, {"ruleId": "scanner-b4eed30a7af50b20", "level": "error", "message": {"text": "FastAPI DELETE `delete_chemical_supplier_factory` without auth dependency \u2014 routes/business_dashboard_routes.py:1093"}, "properties": {"repobilityId": "4700cf679fbd0ba6", "scanner": "scanner-primary", "fingerprint": "b4eed30a7af50b20", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1093}}}]}, {"ruleId": "scanner-b9d73e49883401c8", "level": "error", "message": {"text": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1115"}, "properties": {"repobilityId": "cc54ca7a332ef79a", "scanner": "scanner-primary", "fingerprint": "b9d73e49883401c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1115}}}]}, {"ruleId": "scanner-ebffe752c0e6bd5e", "level": "error", "message": {"text": "FastAPI POST `reset_chemical_supplier_dashboard` without auth dependency \u2014 routes/business_dashboard_routes.py:1116"}, "properties": {"repobilityId": "5b9f8fa2021fd69d", "scanner": "scanner-primary", "fingerprint": "ebffe752c0e6bd5e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/business_dashboard_routes.py"}, "region": {"startLine": 1116}}}]}, {"ruleId": "scanner-8e2afb28b23b3ec3", "level": "error", "message": {"text": "FastAPI POST `api_upload` without auth dependency \u2014 routes/upload_routes.py:19"}, "properties": {"repobilityId": "38b0f265fc7425e8", "scanner": "scanner-primary", "fingerprint": "8e2afb28b23b3ec3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/upload_routes.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-2dd25a65f74e3c24", "level": "error", "message": {"text": "FastAPI POST `manual_cleanup` without auth dependency \u2014 routes/upload_routes.py:66"}, "properties": {"repobilityId": "008a7822b05d4f24", "scanner": "scanner-primary", "fingerprint": "2dd25a65f74e3c24", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/upload_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-02352f9d7afa96ff", "level": "error", "message": {"text": "FastAPI PUT `put_vision_text` without auth dependency \u2014 routes/upload_routes.py:207"}, "properties": {"repobilityId": "08cd591ceff665e8", "scanner": "scanner-primary", "fingerprint": "02352f9d7afa96ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/upload_routes.py"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-728eab0ee7da6c29", "level": "error", "message": {"text": "FastAPI POST `update_tasks_onboarding` without auth dependency \u2014 routes/task_routes.py:255"}, "properties": {"repobilityId": "393c6edc431e3ce4", "scanner": "scanner-primary", "fingerprint": "728eab0ee7da6c29", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 255}}}]}, {"ruleId": "scanner-9eaf152014ede9d8", "level": "error", "message": {"text": "FastAPI POST `create_task` without auth dependency \u2014 routes/task_routes.py:328"}, "properties": {"repobilityId": "e318324a67d33b74", "scanner": "scanner-primary", "fingerprint": "9eaf152014ede9d8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-6ebca82335f9b358", "level": "error", "message": {"text": "FastAPI POST `clear_task_cache` without auth dependency \u2014 routes/task_routes.py:437"}, "properties": {"repobilityId": "63f05b6adb90d611", "scanner": "scanner-primary", "fingerprint": "6ebca82335f9b358", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 437}}}]}, {"ruleId": "scanner-181a74fa40963479", "level": "error", "message": {"text": "FastAPI PUT `update_task` without auth dependency \u2014 routes/task_routes.py:499"}, "properties": {"repobilityId": "34830b0630a5c711", "scanner": "scanner-primary", "fingerprint": "181a74fa40963479", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 499}}}]}, {"ruleId": "scanner-bd97a4240f1db8f4", "level": "error", "message": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/task_routes.py:582"}, "properties": {"repobilityId": "d23644acb13c980c", "scanner": "scanner-primary", "fingerprint": "bd97a4240f1db8f4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 582}}}]}, {"ruleId": "scanner-f4bcdf902d9eae1b", "level": "error", "message": {"text": "FastAPI POST `pause_task` without auth dependency \u2014 routes/task_routes.py:594"}, "properties": {"repobilityId": "44a77dda5a8f0d4d", "scanner": "scanner-primary", "fingerprint": "f4bcdf902d9eae1b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 594}}}]}, {"ruleId": "scanner-6a6b26b119e2d072", "level": "error", "message": {"text": "FastAPI POST `resume_task` without auth dependency \u2014 routes/task_routes.py:606"}, "properties": {"repobilityId": "74d60cd757c144bc", "scanner": "scanner-primary", "fingerprint": "6a6b26b119e2d072", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 606}}}]}, {"ruleId": "scanner-73ab12865c6341cc", "level": "error", "message": {"text": "FastAPI POST `revert_task` without auth dependency \u2014 routes/task_routes.py:624"}, "properties": {"repobilityId": "fb9da19103658293", "scanner": "scanner-primary", "fingerprint": "73ab12865c6341cc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 624}}}]}, {"ruleId": "scanner-0600b281c8d07c8f", "level": "error", "message": {"text": "FastAPI POST `run_task_now` without auth dependency \u2014 routes/task_routes.py:661"}, "properties": {"repobilityId": "9fea9a3b84c0941d", "scanner": "scanner-primary", "fingerprint": "0600b281c8d07c8f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 661}}}]}, {"ruleId": "scanner-90282841996a327a", "level": "error", "message": {"text": "FastAPI POST `stop_task_now` without auth dependency \u2014 routes/task_routes.py:676"}, "properties": {"repobilityId": "3149b0436841c729", "scanner": "scanner-primary", "fingerprint": "90282841996a327a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 676}}}]}, {"ruleId": "scanner-2b39d7e3f761a7d3", "level": "error", "message": {"text": "FastAPI POST `regenerate_webhook` without auth dependency \u2014 routes/task_routes.py:858"}, "properties": {"repobilityId": "8f3443d9e4bf2bb2", "scanner": "scanner-primary", "fingerprint": "2b39d7e3f761a7d3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 858}}}]}, {"ruleId": "scanner-e6dcb1491eb02b50", "level": "error", "message": {"text": "FastAPI POST `parse_task` without auth dependency \u2014 routes/task_routes.py:871"}, "properties": {"repobilityId": "7fb6fcc35fcd41f9", "scanner": "scanner-primary", "fingerprint": "e6dcb1491eb02b50", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/task_routes.py"}, "region": {"startLine": 871}}}]}, {"ruleId": "scanner-4eebdccd332d11bd", "level": "error", "message": {"text": "Dangling fetch: GET /api/registry/catalog (static/js/marketplace.js:53)"}, "properties": {"repobilityId": "b2b408bd288ecf40", "scanner": "scanner-primary", "fingerprint": "4eebdccd332d11bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-651a68240f2c2dcb", "level": "error", "message": {"text": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)}/download (static/js/marketplace.js:169)"}, "properties": {"repobilityId": "c1e4298dc7d254c4", "scanner": "scanner-primary", "fingerprint": "651a68240f2c2dcb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b0dccd574ec60a3", "level": "error", "message": {"text": "Dangling fetch: GET /api/registry/modules/${encodeURIComponent(id)} (static/js/marketplace.js:189)"}, "properties": {"repobilityId": "b395d9bfd8bfa7eb", "scanner": "scanner-primary", "fingerprint": "4b0dccd574ec60a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7720ac6f42cda33b", "level": "error", "message": {"text": "Dangling fetch: GET /api/tenant/tools (static/js/marketplace.js:207)"}, "properties": {"repobilityId": "bb96f0b30a3d6314", "scanner": "scanner-primary", "fingerprint": "7720ac6f42cda33b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-97e3492f63d288d2", "level": "error", "message": {"text": "Dangling fetch: GET /api/workspace/modules (static/js/marketplace.js:219)"}, "properties": {"repobilityId": "4005a85743a10b36", "scanner": "scanner-primary", "fingerprint": "97e3492f63d288d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-09179648d5b40008", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:372)"}, "properties": {"repobilityId": "1094d94706ed7b93", "scanner": "scanner-primary", "fingerprint": "09179648d5b40008", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b27a7ebba0a6b87", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:539)"}, "properties": {"repobilityId": "a0708cea2160a410", "scanner": "scanner-primary", "fingerprint": "7b27a7ebba0a6b87", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-43c8ee5f3340cf8d", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:554)"}, "properties": {"repobilityId": "52c1bcacbdf1b826", "scanner": "scanner-primary", "fingerprint": "43c8ee5f3340cf8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c164ece82030d11", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:604)"}, "properties": {"repobilityId": "50475dba4d30dd90", "scanner": "scanner-primary", "fingerprint": "8c164ece82030d11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0557d9804e8863ce", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:624)"}, "properties": {"repobilityId": "35ce352aa4740092", "scanner": "scanner-primary", "fingerprint": "0557d9804e8863ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85529a6eca6b0f0e", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:691)"}, "properties": {"repobilityId": "851e01feaaca0360", "scanner": "scanner-primary", "fingerprint": "85529a6eca6b0f0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d0597ef90f18212", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:722)"}, "properties": {"repobilityId": "4b25f06307524ddf", "scanner": "scanner-primary", "fingerprint": "2d0597ef90f18212", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bbc7b90021455c7", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:783)"}, "properties": {"repobilityId": "af855d67456a3006", "scanner": "scanner-primary", "fingerprint": "5bbc7b90021455c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d02bdfd8d91dd42", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:800)"}, "properties": {"repobilityId": "622d7104ab7adb3b", "scanner": "scanner-primary", "fingerprint": "5d02bdfd8d91dd42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5084f78c066d6a26", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:845)"}, "properties": {"repobilityId": "6a9acc0b7c11c2c5", "scanner": "scanner-primary", "fingerprint": "5084f78c066d6a26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-54b62d4086c33de5", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:873)"}, "properties": {"repobilityId": "5e200b8ed4ad04c3", "scanner": "scanner-primary", "fingerprint": "54b62d4086c33de5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a9f0993aa68b228", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:935)"}, "properties": {"repobilityId": "481800cfd30603ba", "scanner": "scanner-primary", "fingerprint": "7a9f0993aa68b228", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a53b736148e73d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:955)"}, "properties": {"repobilityId": "f11c5724fc203444", "scanner": "scanner-primary", "fingerprint": "8a53b736148e73d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff523f8cfb0ec78b", "level": "error", "message": {"text": "Dangling fetch: POST /api/tts/clear-cache (static/js/settings.js:964)"}, "properties": {"repobilityId": "cdc75e05282c4b08", "scanner": "scanner-primary", "fingerprint": "ff523f8cfb0ec78b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67d556bd2ecac703", "level": "error", "message": {"text": "Dangling fetch: POST /api/tts/synthesize (static/js/settings.js:1022)"}, "properties": {"repobilityId": "3e6b7798f7941ef6", "scanner": "scanner-primary", "fingerprint": "67d556bd2ecac703", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-29e32b6db1e76280", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1103)"}, "properties": {"repobilityId": "6f0edc9f564b23d1", "scanner": "scanner-primary", "fingerprint": "29e32b6db1e76280", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c2501c6f2732017", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1117)"}, "properties": {"repobilityId": "5d3938720e1d87dc", "scanner": "scanner-primary", "fingerprint": "4c2501c6f2732017", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d5c6e5109c769b3", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1206)"}, "properties": {"repobilityId": "08da98cf346614ef", "scanner": "scanner-primary", "fingerprint": "6d5c6e5109c769b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56607ac5ca651e4f", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1227)"}, "properties": {"repobilityId": "1b1fbebeef92b6c5", "scanner": "scanner-primary", "fingerprint": "56607ac5ca651e4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-79483957b287cd38", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1272)"}, "properties": {"repobilityId": "30b06fa9599e9761", "scanner": "scanner-primary", "fingerprint": "79483957b287cd38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cfa3dcf177567dda", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1409)"}, "properties": {"repobilityId": "a6d6fb7b353f0424", "scanner": "scanner-primary", "fingerprint": "cfa3dcf177567dda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bdf517bbdcb03621", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1503)"}, "properties": {"repobilityId": "6d73a6cc04b2fe45", "scanner": "scanner-primary", "fingerprint": "bdf517bbdcb03621", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d621a5854133324", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1566)"}, "properties": {"repobilityId": "164d906a4535497a", "scanner": "scanner-primary", "fingerprint": "0d621a5854133324", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c147566b22f39b68", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1624)"}, "properties": {"repobilityId": "e32b4b1a7015d6f0", "scanner": "scanner-primary", "fingerprint": "c147566b22f39b68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6069f58a04d43f5", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1632)"}, "properties": {"repobilityId": "d2028af666c48f4a", "scanner": "scanner-primary", "fingerprint": "c6069f58a04d43f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8e0854feecf620b", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1651)"}, "properties": {"repobilityId": "4367fd3f51004f53", "scanner": "scanner-primary", "fingerprint": "c8e0854feecf620b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-20499a1d261cf89b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:1659)"}, "properties": {"repobilityId": "22343f603b988059", "scanner": "scanner-primary", "fingerprint": "20499a1d261cf89b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bec046ac3e33e385", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:1879)"}, "properties": {"repobilityId": "e5fec203e879d350", "scanner": "scanner-primary", "fingerprint": "bec046ac3e33e385", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2865ba15e2b4b44", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2037)"}, "properties": {"repobilityId": "56c4ef21bf1f6c42", "scanner": "scanner-primary", "fingerprint": "f2865ba15e2b4b44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a5fc4e2bd1f2d7a", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/orgs/switch (static/js/settings.js:2136)"}, "properties": {"repobilityId": "eabcb8f9a3e167ed", "scanner": "scanner-primary", "fingerprint": "5a5fc4e2bd1f2d7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c64b7b88ba59a13", "level": "error", "message": {"text": "Dangling fetch: PUT /api/auth/org/privacy (static/js/settings.js:2166)"}, "properties": {"repobilityId": "4b333f149f596ab2", "scanner": "scanner-primary", "fingerprint": "3c64b7b88ba59a13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff8708411dd2566b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/change-password (static/js/settings.js:2202)"}, "properties": {"repobilityId": "ff4d0072dbbacb5f", "scanner": "scanner-primary", "fingerprint": "ff8708411dd2566b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-26de996c7bc86053", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/2fa/status (static/js/settings.js:2227)"}, "properties": {"repobilityId": "87cde25b9dd857d8", "scanner": "scanner-primary", "fingerprint": "26de996c7bc86053", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f2857e0873fc71e", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/2fa/disable (static/js/settings.js:2246)"}, "properties": {"repobilityId": "7617c8cf96cd3c20", "scanner": "scanner-primary", "fingerprint": "4f2857e0873fc71e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dadbefe692b37bdc", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/2fa/setup (static/js/settings.js:2266)"}, "properties": {"repobilityId": "23d4e23c285ee9fa", "scanner": "scanner-primary", "fingerprint": "dadbefe692b37bdc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-645b36c942aeed1a", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/2fa/confirm (static/js/settings.js:2291)"}, "properties": {"repobilityId": "dccfff8e2d2e908b", "scanner": "scanner-primary", "fingerprint": "645b36c942aeed1a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0fbff0cc83497d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2377)"}, "properties": {"repobilityId": "ea5f4e710eea20fd", "scanner": "scanner-primary", "fingerprint": "d0fbff0cc83497d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a28207811ec830c", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2387)"}, "properties": {"repobilityId": "9cbdec98271aa77d", "scanner": "scanner-primary", "fingerprint": "8a28207811ec830c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ceaa009382343b49", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2430)"}, "properties": {"repobilityId": "32fbe47fa5d4c688", "scanner": "scanner-primary", "fingerprint": "ceaa009382343b49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27f93d5bd83789ae", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2447)"}, "properties": {"repobilityId": "9a7e60edcbb22634", "scanner": "scanner-primary", "fingerprint": "27f93d5bd83789ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-994f627c70d7a0b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2458)"}, "properties": {"repobilityId": "3e50a09e8d8ab01d", "scanner": "scanner-primary", "fingerprint": "994f627c70d7a0b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-24e52651fb374b62", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2500)"}, "properties": {"repobilityId": "1eef0639b0b68d08", "scanner": "scanner-primary", "fingerprint": "24e52651fb374b62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c50151c5d10d10e2", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:2510)"}, "properties": {"repobilityId": "5d3381e73ec478f1", "scanner": "scanner-primary", "fingerprint": "c50151c5d10d10e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-99affb4e60e6d2ec", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2520)"}, "properties": {"repobilityId": "732b3f90fff06a92", "scanner": "scanner-primary", "fingerprint": "99affb4e60e6d2ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eaddeeb98ee5f608", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/settings.js:2564)"}, "properties": {"repobilityId": "bc4c7eb8b31a3ff3", "scanner": "scanner-primary", "fingerprint": "eaddeeb98ee5f608", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-06cf08d350d3db9c", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/settings.js:2589)"}, "properties": {"repobilityId": "568d8b3c2f0e5aa2", "scanner": "scanner-primary", "fingerprint": "06cf08d350d3db9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f8531425fa48771", "level": "error", "message": {"text": "Dangling fetch: POST /api/notes/fire-reminder (static/js/settings.js:2650)"}, "properties": {"repobilityId": "7dbaec90e1393786", "scanner": "scanner-primary", "fingerprint": "7f8531425fa48771", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61f6387ff84c5cca", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:2724)"}, "properties": {"repobilityId": "8a01118fcbd26f3d", "scanner": "scanner-primary", "fingerprint": "61f6387ff84c5cca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-175d500ed2181024", "level": "error", "message": {"text": "Dangling fetch: POST /api/email/accounts/${id}/set-default (static/js/settings.js:2756)"}, "properties": {"repobilityId": "923f460bd4f50001", "scanner": "scanner-primary", "fingerprint": "175d500ed2181024", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f9b81fe0b38a8aa", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:2766)"}, "properties": {"repobilityId": "493c7c94f0665f46", "scanner": "scanner-primary", "fingerprint": "3f9b81fe0b38a8aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5909cc633cca4e7f", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/config (static/js/settings.js:2920)"}, "properties": {"repobilityId": "5d46c77f2d9486cf", "scanner": "scanner-primary", "fingerprint": "5909cc633cca4e7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7767cde71bc7f8ad", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:2935)"}, "properties": {"repobilityId": "caa98a48c140dbb2", "scanner": "scanner-primary", "fingerprint": "7767cde71bc7f8ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f506e6299fc8394", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/style (static/js/settings.js:2944)"}, "properties": {"repobilityId": "59dbda68cc536591", "scanner": "scanner-primary", "fingerprint": "8f506e6299fc8394", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b8f163ca23d945a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/email/config (static/js/settings.js:2967)"}, "properties": {"repobilityId": "c631143261b6eb60", "scanner": "scanner-primary", "fingerprint": "5b8f163ca23d945a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9641a5bc8f9ef2a3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:2991)"}, "properties": {"repobilityId": "04a963d577f57d45", "scanner": "scanner-primary", "fingerprint": "9641a5bc8f9ef2a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd0e0dd133f2bb43", "level": "error", "message": {"text": "Dangling fetch: POST /api/email/extract-style (static/js/settings.js:3032)"}, "properties": {"repobilityId": "244e2e81da7611fd", "scanner": "scanner-primary", "fingerprint": "fd0e0dd133f2bb43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1227e46e08a65f27", "level": "error", "message": {"text": "Dangling fetch: PUT /api/email/style (static/js/settings.js:3058)"}, "properties": {"repobilityId": "410352721118564c", "scanner": "scanner-primary", "fingerprint": "1227e46e08a65f27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a70083d3db81b0fe", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3106)"}, "properties": {"repobilityId": "3dafcc1f9d29975e", "scanner": "scanner-primary", "fingerprint": "a70083d3db81b0fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74afa84dc24a333a", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3133)"}, "properties": {"repobilityId": "7debd23e63a305ff", "scanner": "scanner-primary", "fingerprint": "74afa84dc24a333a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e3f21ec5f2b374bc", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3166)"}, "properties": {"repobilityId": "919ed9ec0032f0b3", "scanner": "scanner-primary", "fingerprint": "e3f21ec5f2b374bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6d17d803af24cce1", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/integrations/${editingId}/test (static/js/settings.js:3246)"}, "properties": {"repobilityId": "2f96c130cfcfc37d", "scanner": "scanner-primary", "fingerprint": "6d17d803af24cce1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be45b78a00036f70", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3260)"}, "properties": {"repobilityId": "32bca385479de465", "scanner": "scanner-primary", "fingerprint": "be45b78a00036f70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-099f543e9fe99f8b", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3301)"}, "properties": {"repobilityId": "fe68193d107030f7", "scanner": "scanner-primary", "fingerprint": "099f543e9fe99f8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dc6f6d33ea8e461a", "level": "error", "message": {"text": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3302)"}, "properties": {"repobilityId": "31b3a7553ab5caf3", "scanner": "scanner-primary", "fingerprint": "dc6f6d33ea8e461a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2ba8fb7b5f11bdf", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3303)"}, "properties": {"repobilityId": "466d278bed342f1a", "scanner": "scanner-primary", "fingerprint": "d2ba8fb7b5f11bdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3653f0f0a8eb581e", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3304)"}, "properties": {"repobilityId": "8500ad63567564c1", "scanner": "scanner-primary", "fingerprint": "3653f0f0a8eb581e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecfc451f1af690c3", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3305)"}, "properties": {"repobilityId": "d894bf9dd36e0b35", "scanner": "scanner-primary", "fingerprint": "ecfc451f1af690c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e85a020cf5f9278", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:3306)"}, "properties": {"repobilityId": "adf966ce68bbe63a", "scanner": "scanner-primary", "fingerprint": "2e85a020cf5f9278", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be9a65b1497fe175", "level": "error", "message": {"text": "Dangling fetch: GET /api/vault/config (static/js/settings.js:3307)"}, "properties": {"repobilityId": "dce25d9ccb667ca9", "scanner": "scanner-primary", "fingerprint": "be9a65b1497fe175", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a57dcbe7f10c51a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/integrations/${id} (static/js/settings.js:3413)"}, "properties": {"repobilityId": "1eab7c5f47e07d78", "scanner": "scanner-primary", "fingerprint": "1a57dcbe7f10c51a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2d6f4558786e53e", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3414)"}, "properties": {"repobilityId": "063ecfbc65342d6c", "scanner": "scanner-primary", "fingerprint": "f2d6f4558786e53e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68761324381b00c4", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/contacts/clear (static/js/settings.js:3416)"}, "properties": {"repobilityId": "645e1547f20efc95", "scanner": "scanner-primary", "fingerprint": "68761324381b00c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c20f7fe8a4254392", "level": "error", "message": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3419)"}, "properties": {"repobilityId": "b45a634f70d65547", "scanner": "scanner-primary", "fingerprint": "c20f7fe8a4254392", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a00f1c66d38fb935", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/email/accounts/${id} (static/js/settings.js:3421)"}, "properties": {"repobilityId": "11625ba9894d4a57", "scanner": "scanner-primary", "fingerprint": "a00f1c66d38fb935", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6905c60f6285d17f", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/mcp/servers/${id} (static/js/settings.js:3422)"}, "properties": {"repobilityId": "7a84c6dcf4ce66be", "scanner": "scanner-primary", "fingerprint": "6905c60f6285d17f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1133eaa2304a121", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:3423)"}, "properties": {"repobilityId": "18371818fdb668be", "scanner": "scanner-primary", "fingerprint": "e1133eaa2304a121", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b6e2f299f0e47719", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations/presets (static/js/settings.js:3446)"}, "properties": {"repobilityId": "b97dc1a8692a193d", "scanner": "scanner-primary", "fingerprint": "b6e2f299f0e47719", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89dc9759a65fbe5f", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/integrations (static/js/settings.js:3486)"}, "properties": {"repobilityId": "64ca6fda771df3b7", "scanner": "scanner-primary", "fingerprint": "89dc9759a65fbe5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a92ca32dfbf537f9", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/integrations/${_editId}/test (static/js/settings.js:3538)"}, "properties": {"repobilityId": "167ff6e521201f9e", "scanner": "scanner-primary", "fingerprint": "a92ca32dfbf537f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd300ff162a8e949", "level": "error", "message": {"text": "Dangling fetch: GET /api/calendar/config (static/js/settings.js:3565)"}, "properties": {"repobilityId": "fe9f1f1f1c105f1d", "scanner": "scanner-primary", "fingerprint": "dd300ff162a8e949", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cff9004d600f3b17", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar/test (static/js/settings.js:3580)"}, "properties": {"repobilityId": "ffe601ed25748100", "scanner": "scanner-primary", "fingerprint": "cff9004d600f3b17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-17cc2fb1421e9759", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar/config (static/js/settings.js:3609)"}, "properties": {"repobilityId": "e65ef5b662993e15", "scanner": "scanner-primary", "fingerprint": "17cc2fb1421e9759", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22f32748910582bb", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/config (static/js/settings.js:3663)"}, "properties": {"repobilityId": "3c241f70da46276f", "scanner": "scanner-primary", "fingerprint": "22f32748910582bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6f5c7342b161170", "level": "error", "message": {"text": "Dangling fetch: PUT /api/contacts/config (static/js/settings.js:3671)"}, "properties": {"repobilityId": "3b8eb46d807f0ce2", "scanner": "scanner-primary", "fingerprint": "e6f5c7342b161170", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-792bcc45b8f935a5", "level": "error", "message": {"text": "Dangling fetch: POST /api/contacts/add (static/js/settings.js:3697)"}, "properties": {"repobilityId": "f648bb5d24c48ae4", "scanner": "scanner-primary", "fingerprint": "792bcc45b8f935a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6877bd1256f0330e", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/export?format=${encodeURIComponent(format)} (static/js/settings.js:3708)"}, "properties": {"repobilityId": "f890922872817ae7", "scanner": "scanner-primary", "fingerprint": "6877bd1256f0330e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31f7f6593b306816", "level": "error", "message": {"text": "Dangling fetch: POST /api/contacts/import (static/js/settings.js:3749)"}, "properties": {"repobilityId": "1d3ca9a89ff5e560", "scanner": "scanner-primary", "fingerprint": "31f7f6593b306816", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9004d65f424e5c17", "level": "error", "message": {"text": "Dangling fetch: GET /api/contacts/list (static/js/settings.js:3783)"}, "properties": {"repobilityId": "010fd5c363c78451", "scanner": "scanner-primary", "fingerprint": "9004d65f424e5c17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4ca27e7749892409", "level": "error", "message": {"text": "Dangling fetch: GET /api/email/accounts (static/js/settings.js:3865)"}, "properties": {"repobilityId": "7c94c3e2491057d1", "scanner": "scanner-primary", "fingerprint": "4ca27e7749892409", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-380d6bf9aa908bb8", "level": "error", "message": {"text": "Dangling fetch: POST /api/email/accounts/test (static/js/settings.js:4149)"}, "properties": {"repobilityId": "ebdabe37583d40e9", "scanner": "scanner-primary", "fingerprint": "380d6bf9aa908bb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aa1925865d569e85", "level": "error", "message": {"text": "Dangling fetch: GET /api/vault/config (static/js/settings.js:4272)"}, "properties": {"repobilityId": "57a8851ddf9c7db0", "scanner": "scanner-primary", "fingerprint": "aa1925865d569e85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cb6369c2912e7830", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/config (static/js/settings.js:4295)"}, "properties": {"repobilityId": "764d7b50061fd29b", "scanner": "scanner-primary", "fingerprint": "cb6369c2912e7830", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae64a52cf0c061a4", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/login (static/js/settings.js:4312)"}, "properties": {"repobilityId": "1b3f7ec005b6dbf9", "scanner": "scanner-primary", "fingerprint": "ae64a52cf0c061a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-722496eb1ff756fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/unlock (static/js/settings.js:4331)"}, "properties": {"repobilityId": "67a65c3814a58fba", "scanner": "scanner-primary", "fingerprint": "722496eb1ff756fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0ee8531f8e7b2bb", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/lock (static/js/settings.js:4348)"}, "properties": {"repobilityId": "9ddba09fbe3937ba", "scanner": "scanner-primary", "fingerprint": "a0ee8531f8e7b2bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ff4b4cad87bf45d", "level": "error", "message": {"text": "Dangling fetch: POST /api/vault/logout (static/js/settings.js:4358)"}, "properties": {"repobilityId": "9b5625a00ff1389b", "scanner": "scanner-primary", "fingerprint": "7ff4b4cad87bf45d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7120f56ada9338a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/settings.js:4371)"}, "properties": {"repobilityId": "999fae0ccb00b222", "scanner": "scanner-primary", "fingerprint": "7120f56ada9338a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c63bb0ddf2343816", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/servers/${srv.id}/reconnect (static/js/settings.js:4399)"}, "properties": {"repobilityId": "203ef67528880890", "scanner": "scanner-primary", "fingerprint": "c63bb0ddf2343816", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b2e3f7df9ece7996", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/mcp/servers/${srv.id} (static/js/settings.js:4409)"}, "properties": {"repobilityId": "7309fa8bd0ea561e", "scanner": "scanner-primary", "fingerprint": "b2e3f7df9ece7996", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d19565c865f5293e", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4418)"}, "properties": {"repobilityId": "d604d2e42c9c07df", "scanner": "scanner-primary", "fingerprint": "d19565c865f5293e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a8698762112a05f", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/mcp/servers/${srv.id}/tools (static/js/settings.js:4426)"}, "properties": {"repobilityId": "17497d5e01b1151d", "scanner": "scanner-primary", "fingerprint": "5a8698762112a05f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf30f51a23235a0a", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/servers (static/js/settings.js:4478)"}, "properties": {"repobilityId": "0fb757d80b53b6fd", "scanner": "scanner-primary", "fingerprint": "cf30f51a23235a0a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f2eea220dca98e2", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/users (static/js/admin.js:35)"}, "properties": {"repobilityId": "0a8bc81d2d4261d8", "scanner": "scanner-primary", "fingerprint": "2f2eea220dca98e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec6300e41cbd0b86", "level": "error", "message": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:140)"}, "properties": {"repobilityId": "510260609eb6f811", "scanner": "scanner-primary", "fingerprint": "ec6300e41cbd0b86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae5d6f6661bf60fe", "level": "error", "message": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(oldUsername)}/rename (static/js/admin.js:166)"}, "properties": {"repobilityId": "f15007145bc3f502", "scanner": "scanner-primary", "fingerprint": "ae5d6f6661bf60fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cec827bf95e98f84", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/users (static/js/admin.js:195)"}, "properties": {"repobilityId": "d4dd889ec80e71f9", "scanner": "scanner-primary", "fingerprint": "cec827bf95e98f84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-afc0fc3a090614ac", "level": "error", "message": {"text": "Dangling fetch: PUT /api/auth/users/${encodeURIComponent(username)}/privileges (static/js/admin.js:268)"}, "properties": {"repobilityId": "3da4510b68b58da0", "scanner": "scanner-primary", "fingerprint": "afc0fc3a090614ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-84528735b2fe7f5e", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/status (static/js/admin.js:294)"}, "properties": {"repobilityId": "d7df3c8b9f9811cf", "scanner": "scanner-primary", "fingerprint": "84528735b2fe7f5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e86765ed7202857", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/signup-toggle (static/js/admin.js:300)"}, "properties": {"repobilityId": "fdabca0475acb918", "scanner": "scanner-primary", "fingerprint": "0e86765ed7202857", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77708dd212efa595", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/users (static/js/admin.js:321)"}, "properties": {"repobilityId": "73a1cf4231550aa2", "scanner": "scanner-primary", "fingerprint": "77708dd212efa595", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fdc3fa52f48e03b", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers (static/js/admin.js:1387)"}, "properties": {"repobilityId": "d975a6c1c38cd9c6", "scanner": "scanner-primary", "fingerprint": "4fdc3fa52f48e03b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b3cf0da91aa28cb", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/servers/${btn.dataset.admMcpReconnect}/reconnect (static/js/admin.js:1417)"}, "properties": {"repobilityId": "cdc4d62cc786155d", "scanner": "scanner-primary", "fingerprint": "5b3cf0da91aa28cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd4078765b585b58", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/mcp/servers/${btn.dataset.admMcpToggle} (static/js/admin.js:1428)"}, "properties": {"repobilityId": "7db5092d9f23a8b2", "scanner": "scanner-primary", "fingerprint": "fd4078765b585b58", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-baf209519da1d1dc", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/mcp/servers/${btn.dataset.admMcpDelete} (static/js/admin.js:1435)"}, "properties": {"repobilityId": "025df0c95d137ef8", "scanner": "scanner-primary", "fingerprint": "baf209519da1d1dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c9ab1066c60eba8", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/servers/${sid}/tools (static/js/admin.js:1461)"}, "properties": {"repobilityId": "4953e8498540e5a5", "scanner": "scanner-primary", "fingerprint": "4c9ab1066c60eba8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-094c158181792f7c", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/mcp/servers/${serverId}/tools (static/js/admin.js:1505)"}, "properties": {"repobilityId": "0e13395779c45496", "scanner": "scanner-primary", "fingerprint": "094c158181792f7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9e48951b8553365", "level": "error", "message": {"text": "Dangling fetch: POST /api/mcp/servers (static/js/admin.js:1704)"}, "properties": {"repobilityId": "12c1492127180916", "scanner": "scanner-primary", "fingerprint": "d9e48951b8553365", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f36f99da7f793e5d", "level": "error", "message": {"text": "Dangling fetch: GET /api/personal (static/js/admin.js:1728)"}, "properties": {"repobilityId": "a9941645bd6fbc96", "scanner": "scanner-primary", "fingerprint": "f36f99da7f793e5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bf563f5eda89850", "level": "error", "message": {"text": "Dangling fetch: POST /api/personal/upload (static/js/admin.js:1787)"}, "properties": {"repobilityId": "7c68a274b14f6e7a", "scanner": "scanner-primary", "fingerprint": "1bf563f5eda89850", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd16cbfed0228fa4", "level": "error", "message": {"text": "Dangling fetch: POST /api/personal/add_directory (static/js/admin.js:1808)"}, "properties": {"repobilityId": "4cc76edf608593b6", "scanner": "scanner-primary", "fingerprint": "fd16cbfed0228fa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a9cb284b4e2f10f", "level": "error", "message": {"text": "Dangling fetch: POST /api/personal/reload (static/js/admin.js:1819)"}, "properties": {"repobilityId": "baaf7470c4932fc8", "scanner": "scanner-primary", "fingerprint": "4a9cb284b4e2f10f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d6978745e032f4a", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/features (static/js/admin.js:1965)"}, "properties": {"repobilityId": "df4f328d90aa01b3", "scanner": "scanner-primary", "fingerprint": "1d6978745e032f4a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-396fe43181fea89a", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/features (static/js/admin.js:1975)"}, "properties": {"repobilityId": "47d189bf59a3c285", "scanner": "scanner-primary", "fingerprint": "396fe43181fea89a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b88e413c6dd2ce6", "level": "error", "message": {"text": "Dangling fetch: GET /api/storage/status (static/js/admin.js:2037)"}, "properties": {"repobilityId": "8223cfe44ecfb697", "scanner": "scanner-primary", "fingerprint": "3b88e413c6dd2ce6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57af6bb17677ad45", "level": "error", "message": {"text": "Dangling fetch: POST /api/storage/config (static/js/admin.js:2105)"}, "properties": {"repobilityId": "872eac66f0f490d2", "scanner": "scanner-primary", "fingerprint": "57af6bb17677ad45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dfb1be9085983485", "level": "error", "message": {"text": "Dangling fetch: POST /api/storage/test (static/js/admin.js:2131)"}, "properties": {"repobilityId": "efdcde36599232a2", "scanner": "scanner-primary", "fingerprint": "dfb1be9085983485", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e897591b8faa9b33", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/admin/wipe/${kind} (static/js/admin.js:2213)"}, "properties": {"repobilityId": "21b2293a358b739b", "scanner": "scanner-primary", "fingerprint": "e897591b8faa9b33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fadf9826980586f0", "level": "error", "message": {"text": "Dangling fetch: GET /api/stt/stats (static/js/voiceRecorder.js:31)"}, "properties": {"repobilityId": "1cbdb478a5f7be2b", "scanner": "scanner-primary", "fingerprint": "fadf9826980586f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6cdae84c30a45d1", "level": "error", "message": {"text": "Dangling fetch: POST /api/stt/transcribe (static/js/voiceRecorder.js:115)"}, "properties": {"repobilityId": "c111ef5e5dcae6af", "scanner": "scanner-primary", "fingerprint": "c6cdae84c30a45d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94d6dadd16ab3c91", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/emailLibrary.js:322)"}, "properties": {"repobilityId": "609a2268609b5a32", "scanner": "scanner-primary", "fingerprint": "94d6dadd16ab3c91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ed56ab8047c9ffb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/status (static/js/modeSwitcher.js:20)"}, "properties": {"repobilityId": "ba406f4e7fbf2e3e", "scanner": "scanner-primary", "fingerprint": "ed56ab8047c9ffb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-03886b7380aec987", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/active-mode (static/js/modeSwitcher.js:26)"}, "properties": {"repobilityId": "08b6ed08f12b6acf", "scanner": "scanner-primary", "fingerprint": "03886b7380aec987", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf666acd6a31e732", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/features (static/js/censor.js:56)"}, "properties": {"repobilityId": "f02ada5b5cb164cf", "scanner": "scanner-primary", "fingerprint": "cf666acd6a31e732", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2df9348a795f4b5", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/keyboard-shortcuts.js:59)"}, "properties": {"repobilityId": "e3ee62346d67a695", "scanner": "scanner-primary", "fingerprint": "a2df9348a795f4b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2769cfbe0268746a", "level": "error", "message": {"text": "Dangling fetch: GET /api/brains/${encodeURIComponent(brainId)} (static/js/memoryGraph.js:401)"}, "properties": {"repobilityId": "c888df5fc3ff3833", "scanner": "scanner-primary", "fingerprint": "2769cfbe0268746a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e50e84d6613058a5", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/status (static/js/init.js:29)"}, "properties": {"repobilityId": "31d8a7179d790056", "scanner": "scanner-primary", "fingerprint": "e50e84d6613058a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2211455235310cb9", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/tasks.js:184)"}, "properties": {"repobilityId": "991036a197696a5e", "scanner": "scanner-primary", "fingerprint": "2211455235310cb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3aa05e4bf120a83b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/settings (static/js/tasks.js:197)"}, "properties": {"repobilityId": "34ba310ca4141da5", "scanner": "scanner-primary", "fingerprint": "3aa05e4bf120a83b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b808e80d1b663c10", "level": "error", "message": {"text": "Dangling fetch: GET /api/hwfit/models?${fallbackParams} (static/js/cookbook-hwfit.js:517)"}, "properties": {"repobilityId": "78de1daaae8e7f30", "scanner": "scanner-primary", "fingerprint": "b808e80d1b663c10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a2807e84ef40018", "level": "error", "message": {"text": "Dangling fetch: POST /api/notes/fire-reminder (static/js/notes.js:955)"}, "properties": {"repobilityId": "5505a9ab13f49464", "scanner": "scanner-primary", "fingerprint": "5a2807e84ef40018", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8405bfa7cb12f623", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/status (static/js/theme.js:108)"}, "properties": {"repobilityId": "876386ae88b391b5", "scanner": "scanner-primary", "fingerprint": "8405bfa7cb12f623", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c06891a4843e7223", "level": "error", "message": {"text": "Dangling fetch: PUT /api/prefs/custom-themes (static/js/theme.js:197)"}, "properties": {"repobilityId": "b0749f3201e129d7", "scanner": "scanner-primary", "fingerprint": "c06891a4843e7223", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4cd327b2bf9b7937", "level": "error", "message": {"text": "Dangling fetch: PUT /api/prefs/theme (static/js/theme.js:567)"}, "properties": {"repobilityId": "fff35daf0b316817", "scanner": "scanner-primary", "fingerprint": "4cd327b2bf9b7937", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b330a3f2bdb9368", "level": "error", "message": {"text": "Dangling fetch: GET /api/prefs/theme (static/js/theme.js:591)"}, "properties": {"repobilityId": "665d917ea9c0ee70", "scanner": "scanner-primary", "fingerprint": "4b330a3f2bdb9368", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac2d84df8235e9d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/fonts/custom (static/js/theme.js:1240)"}, "properties": {"repobilityId": "d09cacb662c5a4fb", "scanner": "scanner-primary", "fingerprint": "ac2d84df8235e9d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c8ee8fad5bb5bff", "level": "error", "message": {"text": "Dangling fetch: GET /api/prefs/custom-themes (static/js/theme.js:2188)"}, "properties": {"repobilityId": "04af777c4b80cd59", "scanner": "scanner-primary", "fingerprint": "1c8ee8fad5bb5bff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db4b2c5e757b41b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/status (static/js/cookbook.js:139)"}, "properties": {"repobilityId": "0ddc02b954b10ed7", "scanner": "scanner-primary", "fingerprint": "db4b2c5e757b41b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b546437398cb8c44", "level": "error", "message": {"text": "Dangling fetch: GET /api/hwfit/system?${qp} (static/js/cookbook.js:1281)"}, "properties": {"repobilityId": "8b0c465e011853bb", "scanner": "scanner-primary", "fingerprint": "b546437398cb8c44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-11d7753c67079a56", "level": "error", "message": {"text": "Dangling fetch: PUT /api/upload/${att.id}/vision (static/js/chatRenderer.js:323)"}, "properties": {"repobilityId": "51a9b2becb6d73fb", "scanner": "scanner-primary", "fingerprint": "11d7753c67079a56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e654b315a1d8d0d9", "level": "error", "message": {"text": "Dangling fetch: GET /api/upload/${att.id}/vision (static/js/chatRenderer.js:387)"}, "properties": {"repobilityId": "8130f751e49967bd", "scanner": "scanner-primary", "fingerprint": "e654b315a1d8d0d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dcdeeb9cec197350", "level": "error", "message": {"text": "Dangling fetch: GET /api/auth/settings (static/js/tts-ai.js:35)"}, "properties": {"repobilityId": "921c701f8ac353cc", "scanner": "scanner-primary", "fingerprint": "dcdeeb9cec197350", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7590a950e482284f", "level": "error", "message": {"text": "Dangling fetch: GET /api/tts/stats (static/js/tts-ai.js:44)"}, "properties": {"repobilityId": "cb60482bec4ee15c", "scanner": "scanner-primary", "fingerprint": "7590a950e482284f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f84e24a78dabaa71", "level": "error", "message": {"text": "Dangling fetch: POST /api/tts/synthesize (static/js/tts-ai.js:132)"}, "properties": {"repobilityId": "2dff226c34589b76", "scanner": "scanner-primary", "fingerprint": "f84e24a78dabaa71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62af9757d2e19fe4", "level": "error", "message": {"text": "Dangling fetch: GET /api/hwfit/profiles?${params} (static/js/cookbookServe.js:828)"}, "properties": {"repobilityId": "bf35bc25d632529e", "scanner": "scanner-primary", "fingerprint": "62af9757d2e19fe4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ccae0de7930e2ffd", "level": "error", "message": {"text": "Dangling fetch: GET /api/model/cached${params} (static/js/cookbookServe.js:1965)"}, "properties": {"repobilityId": "e56038f1cdee8ced", "scanner": "scanner-primary", "fingerprint": "ccae0de7930e2ffd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-504c1e942221dd39", "level": "note", "message": {"text": "Unused endpoint: GET /api/generated-image/{filename}"}, "properties": {"repobilityId": "b1c4aa0302c9d5ae", "scanner": "scanner-primary", "fingerprint": "504c1e942221dd39", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "49cf5d64a7f531bc", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5f9819d9ecb49931", "level": "note", "message": {"text": "Unused endpoint: GET /calendar"}, "properties": {"repobilityId": "0998bbd1f23308ad", "scanner": "scanner-primary", "fingerprint": "5f9819d9ecb49931", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9c4ef629fd907879", "level": "note", "message": {"text": "Unused endpoint: GET /cookbook"}, "properties": {"repobilityId": "0c7fa985c8ec1ee4", "scanner": "scanner-primary", "fingerprint": "9c4ef629fd907879", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2036430dc3a32669", "level": "note", "message": {"text": "Unused endpoint: GET /email"}, "properties": {"repobilityId": "f6e544d9ab713485", "scanner": "scanner-primary", "fingerprint": "2036430dc3a32669", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-279d61489dedfa5f", "level": "note", "message": {"text": "Unused endpoint: GET /memory"}, "properties": {"repobilityId": "cec7347cda53dbb2", "scanner": "scanner-primary", "fingerprint": "279d61489dedfa5f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a460cef1f3efcd6e", "level": "note", "message": {"text": "Unused endpoint: GET /gallery"}, "properties": {"repobilityId": "a479455ebc4b3ac9", "scanner": "scanner-primary", "fingerprint": "a460cef1f3efcd6e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd0e06afbaab19b3", "level": "note", "message": {"text": "Unused endpoint: GET /tasks"}, "properties": {"repobilityId": "0911789277e42d0a", "scanner": "scanner-primary", "fingerprint": "fd0e06afbaab19b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea1e9787d0246672", "level": "note", "message": {"text": "Unused endpoint: GET /mission-control"}, "properties": {"repobilityId": "036d8b6516d3c0a3", "scanner": "scanner-primary", "fingerprint": "ea1e9787d0246672", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3140e61d7cac5091", "level": "note", "message": {"text": "Unused endpoint: GET /agents"}, "properties": {"repobilityId": "9549251afc2d79d6", "scanner": "scanner-primary", "fingerprint": "3140e61d7cac5091", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-60ce72dcd3e9a568", "level": "note", "message": {"text": "Unused endpoint: GET /library"}, "properties": {"repobilityId": "4cde4cc76403e50a", "scanner": "scanner-primary", "fingerprint": "60ce72dcd3e9a568", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f91497d0b1854aed", "level": "note", "message": {"text": "Unused endpoint: GET /business/chemical-supplier"}, "properties": {"repobilityId": "414a5b3a641f6a65", "scanner": "scanner-primary", "fingerprint": "f91497d0b1854aed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-035a846443eafdf3", "level": "note", "message": {"text": "Unused endpoint: GET /business/chemical-supplier/{page_name}"}, "properties": {"repobilityId": "120db5a6940cec2e", "scanner": "scanner-primary", "fingerprint": "035a846443eafdf3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67f8e76d421fa820", "level": "note", "message": {"text": "Unused endpoint: GET /business/contech"}, "properties": {"repobilityId": "94e177edc1491db8", "scanner": "scanner-primary", "fingerprint": "67f8e76d421fa820", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0d7120d4919e0849", "level": "note", "message": {"text": "Unused endpoint: GET /business/contech/{page_name}"}, "properties": {"repobilityId": "995e1a52fcc239b8", "scanner": "scanner-primary", "fingerprint": "0d7120d4919e0849", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a282a367387e9e3c", "level": "note", "message": {"text": "Unused endpoint: GET /backgrounds"}, "properties": {"repobilityId": "18705a0ec462241d", "scanner": "scanner-primary", "fingerprint": "a282a367387e9e3c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a4dfcad3eb1618a", "level": "note", "message": {"text": "Unused endpoint: GET /login"}, "properties": {"repobilityId": "d75e47f51b6ea43a", "scanner": "scanner-primary", "fingerprint": "6a4dfcad3eb1618a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c9e449c3b9e73b73", "level": "note", "message": {"text": "Unused endpoint: ANY /logout"}, "properties": {"repobilityId": "1d0f5ae7dd7dbf56", "scanner": "scanner-primary", "fingerprint": "c9e449c3b9e73b73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c2507f3182299a0", "level": "note", "message": {"text": "Unused endpoint: GET /api/version"}, "properties": {"repobilityId": "93e43274a2d011ed", "scanner": "scanner-primary", "fingerprint": "6c2507f3182299a0", "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": "11cf961f16829593", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52765bcf81a6e09b", "level": "note", "message": {"text": "Unused endpoint: GET /api/ready"}, "properties": {"repobilityId": "5eebc0b214f3e310", "scanner": "scanner-primary", "fingerprint": "52765bcf81a6e09b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f279069c5e862217", "level": "note", "message": {"text": "Unused endpoint: GET /pair"}, "properties": {"repobilityId": "2aa8fdf59e785ef9", "scanner": "scanner-primary", "fingerprint": "f279069c5e862217", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e343c1fa58c93a21", "level": "note", "message": {"text": "Unused endpoint: POST /pair"}, "properties": {"repobilityId": "050ef2bdca96ec79", "scanner": "scanner-primary", "fingerprint": "e343c1fa58c93a21", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-012773a464fa99c8", "level": "note", "message": {"text": "Unused endpoint: POST /numbers/import"}, "properties": {"repobilityId": "a65a291c91e60d95", "scanner": "scanner-primary", "fingerprint": "012773a464fa99c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1aa0d24e7b016aef", "level": "note", "message": {"text": "Unused endpoint: GET /numbers"}, "properties": {"repobilityId": "c801f76e71c3f2fa", "scanner": "scanner-primary", "fingerprint": "1aa0d24e7b016aef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6406e307cc4c796", "level": "note", "message": {"text": "Unused endpoint: POST /numbers/{number_id}/provision"}, "properties": {"repobilityId": "a60ea945e774a58f", "scanner": "scanner-primary", "fingerprint": "a6406e307cc4c796", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53c4c0323773185a", "level": "note", "message": {"text": "Unused endpoint: POST /assignments"}, "properties": {"repobilityId": "29fda7971bc59027", "scanner": "scanner-primary", "fingerprint": "53c4c0323773185a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d97657e3dc9ab2e9", "level": "note", "message": {"text": "Unused endpoint: DELETE /assignments/{assignment_id}"}, "properties": {"repobilityId": "f7be4464dd474b29", "scanner": "scanner-primary", "fingerprint": "d97657e3dc9ab2e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1b7bee247ffc801", "level": "note", "message": {"text": "Unused endpoint: GET /summary"}, "properties": {"repobilityId": "845edd7fdba876c1", "scanner": "scanner-primary", "fingerprint": "e1b7bee247ffc801", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7b8d6d9e9ebb4b09", "level": "note", "message": {"text": "Unused endpoint: POST /panic"}, "properties": {"repobilityId": "756ee257c4f99ed4", "scanner": "scanner-primary", "fingerprint": "7b8d6d9e9ebb4b09", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5d517791c2b3ade4", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/openwa"}, "properties": {"repobilityId": "cb06bed4ccd13d00", "scanner": "scanner-primary", "fingerprint": "5d517791c2b3ade4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-251e3dbd600caba5", "level": "note", "message": {"text": "Unused endpoint: GET /v1/models"}, "properties": {"repobilityId": "c7b297b7ffd2e6e3", "scanner": "scanner-primary", "fingerprint": "251e3dbd600caba5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-347ef23ab91848f0", "level": "note", "message": {"text": "Unused endpoint: POST /v1/images/generations"}, "properties": {"repobilityId": "4ae80fc74e1e1d29", "scanner": "scanner-primary", "fingerprint": "347ef23ab91848f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-970f907bd25af793", "level": "note", "message": {"text": "Unused endpoint: POST /v1/images/inpaint"}, "properties": {"repobilityId": "998f810191fa4cec", "scanner": "scanner-primary", "fingerprint": "970f907bd25af793", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35bd0071352fd56b", "level": "note", "message": {"text": "Unused endpoint: POST /v1/images/harmonize"}, "properties": {"repobilityId": "0e11b631099c9da7", "scanner": "scanner-primary", "fingerprint": "35bd0071352fd56b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-45c45555041fa74b", "level": "note", "message": {"text": "Unused endpoint: GET /system"}, "properties": {"repobilityId": "8254964a4eb7a3eb", "scanner": "scanner-primary", "fingerprint": "45c45555041fa74b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d9534131ed7ca41", "level": "note", "message": {"text": "Unused endpoint: GET /profiles"}, "properties": {"repobilityId": "b41a216d7e299cd6", "scanner": "scanner-primary", "fingerprint": "6d9534131ed7ca41", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c0aed83ee15ffc6", "level": "note", "message": {"text": "Unused endpoint: GET /image-models"}, "properties": {"repobilityId": "4433cd7ffec85cf3", "scanner": "scanner-primary", "fingerprint": "5c0aed83ee15ffc6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a12a9bd91f7e8b8", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/upload"}, "properties": {"repobilityId": "56fc721c0830e6dc", "scanner": "scanner-primary", "fingerprint": "4a12a9bd91f7e8b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2e4d4797e5043e1d", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/{image_id}/replace"}, "properties": {"repobilityId": "1fbb9680d3ec8d4a", "scanner": "scanner-primary", "fingerprint": "2e4d4797e5043e1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-32bc838333a2769d", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/{image_id}/rename"}, "properties": {"repobilityId": "6241440c47dedc4b", "scanner": "scanner-primary", "fingerprint": "32bc838333a2769d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bd2566dc90d6d2a5", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/{image_id}/rotate"}, "properties": {"repobilityId": "bd3a1c26ecc4b6bb", "scanner": "scanner-primary", "fingerprint": "bd2566dc90d6d2a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a29f328b3a0ad20", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/ai-upscale"}, "properties": {"repobilityId": "a11f6f9cda07c6a2", "scanner": "scanner-primary", "fingerprint": "6a29f328b3a0ad20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-daa36793be0a19b7", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/style-transfer"}, "properties": {"repobilityId": "551600256fd1ad01", "scanner": "scanner-primary", "fingerprint": "daa36793be0a19b7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a247b71180396f44", "level": "note", "message": {"text": "Unused endpoint: GET /api/gallery/tags"}, "properties": {"repobilityId": "e7022aca0da64a04", "scanner": "scanner-primary", "fingerprint": "a247b71180396f44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b084476c864f2b2a", "level": "note", "message": {"text": "Unused endpoint: GET /api/gallery/albums"}, "properties": {"repobilityId": "090f70e7c87b4b88", "scanner": "scanner-primary", "fingerprint": "b084476c864f2b2a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-89b3da950dd4fd8d", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/albums"}, "properties": {"repobilityId": "60c9ba6d81b0bd66", "scanner": "scanner-primary", "fingerprint": "89b3da950dd4fd8d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c8fd71877c420be", "level": "note", "message": {"text": "Unused endpoint: GET /api/gallery/stats"}, "properties": {"repobilityId": "63e0463a3e262ee6", "scanner": "scanner-primary", "fingerprint": "3c8fd71877c420be", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4b9f5b4ee13fd47f", "level": "note", "message": {"text": "Unused endpoint: POST /api/gallery/ai-tag-batch"}, "properties": {"repobilityId": "95a36fe71e33ca9e", "scanner": "scanner-primary", "fingerprint": "4b9f5b4ee13fd47f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09b1735973f6af1a", "level": "note", "message": {"text": "Unused endpoint: GET /api/gallery/{image_id}"}, "properties": {"repobilityId": "ddb91a3002b2004a", "scanner": "scanner-primary", "fingerprint": "09b1735973f6af1a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}