{"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-1e2ce7bbdc3d67c4", "name": "Possibly dead Python function: auth_middleware", "shortDescription": {"text": "Possibly dead Python function: auth_middleware"}, "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-be83cc579f18c703", "name": "Possibly dead Python function: search_archive", "shortDescription": {"text": "Possibly dead Python function: search_archive"}, "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-0119cb9422c52f9f", "name": "Possibly dead Python function: download_text", "shortDescription": {"text": "Possibly dead Python function: download_text"}, "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-ce7fc1eff25b96ef", "name": "Possibly dead Python function: passes_mode", "shortDescription": {"text": "Possibly dead Python function: passes_mode"}, "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-6680c0368abb24c2", "name": "Possibly dead Python function: looks_unnamed", "shortDescription": {"text": "Possibly dead Python function: looks_unnamed"}, "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-7f85d61a095a75f6", "name": "Possibly dead Python function: import_source_path", "shortDescription": {"text": "Possibly dead Python function: import_source_path"}, "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-013819be3c178bd6", "name": "Possibly dead Python function: list_operator_events", "shortDescription": {"text": "Possibly dead Python function: list_operator_events"}, "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-a3909096caadb127", "name": "Possibly dead Python function: run_rerank_assessment", "shortDescription": {"text": "Possibly dead Python function: run_rerank_assessment"}, "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-e89475f7a828431a", "name": "Possibly dead Python function: fail_session", "shortDescription": {"text": "Possibly dead Python function: fail_session"}, "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-e53bab9006813892", "name": "Possibly dead Python function: embed_text_vertex", "shortDescription": {"text": "Possibly dead Python function: embed_text_vertex"}, "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-251698f74a85bbcd", "name": "Possibly dead Python function: run_variance_suite", "shortDescription": {"text": "Possibly dead Python function: run_variance_suite"}, "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-af1c6edcb398e2d2", "name": "Possibly dead Python function: bold", "shortDescription": {"text": "Possibly dead Python function: bold"}, "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-04abb975b97e2928", "name": "Possibly dead Python function: italic", "shortDescription": {"text": "Possibly dead Python function: italic"}, "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-16da3d9598b9c233", "name": "Possibly dead Python function: header", "shortDescription": {"text": "Possibly dead Python function: header"}, "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-5ce16e4cc6a29ada", "name": "Possibly dead Python function: bullet", "shortDescription": {"text": "Possibly dead Python function: bullet"}, "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-02ae8bb023c6a526", "name": "Possibly dead Python function: require_maximus_or_operator", "shortDescription": {"text": "Possibly dead Python function: require_maximus_or_operator"}, "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-254a0d7dfb5be1ae", "name": "Possibly dead Python function: require_operator", "shortDescription": {"text": "Possibly dead Python function: require_operator"}, "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-eb0ba7ba002a86be", "name": "Possibly dead Python function: require_hermes_or_operator", "shortDescription": {"text": "Possibly dead Python function: require_hermes_or_operator"}, "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-3c8efa38cc47e6eb", "name": "Possibly dead Python function: require_maximus_or_operator", "shortDescription": {"text": "Possibly dead Python function: require_maximus_or_operator"}, "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-e86f5ab748dbb235", "name": "Possibly dead Python function: require_operator", "shortDescription": {"text": "Possibly dead Python function: require_operator"}, "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-25b021146eb1d847", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/SkillsTab.tsx:217", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/SkillsTab.tsx:217"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67deca9e8099f929", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/MemoryPersonaTab.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/MemoryPersonaTab.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57db517ea72ba6f6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/OverviewTab.tsx:175", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/OverviewTab.tsx:175"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bfdacce0423a281", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/CostsTab.tsx:123", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/CostsTab.tsx:123"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbb9d93a1c953c44", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/app-shell.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/app-shell.tsx:133"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4905939c89c5c242", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-playback.tsx:557", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-playback.tsx:557"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fed4aaab084bf404", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-list.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-list.tsx:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfc7bc1b7d584f82", "name": "React Flow <Controls> without dark theming \u2014 client/src/components/ui/flow-map.tsx:671", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 client/src/components/ui/flow-map.tsx:671"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0b7afbf0389b380", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/ui/flow-map.tsx:316", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/ui/flow-map.tsx:316"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b80da5449012cd53", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/air-quality-card.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/air-quality-card.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f8043e3430407ad", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/droplet-card.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/droplet-card.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ad343317196fc86", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/service-card.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/service-card.tsx:72"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9aa51ad12f4b7c6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/claw-lab/research-sessions.tsx:148", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/claw-lab/research-sessions.tsx:148"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fcfaca7839487e4", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/runtime-view.tsx:254", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/runtime-view.tsx:254"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5005a9ba683dea6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/security-view.tsx:467", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/security-view.tsx:467"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-407a502273a1203a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/users-view.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/users-view.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0468b7f8265314be", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/family-view.tsx:210", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/family-view.tsx:210"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-195debce2011109a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/ha-binding-panel.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/ha-binding-panel.tsx:108"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4abf102fb2daf414", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/property-panel.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/property-panel.tsx:827"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6e0df2d1973e418", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/project-sidebar.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/project-sidebar.tsx:78"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-334fa35ec7a5f317", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/staging-dock.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/staging-dock.tsx:156"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a403ef0e37a53db7", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/infra-binding-pane", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/infra-binding-panel.tsx:150"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-170cdfeaab5fb941", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/binding-review-pan", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/binding-review-panel.tsx:143"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-373aa50942392fda", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-device-panel.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-device-panel.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd5a61ddd67f6863", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-scene-panel.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-scene-panel.tsx:182"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8de12d427d887a80", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/device-health-pane", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/device-health-panel.tsx:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-802016eb3397a348", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/visual-fx/game-engine-lab.tsx:382", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/visual-fx/game-engine-lab.tsx:382"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4b29ab8a66cd5ae", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/voice-lab/voice-forge.tsx:166", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/voice-lab/voice-forge.tsx:166"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e30e31574517496", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusVisionWorkspace.tsx:132", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusVisionWorkspace.tsx:132"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fafb0164e66b657b", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusCapabilitiesSidebar.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusCapabilitiesSidebar.tsx:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-beed0cedbbcc3de6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusGpuStatus.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusGpuStatus.tsx:38"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e78ef061a9449a3e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/claw-lab.tsx:348", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/claw-lab.tsx:348"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d6363722a6e8f5", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/knowledge.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/knowledge.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c852a94b28f77be2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/calendar.tsx:587", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/calendar.tsx:587"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90df905b01baec69", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/spatial-lab.tsx:957", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/spatial-lab.tsx:957"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e46ab6030d67020", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/sensor-health.tsx:227", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/sensor-health.tsx:227"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b327a4e9c25da71d", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/projects.tsx:487", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/projects.tsx:487"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2f60fe0df3ad181", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/backups.tsx:321", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/backups.tsx:321"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58a9a6a30ed4a907", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/media-library.tsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/media-library.tsx:224"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33fb5364a71ce5b2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/dashboard.tsx:843", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/dashboard.tsx:843"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0b59432302b0ea2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/public-map.tsx:176", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/public-map.tsx:176"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cecbfe8968145d3e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/climate-wall.tsx:373", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/climate-wall.tsx:373"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24c6387990fb5f14", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/workspaces.tsx:604", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/workspaces.tsx:604"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55e59f6a04758f03", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/fleet.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/fleet.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0dba8abfbe7b8f0", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice.tsx:256", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice.tsx:256"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-736a07d89633b856", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/playground.tsx:659", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/playground.tsx:659"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8bfb00cfdc5e972f", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/safeshare.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/safeshare.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2942edf25ad2d51", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/wifi-sensing.tsx:477", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/wifi-sensing.tsx:477"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9caeb1cb217c5a97", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/motion-wall.tsx:579", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/motion-wall.tsx:579"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f063d61219f855a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/operator-pack.tsx:1322", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/operator-pack.tsx:1322"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47630abd3dedc88b", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/transcode.tsx:418", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/transcode.tsx:418"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d297dd1199a5bc63", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice-lab.tsx:390", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice-lab.tsx:390"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cf8f6f708e1e870", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/xkeys-manager.tsx:200", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/xkeys-manager.tsx:200"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e7655df2b93b1b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/ui/mermaid.tsx:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/ui/mermaid.tsx:35"}, "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-823a65e5d90110e5", "name": "Insecure pattern 'subprocess_shell_true' in server/xkeys_service.py:1301", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in server/xkeys_service.py:1301"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a72742893f22f6e", "name": "Very large file: client/src/components/claw-lab/research-sessions.tsx (1331 lines)", "shortDescription": {"text": "Very large file: client/src/components/claw-lab/research-sessions.tsx (1331 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee3506836a3bf272", "name": "Very large file: client/src/components/condo-castle/editor/floor-plan-editor.tsx (1282 lines)", "shortDescription": {"text": "Very large file: client/src/components/condo-castle/editor/floor-plan-editor.tsx (1282 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-a00180e1d2f19c05", "name": "Very large file: client/src/components/condo-castle/editor/panels/property-panel.tsx (1444 lines)", "shortDescription": {"text": "Very large file: client/src/components/condo-castle/editor/panels/property-panel.tsx (1444 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-f3b707632d706dee", "name": "Very large file: client/src/pages/spatial-lab.tsx (1212 lines)", "shortDescription": {"text": "Very large file: client/src/pages/spatial-lab.tsx (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-47e649a05b719219", "name": "Very large file: client/src/pages/splat.tsx (1183 lines)", "shortDescription": {"text": "Very large file: client/src/pages/splat.tsx (1183 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-849c595063d31423", "name": "Very large file: client/src/pages/motion-wall.tsx (1614 lines)", "shortDescription": {"text": "Very large file: client/src/pages/motion-wall.tsx (1614 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-857a48a5657fe957", "name": "Very large file: client/src/pages/operator-pack.tsx (3313 lines)", "shortDescription": {"text": "Very large file: client/src/pages/operator-pack.tsx (3313 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-abca697363f9d406", "name": "Very large file: server/xkeys_service.py (2090 lines)", "shortDescription": {"text": "Very large file: server/xkeys_service.py (2090 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-5cff8013132b794c", "name": "Very large file: server/tests/test_operator_pack.py (2791 lines)", "shortDescription": {"text": "Very large file: server/tests/test_operator_pack.py (2791 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-ebc642945fa45714", "name": "Very large file: server/lib/nemo_runtime.py (2207 lines)", "shortDescription": {"text": "Very large file: server/lib/nemo_runtime.py (2207 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-062bdf6ed403549b", "name": "Very large file: server/lib/claw_research_sessions.py (1242 lines)", "shortDescription": {"text": "Very large file: server/lib/claw_research_sessions.py (1242 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-15727ac20113fd4c", "name": "Very large file: server/routes/operator_pack.py (4898 lines)", "shortDescription": {"text": "Very large file: server/routes/operator_pack.py (4898 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-15bc9d3cf72e2382", "name": "Very large file: server/routes/sources.py (2695 lines)", "shortDescription": {"text": "Very large file: server/routes/sources.py (2695 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-97a7ea228c3b71cf", "name": "Very large file: server/routes/ingestion/legacy.py (3233 lines)", "shortDescription": {"text": "Very large file: server/routes/ingestion/legacy.py (3233 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-8478c06f5ddc3bc6", "name": "Very large file: server/routes/ingestion/shared.py (1515 lines)", "shortDescription": {"text": "Very large file: server/routes/ingestion/shared.py (1515 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "51 tests / 354 src (ratio 0.14)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 68 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 125 placeholder/mock markers across 43 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35347dd02049a95a", "name": "Commented-code block (5 lines) in client/src/components/ui/flow-map.tsx:116", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/components/ui/flow-map.tsx:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fadd5a681ca8cec4", "name": "Commented-code block (7 lines) in client/src/components/hermes/types.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/components/hermes/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48bf4843822072b5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/components/voice-lab/voice-forge.tsx:240", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/components/voice-lab/voice-forge.tsx:240"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a4583cdb3572e487", "name": "Commented-code block (5 lines) in client/src/lib/portal-nav.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/lib/portal-nav.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee1cc8872526c3ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/pages/operator-pack.tsx:2892", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/pages/operator-pack.tsx:2892"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b89002b73283d77", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useVoiceCall.ts:161", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useVoiceCall.ts:161"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f368e0ed7600fd1c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useSSE.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useSSE.ts: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-f2eb966dd417a773", "name": "Legacy-named symbol `pw_copy` in server/xkeys_service.py:202", "shortDescription": {"text": "Legacy-named symbol `pw_copy` in server/xkeys_service.py:202"}, "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-01c421bcba8759c4", "name": "Commented-code block (5 lines) in server/xkeys_service.py:1638", "shortDescription": {"text": "Commented-code block (5 lines) in server/xkeys_service.py:1638"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f6d5a32ea6a7409", "name": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:366", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:366"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a641009ce5067660", "name": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:370", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:370"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd97b19e4e44efaf", "name": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:374", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:374"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23a5d934511fca46", "name": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:391", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:391"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a64e1f1ced874d2", "name": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:395", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:395"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb5a2cb290656de4", "name": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:408", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:408"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fce0cc98f9f04d20", "name": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:412", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:412"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-382e56f4a802b842", "name": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:430", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:430"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3077aab27d0d3f49", "name": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:433", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:433"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bff591f8aa0e2092", "name": "Blocking `time.sleep(...)` inside `async def _anim_highlight_key` \u2014 server/xkeys_service.py:444", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_highlight_key` \u2014 server/xkeys_service.py:444"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-837ebbe264685c94", "name": "Blocking `time.sleep(...)` inside `async def _anim_success` \u2014 server/xkeys_service.py:466", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_success` \u2014 server/xkeys_service.py:466"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f64019f49b1bb788", "name": "Blocking `time.sleep(...)` inside `async def _anim_failure` \u2014 server/xkeys_service.py:478", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_failure` \u2014 server/xkeys_service.py:478"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31eabcaa4c5ac405", "name": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:493", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:493"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-726f72e7f59f59ac", "name": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:500", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:500"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eaaf7fa24bdeebe8", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:509", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:509"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18e3b91c5f58cd87", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:511", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:511"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9780f24dd40f42c", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:519", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:519"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23b835baed62a675", "name": "Blocking `time.sleep(...)` inside `async def _anim_fill_up` \u2014 server/xkeys_service.py:531", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_fill_up` \u2014 server/xkeys_service.py:531"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5332d0e20576b01", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:544", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:544"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4dd9929d9570815", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:549", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:549"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3c91f15a98d9a56", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:575", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:575"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-596e62e9b7450799", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:579", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:579"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4cbface2409feb71", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:584", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:584"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c903164741ac4c55", "name": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:588", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:588"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-187abff5c77a22a5", "name": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:604", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:604"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee7f61228b577881", "name": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:628", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:628"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dceae1974beb2930", "name": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:632", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:632"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67bda4aff644625a", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:641", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:641"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-544098d18bb95993", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:643", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:643"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9cc9eb886f715c34", "name": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:687", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:687"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa55c09299154da1", "name": "Blocking `time.sleep(...)` inside `async def _anim_radar_sweep` \u2014 server/xkeys_service.py:730", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_radar_sweep` \u2014 server/xkeys_service.py:730"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f6307670d11a1c8", "name": "Blocking `time.sleep(...)` inside `async def _anim_cascade` \u2014 server/xkeys_service.py:756", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_cascade` \u2014 server/xkeys_service.py:756"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7de99dad3e81880", "name": "Blocking `time.sleep(...)` inside `async def _anim_heartbeat` \u2014 server/xkeys_service.py:770", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_heartbeat` \u2014 server/xkeys_service.py:770"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b6bdd49bbd206ad", "name": "Blocking `time.sleep(...)` inside `async def _anim_snake` \u2014 server/xkeys_service.py:811", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_snake` \u2014 server/xkeys_service.py:811"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a9e8cdb4a5ae4fdf", "name": "Blocking `time.sleep(...)` inside `async def _anim_deck_reveal` \u2014 server/xkeys_service.py:859", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _anim_deck_reveal` \u2014 server/xkeys_service.py:859"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffeb305d18e424aa", "name": "Commented-code block (5 lines) in server/config.py:17", "shortDescription": {"text": "Commented-code block (5 lines) in server/config.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-76d393e6cdb99cc0", "name": "Commented-code block (5 lines) in server/app.py:260", "shortDescription": {"text": "Commented-code block (5 lines) in server/app.py:260"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53796c5d32ffc543", "name": "Legacy-named symbol `intake_legacy` in server/tests/test_operator_pack.py:1697", "shortDescription": {"text": "Legacy-named symbol `intake_legacy` in server/tests/test_operator_pack.py:1697"}, "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-2eb5611bde08ae0c", "name": "Stub function `start` (body is just `pass`/`return`) \u2014 server/lib/nemo_runtime.py:1507", "shortDescription": {"text": "Stub function `start` (body is just `pass`/`return`) \u2014 server/lib/nemo_runtime.py:1507"}, "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-f277681cc333c889", "name": "Commented-code block (7 lines) in server/lib/services_registry.py:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/lib/services_registry.py: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-18fa516a2d37ad17", "name": "Commented-code block (5 lines) in server/lib/autoresearch_nightly.py:460", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/autoresearch_nightly.py:460"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f6b2f76d6d3e378", "name": "Legacy-named symbol `trigger_backup` in server/telegram_bot/bot.py:483", "shortDescription": {"text": "Legacy-named symbol `trigger_backup` in server/telegram_bot/bot.py:483"}, "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-5ab617e14bb5ce2b", "name": "Legacy-named symbol `curr_backup` in server/telegram_bot/alerts/rules.py:212", "shortDescription": {"text": "Legacy-named symbol `curr_backup` in server/telegram_bot/alerts/rules.py:212"}, "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-cc6e797a99cd8a37", "name": "Legacy-named symbol `trigger_backup` in server/telegram_bot/actions/ops_actions.py:32", "shortDescription": {"text": "Legacy-named symbol `trigger_backup` in server/telegram_bot/actions/ops_actions.py:32"}, "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-b3bc9f7847c13d88", "name": "Network/subprocess call without timeout or try/except \u2014 server/routes/widgets.py:365", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 server/routes/widgets.py:365"}, "fullDescription": {"text": "`requests.get(...)` 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-ab3716c7b66cbc8a", "name": "Blocking `requests.get(...)` inside `async def cloudflare_security` \u2014 server/routes/widgets.py:365", "shortDescription": {"text": "Blocking `requests.get(...)` inside `async def cloudflare_security` \u2014 server/routes/widgets.py:365"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `requests.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-b1fa442d8c832ec7", "name": "Legacy-named symbol `trigger_backup` in server/routes/backups.py:115", "shortDescription": {"text": "Legacy-named symbol `trigger_backup` in server/routes/backups.py:115"}, "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-e7f5f5aa6f007582", "name": "Network/subprocess call without timeout or try/except \u2014 server/routes/three_d.py:225", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 server/routes/three_d.py:225"}, "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-cc5aae5bd5516000", "name": "Commented-code block (5 lines) in server/routes/splat.py:649", "shortDescription": {"text": "Commented-code block (5 lines) in server/routes/splat.py:649"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7081d5a74fd6731", "name": "Commented-code block (5 lines) in server/routes/claws_sessions.py:387", "shortDescription": {"text": "Commented-code block (5 lines) in server/routes/claws_sessions.py:387"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd191dbe375616c9", "name": "Legacy-named symbol `nvmlDeviceGetComputeRunningProcesses_v2` in server/routes/system.py:74", "shortDescription": {"text": "Legacy-named symbol `nvmlDeviceGetComputeRunningProcesses_v2` in server/routes/system.py:74"}, "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-a588ad2600c06592", "name": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/topics.py:39", "shortDescription": {"text": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/topics.py:39"}, "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-05db81a98b34871b", "name": "Commented-code block (7 lines) in server/routes/ingestion/topics.py:440", "shortDescription": {"text": "Commented-code block (7 lines) in server/routes/ingestion/topics.py:440"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c77b8cee1a56728d", "name": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/shared.py:220", "shortDescription": {"text": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/shared.py:220"}, "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-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:\nserver/xkeys_service.py:stop, server/xkeys_service.py:stop\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:\nserver/lib/spatial_lab_schema.py:ensure_spatial_lab_schema, server/lib/claw_lab_schema.py:ensure_claw_lab_schema, server/lib/condo_castle_schema.py:ensure_condo_castle_schema\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:\nserver/routes/spatial_experiments.py:get_timeline, server/routes/spatial_experiments.py:list_markers, server/routes/spatial_experiments.py:add_log_entry, server/routes/spatial_experiments.py:get_log\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:\nserver/routes/sources.py:load_directory, server/routes/sources.py:start_scan, server/routes/sources.py:start_refine, server/routes/sources.py:start_verify\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-44e9b2a75ea731ed", "name": "Frontend route `/projects/:projectNumber` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/projects/:projectNumber` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1729f8874f226d5", "name": "Frontend route `/remote` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/remote` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee661a4c9f185cec", "name": "Frontend route `/visual-fx/:section` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/visual-fx/:section` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0913a5b7773c02bf", "name": "Frontend route `/vision` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/vision` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74b0446e02a0fbdc", "name": "Frontend route `/vision-console` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/vision-console` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a0830acd1ce7e40", "name": "Frontend route `/vision-lab` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/vision-lab` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b831cb309d6bec18", "name": "Frontend route `/source-extractor` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/source-extractor` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29484a04bcea9a6b", "name": "Frontend route `/ingestion` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/ingestion` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-248c8b7bbada01df", "name": "Frontend route `/knowledge-map` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/knowledge-map` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b24aaf3bbe8baa5a", "name": "Frontend route `/topics` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/topics` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2b28721278a128a", "name": "Frontend route `/data-home` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/data-home` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f18ce916e30de63", "name": "Frontend route `/arena` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/arena` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a530add3e39ce42", "name": "Frontend route `/lab` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/lab` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd08e9bd7198beaf", "name": "Frontend route `/nexus` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/nexus` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e639d92dd6a4e718", "name": "Frontend route `/text-models` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/text-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ca0619dbdac5a03", "name": "Frontend route `/image-models` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/image-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0421847da35efb12", "name": "Frontend route `/video-models` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/video-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca2282f22274c5b6", "name": "Frontend route `/xkeys/companion` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/xkeys/companion` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19ca3cc22fed0b37", "name": "Frontend route `/voice-memos` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/voice-memos` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5346e362a4e18bb9", "name": "Frontend route `/voice/call` has no Link/navigate to it \u2014 client/src/App.tsx", "shortDescription": {"text": "Frontend route `/voice/call` has no Link/navigate to it \u2014 client/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22bf79b509d00b0d", "name": "FastAPI POST `create_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:135", "shortDescription": {"text": "FastAPI POST `create_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:135"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a24d9965890ca832", "name": "FastAPI PATCH `update_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:194", "shortDescription": {"text": "FastAPI PATCH `update_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:194"}, "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-5d7bd2446e734312", "name": "FastAPI DELETE `delete_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:241", "shortDescription": {"text": "FastAPI DELETE `delete_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:241"}, "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-259c4c2505eea55d", "name": "FastAPI POST `start_recording` without auth dependency \u2014 server/routes/spatial_experiments.py:259", "shortDescription": {"text": "FastAPI POST `start_recording` without auth dependency \u2014 server/routes/spatial_experiments.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-849a75fbabea8df7", "name": "FastAPI POST `stop_recording` without auth dependency \u2014 server/routes/spatial_experiments.py:302", "shortDescription": {"text": "FastAPI POST `stop_recording` without auth dependency \u2014 server/routes/spatial_experiments.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-a4f960a90007cc33", "name": "FastAPI POST `add_marker` without auth dependency \u2014 server/routes/spatial_experiments.py:1172", "shortDescription": {"text": "FastAPI POST `add_marker` without auth dependency \u2014 server/routes/spatial_experiments.py:1172"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b64f0c8e1164bee4", "name": "FastAPI POST `add_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1222", "shortDescription": {"text": "FastAPI POST `add_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1222"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f5a94a0440299cd", "name": "FastAPI DELETE `delete_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1273", "shortDescription": {"text": "FastAPI DELETE `delete_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1273"}, "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-d214f6696f8ac238", "name": "FastAPI POST `trigger_blacksmith_probe` without auth dependency \u2014 server/routes/claws_blacksmith.py:18", "shortDescription": {"text": "FastAPI POST `trigger_blacksmith_probe` without auth dependency \u2014 server/routes/claws_blacksmith.py:18"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0266f565b813f55", "name": "FastAPI POST `trigger_blacksmith_forge` without auth dependency \u2014 server/routes/claws_blacksmith.py:32", "shortDescription": {"text": "FastAPI POST `trigger_blacksmith_forge` without auth dependency \u2014 server/routes/claws_blacksmith.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-6280bc94a2633e2f", "name": "FastAPI POST `trigger_transcode_plex_scan` without auth dependency \u2014 server/routes/transcode.py:132", "shortDescription": {"text": "FastAPI POST `trigger_transcode_plex_scan` without auth dependency \u2014 server/routes/transcode.py:132"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c9c333cec72e5a9", "name": "FastAPI POST `approve_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:160", "shortDescription": {"text": "FastAPI POST `approve_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:160"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70794785ad2016ce", "name": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:223", "shortDescription": {"text": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:223"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfc90370ec250255", "name": "FastAPI POST `defer_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:246", "shortDescription": {"text": "FastAPI POST `defer_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:246"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b284e6091940453", "name": "FastAPI POST `set_focus` without auth dependency \u2014 server/routes/briefing.py:516", "shortDescription": {"text": "FastAPI POST `set_focus` without auth dependency \u2014 server/routes/briefing.py:516"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a7f3030ef2edfa6", "name": "FastAPI POST `power_on_vision_console` without auth dependency \u2014 server/routes/vision.py:241", "shortDescription": {"text": "FastAPI POST `power_on_vision_console` without auth dependency \u2014 server/routes/vision.py:241"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e717f07147450f0c", "name": "FastAPI POST `power_off_vision_console` without auth dependency \u2014 server/routes/vision.py:250", "shortDescription": {"text": "FastAPI POST `power_off_vision_console` without auth dependency \u2014 server/routes/vision.py:250"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e5ce228345abb41", "name": "FastAPI POST `capture_from_camera` without auth dependency \u2014 server/routes/vision.py:259", "shortDescription": {"text": "FastAPI POST `capture_from_camera` without auth dependency \u2014 server/routes/vision.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-49900b0e28acc7c8", "name": "FastAPI POST `enable_gestures` without auth dependency \u2014 server/routes/vision.py:302", "shortDescription": {"text": "FastAPI POST `enable_gestures` without auth dependency \u2014 server/routes/vision.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-728de810e8c8400f", "name": "FastAPI POST `disable_gestures` without auth dependency \u2014 server/routes/vision.py:311", "shortDescription": {"text": "FastAPI POST `disable_gestures` without auth dependency \u2014 server/routes/vision.py:311"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0bbf634aceebd3cc", "name": "FastAPI PUT `update_gesture_config` without auth dependency \u2014 server/routes/vision.py:329", "shortDescription": {"text": "FastAPI PUT `update_gesture_config` without auth dependency \u2014 server/routes/vision.py:329"}, "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-5fbe5acf639da97c", "name": "FastAPI POST `trigger_backup_witness_probe` without auth dependency \u2014 server/routes/claws_backup_witness.py:12", "shortDescription": {"text": "FastAPI POST `trigger_backup_witness_probe` without auth dependency \u2014 server/routes/claws_backup_witness.py:12"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c26f2aa649f66a40", "name": "FastAPI POST `trigger_eval_run` without auth dependency \u2014 server/routes/claws_evals.py:19", "shortDescription": {"text": "FastAPI POST `trigger_eval_run` without auth dependency \u2014 server/routes/claws_evals.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-201820293da74fd5", "name": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/lab.py:162", "shortDescription": {"text": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/lab.py:162"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d24f8c8d1ffc9484", "name": "FastAPI POST `append_run_event` without auth dependency \u2014 server/routes/lab.py:193", "shortDescription": {"text": "FastAPI POST `append_run_event` without auth dependency \u2014 server/routes/lab.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-78148b711bb9e948", "name": "FastAPI POST `append_run_artifact` without auth dependency \u2014 server/routes/lab.py:215", "shortDescription": {"text": "FastAPI POST `append_run_artifact` without auth dependency \u2014 server/routes/lab.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-00d57534503fd6a8", "name": "FastAPI POST `control_device` without auth dependency \u2014 server/routes/condo_castle.py:747", "shortDescription": {"text": "FastAPI POST `control_device` without auth dependency \u2014 server/routes/condo_castle.py:747"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09ac119a91b852bb", "name": "FastAPI POST `setup_areas` without auth dependency \u2014 server/routes/condo_castle.py:1045", "shortDescription": {"text": "FastAPI POST `setup_areas` without auth dependency \u2014 server/routes/condo_castle.py:1045"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30a4819bec9db731", "name": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/nemo_sessions.py:36", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/nemo_sessions.py:36"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0d8cd5df042cf8c", "name": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/nemo_sessions.py:111", "shortDescription": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/nemo_sessions.py:111"}, "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-12c35451130d3d4b", "name": "FastAPI POST `start_battle_stream` without auth dependency \u2014 server/routes/arena.py:229", "shortDescription": {"text": "FastAPI POST `start_battle_stream` without auth dependency \u2014 server/routes/arena.py:229"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b8881e6f52871ff", "name": "FastAPI POST `record_vote` without auth dependency \u2014 server/routes/arena.py:305", "shortDescription": {"text": "FastAPI POST `record_vote` without auth dependency \u2014 server/routes/arena.py:305"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e87a861ad1945f63", "name": "FastAPI POST `trigger_cartographer_probe` without auth dependency \u2014 server/routes/claws_cartographer.py:18", "shortDescription": {"text": "FastAPI POST `trigger_cartographer_probe` without auth dependency \u2014 server/routes/claws_cartographer.py:18"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36ca27ed5fb9a5e4", "name": "FastAPI POST `receive_gesture_event` without auth dependency \u2014 server/routes/gesture_events.py:23", "shortDescription": {"text": "FastAPI POST `receive_gesture_event` without auth dependency \u2014 server/routes/gesture_events.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-194149087a07b514", "name": "FastAPI DELETE `clear_events` without auth dependency \u2014 server/routes/gesture_events.py:61", "shortDescription": {"text": "FastAPI DELETE `clear_events` without auth dependency \u2014 server/routes/gesture_events.py:61"}, "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-1985c4c6c4f30b25", "name": "FastAPI POST `add_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:51", "shortDescription": {"text": "FastAPI POST `add_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:51"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59e08a0c4df46329", "name": "FastAPI POST `resolve_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:79", "shortDescription": {"text": "FastAPI POST `resolve_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:79"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d230e323139068a", "name": "FastAPI POST `generate_proposal` without auth dependency \u2014 server/routes/claws_workflow_architect.py:23", "shortDescription": {"text": "FastAPI POST `generate_proposal` without auth dependency \u2014 server/routes/claws_workflow_architect.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-eaf961e230bf2e0a", "name": "FastAPI POST `trigger_foundry_probe` without auth dependency \u2014 server/routes/claws_foundry.py:12", "shortDescription": {"text": "FastAPI POST `trigger_foundry_probe` without auth dependency \u2014 server/routes/claws_foundry.py:12"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-162e35eaa01a52ed", "name": "FastAPI POST `recommend_vision_route` without auth dependency \u2014 server/routes/multimodal.py:212", "shortDescription": {"text": "FastAPI POST `recommend_vision_route` without auth dependency \u2014 server/routes/multimodal.py:212"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6833d1ba1787a688", "name": "FastAPI POST `segment_image` without auth dependency \u2014 server/routes/multimodal.py:226", "shortDescription": {"text": "FastAPI POST `segment_image` without auth dependency \u2014 server/routes/multimodal.py:226"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9f68bda31217ae7", "name": "FastAPI POST `track_video_object` without auth dependency \u2014 server/routes/multimodal.py:285", "shortDescription": {"text": "FastAPI POST `track_video_object` without auth dependency \u2014 server/routes/multimodal.py:285"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-887daa9bf76e29ea", "name": "FastAPI POST `generate_mesh` without auth dependency \u2014 server/routes/multimodal.py:340", "shortDescription": {"text": "FastAPI POST `generate_mesh` without auth dependency \u2014 server/routes/multimodal.py:340"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aafdc75d5e02a2b4", "name": "FastAPI POST `reconstruct_general_3d` without auth dependency \u2014 server/routes/multimodal.py:388", "shortDescription": {"text": "FastAPI POST `reconstruct_general_3d` without auth dependency \u2014 server/routes/multimodal.py:388"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4325794bb42d1f5", "name": "FastAPI POST `export_body_mesh` without auth dependency \u2014 server/routes/multimodal.py:456", "shortDescription": {"text": "FastAPI POST `export_body_mesh` without auth dependency \u2014 server/routes/multimodal.py:456"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c97a416fd98af0f", "name": "FastAPI POST `reconstruct_body` without auth dependency \u2014 server/routes/multimodal.py:500", "shortDescription": {"text": "FastAPI POST `reconstruct_body` without auth dependency \u2014 server/routes/multimodal.py:500"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c73c08b05988d71b", "name": "FastAPI POST `auto_segment_image` without auth dependency \u2014 server/routes/multimodal.py:564", "shortDescription": {"text": "FastAPI POST `auto_segment_image` without auth dependency \u2014 server/routes/multimodal.py:564"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f3db423e07898c9", "name": "FastAPI POST `prewarm_model` without auth dependency \u2014 server/routes/multimodal.py:601", "shortDescription": {"text": "FastAPI POST `prewarm_model` without auth dependency \u2014 server/routes/multimodal.py:601"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81d579586b25d60d", "name": "FastAPI POST `generate_video` without auth dependency \u2014 server/routes/multimodal.py:629", "shortDescription": {"text": "FastAPI POST `generate_video` without auth dependency \u2014 server/routes/multimodal.py:629"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11855e1b68174e8e", "name": "FastAPI POST `generate_image` without auth dependency \u2014 server/routes/multimodal.py:682", "shortDescription": {"text": "FastAPI POST `generate_image` without auth dependency \u2014 server/routes/multimodal.py:682"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d3c02b4f0118e0a", "name": "FastAPI POST `synthesize` without auth dependency \u2014 server/routes/voice_lab.py:322", "shortDescription": {"text": "FastAPI POST `synthesize` without auth dependency \u2014 server/routes/voice_lab.py:322"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bc9974aa5851376", "name": "FastAPI POST `toggle_favorite` without auth dependency \u2014 server/routes/voice_lab.py:456", "shortDescription": {"text": "FastAPI POST `toggle_favorite` without auth dependency \u2014 server/routes/voice_lab.py:456"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b75a1afd1c815bac", "name": "FastAPI DELETE `delete_generation` without auth dependency \u2014 server/routes/voice_lab.py:473", "shortDescription": {"text": "FastAPI DELETE `delete_generation` without auth dependency \u2014 server/routes/voice_lab.py:473"}, "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-72aeb4013b776719", "name": "FastAPI POST `purge_old` without auth dependency \u2014 server/routes/voice_lab.py:492", "shortDescription": {"text": "FastAPI POST `purge_old` without auth dependency \u2014 server/routes/voice_lab.py:492"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f87fc37588816bf9", "name": "FastAPI POST `refresh_catalog` without auth dependency \u2014 server/routes/voice_lab.py:501", "shortDescription": {"text": "FastAPI POST `refresh_catalog` without auth dependency \u2014 server/routes/voice_lab.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-ee01bc27167a310e", "name": "FastAPI POST `trigger_backup` without auth dependency \u2014 server/routes/backups.py:114", "shortDescription": {"text": "FastAPI POST `trigger_backup` without auth dependency \u2014 server/routes/backups.py:114"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-671b26425aa338d3", "name": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/nemo_runs.py:42", "shortDescription": {"text": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/nemo_runs.py:42"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7446a50dc82a5ae", "name": "FastAPI PUT `set_nemo_binding` without auth dependency \u2014 server/routes/voice.py:164", "shortDescription": {"text": "FastAPI PUT `set_nemo_binding` without auth dependency \u2014 server/routes/voice.py:164"}, "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-d84aad19b6b8a23b", "name": "FastAPI DELETE `clear_nemo_binding` without auth dependency \u2014 server/routes/voice.py:189", "shortDescription": {"text": "FastAPI DELETE `clear_nemo_binding` without auth dependency \u2014 server/routes/voice.py:189"}, "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-542d5c77d328e436", "name": "FastAPI POST `request_export` without auth dependency \u2014 server/routes/nemo_artifacts.py:52", "shortDescription": {"text": "FastAPI POST `request_export` without auth dependency \u2014 server/routes/nemo_artifacts.py:52"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d29659491f0741d0", "name": "FastAPI POST `export_direct` without auth dependency \u2014 server/routes/nemo_artifacts.py:75", "shortDescription": {"text": "FastAPI POST `export_direct` without auth dependency \u2014 server/routes/nemo_artifacts.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59e71b83e50a44ce", "name": "FastAPI POST `telegram_webhook` without auth dependency \u2014 server/routes/telegram.py:22", "shortDescription": {"text": "FastAPI POST `telegram_webhook` without auth dependency \u2014 server/routes/telegram.py:22"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1c7d799ffbdff40", "name": "FastAPI POST `telegram_test` without auth dependency \u2014 server/routes/telegram.py:82", "shortDescription": {"text": "FastAPI POST `telegram_test` without auth dependency \u2014 server/routes/telegram.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-1da1e4a1958528da", "name": "FastAPI POST `telegram_mini_house_control` without auth dependency \u2014 server/routes/telegram.py:243", "shortDescription": {"text": "FastAPI POST `telegram_mini_house_control` without auth dependency \u2014 server/routes/telegram.py:243"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37dad083bf4511c2", "name": "FastAPI POST `telegram_mini_routine` without auth dependency \u2014 server/routes/telegram.py:275", "shortDescription": {"text": "FastAPI POST `telegram_mini_routine` without auth dependency \u2014 server/routes/telegram.py:275"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36e3ab034316cc58", "name": "FastAPI POST `telegram_mini_plex_scan` without auth dependency \u2014 server/routes/telegram.py:355", "shortDescription": {"text": "FastAPI POST `telegram_mini_plex_scan` without auth dependency \u2014 server/routes/telegram.py:355"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d33324fb97fb4c1e", "name": "FastAPI POST `telegram_mini_backup_trigger` without auth dependency \u2014 server/routes/telegram.py:361", "shortDescription": {"text": "FastAPI POST `telegram_mini_backup_trigger` without auth dependency \u2014 server/routes/telegram.py:361"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c1476f8dafac298", "name": "FastAPI POST `create_profile` without auth dependency \u2014 server/routes/voice_forge.py:138", "shortDescription": {"text": "FastAPI POST `create_profile` without auth dependency \u2014 server/routes/voice_forge.py:138"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9dd5b538360402ba", "name": "FastAPI PATCH `update_profile` without auth dependency \u2014 server/routes/voice_forge.py:183", "shortDescription": {"text": "FastAPI PATCH `update_profile` without auth dependency \u2014 server/routes/voice_forge.py:183"}, "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-f68cbedda338a156", "name": "FastAPI DELETE `delete_profile` without auth dependency \u2014 server/routes/voice_forge.py:207", "shortDescription": {"text": "FastAPI DELETE `delete_profile` without auth dependency \u2014 server/routes/voice_forge.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-a557c50087a9b709", "name": "FastAPI POST `upload_source` without auth dependency \u2014 server/routes/voice_forge.py:225", "shortDescription": {"text": "FastAPI POST `upload_source` without auth dependency \u2014 server/routes/voice_forge.py:225"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74f26fc1fabe6814", "name": "FastAPI DELETE `delete_source` without auth dependency \u2014 server/routes/voice_forge.py:301", "shortDescription": {"text": "FastAPI DELETE `delete_source` without auth dependency \u2014 server/routes/voice_forge.py:301"}, "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-8528482e89c907ae", "name": "FastAPI POST `segment_source` without auth dependency \u2014 server/routes/voice_forge.py:317", "shortDescription": {"text": "FastAPI POST `segment_source` without auth dependency \u2014 server/routes/voice_forge.py:317"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffb4f818772db07d", "name": "FastAPI POST `transcribe_segment` without auth dependency \u2014 server/routes/voice_forge.py:505", "shortDescription": {"text": "FastAPI POST `transcribe_segment` without auth dependency \u2014 server/routes/voice_forge.py:505"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0fd9aa6bf8d3b0ff", "name": "FastAPI POST `score_segment` without auth dependency \u2014 server/routes/voice_forge.py:539", "shortDescription": {"text": "FastAPI POST `score_segment` without auth dependency \u2014 server/routes/voice_forge.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-b92b121379a58dfb", "name": "FastAPI POST `set_canonical` without auth dependency \u2014 server/routes/voice_forge.py:558", "shortDescription": {"text": "FastAPI POST `set_canonical` without auth dependency \u2014 server/routes/voice_forge.py:558"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-014905dbbdc5f4cf", "name": "FastAPI POST `audition_segment` without auth dependency \u2014 server/routes/voice_forge.py:591", "shortDescription": {"text": "FastAPI POST `audition_segment` without auth dependency \u2014 server/routes/voice_forge.py:591"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b1f970ff2a3f1f5", "name": "FastAPI POST `finalize_profile` without auth dependency \u2014 server/routes/voice_forge.py:677", "shortDescription": {"text": "FastAPI POST `finalize_profile` without auth dependency \u2014 server/routes/voice_forge.py:677"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db99f73028f3dc7c", "name": "FastAPI POST `start_investigation` without auth dependency \u2014 server/routes/nemo_bridge.py:87", "shortDescription": {"text": "FastAPI POST `start_investigation` without auth dependency \u2014 server/routes/nemo_bridge.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-611f9e576eb72d78", "name": "FastAPI POST `promote_investigation` without auth dependency \u2014 server/routes/nemo_bridge.py:240", "shortDescription": {"text": "FastAPI POST `promote_investigation` without auth dependency \u2014 server/routes/nemo_bridge.py:240"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb1fdd2b1e0aca73", "name": "FastAPI POST `start_research_session` without auth dependency \u2014 server/routes/nemo_bridge.py:284", "shortDescription": {"text": "FastAPI POST `start_research_session` without auth dependency \u2014 server/routes/nemo_bridge.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-7720c6496b79c531", "name": "FastAPI POST `preempt_active_lease` without auth dependency \u2014 server/routes/claws_governor.py:391", "shortDescription": {"text": "FastAPI POST `preempt_active_lease` without auth dependency \u2014 server/routes/claws_governor.py:391"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ab6c162e9f54b9a", "name": "FastAPI DELETE `terminate_terminal_session` without auth dependency \u2014 server/routes/terminal.py:421", "shortDescription": {"text": "FastAPI DELETE `terminate_terminal_session` without auth dependency \u2014 server/routes/terminal.py:421"}, "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-a4cc8c3c5b9c78e6", "name": "FastAPI PUT `set_autostart` without auth dependency \u2014 server/routes/layouts.py:150", "shortDescription": {"text": "FastAPI PUT `set_autostart` without auth dependency \u2014 server/routes/layouts.py:150"}, "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-62c17de9ea491eb9", "name": "FastAPI PUT `save_layout` without auth dependency \u2014 server/routes/layouts.py:165", "shortDescription": {"text": "FastAPI PUT `save_layout` without auth dependency \u2014 server/routes/layouts.py:165"}, "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-2d52797dd42d3de9", "name": "FastAPI DELETE `delete_layout` without auth dependency \u2014 server/routes/layouts.py:175", "shortDescription": {"text": "FastAPI DELETE `delete_layout` without auth dependency \u2014 server/routes/layouts.py:175"}, "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-40020eabe2798292", "name": "FastAPI POST `load_layout` without auth dependency \u2014 server/routes/layouts.py:188", "shortDescription": {"text": "FastAPI POST `load_layout` without auth dependency \u2014 server/routes/layouts.py:188"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e231e8e121decd09", "name": "FastAPI POST `submit_for_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:109", "shortDescription": {"text": "FastAPI POST `submit_for_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:109"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b6184320bff3cac", "name": "FastAPI POST `approve_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:161", "shortDescription": {"text": "FastAPI POST `approve_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:161"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06c1766e611b44bd", "name": "FastAPI POST `reject_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:189", "shortDescription": {"text": "FastAPI POST `reject_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:189"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-357861f9f85c6101", "name": "FastAPI POST `totp_setup` without auth dependency \u2014 server/routes/totp.py:113", "shortDescription": {"text": "FastAPI POST `totp_setup` without auth dependency \u2014 server/routes/totp.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-c326da4dbd57a598", "name": "FastAPI POST `totp_verify` without auth dependency \u2014 server/routes/totp.py:153", "shortDescription": {"text": "FastAPI POST `totp_verify` without auth dependency \u2014 server/routes/totp.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-a3c19b62b21eb02f", "name": "FastAPI POST `totp_reset` without auth dependency \u2014 server/routes/totp.py:207", "shortDescription": {"text": "FastAPI POST `totp_reset` without auth dependency \u2014 server/routes/totp.py:207"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-455ff2da46223661", "name": "FastAPI POST `upload_splat_input` without auth dependency \u2014 server/routes/splat.py:953", "shortDescription": {"text": "FastAPI POST `upload_splat_input` without auth dependency \u2014 server/routes/splat.py:953"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a323b50b8132fe73", "name": "FastAPI POST `start_splat_training` without auth dependency \u2014 server/routes/splat.py:1022", "shortDescription": {"text": "FastAPI POST `start_splat_training` without auth dependency \u2014 server/routes/splat.py:1022"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db1a4160f134a089", "name": "FastAPI POST `generate_splat_preview` without auth dependency \u2014 server/routes/splat.py:1100", "shortDescription": {"text": "FastAPI POST `generate_splat_preview` without auth dependency \u2014 server/routes/splat.py:1100"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8b9576239aeef0d", "name": "FastAPI POST `stop_splat_training` without auth dependency \u2014 server/routes/splat.py:1168", "shortDescription": {"text": "FastAPI POST `stop_splat_training` without auth dependency \u2014 server/routes/splat.py:1168"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a79092795a7062d", "name": "FastAPI DELETE `delete_splat_job` without auth dependency \u2014 server/routes/splat.py:1203", "shortDescription": {"text": "FastAPI DELETE `delete_splat_job` without auth dependency \u2014 server/routes/splat.py:1203"}, "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-8e17b5d225cb614f", "name": "FastAPI POST `pin_splat_job` without auth dependency \u2014 server/routes/splat.py:1228", "shortDescription": {"text": "FastAPI POST `pin_splat_job` without auth dependency \u2014 server/routes/splat.py:1228"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-867431e732895c20", "name": "FastAPI POST `unpin_splat_job` without auth dependency \u2014 server/routes/splat.py:1236", "shortDescription": {"text": "FastAPI POST `unpin_splat_job` without auth dependency \u2014 server/routes/splat.py:1236"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37fdc44fc06a7472", "name": "FastAPI POST `lock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:111", "shortDescription": {"text": "FastAPI POST `lock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:111"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b2009d8f716fa7a", "name": "FastAPI POST `unlock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:118", "shortDescription": {"text": "FastAPI POST `unlock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:118"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c157ffa8a9cc6160", "name": "FastAPI POST `set_code` without auth dependency \u2014 server/routes/condo_castle_security.py:210", "shortDescription": {"text": "FastAPI POST `set_code` without auth dependency \u2014 server/routes/condo_castle_security.py:210"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e446bd94cc374804", "name": "FastAPI DELETE `clear_code` without auth dependency \u2014 server/routes/condo_castle_security.py:261", "shortDescription": {"text": "FastAPI DELETE `clear_code` without auth dependency \u2014 server/routes/condo_castle_security.py:261"}, "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-946b7ba71ebb8760", "name": "FastAPI POST `create_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:336", "shortDescription": {"text": "FastAPI POST `create_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:336"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c52d2924ae5efd9", "name": "FastAPI PUT `update_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:350", "shortDescription": {"text": "FastAPI PUT `update_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:350"}, "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-233faed25eaa2177", "name": "FastAPI DELETE `delete_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:372", "shortDescription": {"text": "FastAPI DELETE `delete_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:372"}, "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-d993893ebb180814", "name": "FastAPI POST `trigger_model_steward_probe` without auth dependency \u2014 server/routes/claws_model_steward.py:12", "shortDescription": {"text": "FastAPI POST `trigger_model_steward_probe` without auth dependency \u2014 server/routes/claws_model_steward.py:12"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59cf48a80ba20d29", "name": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/claws_sessions.py:88", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/claws_sessions.py:88"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16a796bf55d161e3", "name": "FastAPI POST `create_memory_backfill_from_latest` without auth dependency \u2014 server/routes/claws_sessions.py:118", "shortDescription": {"text": "FastAPI POST `create_memory_backfill_from_latest` without auth dependency \u2014 server/routes/claws_sessions.py:118"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1c63355bc128720", "name": "FastAPI POST `approve_plan` without auth dependency \u2014 server/routes/claws_sessions.py:250", "shortDescription": {"text": "FastAPI POST `approve_plan` without auth dependency \u2014 server/routes/claws_sessions.py:250"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-185c75466ba9d5e8", "name": "FastAPI POST `complete_wave` without auth dependency \u2014 server/routes/claws_sessions.py:265", "shortDescription": {"text": "FastAPI POST `complete_wave` without auth dependency \u2014 server/routes/claws_sessions.py:265"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9d37b4857d45a84", "name": "FastAPI POST `gate_decision` without auth dependency \u2014 server/routes/claws_sessions.py:280", "shortDescription": {"text": "FastAPI POST `gate_decision` without auth dependency \u2014 server/routes/claws_sessions.py:280"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68419b51abb73521", "name": "FastAPI POST `abandon_session` without auth dependency \u2014 server/routes/claws_sessions.py:301", "shortDescription": {"text": "FastAPI POST `abandon_session` without auth dependency \u2014 server/routes/claws_sessions.py:301"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd7d0f40c24e7eaa", "name": "FastAPI POST `update_hypothesis` without auth dependency \u2014 server/routes/claws_sessions.py:316", "shortDescription": {"text": "FastAPI POST `update_hypothesis` without auth dependency \u2014 server/routes/claws_sessions.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-8a5f8b1938467ffe", "name": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/claws_sessions.py:334", "shortDescription": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/claws_sessions.py:334"}, "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-04f922c8dc73a161", "name": "FastAPI POST `create_wave_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:352", "shortDescription": {"text": "FastAPI POST `create_wave_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:352"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4d0ed6303ff1e9a", "name": "FastAPI POST `add_task_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:370", "shortDescription": {"text": "FastAPI POST `add_task_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:370"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-636f0aab2d187bc5", "name": "FastAPI POST `attach_run_key_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:424", "shortDescription": {"text": "FastAPI POST `attach_run_key_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:424"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4669852e5c649db6", "name": "FastAPI POST `set_task_status_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:441", "shortDescription": {"text": "FastAPI POST `set_task_status_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:441"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac4d2c198735b3e4", "name": "FastAPI POST `approve_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:470", "shortDescription": {"text": "FastAPI POST `approve_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:470"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c75cf47ea4816e2e", "name": "FastAPI POST `redraft_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:552", "shortDescription": {"text": "FastAPI POST `redraft_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:552"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a975e25412544da5", "name": "FastAPI POST `dispatch_wave` without auth dependency \u2014 server/routes/claws_sessions.py:673", "shortDescription": {"text": "FastAPI POST `dispatch_wave` without auth dependency \u2014 server/routes/claws_sessions.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-b38553cd165908b2", "name": "FastAPI POST `propose_gate` without auth dependency \u2014 server/routes/claws_sessions.py:692", "shortDescription": {"text": "FastAPI POST `propose_gate` without auth dependency \u2014 server/routes/claws_sessions.py:692"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b29c47efea405a9c", "name": "FastAPI POST `accept_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:726", "shortDescription": {"text": "FastAPI POST `accept_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:726"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa46a4211c151976", "name": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:747", "shortDescription": {"text": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:747"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53121a8863ae851b", "name": "FastAPI POST `reconcile_wave` without auth dependency \u2014 server/routes/claws_sessions.py:770", "shortDescription": {"text": "FastAPI POST `reconcile_wave` without auth dependency \u2014 server/routes/claws_sessions.py:770"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1afa42e0d025fae7", "name": "FastAPI POST `approve_request` without auth dependency \u2014 server/routes/nemo_approvals.py:39", "shortDescription": {"text": "FastAPI POST `approve_request` without auth dependency \u2014 server/routes/nemo_approvals.py:39"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cb710ea30ba5b4f", "name": "FastAPI POST `transcribe` without auth dependency \u2014 server/routes/voice_call.py:77", "shortDescription": {"text": "FastAPI POST `transcribe` without auth dependency \u2014 server/routes/voice_call.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-77d13cf8c896fec2", "name": "FastAPI POST `respond` without auth dependency \u2014 server/routes/voice_call.py:123", "shortDescription": {"text": "FastAPI POST `respond` without auth dependency \u2014 server/routes/voice_call.py:123"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-569eb4c9eeecdee5", "name": "FastAPI POST `create_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:171", "shortDescription": {"text": "FastAPI POST `create_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:171"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37f8204a9e15464e", "name": "FastAPI PUT `update_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:196", "shortDescription": {"text": "FastAPI PUT `update_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:196"}, "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-43da04481528ebd6", "name": "FastAPI DELETE `delete_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:222", "shortDescription": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:222"}, "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-965c82aac8c62e67", "name": "FastAPI PUT `save_project_full` without auth dependency \u2014 server/routes/condo_castle_editor.py:272", "shortDescription": {"text": "FastAPI PUT `save_project_full` without auth dependency \u2014 server/routes/condo_castle_editor.py:272"}, "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-2a000314a1057850", "name": "FastAPI POST `create_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:402", "shortDescription": {"text": "FastAPI POST `create_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:402"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54d187d65601ebaf", "name": "FastAPI PUT `update_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:416", "shortDescription": {"text": "FastAPI PUT `update_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:416"}, "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-61db0c7eb322eb30", "name": "FastAPI DELETE `delete_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:438", "shortDescription": {"text": "FastAPI DELETE `delete_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:438"}, "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-c70d1af7a2cc03fc", "name": "FastAPI POST `create_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:448", "shortDescription": {"text": "FastAPI POST `create_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:448"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7666b177b01b0cc0", "name": "FastAPI PUT `update_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:462", "shortDescription": {"text": "FastAPI PUT `update_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:462"}, "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-14c544f007784677", "name": "FastAPI DELETE `delete_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:492", "shortDescription": {"text": "FastAPI DELETE `delete_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:492"}, "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-abfd25b730d52c1f", "name": "FastAPI POST `create_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:502", "shortDescription": {"text": "FastAPI POST `create_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:502"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab161a35c1387d74", "name": "FastAPI PUT `update_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:519", "shortDescription": {"text": "FastAPI PUT `update_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:519"}, "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-5b1ed2c49f1137be", "name": "FastAPI DELETE `delete_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:546", "shortDescription": {"text": "FastAPI DELETE `delete_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:546"}, "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-9544df5a56cf3f34", "name": "FastAPI PUT `batch_update_elements` without auth dependency \u2014 server/routes/condo_castle_editor.py:554", "shortDescription": {"text": "FastAPI PUT `batch_update_elements` without auth dependency \u2014 server/routes/condo_castle_editor.py:554"}, "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-c03510f2f624aebd", "name": "FastAPI POST `create_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:583", "shortDescription": {"text": "FastAPI POST `create_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:583"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41527a63d7698f67", "name": "FastAPI PUT `update_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:605", "shortDescription": {"text": "FastAPI PUT `update_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:605"}, "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-31e07ee163f7acc3", "name": "FastAPI DELETE `delete_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:632", "shortDescription": {"text": "FastAPI DELETE `delete_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:632"}, "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-d097a8a9780694ef", "name": "FastAPI POST `export_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:642", "shortDescription": {"text": "FastAPI POST `export_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:642"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6546e83fde8eaf4d", "name": "FastAPI POST `import_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:648", "shortDescription": {"text": "FastAPI POST `import_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:648"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d13ec151be6512b", "name": "FastAPI POST `create_batch` without auth dependency \u2014 server/routes/sources.py:515", "shortDescription": {"text": "FastAPI POST `create_batch` without auth dependency \u2014 server/routes/sources.py:515"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39fdd22f77a34855", "name": "FastAPI POST `curated_import` without auth dependency \u2014 server/routes/sources.py:533", "shortDescription": {"text": "FastAPI POST `curated_import` without auth dependency \u2014 server/routes/sources.py:533"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89709b5d2b64fdbe", "name": "FastAPI DELETE `delete_batch` without auth dependency \u2014 server/routes/sources.py:700", "shortDescription": {"text": "FastAPI DELETE `delete_batch` without auth dependency \u2014 server/routes/sources.py:700"}, "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-9615b495a2aa5811", "name": "FastAPI POST `load_directory` without auth dependency \u2014 server/routes/sources.py:716", "shortDescription": {"text": "FastAPI POST `load_directory` without auth dependency \u2014 server/routes/sources.py:716"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-357fcd83706f5ec5", "name": "FastAPI POST `start_scan` without auth dependency \u2014 server/routes/sources.py:996", "shortDescription": {"text": "FastAPI POST `start_scan` without auth dependency \u2014 server/routes/sources.py:996"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55ed41cec4d4e916", "name": "FastAPI POST `link_reference_canonical_work` without auth dependency \u2014 server/routes/sources.py:1258", "shortDescription": {"text": "FastAPI POST `link_reference_canonical_work` without auth dependency \u2014 server/routes/sources.py:1258"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-345c5e043649fefb", "name": "FastAPI POST `sync_batch_canonical_works` without auth dependency \u2014 server/routes/sources.py:1319", "shortDescription": {"text": "FastAPI POST `sync_batch_canonical_works` without auth dependency \u2014 server/routes/sources.py:1319"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70c8f799e98140c4", "name": "FastAPI POST `fetch_reference_fulltext` without auth dependency \u2014 server/routes/sources.py:1395", "shortDescription": {"text": "FastAPI POST `fetch_reference_fulltext` without auth dependency \u2014 server/routes/sources.py:1395"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d3893cc80891e79", "name": "FastAPI POST `fetch_batch_fulltext` without auth dependency \u2014 server/routes/sources.py:1434", "shortDescription": {"text": "FastAPI POST `fetch_batch_fulltext` without auth dependency \u2014 server/routes/sources.py:1434"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88489c56178286e4", "name": "FastAPI POST `update_reference` without auth dependency \u2014 server/routes/sources.py:1493", "shortDescription": {"text": "FastAPI POST `update_reference` without auth dependency \u2014 server/routes/sources.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-ed5c72020bcc7b1b", "name": "FastAPI POST `bulk_update_references` without auth dependency \u2014 server/routes/sources.py:1524", "shortDescription": {"text": "FastAPI POST `bulk_update_references` without auth dependency \u2014 server/routes/sources.py:1524"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0bdad3d1301f732", "name": "FastAPI POST `start_refine` without auth dependency \u2014 server/routes/sources.py:1669", "shortDescription": {"text": "FastAPI POST `start_refine` without auth dependency \u2014 server/routes/sources.py:1669"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7922fb84374f1ddd", "name": "FastAPI POST `start_verify` without auth dependency \u2014 server/routes/sources.py:1861", "shortDescription": {"text": "FastAPI POST `start_verify` without auth dependency \u2014 server/routes/sources.py:1861"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c8ad2beb294dee7", "name": "FastAPI POST `start_ingest` without auth dependency \u2014 server/routes/sources.py:2375", "shortDescription": {"text": "FastAPI POST `start_ingest` without auth dependency \u2014 server/routes/sources.py:2375"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a36044c0c64d01e0", "name": "FastAPI POST `start_transcript_ingest` without auth dependency \u2014 server/routes/sources.py:2641", "shortDescription": {"text": "FastAPI POST `start_transcript_ingest` without auth dependency \u2014 server/routes/sources.py:2641"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-736785b3613a9223", "name": "FastAPI DELETE `delete_entry` without auth dependency \u2014 server/routes/voice_memos.py:58", "shortDescription": {"text": "FastAPI DELETE `delete_entry` without auth dependency \u2014 server/routes/voice_memos.py:58"}, "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-4cbe2e93baf1eac3", "name": "FastAPI POST `chat_stream` without auth dependency \u2014 server/routes/chat.py:30", "shortDescription": {"text": "FastAPI POST `chat_stream` without auth dependency \u2014 server/routes/chat.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-d659a3423ef9443c", "name": "FastAPI POST `cancel_chat` without auth dependency \u2014 server/routes/chat.py:120", "shortDescription": {"text": "FastAPI POST `cancel_chat` without auth dependency \u2014 server/routes/chat.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-eba3a48599a8322d", "name": "FastAPI POST `start_edge` without auth dependency \u2014 server/routes/wifi_sensing.py:81", "shortDescription": {"text": "FastAPI POST `start_edge` without auth dependency \u2014 server/routes/wifi_sensing.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-f8964d7c4bb59fe3", "name": "FastAPI POST `stop_edge` without auth dependency \u2014 server/routes/wifi_sensing.py:101", "shortDescription": {"text": "FastAPI POST `stop_edge` without auth dependency \u2014 server/routes/wifi_sensing.py:101"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a9cf1125408b61a", "name": "FastAPI POST `calibrate` without auth dependency \u2014 server/routes/wifi_sensing.py:116", "shortDescription": {"text": "FastAPI POST `calibrate` without auth dependency \u2014 server/routes/wifi_sensing.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-ad7969da4c6a3c3a", "name": "FastAPI POST `trigger_guardian_probe` without auth dependency \u2014 server/routes/claws_guardian.py:22", "shortDescription": {"text": "FastAPI POST `trigger_guardian_probe` without auth dependency \u2014 server/routes/claws_guardian.py:22"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-51451b2a62f10523", "name": "FastAPI POST `refresh_xkeys` without auth dependency \u2014 server/routes/xkeys.py:28", "shortDescription": {"text": "FastAPI POST `refresh_xkeys` without auth dependency \u2014 server/routes/xkeys.py:28"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54e07d5865b3f695", "name": "FastAPI POST `update_config` without auth dependency \u2014 server/routes/xkeys.py:33", "shortDescription": {"text": "FastAPI POST `update_config` without auth dependency \u2014 server/routes/xkeys.py:33"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7437317a9537adc9", "name": "FastAPI POST `press_key` without auth dependency \u2014 server/routes/xkeys.py:38", "shortDescription": {"text": "FastAPI POST `press_key` without auth dependency \u2014 server/routes/xkeys.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-bd1a5012080bf35a", "name": "FastAPI POST `switch_deck` without auth dependency \u2014 server/routes/xkeys.py:46", "shortDescription": {"text": "FastAPI POST `switch_deck` without auth dependency \u2014 server/routes/xkeys.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-13207b42c7174cc2", "name": "FastAPI POST `set_auto` without auth dependency \u2014 server/routes/xkeys.py:55", "shortDescription": {"text": "FastAPI POST `set_auto` without auth dependency \u2014 server/routes/xkeys.py:55"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-997278e2f8a58a28", "name": "FastAPI POST `set_commands` without auth dependency \u2014 server/routes/xkeys.py:65", "shortDescription": {"text": "FastAPI POST `set_commands` without auth dependency \u2014 server/routes/xkeys.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-3fd8be52f7b0020c", "name": "FastAPI POST `trigger_zone` without auth dependency \u2014 server/routes/xkeys.py:76", "shortDescription": {"text": "FastAPI POST `trigger_zone` without auth dependency \u2014 server/routes/xkeys.py:76"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a9e64002ff87a2f", "name": "FastAPI POST `focus_window` without auth dependency \u2014 server/routes/xkeys.py:86", "shortDescription": {"text": "FastAPI POST `focus_window` without auth dependency \u2014 server/routes/xkeys.py:86"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abfba78fcf6e1915", "name": "FastAPI POST `set_led` without auth dependency \u2014 server/routes/xkeys.py:91", "shortDescription": {"text": "FastAPI POST `set_led` without auth dependency \u2014 server/routes/xkeys.py:91"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2389ab06075bdd9a", "name": "FastAPI POST `set_all_leds` without auth dependency \u2014 server/routes/xkeys.py:97", "shortDescription": {"text": "FastAPI POST `set_all_leds` without auth dependency \u2014 server/routes/xkeys.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-e65110bd17436e63", "name": "FastAPI POST `play_animation` without auth dependency \u2014 server/routes/xkeys.py:116", "shortDescription": {"text": "FastAPI POST `play_animation` without auth dependency \u2014 server/routes/xkeys.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-602822a444703673", "name": "FastAPI POST `stop_animation` without auth dependency \u2014 server/routes/xkeys.py:128", "shortDescription": {"text": "FastAPI POST `stop_animation` without auth dependency \u2014 server/routes/xkeys.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-77b7194d3b5171a6", "name": "FastAPI POST `notify` without auth dependency \u2014 server/routes/xkeys.py:134", "shortDescription": {"text": "FastAPI POST `notify` without auth dependency \u2014 server/routes/xkeys.py:134"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e52ed376f6d2734f", "name": "FastAPI POST `create_node` without auth dependency \u2014 server/routes/homelab_map.py:254", "shortDescription": {"text": "FastAPI POST `create_node` without auth dependency \u2014 server/routes/homelab_map.py:254"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1f47b3acbbb3fac", "name": "FastAPI PUT `update_node` without auth dependency \u2014 server/routes/homelab_map.py:316", "shortDescription": {"text": "FastAPI PUT `update_node` without auth dependency \u2014 server/routes/homelab_map.py:316"}, "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-69cd5e7d2ba07104", "name": "FastAPI DELETE `delete_node` without auth dependency \u2014 server/routes/homelab_map.py:345", "shortDescription": {"text": "FastAPI DELETE `delete_node` without auth dependency \u2014 server/routes/homelab_map.py:345"}, "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-9483128741a03c3d", "name": "FastAPI POST `create_edge` without auth dependency \u2014 server/routes/homelab_map.py:361", "shortDescription": {"text": "FastAPI POST `create_edge` without auth dependency \u2014 server/routes/homelab_map.py:361"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43ec2f5db463374d", "name": "FastAPI DELETE `delete_edge` without auth dependency \u2014 server/routes/homelab_map.py:390", "shortDescription": {"text": "FastAPI DELETE `delete_edge` without auth dependency \u2014 server/routes/homelab_map.py:390"}, "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-fbe0febf418e4a06", "name": "FastAPI POST `sync_maximus_skills` without auth dependency \u2014 server/routes/homelab_map.py:459", "shortDescription": {"text": "FastAPI POST `sync_maximus_skills` without auth dependency \u2014 server/routes/homelab_map.py:459"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8b27cbad0831c41", "name": "FastAPI POST `trigger_power_sentinel_probe` without auth dependency \u2014 server/routes/claws_power_sentinel.py:18", "shortDescription": {"text": "FastAPI POST `trigger_power_sentinel_probe` without auth dependency \u2014 server/routes/claws_power_sentinel.py:18"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6214641d6e9c103a", "name": "FastAPI POST `promote_run_memory` without auth dependency \u2014 server/routes/nemo_memory.py:47", "shortDescription": {"text": "FastAPI POST `promote_run_memory` without auth dependency \u2014 server/routes/nemo_memory.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-046874ab2b1d3356", "name": "FastAPI POST `approve_via_telegram` without auth dependency \u2014 server/routes/telegram_callback.py:31", "shortDescription": {"text": "FastAPI POST `approve_via_telegram` without auth dependency \u2014 server/routes/telegram_callback.py:31"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0aa0d1e38add65a2", "name": "FastAPI POST `proxmox_vm_action` without auth dependency \u2014 server/routes/system.py:933", "shortDescription": {"text": "FastAPI POST `proxmox_vm_action` without auth dependency \u2014 server/routes/system.py:933"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-411461ebae32d988", "name": "FastAPI POST `clear_vram` without auth dependency \u2014 server/routes/system.py:1066", "shortDescription": {"text": "FastAPI POST `clear_vram` without auth dependency \u2014 server/routes/system.py:1066"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a87af8d8b383bc2", "name": "FastAPI POST `restart_service` without auth dependency \u2014 server/routes/system.py:1086", "shortDescription": {"text": "FastAPI POST `restart_service` without auth dependency \u2014 server/routes/system.py:1086"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-624ba37f7d601e49", "name": "FastAPI POST `create_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:193", "shortDescription": {"text": "FastAPI POST `create_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.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-178a902ae5c4b206", "name": "FastAPI PATCH `update_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:258", "shortDescription": {"text": "FastAPI PATCH `update_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:258"}, "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-6a1127000e7e8a0c", "name": "FastAPI POST `publish_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:311", "shortDescription": {"text": "FastAPI POST `publish_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:311"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edd991686f0c7a15", "name": "FastAPI PATCH `update_source_policy` without auth dependency \u2014 server/routes/ingestion/legacy.py:397", "shortDescription": {"text": "FastAPI PATCH `update_source_policy` without auth dependency \u2014 server/routes/ingestion/legacy.py:397"}, "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-5179e0db1511139d", "name": "FastAPI POST `analyze_source_intake` without auth dependency \u2014 server/routes/ingestion/legacy.py:916", "shortDescription": {"text": "FastAPI POST `analyze_source_intake` without auth dependency \u2014 server/routes/ingestion/legacy.py:916"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-435819e6f02de951", "name": "FastAPI POST `import_once_source` without auth dependency \u2014 server/routes/ingestion/legacy.py:1019", "shortDescription": {"text": "FastAPI POST `import_once_source` without auth dependency \u2014 server/routes/ingestion/legacy.py:1019"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ee3df46a1726499", "name": "FastAPI POST `create_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1231", "shortDescription": {"text": "FastAPI POST `create_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1231"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab482372f5f46b97", "name": "FastAPI POST `promote_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1299", "shortDescription": {"text": "FastAPI POST `promote_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1299"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-42c167f7a4a68e8f", "name": "FastAPI POST `run_inspect_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1391", "shortDescription": {"text": "FastAPI POST `run_inspect_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1391"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-366e510382fe4fbf", "name": "FastAPI POST `run_stage_source_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1414", "shortDescription": {"text": "FastAPI POST `run_stage_source_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1414"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9426634fc3460441", "name": "FastAPI POST `run_promote_evidence_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1445", "shortDescription": {"text": "FastAPI POST `run_promote_evidence_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1445"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1defb411fd465026", "name": "FastAPI POST `run_promote_signal_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1474", "shortDescription": {"text": "FastAPI POST `run_promote_signal_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1474"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d2ddb331c34b03b", "name": "FastAPI POST `run_scholarly_backfill_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1503", "shortDescription": {"text": "FastAPI POST `run_scholarly_backfill_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1503"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6cad400b7ad9d39b", "name": "FastAPI POST `run_scholarly_index_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1528", "shortDescription": {"text": "FastAPI POST `run_scholarly_index_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1528"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-984fed8dc8a2a3f3", "name": "FastAPI POST `update_review_item` without auth dependency \u2014 server/routes/ingestion/legacy.py:2024", "shortDescription": {"text": "FastAPI POST `update_review_item` without auth dependency \u2014 server/routes/ingestion/legacy.py:2024"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06050e52d355b0c5", "name": "FastAPI POST `bulk_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2129", "shortDescription": {"text": "FastAPI POST `bulk_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2129"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc7787e04e5a79f6", "name": "FastAPI POST `auto_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2214", "shortDescription": {"text": "FastAPI POST `auto_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2214"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9aa1a90e7e31ec56", "name": "FastAPI POST `create_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2368", "shortDescription": {"text": "FastAPI POST `create_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2368"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a19ba90630efc57", "name": "FastAPI DELETE `delete_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2404", "shortDescription": {"text": "FastAPI DELETE `delete_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2404"}, "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-f1b3bae61096b36c", "name": "FastAPI POST `send_digest_now` without auth dependency \u2014 server/routes/ingestion/digest.py:306", "shortDescription": {"text": "FastAPI POST `send_digest_now` without auth dependency \u2014 server/routes/ingestion/digest.py:306"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94134a3cfc00a6fe", "name": "Dangling fetch: POST /api/voice-forge/profiles/${profileId}/sources (client/src/components/voice-lab/voice-forge.tsx:240", "shortDescription": {"text": "Dangling fetch: POST /api/voice-forge/profiles/${profileId}/sources (client/src/components/voice-lab/voice-forge.tsx:240)"}, "fullDescription": {"text": "`client/src/components/voice-lab/voice-forge.tsx:240` calls `POST /api/voice-forge/profiles/${profileId}/sources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice-forge/profiles/<p>/sources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9edc829d266e2d90", "name": "Dangling fetch: POST /api/3d/jobs (client/src/pages/trellis.tsx:274)", "shortDescription": {"text": "Dangling fetch: POST /api/3d/jobs (client/src/pages/trellis.tsx:274)"}, "fullDescription": {"text": "`client/src/pages/trellis.tsx:274` calls `POST /api/3d/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/3d/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2db5c809939c930d", "name": "Dangling fetch: POST /api/voice/call/transcribe (client/src/hooks/useVoiceCall.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/call/transcribe (client/src/hooks/useVoiceCall.ts:141)"}, "fullDescription": {"text": "`client/src/hooks/useVoiceCall.ts:141` calls `POST /api/voice/call/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/call/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-47302ca264ed17fe", "name": "Dangling fetch: POST /api/voice/call/respond (client/src/hooks/useVoiceCall.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /api/voice/call/respond (client/src/hooks/useVoiceCall.ts:161)"}, "fullDescription": {"text": "`client/src/hooks/useVoiceCall.ts:161` calls `POST /api/voice/call/respond` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice/call/respond`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e814b1e24ec6858", "name": "Unused endpoint: GET /call.html", "shortDescription": {"text": "Unused endpoint: GET /call.html"}, "fullDescription": {"text": "`server/app.py` declares `GET /call.html` 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": "`server/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-618721b912bad1c2", "name": "Unused endpoint: POST /login", "shortDescription": {"text": "Unused endpoint: POST /login"}, "fullDescription": {"text": "`server/app.py` declares `POST /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-5ca735a2e6e3646c", "name": "Unused endpoint: GET /logout", "shortDescription": {"text": "Unused endpoint: GET /logout"}, "fullDescription": {"text": "`server/app.py` declares `GET /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-91786ec9e40e27ca", "name": "Unused endpoint: GET /{path:path}", "shortDescription": {"text": "Unused endpoint: GET /{path:path}"}, "fullDescription": {"text": "`server/app.py` declares `GET /{path:path}` 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-44cfdc5bb3376213", "name": "Unused endpoint: GET /api/spatial-lab/experiments", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e9d492e8df24231", "name": "Unused endpoint: POST /api/spatial-lab/experiments", "shortDescription": {"text": "Unused endpoint: POST /api/spatial-lab/experiments"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `POST /api/spatial-lab/experiments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca372ca79d45f337", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}` 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-509a2608d141d78e", "name": "Unused endpoint: PATCH /api/spatial-lab/experiments/{key}", "shortDescription": {"text": "Unused endpoint: PATCH /api/spatial-lab/experiments/{key}"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `PATCH /api/spatial-lab/experiments/{key}` 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-6cc28ce14870f856", "name": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}", "shortDescription": {"text": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `DELETE /api/spatial-lab/experiments/{key}` 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-9be8299142ab8362", "name": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/start", "shortDescription": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/start"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `POST /api/spatial-lab/experiments/{key}/start` 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-c392faf87ecfe61d", "name": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/stop", "shortDescription": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/stop"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `POST /api/spatial-lab/experiments/{key}/stop` 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-21ef0849e6f4f668", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/status", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/status"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5850d655cf67ab3", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/timeline", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/timeline"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}/timeline` 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-cbb8f0e628220a00", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/frames", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/frames"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}/frames` 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-de3c300a40c1af61", "name": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/markers", "shortDescription": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/markers"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `POST /api/spatial-lab/experiments/{key}/markers` 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-8ebf5916ea07ad0b", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/markers", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/markers"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}/markers` 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-933f82eb0c392740", "name": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/log", "shortDescription": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/log"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `POST /api/spatial-lab/experiments/{key}/log` 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-fc99e35402cd0b38", "name": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/log", "shortDescription": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/log"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `GET /api/spatial-lab/experiments/{key}/log` 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-155ecf40763cb6a6", "name": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}/log/{entry_id}", "shortDescription": {"text": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}/log/{entry_id}"}, "fullDescription": {"text": "`server/routes/spatial_experiments.py` declares `DELETE /api/spatial-lab/experiments/{key}/log/{entry_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-71dea4263304a0d4", "name": "Unused endpoint: GET /api/calendar/collections", "shortDescription": {"text": "Unused endpoint: GET /api/calendar/collections"}, "fullDescription": {"text": "`server/routes/calendar.py` declares `GET /api/calendar/collections` 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-98c3b71c4d647c62", "name": "Unused endpoint: GET /api/calendar/events", "shortDescription": {"text": "Unused endpoint: GET /api/calendar/events"}, "fullDescription": {"text": "`server/routes/calendar.py` declares `GET /api/calendar/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-054c711eea76140b", "name": "Unused endpoint: POST /api/claws/blacksmith/probe", "shortDescription": {"text": "Unused endpoint: POST /api/claws/blacksmith/probe"}, "fullDescription": {"text": "`server/routes/claws_blacksmith.py` declares `POST /api/claws/blacksmith/probe` 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-3b50d1eac8b6186d", "name": "Unused endpoint: POST /api/claws/blacksmith/forge", "shortDescription": {"text": "Unused endpoint: POST /api/claws/blacksmith/forge"}, "fullDescription": {"text": "`server/routes/claws_blacksmith.py` declares `POST /api/claws/blacksmith/forge` 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-1bf77c1d91d350bd", "name": "Unused endpoint: GET /api/claws/blacksmith/reports", "shortDescription": {"text": "Unused endpoint: GET /api/claws/blacksmith/reports"}, "fullDescription": {"text": "`server/routes/claws_blacksmith.py` declares `GET /api/claws/blacksmith/reports` 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-9483a6892d6a30a2", "name": "Unused endpoint: GET /api/claws/blacksmith/forge/reports", "shortDescription": {"text": "Unused endpoint: GET /api/claws/blacksmith/forge/reports"}, "fullDescription": {"text": "`server/routes/claws_blacksmith.py` declares `GET /api/claws/blacksmith/forge/reports` 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-ba62a959ba449524", "name": "Unused endpoint: GET /plex/library", "shortDescription": {"text": "Unused endpoint: GET /plex/library"}, "fullDescription": {"text": "`server/routes/transcode.py` declares `GET /plex/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-44df03cc32b90689", "name": "Unused endpoint: GET /public/library", "shortDescription": {"text": "Unused endpoint: GET /public/library"}, "fullDescription": {"text": "`server/routes/transcode.py` declares `GET /public/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-70b125b28f30c330", "name": "Unused endpoint: GET /poster", "shortDescription": {"text": "Unused endpoint: GET /poster"}, "fullDescription": {"text": "`server/routes/transcode.py` declares `GET /poster` 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-e41e8721c9453d8c", "name": "Unused endpoint: GET /public/poster", "shortDescription": {"text": "Unused endpoint: GET /public/poster"}, "fullDescription": {"text": "`server/routes/transcode.py` declares `GET /public/poster` 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-3f6bb53158e7b26b", "name": "Unused endpoint: POST /plex/scan", "shortDescription": {"text": "Unused endpoint: POST /plex/scan"}, "fullDescription": {"text": "`server/routes/transcode.py` declares `POST /plex/scan` 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-86461af070af3164", "name": "Unused endpoint: GET /air-quality", "shortDescription": {"text": "Unused endpoint: GET /air-quality"}, "fullDescription": {"text": "`server/routes/widgets.py` declares `GET /air-quality` 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-c404b42e366dd507", "name": "Unused endpoint: GET /cloudflare", "shortDescription": {"text": "Unused endpoint: GET /cloudflare"}, "fullDescription": {"text": "`server/routes/widgets.py` declares `GET /cloudflare` 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-9e0bb5a1e9ab12c7", "name": "Unused endpoint: GET /droplet", "shortDescription": {"text": "Unused endpoint: GET /droplet"}, "fullDescription": {"text": "`server/routes/widgets.py` declares `GET /droplet` 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-844729fc38c8c8ed", "name": "Unused endpoint: GET /map-config", "shortDescription": {"text": "Unused endpoint: GET /map-config"}, "fullDescription": {"text": "`server/routes/widgets.py` declares `GET /map-config` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1630ac85e7921c3e", "name": "Unused endpoint: GET /map-image", "shortDescription": {"text": "Unused endpoint: GET /map-image"}, "fullDescription": {"text": "`server/routes/widgets.py` declares `GET /map-image` 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-700ec6b657b5add2", "name": "Unused endpoint: GET /api/hermes-cartographer/proposals", "shortDescription": {"text": "Unused endpoint: GET /api/hermes-cartographer/proposals"}, "fullDescription": {"text": "`server/routes/hermes_cartographer.py` declares `GET /api/hermes-cartographer/proposals` 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-80e0d6c1c0e3ede3", "name": "Unused endpoint: GET /api/hermes-cartographer/scans", "shortDescription": {"text": "Unused endpoint: GET /api/hermes-cartographer/scans"}, "fullDescription": {"text": "`server/routes/hermes_cartographer.py` declares `GET /api/hermes-cartographer/scans` 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-0cf6cc3e4177d9cd", "name": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/approve", "shortDescription": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/approve"}, "fullDescription": {"text": "`server/routes/hermes_cartographer.py` declares `POST /api/hermes-cartographer/proposals/{proposal_id}/approve` 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-ee32b00fb86f15b3", "name": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/reject", "shortDescription": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/reject"}, "fullDescription": {"text": "`server/routes/hermes_cartographer.py` declares `POST /api/hermes-cartographer/proposals/{proposal_id}/reject` 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-6110b3892e653fd5", "name": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/defer", "shortDescription": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/defer"}, "fullDescription": {"text": "`server/routes/hermes_cartographer.py` declares `POST /api/hermes-cartographer/proposals/{proposal_id}/defer` 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-696a6e0fba63e203", "name": "Unused endpoint: GET /api/briefing/now", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/now"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/now` 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-b41764b0827a81fc", "name": "Unused endpoint: GET /api/briefing/weather", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/weather"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/weather` 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-eb7b45574d442ef0", "name": "Unused endpoint: GET /api/briefing/celestial", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/celestial"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/celestial` 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-b71d334bc8f7ae38", "name": "Unused endpoint: GET /api/briefing/focus", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/focus"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/focus` 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-e4d06a29c75f8be2", "name": "Unused endpoint: POST /api/briefing/focus", "shortDescription": {"text": "Unused endpoint: POST /api/briefing/focus"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `POST /api/briefing/focus` 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-6f83f769b768f9d6", "name": "Unused endpoint: GET /api/briefing/quote", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/quote"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/quote` 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-6ee88a3b07237cc1", "name": "Unused endpoint: GET /api/briefing/region-info", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/region-info"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/region-info` 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-5a4f28855620f1ae", "name": "Unused endpoint: GET /api/briefing/region-map", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/region-map"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/region-map` 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-6bd7eebf7fe682b1", "name": "Unused endpoint: GET /api/briefing/world", "shortDescription": {"text": "Unused endpoint: GET /api/briefing/world"}, "fullDescription": {"text": "`server/routes/briefing.py` declares `GET /api/briefing/world` 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/18536"}, "properties": {"repository": "Rtoony/rtoony-portal", "repoUrl": "https://github.com/Rtoony/rtoony-portal", "branch": "main"}, "results": [{"ruleId": "scanner-1e2ce7bbdc3d67c4", "level": "note", "message": {"text": "Possibly dead Python function: auth_middleware"}, "properties": {"repobilityId": "8dc0aaaa776ed66d", "scanner": "scanner-primary", "fingerprint": "1e2ce7bbdc3d67c4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/auth.py:293"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be83cc579f18c703", "level": "note", "message": {"text": "Possibly dead Python function: search_archive"}, "properties": {"repobilityId": "9ea92124612c1eec", "scanner": "scanner-primary", "fingerprint": "be83cc579f18c703", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/archive_downloader.py:23"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0119cb9422c52f9f", "level": "note", "message": {"text": "Possibly dead Python function: download_text"}, "properties": {"repobilityId": "059ba4bfccb6c429", "scanner": "scanner-primary", "fingerprint": "0119cb9422c52f9f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/archive_downloader.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce7fc1eff25b96ef", "level": "note", "message": {"text": "Possibly dead Python function: passes_mode"}, "properties": {"repobilityId": "985426f3a456e710", "scanner": "scanner-primary", "fingerprint": "ce7fc1eff25b96ef", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/firehose_classification.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6680c0368abb24c2", "level": "note", "message": {"text": "Possibly dead Python function: looks_unnamed"}, "properties": {"repobilityId": "1113cdf370d136df", "scanner": "scanner-primary", "fingerprint": "6680c0368abb24c2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/firehose_classification.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f85d61a095a75f6", "level": "note", "message": {"text": "Possibly dead Python function: import_source_path"}, "properties": {"repobilityId": "97b2e12cfbc4498d", "scanner": "scanner-primary", "fingerprint": "7f85d61a095a75f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/nemo_workspace.py:42"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-013819be3c178bd6", "level": "note", "message": {"text": "Possibly dead Python function: list_operator_events"}, "properties": {"repobilityId": "789e3e6ae4c22edd", "scanner": "scanner-primary", "fingerprint": "013819be3c178bd6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/operator_audit.py:117"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3909096caadb127", "level": "note", "message": {"text": "Possibly dead Python function: run_rerank_assessment"}, "properties": {"repobilityId": "3a7282062c4573f0", "scanner": "scanner-primary", "fingerprint": "a3909096caadb127", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/claw_blacksmith_reranker.py:216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e89475f7a828431a", "level": "note", "message": {"text": "Possibly dead Python function: fail_session"}, "properties": {"repobilityId": "c602744e247c62f1", "scanner": "scanner-primary", "fingerprint": "e89475f7a828431a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/claw_research_sessions.py:531"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e53bab9006813892", "level": "note", "message": {"text": "Possibly dead Python function: embed_text_vertex"}, "properties": {"repobilityId": "388d1d81900560b5", "scanner": "scanner-primary", "fingerprint": "e53bab9006813892", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/embeddings.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-251698f74a85bbcd", "level": "note", "message": {"text": "Possibly dead Python function: run_variance_suite"}, "properties": {"repobilityId": "9ccbbfc1a3f2618f", "scanner": "scanner-primary", "fingerprint": "251698f74a85bbcd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/lib/claw_blacksmith_variance.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af1c6edcb398e2d2", "level": "note", "message": {"text": "Possibly dead Python function: bold"}, "properties": {"repobilityId": "f6c8e1b63f847323", "scanner": "scanner-primary", "fingerprint": "af1c6edcb398e2d2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/telegram_bot/rendering.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04abb975b97e2928", "level": "note", "message": {"text": "Possibly dead Python function: italic"}, "properties": {"repobilityId": "d280afe298befbb3", "scanner": "scanner-primary", "fingerprint": "04abb975b97e2928", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/telegram_bot/rendering.py:18"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16da3d9598b9c233", "level": "note", "message": {"text": "Possibly dead Python function: header"}, "properties": {"repobilityId": "0d3c97e1cc68c808", "scanner": "scanner-primary", "fingerprint": "16da3d9598b9c233", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/telegram_bot/rendering.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ce16e4cc6a29ada", "level": "note", "message": {"text": "Possibly dead Python function: bullet"}, "properties": {"repobilityId": "0f8f131d410940ff", "scanner": "scanner-primary", "fingerprint": "5ce16e4cc6a29ada", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/telegram_bot/rendering.py:29"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02ae8bb023c6a526", "level": "note", "message": {"text": "Possibly dead Python function: require_maximus_or_operator"}, "properties": {"repobilityId": "7b0d85036d8cfb6f", "scanner": "scanner-primary", "fingerprint": "02ae8bb023c6a526", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/three_d.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-254a0d7dfb5be1ae", "level": "note", "message": {"text": "Possibly dead Python function: require_operator"}, "properties": {"repobilityId": "16fe5a3b55445e08", "scanner": "scanner-primary", "fingerprint": "254a0d7dfb5be1ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/three_d.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb0ba7ba002a86be", "level": "note", "message": {"text": "Possibly dead Python function: require_hermes_or_operator"}, "properties": {"repobilityId": "4b9fb4283a620c50", "scanner": "scanner-primary", "fingerprint": "eb0ba7ba002a86be", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/hermes_dashboard.py:108"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c8efa38cc47e6eb", "level": "note", "message": {"text": "Possibly dead Python function: require_maximus_or_operator"}, "properties": {"repobilityId": "7b0d85036d8cfb6f", "scanner": "scanner-primary", "fingerprint": "3c8efa38cc47e6eb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/maximus_dashboard.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e86f5ab748dbb235", "level": "note", "message": {"text": "Possibly dead Python function: require_operator"}, "properties": {"repobilityId": "16fe5a3b55445e08", "scanner": "scanner-primary", "fingerprint": "e86f5ab748dbb235", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/maximus_dashboard.py:93"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25b021146eb1d847", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/SkillsTab.tsx:217"}, "properties": {"repobilityId": "e3a789d0b51bd712", "scanner": "scanner-primary", "fingerprint": "25b021146eb1d847", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-67deca9e8099f929", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/MemoryPersonaTab.tsx:92"}, "properties": {"repobilityId": "440679e661af37ed", "scanner": "scanner-primary", "fingerprint": "67deca9e8099f929", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57db517ea72ba6f6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/OverviewTab.tsx:175"}, "properties": {"repobilityId": "2692c3301d199394", "scanner": "scanner-primary", "fingerprint": "57db517ea72ba6f6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5bfdacce0423a281", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/maximus/CostsTab.tsx:123"}, "properties": {"repobilityId": "57f6cd97bcbc2381", "scanner": "scanner-primary", "fingerprint": "5bfdacce0423a281", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cbb9d93a1c953c44", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/app-shell.tsx:133"}, "properties": {"repobilityId": "8c46689bbc74e089", "scanner": "scanner-primary", "fingerprint": "cbb9d93a1c953c44", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4905939c89c5c242", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-playback.tsx:557"}, "properties": {"repobilityId": "47a0c853ce16d6e1", "scanner": "scanner-primary", "fingerprint": "4905939c89c5c242", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fed4aaab084bf404", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/spatial-lab/experiment-list.tsx:91"}, "properties": {"repobilityId": "20ae88429c685c8a", "scanner": "scanner-primary", "fingerprint": "fed4aaab084bf404", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cfc7bc1b7d584f82", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 client/src/components/ui/flow-map.tsx:671"}, "properties": {"repobilityId": "88835b07e20c5b12", "scanner": "scanner-primary", "fingerprint": "cfc7bc1b7d584f82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-c0b7afbf0389b380", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/ui/flow-map.tsx:316"}, "properties": {"repobilityId": "385868a608421fbf", "scanner": "scanner-primary", "fingerprint": "c0b7afbf0389b380", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b80da5449012cd53", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/air-quality-card.tsx:125"}, "properties": {"repobilityId": "5b187ad1ef96fc03", "scanner": "scanner-primary", "fingerprint": "b80da5449012cd53", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f8043e3430407ad", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/droplet-card.tsx:92"}, "properties": {"repobilityId": "f0645a44c21c9f8e", "scanner": "scanner-primary", "fingerprint": "9f8043e3430407ad", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ad343317196fc86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/service-card.tsx:72"}, "properties": {"repobilityId": "3ad75df3b828a128", "scanner": "scanner-primary", "fingerprint": "2ad343317196fc86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9aa51ad12f4b7c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/claw-lab/research-sessions.tsx:148"}, "properties": {"repobilityId": "8c18595bab713231", "scanner": "scanner-primary", "fingerprint": "a9aa51ad12f4b7c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7fcfaca7839487e4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/runtime-view.tsx:254"}, "properties": {"repobilityId": "4094c220342b8b2e", "scanner": "scanner-primary", "fingerprint": "7fcfaca7839487e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b5005a9ba683dea6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/security-view.tsx:467"}, "properties": {"repobilityId": "5f2c6cc0b4d0855d", "scanner": "scanner-primary", "fingerprint": "b5005a9ba683dea6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-407a502273a1203a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/users-view.tsx:223"}, "properties": {"repobilityId": "557162564ea636fb", "scanner": "scanner-primary", "fingerprint": "407a502273a1203a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0468b7f8265314be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/family-view.tsx:210"}, "properties": {"repobilityId": "6bac6e2e1a6c0dfc", "scanner": "scanner-primary", "fingerprint": "0468b7f8265314be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-195debce2011109a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/ha-binding-panel.tsx:108"}, "properties": {"repobilityId": "0de842cea11f25fa", "scanner": "scanner-primary", "fingerprint": "195debce2011109a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4abf102fb2daf414", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/property-panel.tsx:827"}, "properties": {"repobilityId": "8c3590badec125c0", "scanner": "scanner-primary", "fingerprint": "4abf102fb2daf414", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6e0df2d1973e418", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/project-sidebar.tsx:78"}, "properties": {"repobilityId": "77f2a7ee0f42b322", "scanner": "scanner-primary", "fingerprint": "d6e0df2d1973e418", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-334fa35ec7a5f317", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/staging-dock.tsx:156"}, "properties": {"repobilityId": "32fe8fa251246dc0", "scanner": "scanner-primary", "fingerprint": "334fa35ec7a5f317", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a403ef0e37a53db7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/infra-binding-panel.tsx:150"}, "properties": {"repobilityId": "f48ff66afda5ada2", "scanner": "scanner-primary", "fingerprint": "a403ef0e37a53db7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-170cdfeaab5fb941", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/binding-review-panel.tsx:143"}, "properties": {"repobilityId": "5df95c35092657af", "scanner": "scanner-primary", "fingerprint": "170cdfeaab5fb941", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-373aa50942392fda", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-device-panel.tsx:55"}, "properties": {"repobilityId": "b6c5895fd29abca4", "scanner": "scanner-primary", "fingerprint": "373aa50942392fda", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd5a61ddd67f6863", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/live-scene-panel.tsx:182"}, "properties": {"repobilityId": "b3318ea4249e4b79", "scanner": "scanner-primary", "fingerprint": "dd5a61ddd67f6863", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8de12d427d887a80", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/condo-castle/editor/panels/device-health-panel.tsx:85"}, "properties": {"repobilityId": "8f67d2ee93e57f3f", "scanner": "scanner-primary", "fingerprint": "8de12d427d887a80", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-802016eb3397a348", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/visual-fx/game-engine-lab.tsx:382"}, "properties": {"repobilityId": "5e2ad64f845f8d02", "scanner": "scanner-primary", "fingerprint": "802016eb3397a348", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e4b29ab8a66cd5ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/voice-lab/voice-forge.tsx:166"}, "properties": {"repobilityId": "9a4cbb2c008d84c7", "scanner": "scanner-primary", "fingerprint": "e4b29ab8a66cd5ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4e30e31574517496", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusVisionWorkspace.tsx:132"}, "properties": {"repobilityId": "ceca6af123a7ee81", "scanner": "scanner-primary", "fingerprint": "4e30e31574517496", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fafb0164e66b657b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusCapabilitiesSidebar.tsx:74"}, "properties": {"repobilityId": "a1c0ce6e7d9aa0f4", "scanner": "scanner-primary", "fingerprint": "fafb0164e66b657b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-beed0cedbbcc3de6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/nexus/NexusGpuStatus.tsx:38"}, "properties": {"repobilityId": "b791190c4ed06244", "scanner": "scanner-primary", "fingerprint": "beed0cedbbcc3de6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e78ef061a9449a3e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/claw-lab.tsx:348"}, "properties": {"repobilityId": "5ebd1d72eb0c073b", "scanner": "scanner-primary", "fingerprint": "e78ef061a9449a3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17d6363722a6e8f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/knowledge.tsx:223"}, "properties": {"repobilityId": "3aba7f4daa23dc98", "scanner": "scanner-primary", "fingerprint": "17d6363722a6e8f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c852a94b28f77be2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/calendar.tsx:587"}, "properties": {"repobilityId": "ce294a2bf96e58fb", "scanner": "scanner-primary", "fingerprint": "c852a94b28f77be2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-90df905b01baec69", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/spatial-lab.tsx:957"}, "properties": {"repobilityId": "6d945d07e2edd5c7", "scanner": "scanner-primary", "fingerprint": "90df905b01baec69", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9e46ab6030d67020", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/sensor-health.tsx:227"}, "properties": {"repobilityId": "7b190cc1903a895c", "scanner": "scanner-primary", "fingerprint": "9e46ab6030d67020", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b327a4e9c25da71d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/projects.tsx:487"}, "properties": {"repobilityId": "dd9808d912bb8e66", "scanner": "scanner-primary", "fingerprint": "b327a4e9c25da71d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2f60fe0df3ad181", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/backups.tsx:321"}, "properties": {"repobilityId": "e3e38d0c4f279c94", "scanner": "scanner-primary", "fingerprint": "c2f60fe0df3ad181", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-58a9a6a30ed4a907", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/media-library.tsx:224"}, "properties": {"repobilityId": "785ca51f9fef0e87", "scanner": "scanner-primary", "fingerprint": "58a9a6a30ed4a907", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-33fb5364a71ce5b2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/dashboard.tsx:843"}, "properties": {"repobilityId": "bd47345dcb14194b", "scanner": "scanner-primary", "fingerprint": "33fb5364a71ce5b2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d0b59432302b0ea2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/public-map.tsx:176"}, "properties": {"repobilityId": "080e6b2537fb5113", "scanner": "scanner-primary", "fingerprint": "d0b59432302b0ea2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cecbfe8968145d3e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/climate-wall.tsx:373"}, "properties": {"repobilityId": "33288e0c3b027884", "scanner": "scanner-primary", "fingerprint": "cecbfe8968145d3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24c6387990fb5f14", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/workspaces.tsx:604"}, "properties": {"repobilityId": "67a3daa986c5982b", "scanner": "scanner-primary", "fingerprint": "24c6387990fb5f14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55e59f6a04758f03", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/fleet.tsx:149"}, "properties": {"repobilityId": "6fb17a2c7e573e34", "scanner": "scanner-primary", "fingerprint": "55e59f6a04758f03", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b0dba8abfbe7b8f0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice.tsx:256"}, "properties": {"repobilityId": "f9f63596105b0665", "scanner": "scanner-primary", "fingerprint": "b0dba8abfbe7b8f0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-736a07d89633b856", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/playground.tsx:659"}, "properties": {"repobilityId": "1390f9a189ef0b2b", "scanner": "scanner-primary", "fingerprint": "736a07d89633b856", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8bfb00cfdc5e972f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/safeshare.tsx:125"}, "properties": {"repobilityId": "e646ba39c305358b", "scanner": "scanner-primary", "fingerprint": "8bfb00cfdc5e972f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2942edf25ad2d51", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/wifi-sensing.tsx:477"}, "properties": {"repobilityId": "17f4a287a447a102", "scanner": "scanner-primary", "fingerprint": "a2942edf25ad2d51", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9caeb1cb217c5a97", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/motion-wall.tsx:579"}, "properties": {"repobilityId": "b4d0a47d8138c8ff", "scanner": "scanner-primary", "fingerprint": "9caeb1cb217c5a97", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f063d61219f855a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/operator-pack.tsx:1322"}, "properties": {"repobilityId": "6ce8ba14ff20d93e", "scanner": "scanner-primary", "fingerprint": "4f063d61219f855a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-47630abd3dedc88b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/transcode.tsx:418"}, "properties": {"repobilityId": "ccb699546ce75524", "scanner": "scanner-primary", "fingerprint": "47630abd3dedc88b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d297dd1199a5bc63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/voice-lab.tsx:390"}, "properties": {"repobilityId": "4c917ec6076101a2", "scanner": "scanner-primary", "fingerprint": "d297dd1199a5bc63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3cf8f6f708e1e870", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/pages/xkeys-manager.tsx:200"}, "properties": {"repobilityId": "bffbc0a069744122", "scanner": "scanner-primary", "fingerprint": "3cf8f6f708e1e870", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e7655df2b93b1b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/ui/mermaid.tsx:35"}, "properties": {"repobilityId": "dab347554d74ee8c", "scanner": "scanner-primary", "fingerprint": "7e7655df2b93b1b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/components/ui/mermaid.tsx"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-823a65e5d90110e5", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in server/xkeys_service.py:1301"}, "properties": {"repobilityId": "9cf89210c40997ab", "scanner": "scanner-primary", "fingerprint": "823a65e5d90110e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 1301}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-5a72742893f22f6e", "level": "note", "message": {"text": "Very large file: client/src/components/claw-lab/research-sessions.tsx (1331 lines)"}, "properties": {"repobilityId": "039dd2075b06d77b", "scanner": "scanner-primary", "fingerprint": "5a72742893f22f6e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ee3506836a3bf272", "level": "note", "message": {"text": "Very large file: client/src/components/condo-castle/editor/floor-plan-editor.tsx (1282 lines)"}, "properties": {"repobilityId": "1ce627132da965f3", "scanner": "scanner-primary", "fingerprint": "ee3506836a3bf272", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a00180e1d2f19c05", "level": "note", "message": {"text": "Very large file: client/src/components/condo-castle/editor/panels/property-panel.tsx (1444 lines)"}, "properties": {"repobilityId": "56c9fa6ea1d0f365", "scanner": "scanner-primary", "fingerprint": "a00180e1d2f19c05", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f3b707632d706dee", "level": "note", "message": {"text": "Very large file: client/src/pages/spatial-lab.tsx (1212 lines)"}, "properties": {"repobilityId": "7744d8849c075c80", "scanner": "scanner-primary", "fingerprint": "f3b707632d706dee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47e649a05b719219", "level": "note", "message": {"text": "Very large file: client/src/pages/splat.tsx (1183 lines)"}, "properties": {"repobilityId": "c77b784899721c13", "scanner": "scanner-primary", "fingerprint": "47e649a05b719219", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-849c595063d31423", "level": "note", "message": {"text": "Very large file: client/src/pages/motion-wall.tsx (1614 lines)"}, "properties": {"repobilityId": "ad4096cc2d65497e", "scanner": "scanner-primary", "fingerprint": "849c595063d31423", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-857a48a5657fe957", "level": "note", "message": {"text": "Very large file: client/src/pages/operator-pack.tsx (3313 lines)"}, "properties": {"repobilityId": "aea7a2a941326984", "scanner": "scanner-primary", "fingerprint": "857a48a5657fe957", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-abca697363f9d406", "level": "note", "message": {"text": "Very large file: server/xkeys_service.py (2090 lines)"}, "properties": {"repobilityId": "0eb20750f1f01ac1", "scanner": "scanner-primary", "fingerprint": "abca697363f9d406", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5cff8013132b794c", "level": "note", "message": {"text": "Very large file: server/tests/test_operator_pack.py (2791 lines)"}, "properties": {"repobilityId": "c9c66661559f146c", "scanner": "scanner-primary", "fingerprint": "5cff8013132b794c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ebc642945fa45714", "level": "note", "message": {"text": "Very large file: server/lib/nemo_runtime.py (2207 lines)"}, "properties": {"repobilityId": "181d8b2ac6655b92", "scanner": "scanner-primary", "fingerprint": "ebc642945fa45714", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-062bdf6ed403549b", "level": "note", "message": {"text": "Very large file: server/lib/claw_research_sessions.py (1242 lines)"}, "properties": {"repobilityId": "a98687be5fe1f616", "scanner": "scanner-primary", "fingerprint": "062bdf6ed403549b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15727ac20113fd4c", "level": "note", "message": {"text": "Very large file: server/routes/operator_pack.py (4898 lines)"}, "properties": {"repobilityId": "7effc1b3a3bfc1ea", "scanner": "scanner-primary", "fingerprint": "15727ac20113fd4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15bc9d3cf72e2382", "level": "note", "message": {"text": "Very large file: server/routes/sources.py (2695 lines)"}, "properties": {"repobilityId": "2efdcb86456fc0f0", "scanner": "scanner-primary", "fingerprint": "15bc9d3cf72e2382", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-97a7ea228c3b71cf", "level": "note", "message": {"text": "Very large file: server/routes/ingestion/legacy.py (3233 lines)"}, "properties": {"repobilityId": "ee0b7da73deb171f", "scanner": "scanner-primary", "fingerprint": "97a7ea228c3b71cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8478c06f5ddc3bc6", "level": "note", "message": {"text": "Very large file: server/routes/ingestion/shared.py (1515 lines)"}, "properties": {"repobilityId": "72989459b9fe063e", "scanner": "scanner-primary", "fingerprint": "8478c06f5ddc3bc6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "8c08610069a32bfa", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "99cb91006001439c", "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": "042a0ad4eb9765fb", "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": "0aac7bec3c1757a1", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "db40fbb82997ad52", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "da2df0da92a5a211", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "9d1bb2bf772a4e83", "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": "1d8522fa613359e2", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35347dd02049a95a", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/components/ui/flow-map.tsx:116"}, "properties": {"repobilityId": "2ed5dad9bd757d3f", "scanner": "scanner-primary", "fingerprint": "35347dd02049a95a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fadd5a681ca8cec4", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/components/hermes/types.ts:1"}, "properties": {"repobilityId": "ee975a25e179b432", "scanner": "scanner-primary", "fingerprint": "fadd5a681ca8cec4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48bf4843822072b5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/components/voice-lab/voice-forge.tsx:240"}, "properties": {"repobilityId": "e5d14a42d2eca6bd", "scanner": "scanner-primary", "fingerprint": "48bf4843822072b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4583cdb3572e487", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/lib/portal-nav.ts:63"}, "properties": {"repobilityId": "f4a377f71fcacea5", "scanner": "scanner-primary", "fingerprint": "a4583cdb3572e487", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee1cc8872526c3ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/pages/operator-pack.tsx:2892"}, "properties": {"repobilityId": "5ff51c9ed5422867", "scanner": "scanner-primary", "fingerprint": "ee1cc8872526c3ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b89002b73283d77", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useVoiceCall.ts:161"}, "properties": {"repobilityId": "2f703d5d1ee3a470", "scanner": "scanner-primary", "fingerprint": "5b89002b73283d77", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f368e0ed7600fd1c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/hooks/useSSE.ts:50"}, "properties": {"repobilityId": "f5753613ff4ec37c", "scanner": "scanner-primary", "fingerprint": "f368e0ed7600fd1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2eb966dd417a773", "level": "note", "message": {"text": "Legacy-named symbol `pw_copy` in server/xkeys_service.py:202"}, "properties": {"repobilityId": "a67b18e05f8f83ca", "scanner": "scanner-primary", "fingerprint": "f2eb966dd417a773", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01c421bcba8759c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/xkeys_service.py:1638"}, "properties": {"repobilityId": "c65c2c01428651e1", "scanner": "scanner-primary", "fingerprint": "01c421bcba8759c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f6d5a32ea6a7409", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:366"}, "properties": {"repobilityId": "b78fefbe9f50c332", "scanner": "scanner-primary", "fingerprint": "0f6d5a32ea6a7409", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 366}}}]}, {"ruleId": "scanner-a641009ce5067660", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:370"}, "properties": {"repobilityId": "8024c14b72f32892", "scanner": "scanner-primary", "fingerprint": "a641009ce5067660", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 370}}}]}, {"ruleId": "scanner-cd97b19e4e44efaf", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_right` \u2014 server/xkeys_service.py:374"}, "properties": {"repobilityId": "45dd6300d9d7692d", "scanner": "scanner-primary", "fingerprint": "cd97b19e4e44efaf", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-23a5d934511fca46", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:391"}, "properties": {"repobilityId": "3acf53114fea92dc", "scanner": "scanner-primary", "fingerprint": "23a5d934511fca46", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 391}}}]}, {"ruleId": "scanner-3a64e1f1ced874d2", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_sweep_down` \u2014 server/xkeys_service.py:395"}, "properties": {"repobilityId": "34aeb7a8763809f2", "scanner": "scanner-primary", "fingerprint": "3a64e1f1ced874d2", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 395}}}]}, {"ruleId": "scanner-cb5a2cb290656de4", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:408"}, "properties": {"repobilityId": "55114768298c5d51", "scanner": "scanner-primary", "fingerprint": "cb5a2cb290656de4", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 408}}}]}, {"ruleId": "scanner-fce0cc98f9f04d20", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_alert_border` \u2014 server/xkeys_service.py:412"}, "properties": {"repobilityId": "862d004759b4f152", "scanner": "scanner-primary", "fingerprint": "fce0cc98f9f04d20", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 412}}}]}, {"ruleId": "scanner-382e56f4a802b842", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:430"}, "properties": {"repobilityId": "559a5cdda0f95500", "scanner": "scanner-primary", "fingerprint": "382e56f4a802b842", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 430}}}]}, {"ruleId": "scanner-3077aab27d0d3f49", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_ripple_center` \u2014 server/xkeys_service.py:433"}, "properties": {"repobilityId": "a211fa9d40edb54f", "scanner": "scanner-primary", "fingerprint": "3077aab27d0d3f49", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 433}}}]}, {"ruleId": "scanner-bff591f8aa0e2092", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_highlight_key` \u2014 server/xkeys_service.py:444"}, "properties": {"repobilityId": "e8a491474b8ecc36", "scanner": "scanner-primary", "fingerprint": "bff591f8aa0e2092", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 444}}}]}, {"ruleId": "scanner-837ebbe264685c94", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_success` \u2014 server/xkeys_service.py:466"}, "properties": {"repobilityId": "e0400ddd2575efdc", "scanner": "scanner-primary", "fingerprint": "837ebbe264685c94", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 466}}}]}, {"ruleId": "scanner-f64019f49b1bb788", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_failure` \u2014 server/xkeys_service.py:478"}, "properties": {"repobilityId": "984a68dde61c46d1", "scanner": "scanner-primary", "fingerprint": "f64019f49b1bb788", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 478}}}]}, {"ruleId": "scanner-31eabcaa4c5ac405", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:493"}, "properties": {"repobilityId": "f52d51ad29892a44", "scanner": "scanner-primary", "fingerprint": "31eabcaa4c5ac405", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 493}}}]}, {"ruleId": "scanner-726f72e7f59f59ac", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_attention` \u2014 server/xkeys_service.py:500"}, "properties": {"repobilityId": "8aca651149b0b79d", "scanner": "scanner-primary", "fingerprint": "726f72e7f59f59ac", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 500}}}]}, {"ruleId": "scanner-eaaf7fa24bdeebe8", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:509"}, "properties": {"repobilityId": "f2b6d141c6d3c126", "scanner": "scanner-primary", "fingerprint": "eaaf7fa24bdeebe8", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 509}}}]}, {"ruleId": "scanner-18e3b91c5f58cd87", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:511"}, "properties": {"repobilityId": "cfb04aa5e52f19d8", "scanner": "scanner-primary", "fingerprint": "18e3b91c5f58cd87", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 511}}}]}, {"ruleId": "scanner-d9780f24dd40f42c", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown` \u2014 server/xkeys_service.py:519"}, "properties": {"repobilityId": "3e6ab0de6dc51c84", "scanner": "scanner-primary", "fingerprint": "d9780f24dd40f42c", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 519}}}]}, {"ruleId": "scanner-23b835baed62a675", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_fill_up` \u2014 server/xkeys_service.py:531"}, "properties": {"repobilityId": "8f7e8d1b378944e1", "scanner": "scanner-primary", "fingerprint": "23b835baed62a675", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 531}}}]}, {"ruleId": "scanner-d5332d0e20576b01", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:544"}, "properties": {"repobilityId": "675dfa73688b8732", "scanner": "scanner-primary", "fingerprint": "d5332d0e20576b01", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-e4dd9929d9570815", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:549"}, "properties": {"repobilityId": "93e9f4b22c1b7615", "scanner": "scanner-primary", "fingerprint": "e4dd9929d9570815", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 549}}}]}, {"ruleId": "scanner-d3c91f15a98d9a56", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:575"}, "properties": {"repobilityId": "d1106c406a5c31c2", "scanner": "scanner-primary", "fingerprint": "d3c91f15a98d9a56", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 575}}}]}, {"ruleId": "scanner-596e62e9b7450799", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:579"}, "properties": {"repobilityId": "60cb7bc7c162ee2c", "scanner": "scanner-primary", "fingerprint": "596e62e9b7450799", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 579}}}]}, {"ruleId": "scanner-4cbface2409feb71", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:584"}, "properties": {"repobilityId": "8f2dec76193bb104", "scanner": "scanner-primary", "fingerprint": "4cbface2409feb71", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 584}}}]}, {"ruleId": "scanner-c903164741ac4c55", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_decision_gate` \u2014 server/xkeys_service.py:588"}, "properties": {"repobilityId": "991851ecf3153b26", "scanner": "scanner-primary", "fingerprint": "c903164741ac4c55", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 588}}}]}, {"ruleId": "scanner-187abff5c77a22a5", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:604"}, "properties": {"repobilityId": "8edad7157c2efd1b", "scanner": "scanner-primary", "fingerprint": "187abff5c77a22a5", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 604}}}]}, {"ruleId": "scanner-ee7f61228b577881", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:628"}, "properties": {"repobilityId": "f703e8597fb00fbb", "scanner": "scanner-primary", "fingerprint": "ee7f61228b577881", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 628}}}]}, {"ruleId": "scanner-dceae1974beb2930", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_security_keypad` \u2014 server/xkeys_service.py:632"}, "properties": {"repobilityId": "dda3e23a4937df54", "scanner": "scanner-primary", "fingerprint": "dceae1974beb2930", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 632}}}]}, {"ruleId": "scanner-67bda4aff644625a", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:641"}, "properties": {"repobilityId": "316b47c47de014f4", "scanner": "scanner-primary", "fingerprint": "67bda4aff644625a", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-544098d18bb95993", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:643"}, "properties": {"repobilityId": "cc5d507d2c7b52c3", "scanner": "scanner-primary", "fingerprint": "544098d18bb95993", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-9cc9eb886f715c34", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_countdown_timer` \u2014 server/xkeys_service.py:687"}, "properties": {"repobilityId": "7a29f912a44a8496", "scanner": "scanner-primary", "fingerprint": "9cc9eb886f715c34", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 687}}}]}, {"ruleId": "scanner-fa55c09299154da1", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_radar_sweep` \u2014 server/xkeys_service.py:730"}, "properties": {"repobilityId": "21276bf1abfbcbfa", "scanner": "scanner-primary", "fingerprint": "fa55c09299154da1", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 730}}}]}, {"ruleId": "scanner-2f6307670d11a1c8", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_cascade` \u2014 server/xkeys_service.py:756"}, "properties": {"repobilityId": "3c605d497509c982", "scanner": "scanner-primary", "fingerprint": "2f6307670d11a1c8", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 756}}}]}, {"ruleId": "scanner-a7de99dad3e81880", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_heartbeat` \u2014 server/xkeys_service.py:770"}, "properties": {"repobilityId": "5db827601564dafe", "scanner": "scanner-primary", "fingerprint": "a7de99dad3e81880", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 770}}}]}, {"ruleId": "scanner-9b6bdd49bbd206ad", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_snake` \u2014 server/xkeys_service.py:811"}, "properties": {"repobilityId": "768c9879a57e18a7", "scanner": "scanner-primary", "fingerprint": "9b6bdd49bbd206ad", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 811}}}]}, {"ruleId": "scanner-a9e8cdb4a5ae4fdf", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _anim_deck_reveal` \u2014 server/xkeys_service.py:859"}, "properties": {"repobilityId": "3cb6b43108e39431", "scanner": "scanner-primary", "fingerprint": "a9e8cdb4a5ae4fdf", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/xkeys_service.py"}, "region": {"startLine": 859}}}]}, {"ruleId": "scanner-ffeb305d18e424aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/config.py:17"}, "properties": {"repobilityId": "6fc460cff150ffa2", "scanner": "scanner-primary", "fingerprint": "ffeb305d18e424aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76d393e6cdb99cc0", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/app.py:260"}, "properties": {"repobilityId": "1305e70c95910cff", "scanner": "scanner-primary", "fingerprint": "76d393e6cdb99cc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53796c5d32ffc543", "level": "note", "message": {"text": "Legacy-named symbol `intake_legacy` in server/tests/test_operator_pack.py:1697"}, "properties": {"repobilityId": "ba1644a552bc6714", "scanner": "scanner-primary", "fingerprint": "53796c5d32ffc543", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2eb5611bde08ae0c", "level": "note", "message": {"text": "Stub function `start` (body is just `pass`/`return`) \u2014 server/lib/nemo_runtime.py:1507"}, "properties": {"repobilityId": "5bd36339e245d8a5", "scanner": "scanner-primary", "fingerprint": "2eb5611bde08ae0c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-f277681cc333c889", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/lib/services_registry.py:3"}, "properties": {"repobilityId": "722acf19c0df58ee", "scanner": "scanner-primary", "fingerprint": "f277681cc333c889", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18fa516a2d37ad17", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/autoresearch_nightly.py:460"}, "properties": {"repobilityId": "9577365da51f5884", "scanner": "scanner-primary", "fingerprint": "18fa516a2d37ad17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f6b2f76d6d3e378", "level": "note", "message": {"text": "Legacy-named symbol `trigger_backup` in server/telegram_bot/bot.py:483"}, "properties": {"repobilityId": "87914b65dcee525b", "scanner": "scanner-primary", "fingerprint": "8f6b2f76d6d3e378", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5ab617e14bb5ce2b", "level": "note", "message": {"text": "Legacy-named symbol `curr_backup` in server/telegram_bot/alerts/rules.py:212"}, "properties": {"repobilityId": "05751d9e42757593", "scanner": "scanner-primary", "fingerprint": "5ab617e14bb5ce2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cc6e797a99cd8a37", "level": "note", "message": {"text": "Legacy-named symbol `trigger_backup` in server/telegram_bot/actions/ops_actions.py:32"}, "properties": {"repobilityId": "72001124fe0e8f7f", "scanner": "scanner-primary", "fingerprint": "cc6e797a99cd8a37", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b3bc9f7847c13d88", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 server/routes/widgets.py:365"}, "properties": {"repobilityId": "66aaecec45dea9ac", "scanner": "scanner-primary", "fingerprint": "b3bc9f7847c13d88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab3716c7b66cbc8a", "level": "error", "message": {"text": "Blocking `requests.get(...)` inside `async def cloudflare_security` \u2014 server/routes/widgets.py:365"}, "properties": {"repobilityId": "dab7a169f698e103", "scanner": "scanner-primary", "fingerprint": "ab3716c7b66cbc8a", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/widgets.py"}, "region": {"startLine": 365}}}]}, {"ruleId": "scanner-b1fa442d8c832ec7", "level": "note", "message": {"text": "Legacy-named symbol `trigger_backup` in server/routes/backups.py:115"}, "properties": {"repobilityId": "49261569d803cf01", "scanner": "scanner-primary", "fingerprint": "b1fa442d8c832ec7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e7f5f5aa6f007582", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 server/routes/three_d.py:225"}, "properties": {"repobilityId": "8b246cf409cc6678", "scanner": "scanner-primary", "fingerprint": "e7f5f5aa6f007582", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc5aae5bd5516000", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/routes/splat.py:649"}, "properties": {"repobilityId": "3444ae01d34df03e", "scanner": "scanner-primary", "fingerprint": "cc5aae5bd5516000", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7081d5a74fd6731", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/routes/claws_sessions.py:387"}, "properties": {"repobilityId": "875f5e623be91b05", "scanner": "scanner-primary", "fingerprint": "d7081d5a74fd6731", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd191dbe375616c9", "level": "note", "message": {"text": "Legacy-named symbol `nvmlDeviceGetComputeRunningProcesses_v2` in server/routes/system.py:74"}, "properties": {"repobilityId": "117606cc972c0f9a", "scanner": "scanner-primary", "fingerprint": "bd191dbe375616c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a588ad2600c06592", "level": "note", "message": {"text": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/topics.py:39"}, "properties": {"repobilityId": "89dc95418c907cc9", "scanner": "scanner-primary", "fingerprint": "a588ad2600c06592", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-05db81a98b34871b", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/routes/ingestion/topics.py:440"}, "properties": {"repobilityId": "0a899cd0439abe7e", "scanner": "scanner-primary", "fingerprint": "05db81a98b34871b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c77b8cee1a56728d", "level": "note", "message": {"text": "Legacy-named symbol `migrated_legacy` in server/routes/ingestion/shared.py:220"}, "properties": {"repobilityId": "f2f498b6c6b30b80", "scanner": "scanner-primary", "fingerprint": "c77b8cee1a56728d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "dd416172741c08a6", "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": "dc83d78fca8f566e", "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": "75a3ede6591593e2", "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": "a1d48390804186d7", "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": "0faa0fcfbfc3d048", "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": "9a960d7c054dc1e5", "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": "c7fe5ef95cd6de3d", "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": "90c7bfe122800b68", "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": "ed2353dc4bd84d25", "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": "314a37d148a360ab", "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": "4db7fffceeebaa17", "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": "bfb7287ecd879fee", "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": "278e698fa9707bce", "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": "f779add3f0cfef26", "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": "f0abc7cd8be20937", "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": "0e3a68169a4a0f84", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "5f0b6535bbedfb12", "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": "a232ef14224082b5", "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": "ee409e24cf10c6d5", "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": "bfa7a29b57ef372b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-44e9b2a75ea731ed", "level": "warning", "message": {"text": "Frontend route `/projects/:projectNumber` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "2f03ae308c849da5", "scanner": "scanner-primary", "fingerprint": "44e9b2a75ea731ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e1729f8874f226d5", "level": "warning", "message": {"text": "Frontend route `/remote` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "720b4e7b2027e581", "scanner": "scanner-primary", "fingerprint": "e1729f8874f226d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ee661a4c9f185cec", "level": "warning", "message": {"text": "Frontend route `/visual-fx/:section` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "772faa9bd755ff03", "scanner": "scanner-primary", "fingerprint": "ee661a4c9f185cec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0913a5b7773c02bf", "level": "warning", "message": {"text": "Frontend route `/vision` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "c36859576cef537e", "scanner": "scanner-primary", "fingerprint": "0913a5b7773c02bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-74b0446e02a0fbdc", "level": "warning", "message": {"text": "Frontend route `/vision-console` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "37f7e9be9c4f23b9", "scanner": "scanner-primary", "fingerprint": "74b0446e02a0fbdc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5a0830acd1ce7e40", "level": "warning", "message": {"text": "Frontend route `/vision-lab` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "ea608a15c785c980", "scanner": "scanner-primary", "fingerprint": "5a0830acd1ce7e40", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b831cb309d6bec18", "level": "warning", "message": {"text": "Frontend route `/source-extractor` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "4c771dea77b82855", "scanner": "scanner-primary", "fingerprint": "b831cb309d6bec18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-29484a04bcea9a6b", "level": "warning", "message": {"text": "Frontend route `/ingestion` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "b02cdf764437e658", "scanner": "scanner-primary", "fingerprint": "29484a04bcea9a6b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-248c8b7bbada01df", "level": "warning", "message": {"text": "Frontend route `/knowledge-map` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "047969f42b659d98", "scanner": "scanner-primary", "fingerprint": "248c8b7bbada01df", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b24aaf3bbe8baa5a", "level": "warning", "message": {"text": "Frontend route `/topics` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "c77a3e6e013fc644", "scanner": "scanner-primary", "fingerprint": "b24aaf3bbe8baa5a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f2b28721278a128a", "level": "warning", "message": {"text": "Frontend route `/data-home` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "f86d3a283894cb75", "scanner": "scanner-primary", "fingerprint": "f2b28721278a128a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9f18ce916e30de63", "level": "warning", "message": {"text": "Frontend route `/arena` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "8a112f409a8ebaa3", "scanner": "scanner-primary", "fingerprint": "9f18ce916e30de63", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9a530add3e39ce42", "level": "warning", "message": {"text": "Frontend route `/lab` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "40c4e2ee6c1517b2", "scanner": "scanner-primary", "fingerprint": "9a530add3e39ce42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cd08e9bd7198beaf", "level": "warning", "message": {"text": "Frontend route `/nexus` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "6087d07cd71d3a46", "scanner": "scanner-primary", "fingerprint": "cd08e9bd7198beaf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e639d92dd6a4e718", "level": "warning", "message": {"text": "Frontend route `/text-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "95d62e602af68491", "scanner": "scanner-primary", "fingerprint": "e639d92dd6a4e718", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2ca0619dbdac5a03", "level": "warning", "message": {"text": "Frontend route `/image-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "1b005b255ad435d9", "scanner": "scanner-primary", "fingerprint": "2ca0619dbdac5a03", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0421847da35efb12", "level": "warning", "message": {"text": "Frontend route `/video-models` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "4547342635df06b6", "scanner": "scanner-primary", "fingerprint": "0421847da35efb12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ca2282f22274c5b6", "level": "warning", "message": {"text": "Frontend route `/xkeys/companion` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "d000243181a824db", "scanner": "scanner-primary", "fingerprint": "ca2282f22274c5b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-19ca3cc22fed0b37", "level": "warning", "message": {"text": "Frontend route `/voice-memos` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "735c5f4f28cd671b", "scanner": "scanner-primary", "fingerprint": "19ca3cc22fed0b37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5346e362a4e18bb9", "level": "warning", "message": {"text": "Frontend route `/voice/call` has no Link/navigate to it \u2014 client/src/App.tsx"}, "properties": {"repobilityId": "999d290bb32e4a7c", "scanner": "scanner-primary", "fingerprint": "5346e362a4e18bb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-22bf79b509d00b0d", "level": "error", "message": {"text": "FastAPI POST `create_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:135"}, "properties": {"repobilityId": "6b719a26856efd37", "scanner": "scanner-primary", "fingerprint": "22bf79b509d00b0d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-a24d9965890ca832", "level": "error", "message": {"text": "FastAPI PATCH `update_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:194"}, "properties": {"repobilityId": "6c8e00a5165bb69a", "scanner": "scanner-primary", "fingerprint": "a24d9965890ca832", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-5d7bd2446e734312", "level": "error", "message": {"text": "FastAPI DELETE `delete_experiment` without auth dependency \u2014 server/routes/spatial_experiments.py:241"}, "properties": {"repobilityId": "ad06e24a63d70581", "scanner": "scanner-primary", "fingerprint": "5d7bd2446e734312", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-259c4c2505eea55d", "level": "error", "message": {"text": "FastAPI POST `start_recording` without auth dependency \u2014 server/routes/spatial_experiments.py:259"}, "properties": {"repobilityId": "3da2e285ad15a520", "scanner": "scanner-primary", "fingerprint": "259c4c2505eea55d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 259}}}]}, {"ruleId": "scanner-849a75fbabea8df7", "level": "error", "message": {"text": "FastAPI POST `stop_recording` without auth dependency \u2014 server/routes/spatial_experiments.py:302"}, "properties": {"repobilityId": "07b107322b47ef88", "scanner": "scanner-primary", "fingerprint": "849a75fbabea8df7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 302}}}]}, {"ruleId": "scanner-a4f960a90007cc33", "level": "error", "message": {"text": "FastAPI POST `add_marker` without auth dependency \u2014 server/routes/spatial_experiments.py:1172"}, "properties": {"repobilityId": "393194be0cae40e1", "scanner": "scanner-primary", "fingerprint": "a4f960a90007cc33", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 1172}}}]}, {"ruleId": "scanner-b64f0c8e1164bee4", "level": "error", "message": {"text": "FastAPI POST `add_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1222"}, "properties": {"repobilityId": "62b1b9e55894f8d2", "scanner": "scanner-primary", "fingerprint": "b64f0c8e1164bee4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 1222}}}]}, {"ruleId": "scanner-6f5a94a0440299cd", "level": "error", "message": {"text": "FastAPI DELETE `delete_log_entry` without auth dependency \u2014 server/routes/spatial_experiments.py:1273"}, "properties": {"repobilityId": "c0056145d7c05ac7", "scanner": "scanner-primary", "fingerprint": "6f5a94a0440299cd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/spatial_experiments.py"}, "region": {"startLine": 1273}}}]}, {"ruleId": "scanner-d214f6696f8ac238", "level": "error", "message": {"text": "FastAPI POST `trigger_blacksmith_probe` without auth dependency \u2014 server/routes/claws_blacksmith.py:18"}, "properties": {"repobilityId": "744d61a62ee6f9cd", "scanner": "scanner-primary", "fingerprint": "d214f6696f8ac238", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_blacksmith.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-c0266f565b813f55", "level": "error", "message": {"text": "FastAPI POST `trigger_blacksmith_forge` without auth dependency \u2014 server/routes/claws_blacksmith.py:32"}, "properties": {"repobilityId": "54cb6055aad4db48", "scanner": "scanner-primary", "fingerprint": "c0266f565b813f55", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_blacksmith.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-6280bc94a2633e2f", "level": "error", "message": {"text": "FastAPI POST `trigger_transcode_plex_scan` without auth dependency \u2014 server/routes/transcode.py:132"}, "properties": {"repobilityId": "3833f9450667b47e", "scanner": "scanner-primary", "fingerprint": "6280bc94a2633e2f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/transcode.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-6c9c333cec72e5a9", "level": "error", "message": {"text": "FastAPI POST `approve_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:160"}, "properties": {"repobilityId": "79c6f808a110988f", "scanner": "scanner-primary", "fingerprint": "6c9c333cec72e5a9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/hermes_cartographer.py"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-70794785ad2016ce", "level": "error", "message": {"text": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:223"}, "properties": {"repobilityId": "92a639ac417c1e61", "scanner": "scanner-primary", "fingerprint": "70794785ad2016ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/hermes_cartographer.py"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-bfc90370ec250255", "level": "error", "message": {"text": "FastAPI POST `defer_proposal` without auth dependency \u2014 server/routes/hermes_cartographer.py:246"}, "properties": {"repobilityId": "357317b0567a19b8", "scanner": "scanner-primary", "fingerprint": "bfc90370ec250255", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/hermes_cartographer.py"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-7b284e6091940453", "level": "error", "message": {"text": "FastAPI POST `set_focus` without auth dependency \u2014 server/routes/briefing.py:516"}, "properties": {"repobilityId": "29bf5e716277249b", "scanner": "scanner-primary", "fingerprint": "7b284e6091940453", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/briefing.py"}, "region": {"startLine": 516}}}]}, {"ruleId": "scanner-2a7f3030ef2edfa6", "level": "error", "message": {"text": "FastAPI POST `power_on_vision_console` without auth dependency \u2014 server/routes/vision.py:241"}, "properties": {"repobilityId": "68e1ab300399168b", "scanner": "scanner-primary", "fingerprint": "2a7f3030ef2edfa6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-e717f07147450f0c", "level": "error", "message": {"text": "FastAPI POST `power_off_vision_console` without auth dependency \u2014 server/routes/vision.py:250"}, "properties": {"repobilityId": "0ee4109adf2960bb", "scanner": "scanner-primary", "fingerprint": "e717f07147450f0c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-5e5ce228345abb41", "level": "error", "message": {"text": "FastAPI POST `capture_from_camera` without auth dependency \u2014 server/routes/vision.py:259"}, "properties": {"repobilityId": "5c6b1abdbf985e30", "scanner": "scanner-primary", "fingerprint": "5e5ce228345abb41", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 259}}}]}, {"ruleId": "scanner-49900b0e28acc7c8", "level": "error", "message": {"text": "FastAPI POST `enable_gestures` without auth dependency \u2014 server/routes/vision.py:302"}, "properties": {"repobilityId": "d3a1330f5c427c08", "scanner": "scanner-primary", "fingerprint": "49900b0e28acc7c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 302}}}]}, {"ruleId": "scanner-728de810e8c8400f", "level": "error", "message": {"text": "FastAPI POST `disable_gestures` without auth dependency \u2014 server/routes/vision.py:311"}, "properties": {"repobilityId": "6b7065651868272f", "scanner": "scanner-primary", "fingerprint": "728de810e8c8400f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-0bbf634aceebd3cc", "level": "error", "message": {"text": "FastAPI PUT `update_gesture_config` without auth dependency \u2014 server/routes/vision.py:329"}, "properties": {"repobilityId": "68060410462b942b", "scanner": "scanner-primary", "fingerprint": "0bbf634aceebd3cc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/vision.py"}, "region": {"startLine": 329}}}]}, {"ruleId": "scanner-5fbe5acf639da97c", "level": "error", "message": {"text": "FastAPI POST `trigger_backup_witness_probe` without auth dependency \u2014 server/routes/claws_backup_witness.py:12"}, "properties": {"repobilityId": "2a12397bb68074a9", "scanner": "scanner-primary", "fingerprint": "5fbe5acf639da97c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_backup_witness.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-c26f2aa649f66a40", "level": "error", "message": {"text": "FastAPI POST `trigger_eval_run` without auth dependency \u2014 server/routes/claws_evals.py:19"}, "properties": {"repobilityId": "69f560f7c0101203", "scanner": "scanner-primary", "fingerprint": "c26f2aa649f66a40", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_evals.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-201820293da74fd5", "level": "error", "message": {"text": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/lab.py:162"}, "properties": {"repobilityId": "42f9cd54b075851c", "scanner": "scanner-primary", "fingerprint": "201820293da74fd5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/lab.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-d24f8c8d1ffc9484", "level": "error", "message": {"text": "FastAPI POST `append_run_event` without auth dependency \u2014 server/routes/lab.py:193"}, "properties": {"repobilityId": "996f766427aea439", "scanner": "scanner-primary", "fingerprint": "d24f8c8d1ffc9484", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/lab.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-78148b711bb9e948", "level": "error", "message": {"text": "FastAPI POST `append_run_artifact` without auth dependency \u2014 server/routes/lab.py:215"}, "properties": {"repobilityId": "bcbff4227ba2c00c", "scanner": "scanner-primary", "fingerprint": "78148b711bb9e948", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/lab.py"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-00d57534503fd6a8", "level": "error", "message": {"text": "FastAPI POST `control_device` without auth dependency \u2014 server/routes/condo_castle.py:747"}, "properties": {"repobilityId": "2b03b84fe5b31405", "scanner": "scanner-primary", "fingerprint": "00d57534503fd6a8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle.py"}, "region": {"startLine": 747}}}]}, {"ruleId": "scanner-09ac119a91b852bb", "level": "error", "message": {"text": "FastAPI POST `setup_areas` without auth dependency \u2014 server/routes/condo_castle.py:1045"}, "properties": {"repobilityId": "32d7fd748a573bb4", "scanner": "scanner-primary", "fingerprint": "09ac119a91b852bb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle.py"}, "region": {"startLine": 1045}}}]}, {"ruleId": "scanner-30a4819bec9db731", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/nemo_sessions.py:36"}, "properties": {"repobilityId": "c15c849c16bcc1e6", "scanner": "scanner-primary", "fingerprint": "30a4819bec9db731", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_sessions.py"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-c0d8cd5df042cf8c", "level": "error", "message": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/nemo_sessions.py:111"}, "properties": {"repobilityId": "ae9fe7c894ccd10e", "scanner": "scanner-primary", "fingerprint": "c0d8cd5df042cf8c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_sessions.py"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-12c35451130d3d4b", "level": "error", "message": {"text": "FastAPI POST `start_battle_stream` without auth dependency \u2014 server/routes/arena.py:229"}, "properties": {"repobilityId": "08a95d8851455b88", "scanner": "scanner-primary", "fingerprint": "12c35451130d3d4b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/arena.py"}, "region": {"startLine": 229}}}]}, {"ruleId": "scanner-8b8881e6f52871ff", "level": "error", "message": {"text": "FastAPI POST `record_vote` without auth dependency \u2014 server/routes/arena.py:305"}, "properties": {"repobilityId": "3affe47c4c2cd4b8", "scanner": "scanner-primary", "fingerprint": "8b8881e6f52871ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/arena.py"}, "region": {"startLine": 305}}}]}, {"ruleId": "scanner-e87a861ad1945f63", "level": "error", "message": {"text": "FastAPI POST `trigger_cartographer_probe` without auth dependency \u2014 server/routes/claws_cartographer.py:18"}, "properties": {"repobilityId": "90a24e518e0fea6d", "scanner": "scanner-primary", "fingerprint": "e87a861ad1945f63", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_cartographer.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-36ca27ed5fb9a5e4", "level": "error", "message": {"text": "FastAPI POST `receive_gesture_event` without auth dependency \u2014 server/routes/gesture_events.py:23"}, "properties": {"repobilityId": "fb2c09293bb23ba8", "scanner": "scanner-primary", "fingerprint": "36ca27ed5fb9a5e4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/gesture_events.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-194149087a07b514", "level": "error", "message": {"text": "FastAPI DELETE `clear_events` without auth dependency \u2014 server/routes/gesture_events.py:61"}, "properties": {"repobilityId": "6347f7cd58702767", "scanner": "scanner-primary", "fingerprint": "194149087a07b514", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/gesture_events.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-1985c4c6c4f30b25", "level": "error", "message": {"text": "FastAPI POST `add_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:51"}, "properties": {"repobilityId": "2c79d30a635bea49", "scanner": "scanner-primary", "fingerprint": "1985c4c6c4f30b25", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/dev_feedback.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-59e08a0c4df46329", "level": "error", "message": {"text": "FastAPI POST `resolve_feedback` without auth dependency \u2014 server/routes/dev_feedback.py:79"}, "properties": {"repobilityId": "516a64a52a5213da", "scanner": "scanner-primary", "fingerprint": "59e08a0c4df46329", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/dev_feedback.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-7d230e323139068a", "level": "error", "message": {"text": "FastAPI POST `generate_proposal` without auth dependency \u2014 server/routes/claws_workflow_architect.py:23"}, "properties": {"repobilityId": "9119eb2c20aa6504", "scanner": "scanner-primary", "fingerprint": "7d230e323139068a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_workflow_architect.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-eaf961e230bf2e0a", "level": "error", "message": {"text": "FastAPI POST `trigger_foundry_probe` without auth dependency \u2014 server/routes/claws_foundry.py:12"}, "properties": {"repobilityId": "0d9dead914adc8f4", "scanner": "scanner-primary", "fingerprint": "eaf961e230bf2e0a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_foundry.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-162e35eaa01a52ed", "level": "error", "message": {"text": "FastAPI POST `recommend_vision_route` without auth dependency \u2014 server/routes/multimodal.py:212"}, "properties": {"repobilityId": "3ca76594c37df759", "scanner": "scanner-primary", "fingerprint": "162e35eaa01a52ed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-6833d1ba1787a688", "level": "error", "message": {"text": "FastAPI POST `segment_image` without auth dependency \u2014 server/routes/multimodal.py:226"}, "properties": {"repobilityId": "f2d87ad0d5338c83", "scanner": "scanner-primary", "fingerprint": "6833d1ba1787a688", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-b9f68bda31217ae7", "level": "error", "message": {"text": "FastAPI POST `track_video_object` without auth dependency \u2014 server/routes/multimodal.py:285"}, "properties": {"repobilityId": "489b68b665c7e210", "scanner": "scanner-primary", "fingerprint": "b9f68bda31217ae7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-887daa9bf76e29ea", "level": "error", "message": {"text": "FastAPI POST `generate_mesh` without auth dependency \u2014 server/routes/multimodal.py:340"}, "properties": {"repobilityId": "0921646d32d74095", "scanner": "scanner-primary", "fingerprint": "887daa9bf76e29ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 340}}}]}, {"ruleId": "scanner-aafdc75d5e02a2b4", "level": "error", "message": {"text": "FastAPI POST `reconstruct_general_3d` without auth dependency \u2014 server/routes/multimodal.py:388"}, "properties": {"repobilityId": "9a9d02daf874fe44", "scanner": "scanner-primary", "fingerprint": "aafdc75d5e02a2b4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 388}}}]}, {"ruleId": "scanner-b4325794bb42d1f5", "level": "error", "message": {"text": "FastAPI POST `export_body_mesh` without auth dependency \u2014 server/routes/multimodal.py:456"}, "properties": {"repobilityId": "ee9dbd14c5f2722f", "scanner": "scanner-primary", "fingerprint": "b4325794bb42d1f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 456}}}]}, {"ruleId": "scanner-9c97a416fd98af0f", "level": "error", "message": {"text": "FastAPI POST `reconstruct_body` without auth dependency \u2014 server/routes/multimodal.py:500"}, "properties": {"repobilityId": "18a99439c6a2e18c", "scanner": "scanner-primary", "fingerprint": "9c97a416fd98af0f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 500}}}]}, {"ruleId": "scanner-c73c08b05988d71b", "level": "error", "message": {"text": "FastAPI POST `auto_segment_image` without auth dependency \u2014 server/routes/multimodal.py:564"}, "properties": {"repobilityId": "342b1435c11271f7", "scanner": "scanner-primary", "fingerprint": "c73c08b05988d71b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 564}}}]}, {"ruleId": "scanner-7f3db423e07898c9", "level": "error", "message": {"text": "FastAPI POST `prewarm_model` without auth dependency \u2014 server/routes/multimodal.py:601"}, "properties": {"repobilityId": "d95b44b12d43d004", "scanner": "scanner-primary", "fingerprint": "7f3db423e07898c9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 601}}}]}, {"ruleId": "scanner-81d579586b25d60d", "level": "error", "message": {"text": "FastAPI POST `generate_video` without auth dependency \u2014 server/routes/multimodal.py:629"}, "properties": {"repobilityId": "1cc81d2ac1caf946", "scanner": "scanner-primary", "fingerprint": "81d579586b25d60d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 629}}}]}, {"ruleId": "scanner-11855e1b68174e8e", "level": "error", "message": {"text": "FastAPI POST `generate_image` without auth dependency \u2014 server/routes/multimodal.py:682"}, "properties": {"repobilityId": "a641a4d3448b6fed", "scanner": "scanner-primary", "fingerprint": "11855e1b68174e8e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/multimodal.py"}, "region": {"startLine": 682}}}]}, {"ruleId": "scanner-0d3c02b4f0118e0a", "level": "error", "message": {"text": "FastAPI POST `synthesize` without auth dependency \u2014 server/routes/voice_lab.py:322"}, "properties": {"repobilityId": "15fc4afa6361853d", "scanner": "scanner-primary", "fingerprint": "0d3c02b4f0118e0a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_lab.py"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-1bc9974aa5851376", "level": "error", "message": {"text": "FastAPI POST `toggle_favorite` without auth dependency \u2014 server/routes/voice_lab.py:456"}, "properties": {"repobilityId": "0d67fcb6054bd35f", "scanner": "scanner-primary", "fingerprint": "1bc9974aa5851376", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_lab.py"}, "region": {"startLine": 456}}}]}, {"ruleId": "scanner-b75a1afd1c815bac", "level": "error", "message": {"text": "FastAPI DELETE `delete_generation` without auth dependency \u2014 server/routes/voice_lab.py:473"}, "properties": {"repobilityId": "ba3acbbbbfa43234", "scanner": "scanner-primary", "fingerprint": "b75a1afd1c815bac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_lab.py"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-72aeb4013b776719", "level": "error", "message": {"text": "FastAPI POST `purge_old` without auth dependency \u2014 server/routes/voice_lab.py:492"}, "properties": {"repobilityId": "107a2892ea4ee556", "scanner": "scanner-primary", "fingerprint": "72aeb4013b776719", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_lab.py"}, "region": {"startLine": 492}}}]}, {"ruleId": "scanner-f87fc37588816bf9", "level": "error", "message": {"text": "FastAPI POST `refresh_catalog` without auth dependency \u2014 server/routes/voice_lab.py:501"}, "properties": {"repobilityId": "f2d72709a79bbb1a", "scanner": "scanner-primary", "fingerprint": "f87fc37588816bf9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_lab.py"}, "region": {"startLine": 501}}}]}, {"ruleId": "scanner-ee01bc27167a310e", "level": "error", "message": {"text": "FastAPI POST `trigger_backup` without auth dependency \u2014 server/routes/backups.py:114"}, "properties": {"repobilityId": "9f9b310e5bd1ed34", "scanner": "scanner-primary", "fingerprint": "ee01bc27167a310e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/backups.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-671b26425aa338d3", "level": "error", "message": {"text": "FastAPI POST `create_run` without auth dependency \u2014 server/routes/nemo_runs.py:42"}, "properties": {"repobilityId": "9af0f0038a3e3bc1", "scanner": "scanner-primary", "fingerprint": "671b26425aa338d3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_runs.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-a7446a50dc82a5ae", "level": "error", "message": {"text": "FastAPI PUT `set_nemo_binding` without auth dependency \u2014 server/routes/voice.py:164"}, "properties": {"repobilityId": "445d9084661bc933", "scanner": "scanner-primary", "fingerprint": "a7446a50dc82a5ae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-d84aad19b6b8a23b", "level": "error", "message": {"text": "FastAPI DELETE `clear_nemo_binding` without auth dependency \u2014 server/routes/voice.py:189"}, "properties": {"repobilityId": "8f187cadc62a0629", "scanner": "scanner-primary", "fingerprint": "d84aad19b6b8a23b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice.py"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-542d5c77d328e436", "level": "error", "message": {"text": "FastAPI POST `request_export` without auth dependency \u2014 server/routes/nemo_artifacts.py:52"}, "properties": {"repobilityId": "70ed2c33fab96aae", "scanner": "scanner-primary", "fingerprint": "542d5c77d328e436", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_artifacts.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-d29659491f0741d0", "level": "error", "message": {"text": "FastAPI POST `export_direct` without auth dependency \u2014 server/routes/nemo_artifacts.py:75"}, "properties": {"repobilityId": "c12417599f006595", "scanner": "scanner-primary", "fingerprint": "d29659491f0741d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_artifacts.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-59e71b83e50a44ce", "level": "error", "message": {"text": "FastAPI POST `telegram_webhook` without auth dependency \u2014 server/routes/telegram.py:22"}, "properties": {"repobilityId": "b42a2c8231b3e8e6", "scanner": "scanner-primary", "fingerprint": "59e71b83e50a44ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-e1c7d799ffbdff40", "level": "error", "message": {"text": "FastAPI POST `telegram_test` without auth dependency \u2014 server/routes/telegram.py:82"}, "properties": {"repobilityId": "957529bc407fae94", "scanner": "scanner-primary", "fingerprint": "e1c7d799ffbdff40", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-1da1e4a1958528da", "level": "error", "message": {"text": "FastAPI POST `telegram_mini_house_control` without auth dependency \u2014 server/routes/telegram.py:243"}, "properties": {"repobilityId": "4ebf4e3c082c8fab", "scanner": "scanner-primary", "fingerprint": "1da1e4a1958528da", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-37dad083bf4511c2", "level": "error", "message": {"text": "FastAPI POST `telegram_mini_routine` without auth dependency \u2014 server/routes/telegram.py:275"}, "properties": {"repobilityId": "34a9131e910b3f08", "scanner": "scanner-primary", "fingerprint": "37dad083bf4511c2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-36e3ab034316cc58", "level": "error", "message": {"text": "FastAPI POST `telegram_mini_plex_scan` without auth dependency \u2014 server/routes/telegram.py:355"}, "properties": {"repobilityId": "9e966ed071576e43", "scanner": "scanner-primary", "fingerprint": "36e3ab034316cc58", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 355}}}]}, {"ruleId": "scanner-d33324fb97fb4c1e", "level": "error", "message": {"text": "FastAPI POST `telegram_mini_backup_trigger` without auth dependency \u2014 server/routes/telegram.py:361"}, "properties": {"repobilityId": "b4d0dce0731a4399", "scanner": "scanner-primary", "fingerprint": "d33324fb97fb4c1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram.py"}, "region": {"startLine": 361}}}]}, {"ruleId": "scanner-5c1476f8dafac298", "level": "error", "message": {"text": "FastAPI POST `create_profile` without auth dependency \u2014 server/routes/voice_forge.py:138"}, "properties": {"repobilityId": "27d77833e750cfc1", "scanner": "scanner-primary", "fingerprint": "5c1476f8dafac298", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-9dd5b538360402ba", "level": "error", "message": {"text": "FastAPI PATCH `update_profile` without auth dependency \u2014 server/routes/voice_forge.py:183"}, "properties": {"repobilityId": "abbb12d15671481a", "scanner": "scanner-primary", "fingerprint": "9dd5b538360402ba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-f68cbedda338a156", "level": "error", "message": {"text": "FastAPI DELETE `delete_profile` without auth dependency \u2014 server/routes/voice_forge.py:207"}, "properties": {"repobilityId": "c01348b4bf72e19d", "scanner": "scanner-primary", "fingerprint": "f68cbedda338a156", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-a557c50087a9b709", "level": "error", "message": {"text": "FastAPI POST `upload_source` without auth dependency \u2014 server/routes/voice_forge.py:225"}, "properties": {"repobilityId": "65389a008eb12522", "scanner": "scanner-primary", "fingerprint": "a557c50087a9b709", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-74f26fc1fabe6814", "level": "error", "message": {"text": "FastAPI DELETE `delete_source` without auth dependency \u2014 server/routes/voice_forge.py:301"}, "properties": {"repobilityId": "250405072b09f5b8", "scanner": "scanner-primary", "fingerprint": "74f26fc1fabe6814", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-8528482e89c907ae", "level": "error", "message": {"text": "FastAPI POST `segment_source` without auth dependency \u2014 server/routes/voice_forge.py:317"}, "properties": {"repobilityId": "6f479be980464319", "scanner": "scanner-primary", "fingerprint": "8528482e89c907ae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-ffb4f818772db07d", "level": "error", "message": {"text": "FastAPI POST `transcribe_segment` without auth dependency \u2014 server/routes/voice_forge.py:505"}, "properties": {"repobilityId": "0accde9ba2cd1b66", "scanner": "scanner-primary", "fingerprint": "ffb4f818772db07d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 505}}}]}, {"ruleId": "scanner-0fd9aa6bf8d3b0ff", "level": "error", "message": {"text": "FastAPI POST `score_segment` without auth dependency \u2014 server/routes/voice_forge.py:539"}, "properties": {"repobilityId": "93641b22cb7ebd10", "scanner": "scanner-primary", "fingerprint": "0fd9aa6bf8d3b0ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 539}}}]}, {"ruleId": "scanner-b92b121379a58dfb", "level": "error", "message": {"text": "FastAPI POST `set_canonical` without auth dependency \u2014 server/routes/voice_forge.py:558"}, "properties": {"repobilityId": "4a6bf0c42619dfe5", "scanner": "scanner-primary", "fingerprint": "b92b121379a58dfb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 558}}}]}, {"ruleId": "scanner-014905dbbdc5f4cf", "level": "error", "message": {"text": "FastAPI POST `audition_segment` without auth dependency \u2014 server/routes/voice_forge.py:591"}, "properties": {"repobilityId": "50d1e8e517085290", "scanner": "scanner-primary", "fingerprint": "014905dbbdc5f4cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 591}}}]}, {"ruleId": "scanner-7b1f970ff2a3f1f5", "level": "error", "message": {"text": "FastAPI POST `finalize_profile` without auth dependency \u2014 server/routes/voice_forge.py:677"}, "properties": {"repobilityId": "f88aeeda904acc02", "scanner": "scanner-primary", "fingerprint": "7b1f970ff2a3f1f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_forge.py"}, "region": {"startLine": 677}}}]}, {"ruleId": "scanner-db99f73028f3dc7c", "level": "error", "message": {"text": "FastAPI POST `start_investigation` without auth dependency \u2014 server/routes/nemo_bridge.py:87"}, "properties": {"repobilityId": "57d9a6d4f0efe33e", "scanner": "scanner-primary", "fingerprint": "db99f73028f3dc7c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_bridge.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-611f9e576eb72d78", "level": "error", "message": {"text": "FastAPI POST `promote_investigation` without auth dependency \u2014 server/routes/nemo_bridge.py:240"}, "properties": {"repobilityId": "0eee412ad3fc541c", "scanner": "scanner-primary", "fingerprint": "611f9e576eb72d78", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_bridge.py"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-bb1fdd2b1e0aca73", "level": "error", "message": {"text": "FastAPI POST `start_research_session` without auth dependency \u2014 server/routes/nemo_bridge.py:284"}, "properties": {"repobilityId": "cad8e990456dcac6", "scanner": "scanner-primary", "fingerprint": "bb1fdd2b1e0aca73", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_bridge.py"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-7720c6496b79c531", "level": "error", "message": {"text": "FastAPI POST `preempt_active_lease` without auth dependency \u2014 server/routes/claws_governor.py:391"}, "properties": {"repobilityId": "6c7765b6c5122e53", "scanner": "scanner-primary", "fingerprint": "7720c6496b79c531", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_governor.py"}, "region": {"startLine": 391}}}]}, {"ruleId": "scanner-4ab6c162e9f54b9a", "level": "error", "message": {"text": "FastAPI DELETE `terminate_terminal_session` without auth dependency \u2014 server/routes/terminal.py:421"}, "properties": {"repobilityId": "f83e3d541ba597cf", "scanner": "scanner-primary", "fingerprint": "4ab6c162e9f54b9a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/terminal.py"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-a4cc8c3c5b9c78e6", "level": "error", "message": {"text": "FastAPI PUT `set_autostart` without auth dependency \u2014 server/routes/layouts.py:150"}, "properties": {"repobilityId": "80f68609c35dc156", "scanner": "scanner-primary", "fingerprint": "a4cc8c3c5b9c78e6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/layouts.py"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-62c17de9ea491eb9", "level": "error", "message": {"text": "FastAPI PUT `save_layout` without auth dependency \u2014 server/routes/layouts.py:165"}, "properties": {"repobilityId": "cc512cd9a9942a31", "scanner": "scanner-primary", "fingerprint": "62c17de9ea491eb9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/layouts.py"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-2d52797dd42d3de9", "level": "error", "message": {"text": "FastAPI DELETE `delete_layout` without auth dependency \u2014 server/routes/layouts.py:175"}, "properties": {"repobilityId": "5f158ecaae9422c4", "scanner": "scanner-primary", "fingerprint": "2d52797dd42d3de9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/layouts.py"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-40020eabe2798292", "level": "error", "message": {"text": "FastAPI POST `load_layout` without auth dependency \u2014 server/routes/layouts.py:188"}, "properties": {"repobilityId": "bbe9746351eacd40", "scanner": "scanner-primary", "fingerprint": "40020eabe2798292", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/layouts.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "scanner-e231e8e121decd09", "level": "error", "message": {"text": "FastAPI POST `submit_for_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:109"}, "properties": {"repobilityId": "5aa27ab26912fc45", "scanner": "scanner-primary", "fingerprint": "e231e8e121decd09", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_promotions.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-3b6184320bff3cac", "level": "error", "message": {"text": "FastAPI POST `approve_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:161"}, "properties": {"repobilityId": "c3df240748fc8f59", "scanner": "scanner-primary", "fingerprint": "3b6184320bff3cac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_promotions.py"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-06c1766e611b44bd", "level": "error", "message": {"text": "FastAPI POST `reject_promotion` without auth dependency \u2014 server/routes/claws_promotions.py:189"}, "properties": {"repobilityId": "03d444120ae59fa9", "scanner": "scanner-primary", "fingerprint": "06c1766e611b44bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_promotions.py"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-357861f9f85c6101", "level": "error", "message": {"text": "FastAPI POST `totp_setup` without auth dependency \u2014 server/routes/totp.py:113"}, "properties": {"repobilityId": "a64d8790b10b5686", "scanner": "scanner-primary", "fingerprint": "357861f9f85c6101", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/totp.py"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-c326da4dbd57a598", "level": "error", "message": {"text": "FastAPI POST `totp_verify` without auth dependency \u2014 server/routes/totp.py:153"}, "properties": {"repobilityId": "a725f77d8967d2c0", "scanner": "scanner-primary", "fingerprint": "c326da4dbd57a598", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/totp.py"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-a3c19b62b21eb02f", "level": "error", "message": {"text": "FastAPI POST `totp_reset` without auth dependency \u2014 server/routes/totp.py:207"}, "properties": {"repobilityId": "483bddfcae54048d", "scanner": "scanner-primary", "fingerprint": "a3c19b62b21eb02f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/totp.py"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-455ff2da46223661", "level": "error", "message": {"text": "FastAPI POST `upload_splat_input` without auth dependency \u2014 server/routes/splat.py:953"}, "properties": {"repobilityId": "e84d9cd2a36f9199", "scanner": "scanner-primary", "fingerprint": "455ff2da46223661", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 953}}}]}, {"ruleId": "scanner-a323b50b8132fe73", "level": "error", "message": {"text": "FastAPI POST `start_splat_training` without auth dependency \u2014 server/routes/splat.py:1022"}, "properties": {"repobilityId": "c08468de66c543c1", "scanner": "scanner-primary", "fingerprint": "a323b50b8132fe73", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1022}}}]}, {"ruleId": "scanner-db1a4160f134a089", "level": "error", "message": {"text": "FastAPI POST `generate_splat_preview` without auth dependency \u2014 server/routes/splat.py:1100"}, "properties": {"repobilityId": "a43d73024f3a9aef", "scanner": "scanner-primary", "fingerprint": "db1a4160f134a089", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1100}}}]}, {"ruleId": "scanner-a8b9576239aeef0d", "level": "error", "message": {"text": "FastAPI POST `stop_splat_training` without auth dependency \u2014 server/routes/splat.py:1168"}, "properties": {"repobilityId": "e2327c632e4a1bb4", "scanner": "scanner-primary", "fingerprint": "a8b9576239aeef0d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1168}}}]}, {"ruleId": "scanner-1a79092795a7062d", "level": "error", "message": {"text": "FastAPI DELETE `delete_splat_job` without auth dependency \u2014 server/routes/splat.py:1203"}, "properties": {"repobilityId": "29df7dd152e1e3cc", "scanner": "scanner-primary", "fingerprint": "1a79092795a7062d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1203}}}]}, {"ruleId": "scanner-8e17b5d225cb614f", "level": "error", "message": {"text": "FastAPI POST `pin_splat_job` without auth dependency \u2014 server/routes/splat.py:1228"}, "properties": {"repobilityId": "14e34b5c6bc5f7b9", "scanner": "scanner-primary", "fingerprint": "8e17b5d225cb614f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1228}}}]}, {"ruleId": "scanner-867431e732895c20", "level": "error", "message": {"text": "FastAPI POST `unpin_splat_job` without auth dependency \u2014 server/routes/splat.py:1236"}, "properties": {"repobilityId": "d8aba7f0fa30dfd1", "scanner": "scanner-primary", "fingerprint": "867431e732895c20", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/splat.py"}, "region": {"startLine": 1236}}}]}, {"ruleId": "scanner-37fdc44fc06a7472", "level": "error", "message": {"text": "FastAPI POST `lock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:111"}, "properties": {"repobilityId": "d765eb8b2b450feb", "scanner": "scanner-primary", "fingerprint": "37fdc44fc06a7472", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-7b2009d8f716fa7a", "level": "error", "message": {"text": "FastAPI POST `unlock_door` without auth dependency \u2014 server/routes/condo_castle_security.py:118"}, "properties": {"repobilityId": "a73222e620d21861", "scanner": "scanner-primary", "fingerprint": "7b2009d8f716fa7a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-c157ffa8a9cc6160", "level": "error", "message": {"text": "FastAPI POST `set_code` without auth dependency \u2014 server/routes/condo_castle_security.py:210"}, "properties": {"repobilityId": "6efad05b9e8ce640", "scanner": "scanner-primary", "fingerprint": "c157ffa8a9cc6160", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-e446bd94cc374804", "level": "error", "message": {"text": "FastAPI DELETE `clear_code` without auth dependency \u2014 server/routes/condo_castle_security.py:261"}, "properties": {"repobilityId": "3897f229485b8e97", "scanner": "scanner-primary", "fingerprint": "e446bd94cc374804", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-946b7ba71ebb8760", "level": "error", "message": {"text": "FastAPI POST `create_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:336"}, "properties": {"repobilityId": "cc6100447e42f7f1", "scanner": "scanner-primary", "fingerprint": "946b7ba71ebb8760", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 336}}}]}, {"ruleId": "scanner-9c52d2924ae5efd9", "level": "error", "message": {"text": "FastAPI PUT `update_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:350"}, "properties": {"repobilityId": "6db695bded71917e", "scanner": "scanner-primary", "fingerprint": "9c52d2924ae5efd9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 350}}}]}, {"ruleId": "scanner-233faed25eaa2177", "level": "error", "message": {"text": "FastAPI DELETE `delete_family_member` without auth dependency \u2014 server/routes/condo_castle_security.py:372"}, "properties": {"repobilityId": "362640ae71602df9", "scanner": "scanner-primary", "fingerprint": "233faed25eaa2177", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_security.py"}, "region": {"startLine": 372}}}]}, {"ruleId": "scanner-d993893ebb180814", "level": "error", "message": {"text": "FastAPI POST `trigger_model_steward_probe` without auth dependency \u2014 server/routes/claws_model_steward.py:12"}, "properties": {"repobilityId": "1add898a405612bc", "scanner": "scanner-primary", "fingerprint": "d993893ebb180814", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_model_steward.py"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-59cf48a80ba20d29", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 server/routes/claws_sessions.py:88"}, "properties": {"repobilityId": "446e270841297607", "scanner": "scanner-primary", "fingerprint": "59cf48a80ba20d29", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-16a796bf55d161e3", "level": "error", "message": {"text": "FastAPI POST `create_memory_backfill_from_latest` without auth dependency \u2014 server/routes/claws_sessions.py:118"}, "properties": {"repobilityId": "195d02cb776c135f", "scanner": "scanner-primary", "fingerprint": "16a796bf55d161e3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-b1c63355bc128720", "level": "error", "message": {"text": "FastAPI POST `approve_plan` without auth dependency \u2014 server/routes/claws_sessions.py:250"}, "properties": {"repobilityId": "a579e520f4f0a92c", "scanner": "scanner-primary", "fingerprint": "b1c63355bc128720", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-185c75466ba9d5e8", "level": "error", "message": {"text": "FastAPI POST `complete_wave` without auth dependency \u2014 server/routes/claws_sessions.py:265"}, "properties": {"repobilityId": "29d40788a7ae7d81", "scanner": "scanner-primary", "fingerprint": "185c75466ba9d5e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-c9d37b4857d45a84", "level": "error", "message": {"text": "FastAPI POST `gate_decision` without auth dependency \u2014 server/routes/claws_sessions.py:280"}, "properties": {"repobilityId": "f6120b7ae8bca5e6", "scanner": "scanner-primary", "fingerprint": "c9d37b4857d45a84", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-68419b51abb73521", "level": "error", "message": {"text": "FastAPI POST `abandon_session` without auth dependency \u2014 server/routes/claws_sessions.py:301"}, "properties": {"repobilityId": "d6883d8095a9525c", "scanner": "scanner-primary", "fingerprint": "68419b51abb73521", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-dd7d0f40c24e7eaa", "level": "error", "message": {"text": "FastAPI POST `update_hypothesis` without auth dependency \u2014 server/routes/claws_sessions.py:316"}, "properties": {"repobilityId": "707365ca7e495bb9", "scanner": "scanner-primary", "fingerprint": "dd7d0f40c24e7eaa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-8a5f8b1938467ffe", "level": "error", "message": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 server/routes/claws_sessions.py:334"}, "properties": {"repobilityId": "f801a18de6e6bb52", "scanner": "scanner-primary", "fingerprint": "8a5f8b1938467ffe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 334}}}]}, {"ruleId": "scanner-04f922c8dc73a161", "level": "error", "message": {"text": "FastAPI POST `create_wave_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:352"}, "properties": {"repobilityId": "463f46f2578a5db0", "scanner": "scanner-primary", "fingerprint": "04f922c8dc73a161", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 352}}}]}, {"ruleId": "scanner-b4d0ed6303ff1e9a", "level": "error", "message": {"text": "FastAPI POST `add_task_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:370"}, "properties": {"repobilityId": "680820d45c10cef4", "scanner": "scanner-primary", "fingerprint": "b4d0ed6303ff1e9a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 370}}}]}, {"ruleId": "scanner-636f0aab2d187bc5", "level": "error", "message": {"text": "FastAPI POST `attach_run_key_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:424"}, "properties": {"repobilityId": "44e38357b5729611", "scanner": "scanner-primary", "fingerprint": "636f0aab2d187bc5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 424}}}]}, {"ruleId": "scanner-4669852e5c649db6", "level": "error", "message": {"text": "FastAPI POST `set_task_status_endpoint` without auth dependency \u2014 server/routes/claws_sessions.py:441"}, "properties": {"repobilityId": "f55983fff5a750c7", "scanner": "scanner-primary", "fingerprint": "4669852e5c649db6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 441}}}]}, {"ruleId": "scanner-ac4d2c198735b3e4", "level": "error", "message": {"text": "FastAPI POST `approve_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:470"}, "properties": {"repobilityId": "1c89d79a28e47645", "scanner": "scanner-primary", "fingerprint": "ac4d2c198735b3e4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 470}}}]}, {"ruleId": "scanner-c75cf47ea4816e2e", "level": "error", "message": {"text": "FastAPI POST `redraft_memory_backfill` without auth dependency \u2014 server/routes/claws_sessions.py:552"}, "properties": {"repobilityId": "9828c61e31e369f3", "scanner": "scanner-primary", "fingerprint": "c75cf47ea4816e2e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 552}}}]}, {"ruleId": "scanner-a975e25412544da5", "level": "error", "message": {"text": "FastAPI POST `dispatch_wave` without auth dependency \u2014 server/routes/claws_sessions.py:673"}, "properties": {"repobilityId": "55d5d9fd5ef3e4ef", "scanner": "scanner-primary", "fingerprint": "a975e25412544da5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 673}}}]}, {"ruleId": "scanner-b38553cd165908b2", "level": "error", "message": {"text": "FastAPI POST `propose_gate` without auth dependency \u2014 server/routes/claws_sessions.py:692"}, "properties": {"repobilityId": "fe46cb35cddee8d6", "scanner": "scanner-primary", "fingerprint": "b38553cd165908b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 692}}}]}, {"ruleId": "scanner-b29c47efea405a9c", "level": "error", "message": {"text": "FastAPI POST `accept_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:726"}, "properties": {"repobilityId": "84477277d91c7ac5", "scanner": "scanner-primary", "fingerprint": "b29c47efea405a9c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 726}}}]}, {"ruleId": "scanner-fa46a4211c151976", "level": "error", "message": {"text": "FastAPI POST `reject_proposal` without auth dependency \u2014 server/routes/claws_sessions.py:747"}, "properties": {"repobilityId": "4a37a861cbb32dff", "scanner": "scanner-primary", "fingerprint": "fa46a4211c151976", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 747}}}]}, {"ruleId": "scanner-53121a8863ae851b", "level": "error", "message": {"text": "FastAPI POST `reconcile_wave` without auth dependency \u2014 server/routes/claws_sessions.py:770"}, "properties": {"repobilityId": "89520f2c5acfc0c6", "scanner": "scanner-primary", "fingerprint": "53121a8863ae851b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_sessions.py"}, "region": {"startLine": 770}}}]}, {"ruleId": "scanner-1afa42e0d025fae7", "level": "error", "message": {"text": "FastAPI POST `approve_request` without auth dependency \u2014 server/routes/nemo_approvals.py:39"}, "properties": {"repobilityId": "13a0a9ceeb69edac", "scanner": "scanner-primary", "fingerprint": "1afa42e0d025fae7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_approvals.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-7cb710ea30ba5b4f", "level": "error", "message": {"text": "FastAPI POST `transcribe` without auth dependency \u2014 server/routes/voice_call.py:77"}, "properties": {"repobilityId": "3002e6eabc34e8f2", "scanner": "scanner-primary", "fingerprint": "7cb710ea30ba5b4f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_call.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-77d13cf8c896fec2", "level": "error", "message": {"text": "FastAPI POST `respond` without auth dependency \u2014 server/routes/voice_call.py:123"}, "properties": {"repobilityId": "67ac0cad303c09c9", "scanner": "scanner-primary", "fingerprint": "77d13cf8c896fec2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_call.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-569eb4c9eeecdee5", "level": "error", "message": {"text": "FastAPI POST `create_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:171"}, "properties": {"repobilityId": "cae7cba09cea8c5d", "scanner": "scanner-primary", "fingerprint": "569eb4c9eeecdee5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-37f8204a9e15464e", "level": "error", "message": {"text": "FastAPI PUT `update_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:196"}, "properties": {"repobilityId": "5e947d7a8c1f682b", "scanner": "scanner-primary", "fingerprint": "37f8204a9e15464e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-43da04481528ebd6", "level": "error", "message": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:222"}, "properties": {"repobilityId": "57f4f0faa0962b75", "scanner": "scanner-primary", "fingerprint": "43da04481528ebd6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-965c82aac8c62e67", "level": "error", "message": {"text": "FastAPI PUT `save_project_full` without auth dependency \u2014 server/routes/condo_castle_editor.py:272"}, "properties": {"repobilityId": "1b767cc48f5a2cc4", "scanner": "scanner-primary", "fingerprint": "965c82aac8c62e67", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-2a000314a1057850", "level": "error", "message": {"text": "FastAPI POST `create_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:402"}, "properties": {"repobilityId": "eeef047681363e2e", "scanner": "scanner-primary", "fingerprint": "2a000314a1057850", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 402}}}]}, {"ruleId": "scanner-54d187d65601ebaf", "level": "error", "message": {"text": "FastAPI PUT `update_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:416"}, "properties": {"repobilityId": "41ce6b4e01a19d1c", "scanner": "scanner-primary", "fingerprint": "54d187d65601ebaf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 416}}}]}, {"ruleId": "scanner-61db0c7eb322eb30", "level": "error", "message": {"text": "FastAPI DELETE `delete_floor` without auth dependency \u2014 server/routes/condo_castle_editor.py:438"}, "properties": {"repobilityId": "fc538539714371c8", "scanner": "scanner-primary", "fingerprint": "61db0c7eb322eb30", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 438}}}]}, {"ruleId": "scanner-c70d1af7a2cc03fc", "level": "error", "message": {"text": "FastAPI POST `create_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:448"}, "properties": {"repobilityId": "36527fda1840872c", "scanner": "scanner-primary", "fingerprint": "c70d1af7a2cc03fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 448}}}]}, {"ruleId": "scanner-7666b177b01b0cc0", "level": "error", "message": {"text": "FastAPI PUT `update_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:462"}, "properties": {"repobilityId": "d82a4b8c7476bfd3", "scanner": "scanner-primary", "fingerprint": "7666b177b01b0cc0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 462}}}]}, {"ruleId": "scanner-14c544f007784677", "level": "error", "message": {"text": "FastAPI DELETE `delete_room` without auth dependency \u2014 server/routes/condo_castle_editor.py:492"}, "properties": {"repobilityId": "e3ce8442c84527a4", "scanner": "scanner-primary", "fingerprint": "14c544f007784677", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 492}}}]}, {"ruleId": "scanner-abfd25b730d52c1f", "level": "error", "message": {"text": "FastAPI POST `create_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:502"}, "properties": {"repobilityId": "1e438f69d9b57c28", "scanner": "scanner-primary", "fingerprint": "abfd25b730d52c1f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 502}}}]}, {"ruleId": "scanner-ab161a35c1387d74", "level": "error", "message": {"text": "FastAPI PUT `update_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:519"}, "properties": {"repobilityId": "ed92357f14b11608", "scanner": "scanner-primary", "fingerprint": "ab161a35c1387d74", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 519}}}]}, {"ruleId": "scanner-5b1ed2c49f1137be", "level": "error", "message": {"text": "FastAPI DELETE `delete_element` without auth dependency \u2014 server/routes/condo_castle_editor.py:546"}, "properties": {"repobilityId": "388deeaf0f2f9d0f", "scanner": "scanner-primary", "fingerprint": "5b1ed2c49f1137be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 546}}}]}, {"ruleId": "scanner-9544df5a56cf3f34", "level": "error", "message": {"text": "FastAPI PUT `batch_update_elements` without auth dependency \u2014 server/routes/condo_castle_editor.py:554"}, "properties": {"repobilityId": "26556c0ba77754ee", "scanner": "scanner-primary", "fingerprint": "9544df5a56cf3f34", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 554}}}]}, {"ruleId": "scanner-c03510f2f624aebd", "level": "error", "message": {"text": "FastAPI POST `create_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:583"}, "properties": {"repobilityId": "1940623adc52195f", "scanner": "scanner-primary", "fingerprint": "c03510f2f624aebd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 583}}}]}, {"ruleId": "scanner-41527a63d7698f67", "level": "error", "message": {"text": "FastAPI PUT `update_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:605"}, "properties": {"repobilityId": "4ba2e3ad3b479f04", "scanner": "scanner-primary", "fingerprint": "41527a63d7698f67", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 605}}}]}, {"ruleId": "scanner-31e07ee163f7acc3", "level": "error", "message": {"text": "FastAPI DELETE `delete_opening` without auth dependency \u2014 server/routes/condo_castle_editor.py:632"}, "properties": {"repobilityId": "8086c4e4bfde9ba8", "scanner": "scanner-primary", "fingerprint": "31e07ee163f7acc3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 632}}}]}, {"ruleId": "scanner-d097a8a9780694ef", "level": "error", "message": {"text": "FastAPI POST `export_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:642"}, "properties": {"repobilityId": "5d07bcfb4b9b9b6b", "scanner": "scanner-primary", "fingerprint": "d097a8a9780694ef", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 642}}}]}, {"ruleId": "scanner-6546e83fde8eaf4d", "level": "error", "message": {"text": "FastAPI POST `import_project` without auth dependency \u2014 server/routes/condo_castle_editor.py:648"}, "properties": {"repobilityId": "dea0ef90bad16170", "scanner": "scanner-primary", "fingerprint": "6546e83fde8eaf4d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/condo_castle_editor.py"}, "region": {"startLine": 648}}}]}, {"ruleId": "scanner-5d13ec151be6512b", "level": "error", "message": {"text": "FastAPI POST `create_batch` without auth dependency \u2014 server/routes/sources.py:515"}, "properties": {"repobilityId": "a93a5b404ee9af35", "scanner": "scanner-primary", "fingerprint": "5d13ec151be6512b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 515}}}]}, {"ruleId": "scanner-39fdd22f77a34855", "level": "error", "message": {"text": "FastAPI POST `curated_import` without auth dependency \u2014 server/routes/sources.py:533"}, "properties": {"repobilityId": "92f8299dd1727b04", "scanner": "scanner-primary", "fingerprint": "39fdd22f77a34855", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 533}}}]}, {"ruleId": "scanner-89709b5d2b64fdbe", "level": "error", "message": {"text": "FastAPI DELETE `delete_batch` without auth dependency \u2014 server/routes/sources.py:700"}, "properties": {"repobilityId": "4e9b2bcb30f971f7", "scanner": "scanner-primary", "fingerprint": "89709b5d2b64fdbe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 700}}}]}, {"ruleId": "scanner-9615b495a2aa5811", "level": "error", "message": {"text": "FastAPI POST `load_directory` without auth dependency \u2014 server/routes/sources.py:716"}, "properties": {"repobilityId": "e4ea81e79dda43f6", "scanner": "scanner-primary", "fingerprint": "9615b495a2aa5811", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 716}}}]}, {"ruleId": "scanner-357fcd83706f5ec5", "level": "error", "message": {"text": "FastAPI POST `start_scan` without auth dependency \u2014 server/routes/sources.py:996"}, "properties": {"repobilityId": "27d27662029d937d", "scanner": "scanner-primary", "fingerprint": "357fcd83706f5ec5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 996}}}]}, {"ruleId": "scanner-55ed41cec4d4e916", "level": "error", "message": {"text": "FastAPI POST `link_reference_canonical_work` without auth dependency \u2014 server/routes/sources.py:1258"}, "properties": {"repobilityId": "17663487783b2397", "scanner": "scanner-primary", "fingerprint": "55ed41cec4d4e916", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1258}}}]}, {"ruleId": "scanner-345c5e043649fefb", "level": "error", "message": {"text": "FastAPI POST `sync_batch_canonical_works` without auth dependency \u2014 server/routes/sources.py:1319"}, "properties": {"repobilityId": "c9658ea9c65ac15f", "scanner": "scanner-primary", "fingerprint": "345c5e043649fefb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1319}}}]}, {"ruleId": "scanner-70c8f799e98140c4", "level": "error", "message": {"text": "FastAPI POST `fetch_reference_fulltext` without auth dependency \u2014 server/routes/sources.py:1395"}, "properties": {"repobilityId": "2365e2e01921adb2", "scanner": "scanner-primary", "fingerprint": "70c8f799e98140c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1395}}}]}, {"ruleId": "scanner-0d3893cc80891e79", "level": "error", "message": {"text": "FastAPI POST `fetch_batch_fulltext` without auth dependency \u2014 server/routes/sources.py:1434"}, "properties": {"repobilityId": "61aedbfa6a2d2764", "scanner": "scanner-primary", "fingerprint": "0d3893cc80891e79", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1434}}}]}, {"ruleId": "scanner-88489c56178286e4", "level": "error", "message": {"text": "FastAPI POST `update_reference` without auth dependency \u2014 server/routes/sources.py:1493"}, "properties": {"repobilityId": "70b1da13ba4d6acc", "scanner": "scanner-primary", "fingerprint": "88489c56178286e4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1493}}}]}, {"ruleId": "scanner-ed5c72020bcc7b1b", "level": "error", "message": {"text": "FastAPI POST `bulk_update_references` without auth dependency \u2014 server/routes/sources.py:1524"}, "properties": {"repobilityId": "923ae16296a40543", "scanner": "scanner-primary", "fingerprint": "ed5c72020bcc7b1b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1524}}}]}, {"ruleId": "scanner-f0bdad3d1301f732", "level": "error", "message": {"text": "FastAPI POST `start_refine` without auth dependency \u2014 server/routes/sources.py:1669"}, "properties": {"repobilityId": "6b59f6343bda3542", "scanner": "scanner-primary", "fingerprint": "f0bdad3d1301f732", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1669}}}]}, {"ruleId": "scanner-7922fb84374f1ddd", "level": "error", "message": {"text": "FastAPI POST `start_verify` without auth dependency \u2014 server/routes/sources.py:1861"}, "properties": {"repobilityId": "fe0d03fdd3c90550", "scanner": "scanner-primary", "fingerprint": "7922fb84374f1ddd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 1861}}}]}, {"ruleId": "scanner-0c8ad2beb294dee7", "level": "error", "message": {"text": "FastAPI POST `start_ingest` without auth dependency \u2014 server/routes/sources.py:2375"}, "properties": {"repobilityId": "a31f7979136ef8d5", "scanner": "scanner-primary", "fingerprint": "0c8ad2beb294dee7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 2375}}}]}, {"ruleId": "scanner-a36044c0c64d01e0", "level": "error", "message": {"text": "FastAPI POST `start_transcript_ingest` without auth dependency \u2014 server/routes/sources.py:2641"}, "properties": {"repobilityId": "da70f45669f11286", "scanner": "scanner-primary", "fingerprint": "a36044c0c64d01e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/sources.py"}, "region": {"startLine": 2641}}}]}, {"ruleId": "scanner-736785b3613a9223", "level": "error", "message": {"text": "FastAPI DELETE `delete_entry` without auth dependency \u2014 server/routes/voice_memos.py:58"}, "properties": {"repobilityId": "c78dd5a362788451", "scanner": "scanner-primary", "fingerprint": "736785b3613a9223", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/voice_memos.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-4cbe2e93baf1eac3", "level": "error", "message": {"text": "FastAPI POST `chat_stream` without auth dependency \u2014 server/routes/chat.py:30"}, "properties": {"repobilityId": "58c8dbd517402418", "scanner": "scanner-primary", "fingerprint": "4cbe2e93baf1eac3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/chat.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-d659a3423ef9443c", "level": "error", "message": {"text": "FastAPI POST `cancel_chat` without auth dependency \u2014 server/routes/chat.py:120"}, "properties": {"repobilityId": "df7ced533ece8c06", "scanner": "scanner-primary", "fingerprint": "d659a3423ef9443c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/chat.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-eba3a48599a8322d", "level": "error", "message": {"text": "FastAPI POST `start_edge` without auth dependency \u2014 server/routes/wifi_sensing.py:81"}, "properties": {"repobilityId": "25b7ec468bc01d1f", "scanner": "scanner-primary", "fingerprint": "eba3a48599a8322d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/wifi_sensing.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-f8964d7c4bb59fe3", "level": "error", "message": {"text": "FastAPI POST `stop_edge` without auth dependency \u2014 server/routes/wifi_sensing.py:101"}, "properties": {"repobilityId": "ebe303254e54ea11", "scanner": "scanner-primary", "fingerprint": "f8964d7c4bb59fe3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/wifi_sensing.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-6a9cf1125408b61a", "level": "error", "message": {"text": "FastAPI POST `calibrate` without auth dependency \u2014 server/routes/wifi_sensing.py:116"}, "properties": {"repobilityId": "f4c50f5572bbc533", "scanner": "scanner-primary", "fingerprint": "6a9cf1125408b61a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/wifi_sensing.py"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-ad7969da4c6a3c3a", "level": "error", "message": {"text": "FastAPI POST `trigger_guardian_probe` without auth dependency \u2014 server/routes/claws_guardian.py:22"}, "properties": {"repobilityId": "03d0607306c3519e", "scanner": "scanner-primary", "fingerprint": "ad7969da4c6a3c3a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_guardian.py"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-51451b2a62f10523", "level": "error", "message": {"text": "FastAPI POST `refresh_xkeys` without auth dependency \u2014 server/routes/xkeys.py:28"}, "properties": {"repobilityId": "159469508fae0123", "scanner": "scanner-primary", "fingerprint": "51451b2a62f10523", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-54e07d5865b3f695", "level": "error", "message": {"text": "FastAPI POST `update_config` without auth dependency \u2014 server/routes/xkeys.py:33"}, "properties": {"repobilityId": "655a66bbe88a1a02", "scanner": "scanner-primary", "fingerprint": "54e07d5865b3f695", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-7437317a9537adc9", "level": "error", "message": {"text": "FastAPI POST `press_key` without auth dependency \u2014 server/routes/xkeys.py:38"}, "properties": {"repobilityId": "2334eb0ee6a4a5ea", "scanner": "scanner-primary", "fingerprint": "7437317a9537adc9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-bd1a5012080bf35a", "level": "error", "message": {"text": "FastAPI POST `switch_deck` without auth dependency \u2014 server/routes/xkeys.py:46"}, "properties": {"repobilityId": "4a1bb72609df28a8", "scanner": "scanner-primary", "fingerprint": "bd1a5012080bf35a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-13207b42c7174cc2", "level": "error", "message": {"text": "FastAPI POST `set_auto` without auth dependency \u2014 server/routes/xkeys.py:55"}, "properties": {"repobilityId": "6739421548422fcc", "scanner": "scanner-primary", "fingerprint": "13207b42c7174cc2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-997278e2f8a58a28", "level": "error", "message": {"text": "FastAPI POST `set_commands` without auth dependency \u2014 server/routes/xkeys.py:65"}, "properties": {"repobilityId": "5163faf98ce60293", "scanner": "scanner-primary", "fingerprint": "997278e2f8a58a28", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-3fd8be52f7b0020c", "level": "error", "message": {"text": "FastAPI POST `trigger_zone` without auth dependency \u2014 server/routes/xkeys.py:76"}, "properties": {"repobilityId": "0d045913d0983af1", "scanner": "scanner-primary", "fingerprint": "3fd8be52f7b0020c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-0a9e64002ff87a2f", "level": "error", "message": {"text": "FastAPI POST `focus_window` without auth dependency \u2014 server/routes/xkeys.py:86"}, "properties": {"repobilityId": "572697bf7e1f8caf", "scanner": "scanner-primary", "fingerprint": "0a9e64002ff87a2f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-abfba78fcf6e1915", "level": "error", "message": {"text": "FastAPI POST `set_led` without auth dependency \u2014 server/routes/xkeys.py:91"}, "properties": {"repobilityId": "1203f6d78fa7691b", "scanner": "scanner-primary", "fingerprint": "abfba78fcf6e1915", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-2389ab06075bdd9a", "level": "error", "message": {"text": "FastAPI POST `set_all_leds` without auth dependency \u2014 server/routes/xkeys.py:97"}, "properties": {"repobilityId": "a5135ab3f504807b", "scanner": "scanner-primary", "fingerprint": "2389ab06075bdd9a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-e65110bd17436e63", "level": "error", "message": {"text": "FastAPI POST `play_animation` without auth dependency \u2014 server/routes/xkeys.py:116"}, "properties": {"repobilityId": "4742e0f64effb8cc", "scanner": "scanner-primary", "fingerprint": "e65110bd17436e63", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-602822a444703673", "level": "error", "message": {"text": "FastAPI POST `stop_animation` without auth dependency \u2014 server/routes/xkeys.py:128"}, "properties": {"repobilityId": "17ce9f4c5635f1e9", "scanner": "scanner-primary", "fingerprint": "602822a444703673", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-77b7194d3b5171a6", "level": "error", "message": {"text": "FastAPI POST `notify` without auth dependency \u2014 server/routes/xkeys.py:134"}, "properties": {"repobilityId": "0c4f725efef00354", "scanner": "scanner-primary", "fingerprint": "77b7194d3b5171a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/xkeys.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-e52ed376f6d2734f", "level": "error", "message": {"text": "FastAPI POST `create_node` without auth dependency \u2014 server/routes/homelab_map.py:254"}, "properties": {"repobilityId": "c80b9fb179b7b150", "scanner": "scanner-primary", "fingerprint": "e52ed376f6d2734f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 254}}}]}, {"ruleId": "scanner-a1f47b3acbbb3fac", "level": "error", "message": {"text": "FastAPI PUT `update_node` without auth dependency \u2014 server/routes/homelab_map.py:316"}, "properties": {"repobilityId": "70222338b3e8291d", "scanner": "scanner-primary", "fingerprint": "a1f47b3acbbb3fac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-69cd5e7d2ba07104", "level": "error", "message": {"text": "FastAPI DELETE `delete_node` without auth dependency \u2014 server/routes/homelab_map.py:345"}, "properties": {"repobilityId": "b2f6c876d7d8c0e1", "scanner": "scanner-primary", "fingerprint": "69cd5e7d2ba07104", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-9483128741a03c3d", "level": "error", "message": {"text": "FastAPI POST `create_edge` without auth dependency \u2014 server/routes/homelab_map.py:361"}, "properties": {"repobilityId": "f80631888b7a8ea5", "scanner": "scanner-primary", "fingerprint": "9483128741a03c3d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 361}}}]}, {"ruleId": "scanner-43ec2f5db463374d", "level": "error", "message": {"text": "FastAPI DELETE `delete_edge` without auth dependency \u2014 server/routes/homelab_map.py:390"}, "properties": {"repobilityId": "52bdcc4aa227fc94", "scanner": "scanner-primary", "fingerprint": "43ec2f5db463374d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 390}}}]}, {"ruleId": "scanner-fbe0febf418e4a06", "level": "error", "message": {"text": "FastAPI POST `sync_maximus_skills` without auth dependency \u2014 server/routes/homelab_map.py:459"}, "properties": {"repobilityId": "78f3bbe025bcea43", "scanner": "scanner-primary", "fingerprint": "fbe0febf418e4a06", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/homelab_map.py"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-d8b27cbad0831c41", "level": "error", "message": {"text": "FastAPI POST `trigger_power_sentinel_probe` without auth dependency \u2014 server/routes/claws_power_sentinel.py:18"}, "properties": {"repobilityId": "1aab937809826d53", "scanner": "scanner-primary", "fingerprint": "d8b27cbad0831c41", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/claws_power_sentinel.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-6214641d6e9c103a", "level": "error", "message": {"text": "FastAPI POST `promote_run_memory` without auth dependency \u2014 server/routes/nemo_memory.py:47"}, "properties": {"repobilityId": "af629e16cfafbc3d", "scanner": "scanner-primary", "fingerprint": "6214641d6e9c103a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/nemo_memory.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-046874ab2b1d3356", "level": "error", "message": {"text": "FastAPI POST `approve_via_telegram` without auth dependency \u2014 server/routes/telegram_callback.py:31"}, "properties": {"repobilityId": "873bb39292dbdade", "scanner": "scanner-primary", "fingerprint": "046874ab2b1d3356", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/telegram_callback.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-0aa0d1e38add65a2", "level": "error", "message": {"text": "FastAPI POST `proxmox_vm_action` without auth dependency \u2014 server/routes/system.py:933"}, "properties": {"repobilityId": "040d0962193cf80e", "scanner": "scanner-primary", "fingerprint": "0aa0d1e38add65a2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/system.py"}, "region": {"startLine": 933}}}]}, {"ruleId": "scanner-411461ebae32d988", "level": "error", "message": {"text": "FastAPI POST `clear_vram` without auth dependency \u2014 server/routes/system.py:1066"}, "properties": {"repobilityId": "4b42f6679442d127", "scanner": "scanner-primary", "fingerprint": "411461ebae32d988", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/system.py"}, "region": {"startLine": 1066}}}]}, {"ruleId": "scanner-5a87af8d8b383bc2", "level": "error", "message": {"text": "FastAPI POST `restart_service` without auth dependency \u2014 server/routes/system.py:1086"}, "properties": {"repobilityId": "1ec38e281ca89b4a", "scanner": "scanner-primary", "fingerprint": "5a87af8d8b383bc2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/system.py"}, "region": {"startLine": 1086}}}]}, {"ruleId": "scanner-624ba37f7d601e49", "level": "error", "message": {"text": "FastAPI POST `create_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:193"}, "properties": {"repobilityId": "7772ec2e525db115", "scanner": "scanner-primary", "fingerprint": "624ba37f7d601e49", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/topics.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-178a902ae5c4b206", "level": "error", "message": {"text": "FastAPI PATCH `update_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:258"}, "properties": {"repobilityId": "290f8e49b7bbabcb", "scanner": "scanner-primary", "fingerprint": "178a902ae5c4b206", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/topics.py"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-6a1127000e7e8a0c", "level": "error", "message": {"text": "FastAPI POST `publish_topic_package` without auth dependency \u2014 server/routes/ingestion/topics.py:311"}, "properties": {"repobilityId": "6539782ac0d8620e", "scanner": "scanner-primary", "fingerprint": "6a1127000e7e8a0c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/topics.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-edd991686f0c7a15", "level": "error", "message": {"text": "FastAPI PATCH `update_source_policy` without auth dependency \u2014 server/routes/ingestion/legacy.py:397"}, "properties": {"repobilityId": "4254a216bdafd6e3", "scanner": "scanner-primary", "fingerprint": "edd991686f0c7a15", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 397}}}]}, {"ruleId": "scanner-5179e0db1511139d", "level": "error", "message": {"text": "FastAPI POST `analyze_source_intake` without auth dependency \u2014 server/routes/ingestion/legacy.py:916"}, "properties": {"repobilityId": "dea8a77e0f43f7a1", "scanner": "scanner-primary", "fingerprint": "5179e0db1511139d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 916}}}]}, {"ruleId": "scanner-435819e6f02de951", "level": "error", "message": {"text": "FastAPI POST `import_once_source` without auth dependency \u2014 server/routes/ingestion/legacy.py:1019"}, "properties": {"repobilityId": "8e8038be69197fc1", "scanner": "scanner-primary", "fingerprint": "435819e6f02de951", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1019}}}]}, {"ruleId": "scanner-9ee3df46a1726499", "level": "error", "message": {"text": "FastAPI POST `create_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1231"}, "properties": {"repobilityId": "d2c61053ac2fb0d8", "scanner": "scanner-primary", "fingerprint": "9ee3df46a1726499", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1231}}}]}, {"ruleId": "scanner-ab482372f5f46b97", "level": "error", "message": {"text": "FastAPI POST `promote_source_intake_draft` without auth dependency \u2014 server/routes/ingestion/legacy.py:1299"}, "properties": {"repobilityId": "61e3b2e1bf37b42f", "scanner": "scanner-primary", "fingerprint": "ab482372f5f46b97", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1299}}}]}, {"ruleId": "scanner-42c167f7a4a68e8f", "level": "error", "message": {"text": "FastAPI POST `run_inspect_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1391"}, "properties": {"repobilityId": "adc506fe2405cad0", "scanner": "scanner-primary", "fingerprint": "42c167f7a4a68e8f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1391}}}]}, {"ruleId": "scanner-366e510382fe4fbf", "level": "error", "message": {"text": "FastAPI POST `run_stage_source_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1414"}, "properties": {"repobilityId": "031ae0480a37e639", "scanner": "scanner-primary", "fingerprint": "366e510382fe4fbf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1414}}}]}, {"ruleId": "scanner-9426634fc3460441", "level": "error", "message": {"text": "FastAPI POST `run_promote_evidence_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1445"}, "properties": {"repobilityId": "4e79abc2631fd721", "scanner": "scanner-primary", "fingerprint": "9426634fc3460441", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1445}}}]}, {"ruleId": "scanner-1defb411fd465026", "level": "error", "message": {"text": "FastAPI POST `run_promote_signal_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1474"}, "properties": {"repobilityId": "65480ea1a25cb1ac", "scanner": "scanner-primary", "fingerprint": "1defb411fd465026", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1474}}}]}, {"ruleId": "scanner-9d2ddb331c34b03b", "level": "error", "message": {"text": "FastAPI POST `run_scholarly_backfill_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1503"}, "properties": {"repobilityId": "344380c08d34de22", "scanner": "scanner-primary", "fingerprint": "9d2ddb331c34b03b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1503}}}]}, {"ruleId": "scanner-6cad400b7ad9d39b", "level": "error", "message": {"text": "FastAPI POST `run_scholarly_index_action` without auth dependency \u2014 server/routes/ingestion/legacy.py:1528"}, "properties": {"repobilityId": "e6026b2027ed8d94", "scanner": "scanner-primary", "fingerprint": "6cad400b7ad9d39b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 1528}}}]}, {"ruleId": "scanner-984fed8dc8a2a3f3", "level": "error", "message": {"text": "FastAPI POST `update_review_item` without auth dependency \u2014 server/routes/ingestion/legacy.py:2024"}, "properties": {"repobilityId": "d385bd43172bdcd7", "scanner": "scanner-primary", "fingerprint": "984fed8dc8a2a3f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 2024}}}]}, {"ruleId": "scanner-06050e52d355b0c5", "level": "error", "message": {"text": "FastAPI POST `bulk_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2129"}, "properties": {"repobilityId": "e658090717ead145", "scanner": "scanner-primary", "fingerprint": "06050e52d355b0c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 2129}}}]}, {"ruleId": "scanner-fc7787e04e5a79f6", "level": "error", "message": {"text": "FastAPI POST `auto_review_items` without auth dependency \u2014 server/routes/ingestion/legacy.py:2214"}, "properties": {"repobilityId": "343c285be63e0325", "scanner": "scanner-primary", "fingerprint": "fc7787e04e5a79f6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 2214}}}]}, {"ruleId": "scanner-9aa1a90e7e31ec56", "level": "error", "message": {"text": "FastAPI POST `create_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2368"}, "properties": {"repobilityId": "dceda64f1bd6e3f2", "scanner": "scanner-primary", "fingerprint": "9aa1a90e7e31ec56", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 2368}}}]}, {"ruleId": "scanner-0a19ba90630efc57", "level": "error", "message": {"text": "FastAPI DELETE `delete_item_link` without auth dependency \u2014 server/routes/ingestion/legacy.py:2404"}, "properties": {"repobilityId": "4b29f8d4b845006e", "scanner": "scanner-primary", "fingerprint": "0a19ba90630efc57", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/legacy.py"}, "region": {"startLine": 2404}}}]}, {"ruleId": "scanner-f1b3bae61096b36c", "level": "error", "message": {"text": "FastAPI POST `send_digest_now` without auth dependency \u2014 server/routes/ingestion/digest.py:306"}, "properties": {"repobilityId": "508b30c1a28b2aea", "scanner": "scanner-primary", "fingerprint": "f1b3bae61096b36c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/routes/ingestion/digest.py"}, "region": {"startLine": 306}}}]}, {"ruleId": "scanner-94134a3cfc00a6fe", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice-forge/profiles/${profileId}/sources (client/src/components/voice-lab/voice-forge.tsx:240)"}, "properties": {"repobilityId": "05093e16898e4b07", "scanner": "scanner-primary", "fingerprint": "94134a3cfc00a6fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9edc829d266e2d90", "level": "error", "message": {"text": "Dangling fetch: POST /api/3d/jobs (client/src/pages/trellis.tsx:274)"}, "properties": {"repobilityId": "28c5f93d1f1f44ac", "scanner": "scanner-primary", "fingerprint": "9edc829d266e2d90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2db5c809939c930d", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/call/transcribe (client/src/hooks/useVoiceCall.ts:141)"}, "properties": {"repobilityId": "c63423a5a413cbb8", "scanner": "scanner-primary", "fingerprint": "2db5c809939c930d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-47302ca264ed17fe", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice/call/respond (client/src/hooks/useVoiceCall.ts:161)"}, "properties": {"repobilityId": "9cb1b1b20c4eb07c", "scanner": "scanner-primary", "fingerprint": "47302ca264ed17fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e814b1e24ec6858", "level": "note", "message": {"text": "Unused endpoint: GET /call.html"}, "properties": {"repobilityId": "1bd0c8d1127376b8", "scanner": "scanner-primary", "fingerprint": "0e814b1e24ec6858", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a4dfcad3eb1618a", "level": "note", "message": {"text": "Unused endpoint: GET /login"}, "properties": {"repobilityId": "fc548c2a9e5d7638", "scanner": "scanner-primary", "fingerprint": "6a4dfcad3eb1618a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-618721b912bad1c2", "level": "note", "message": {"text": "Unused endpoint: POST /login"}, "properties": {"repobilityId": "2da7bb1fd4deb066", "scanner": "scanner-primary", "fingerprint": "618721b912bad1c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ca735a2e6e3646c", "level": "note", "message": {"text": "Unused endpoint: GET /logout"}, "properties": {"repobilityId": "c5afbc40fa9a6f5d", "scanner": "scanner-primary", "fingerprint": "5ca735a2e6e3646c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-91786ec9e40e27ca", "level": "note", "message": {"text": "Unused endpoint: GET /{path:path}"}, "properties": {"repobilityId": "d7cabd21d99c9024", "scanner": "scanner-primary", "fingerprint": "91786ec9e40e27ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-44cfdc5bb3376213", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments"}, "properties": {"repobilityId": "91314cd2130c6585", "scanner": "scanner-primary", "fingerprint": "44cfdc5bb3376213", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1e9d492e8df24231", "level": "note", "message": {"text": "Unused endpoint: POST /api/spatial-lab/experiments"}, "properties": {"repobilityId": "44396eb3298a583a", "scanner": "scanner-primary", "fingerprint": "1e9d492e8df24231", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca372ca79d45f337", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}"}, "properties": {"repobilityId": "68a86046189e3e6d", "scanner": "scanner-primary", "fingerprint": "ca372ca79d45f337", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-509a2608d141d78e", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/spatial-lab/experiments/{key}"}, "properties": {"repobilityId": "7f11c1fa610e0acc", "scanner": "scanner-primary", "fingerprint": "509a2608d141d78e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6cc28ce14870f856", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}"}, "properties": {"repobilityId": "0149d1ed05aa3658", "scanner": "scanner-primary", "fingerprint": "6cc28ce14870f856", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9be8299142ab8362", "level": "note", "message": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/start"}, "properties": {"repobilityId": "2fed539e1ab256e7", "scanner": "scanner-primary", "fingerprint": "9be8299142ab8362", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c392faf87ecfe61d", "level": "note", "message": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/stop"}, "properties": {"repobilityId": "b3e210cf524bf13e", "scanner": "scanner-primary", "fingerprint": "c392faf87ecfe61d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21ef0849e6f4f668", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/status"}, "properties": {"repobilityId": "ebed533d2273827e", "scanner": "scanner-primary", "fingerprint": "21ef0849e6f4f668", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c5850d655cf67ab3", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/timeline"}, "properties": {"repobilityId": "f172ce706a62531b", "scanner": "scanner-primary", "fingerprint": "c5850d655cf67ab3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cbb8f0e628220a00", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/frames"}, "properties": {"repobilityId": "9bd9bba357f7af59", "scanner": "scanner-primary", "fingerprint": "cbb8f0e628220a00", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-de3c300a40c1af61", "level": "note", "message": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/markers"}, "properties": {"repobilityId": "313ab7a57fcf0bf0", "scanner": "scanner-primary", "fingerprint": "de3c300a40c1af61", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ebf5916ea07ad0b", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/markers"}, "properties": {"repobilityId": "cae5fda9543751aa", "scanner": "scanner-primary", "fingerprint": "8ebf5916ea07ad0b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-933f82eb0c392740", "level": "note", "message": {"text": "Unused endpoint: POST /api/spatial-lab/experiments/{key}/log"}, "properties": {"repobilityId": "70856f8be3e870c5", "scanner": "scanner-primary", "fingerprint": "933f82eb0c392740", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fc99e35402cd0b38", "level": "note", "message": {"text": "Unused endpoint: GET /api/spatial-lab/experiments/{key}/log"}, "properties": {"repobilityId": "e73048f226326030", "scanner": "scanner-primary", "fingerprint": "fc99e35402cd0b38", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-155ecf40763cb6a6", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/spatial-lab/experiments/{key}/log/{entry_id}"}, "properties": {"repobilityId": "770573fc123d0e83", "scanner": "scanner-primary", "fingerprint": "155ecf40763cb6a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-71dea4263304a0d4", "level": "note", "message": {"text": "Unused endpoint: GET /api/calendar/collections"}, "properties": {"repobilityId": "3cfce17390564cf1", "scanner": "scanner-primary", "fingerprint": "71dea4263304a0d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-98c3b71c4d647c62", "level": "note", "message": {"text": "Unused endpoint: GET /api/calendar/events"}, "properties": {"repobilityId": "3f65519544bdcfcc", "scanner": "scanner-primary", "fingerprint": "98c3b71c4d647c62", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-054c711eea76140b", "level": "note", "message": {"text": "Unused endpoint: POST /api/claws/blacksmith/probe"}, "properties": {"repobilityId": "66d94f9715c7236e", "scanner": "scanner-primary", "fingerprint": "054c711eea76140b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b50d1eac8b6186d", "level": "note", "message": {"text": "Unused endpoint: POST /api/claws/blacksmith/forge"}, "properties": {"repobilityId": "bf0a039587a11e74", "scanner": "scanner-primary", "fingerprint": "3b50d1eac8b6186d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bf77c1d91d350bd", "level": "note", "message": {"text": "Unused endpoint: GET /api/claws/blacksmith/reports"}, "properties": {"repobilityId": "b556488109189adc", "scanner": "scanner-primary", "fingerprint": "1bf77c1d91d350bd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9483a6892d6a30a2", "level": "note", "message": {"text": "Unused endpoint: GET /api/claws/blacksmith/forge/reports"}, "properties": {"repobilityId": "a8b8f57532dea08c", "scanner": "scanner-primary", "fingerprint": "9483a6892d6a30a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba62a959ba449524", "level": "note", "message": {"text": "Unused endpoint: GET /plex/library"}, "properties": {"repobilityId": "3185420e8486404e", "scanner": "scanner-primary", "fingerprint": "ba62a959ba449524", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-44df03cc32b90689", "level": "note", "message": {"text": "Unused endpoint: GET /public/library"}, "properties": {"repobilityId": "2fec8dea4a5fcc97", "scanner": "scanner-primary", "fingerprint": "44df03cc32b90689", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70b125b28f30c330", "level": "note", "message": {"text": "Unused endpoint: GET /poster"}, "properties": {"repobilityId": "d74e909067bdd44f", "scanner": "scanner-primary", "fingerprint": "70b125b28f30c330", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e41e8721c9453d8c", "level": "note", "message": {"text": "Unused endpoint: GET /public/poster"}, "properties": {"repobilityId": "b758e88542cd8fbe", "scanner": "scanner-primary", "fingerprint": "e41e8721c9453d8c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3f6bb53158e7b26b", "level": "note", "message": {"text": "Unused endpoint: POST /plex/scan"}, "properties": {"repobilityId": "362c7c8d7ad043bc", "scanner": "scanner-primary", "fingerprint": "3f6bb53158e7b26b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-86461af070af3164", "level": "note", "message": {"text": "Unused endpoint: GET /air-quality"}, "properties": {"repobilityId": "4b348c0ccd3aefe5", "scanner": "scanner-primary", "fingerprint": "86461af070af3164", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c404b42e366dd507", "level": "note", "message": {"text": "Unused endpoint: GET /cloudflare"}, "properties": {"repobilityId": "d55e0b3418003774", "scanner": "scanner-primary", "fingerprint": "c404b42e366dd507", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9e0bb5a1e9ab12c7", "level": "note", "message": {"text": "Unused endpoint: GET /droplet"}, "properties": {"repobilityId": "16fffacb4d10f08e", "scanner": "scanner-primary", "fingerprint": "9e0bb5a1e9ab12c7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-844729fc38c8c8ed", "level": "note", "message": {"text": "Unused endpoint: GET /map-config"}, "properties": {"repobilityId": "d4fa04dbc84e1899", "scanner": "scanner-primary", "fingerprint": "844729fc38c8c8ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1630ac85e7921c3e", "level": "note", "message": {"text": "Unused endpoint: GET /map-image"}, "properties": {"repobilityId": "21b6214b7640cc53", "scanner": "scanner-primary", "fingerprint": "1630ac85e7921c3e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-700ec6b657b5add2", "level": "note", "message": {"text": "Unused endpoint: GET /api/hermes-cartographer/proposals"}, "properties": {"repobilityId": "a18b139e5b322013", "scanner": "scanner-primary", "fingerprint": "700ec6b657b5add2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80e0d6c1c0e3ede3", "level": "note", "message": {"text": "Unused endpoint: GET /api/hermes-cartographer/scans"}, "properties": {"repobilityId": "74fc2ea5be9e8233", "scanner": "scanner-primary", "fingerprint": "80e0d6c1c0e3ede3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cf6cc3e4177d9cd", "level": "note", "message": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/approve"}, "properties": {"repobilityId": "d7a741982d419a8b", "scanner": "scanner-primary", "fingerprint": "0cf6cc3e4177d9cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee32b00fb86f15b3", "level": "note", "message": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/reject"}, "properties": {"repobilityId": "60c34a2d647da5fa", "scanner": "scanner-primary", "fingerprint": "ee32b00fb86f15b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6110b3892e653fd5", "level": "note", "message": {"text": "Unused endpoint: POST /api/hermes-cartographer/proposals/{proposal_id}/defer"}, "properties": {"repobilityId": "620b6b63bdfcf55e", "scanner": "scanner-primary", "fingerprint": "6110b3892e653fd5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-696a6e0fba63e203", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/now"}, "properties": {"repobilityId": "44d9a65bac52bc34", "scanner": "scanner-primary", "fingerprint": "696a6e0fba63e203", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b41764b0827a81fc", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/weather"}, "properties": {"repobilityId": "23ac15090ac2361f", "scanner": "scanner-primary", "fingerprint": "b41764b0827a81fc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb7b45574d442ef0", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/celestial"}, "properties": {"repobilityId": "7977585f5cb30f31", "scanner": "scanner-primary", "fingerprint": "eb7b45574d442ef0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b71d334bc8f7ae38", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/focus"}, "properties": {"repobilityId": "4df12c1a6b068ea6", "scanner": "scanner-primary", "fingerprint": "b71d334bc8f7ae38", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4d06a29c75f8be2", "level": "note", "message": {"text": "Unused endpoint: POST /api/briefing/focus"}, "properties": {"repobilityId": "dc010df04f5dda55", "scanner": "scanner-primary", "fingerprint": "e4d06a29c75f8be2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f83f769b768f9d6", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/quote"}, "properties": {"repobilityId": "839532cb8d3d6e47", "scanner": "scanner-primary", "fingerprint": "6f83f769b768f9d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6ee88a3b07237cc1", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/region-info"}, "properties": {"repobilityId": "9758fcc10ec68538", "scanner": "scanner-primary", "fingerprint": "6ee88a3b07237cc1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5a4f28855620f1ae", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/region-map"}, "properties": {"repobilityId": "1d763857dc137bbe", "scanner": "scanner-primary", "fingerprint": "5a4f28855620f1ae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bd7eebf7fe682b1", "level": "note", "message": {"text": "Unused endpoint: GET /api/briefing/world"}, "properties": {"repobilityId": "ea181609e7b1cc1e", "scanner": "scanner-primary", "fingerprint": "6bd7eebf7fe682b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}