{"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-14b077684774bb18", "name": "Possibly dead Python function: write_ciphertext", "shortDescription": {"text": "Possibly dead Python function: write_ciphertext"}, "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-e90e07518587d171", "name": "Possibly dead Python function: mirrored_trees", "shortDescription": {"text": "Possibly dead Python function: mirrored_trees"}, "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-662758f3b678aec8", "name": "Possibly dead Python function: build_upstream", "shortDescription": {"text": "Possibly dead Python function: build_upstream"}, "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-e9856a9aa5da56d8", "name": "Possibly dead Python function: all_bindings", "shortDescription": {"text": "Possibly dead Python function: all_bindings"}, "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-f37ddd3ea3059454", "name": "Possibly dead Python function: install_key", "shortDescription": {"text": "Possibly dead Python function: install_key"}, "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-d2bf3f85b64fb161", "name": "Possibly dead Python function: write_ciphertext", "shortDescription": {"text": "Possibly dead Python function: write_ciphertext"}, "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-fbb7b4ebbd38ebdc", "name": "Possibly dead Python function: install_key", "shortDescription": {"text": "Possibly dead Python function: install_key"}, "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-261e8568af8fb27c", "name": "Possibly dead Python function: coerce_read_result", "shortDescription": {"text": "Possibly dead Python function: coerce_read_result"}, "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-a8f6c828ee91a6bf", "name": "Possibly dead Python function: coerce_prompt_result", "shortDescription": {"text": "Possibly dead Python function: coerce_prompt_result"}, "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-ad15e5ace0c25c0c", "name": "Possibly dead Python function: rerender_target", "shortDescription": {"text": "Possibly dead Python function: rerender_target"}, "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-01013d43faea175a", "name": "Possibly dead Python function: trim_history", "shortDescription": {"text": "Possibly dead Python function: trim_history"}, "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-2de44b4e1115f52b", "name": "Possibly dead Python function: mkparent_write", "shortDescription": {"text": "Possibly dead Python function: mkparent_write"}, "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-8d298397beb48cee", "name": "Possibly dead Python function: du_bytes", "shortDescription": {"text": "Possibly dead Python function: du_bytes"}, "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-be7d2c009b11f5e6", "name": "Possibly dead Python function: build_store_ref_for", "shortDescription": {"text": "Possibly dead Python function: build_store_ref_for"}, "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-cb502a3c92f0599f", "name": "Possibly dead Python function: read_fact", "shortDescription": {"text": "Possibly dead Python function: read_fact"}, "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-f3608728cda2189c", "name": "Possibly dead Python function: list_fact_files_in_dir", "shortDescription": {"text": "Possibly dead Python function: list_fact_files_in_dir"}, "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-79f5d9b563b2e0e6", "name": "Possibly dead Python function: du_bytes", "shortDescription": {"text": "Possibly dead Python function: du_bytes"}, "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-70cfe2a29f08114b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/mcp/JsonImportPanel.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/mcp/JsonImportPanel.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-99badef3073dc064", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocTree.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocTree.tsx:62"}, "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-f25fa9c3704ac98f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseSearchBar.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseSearchBar.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-3f1f6e64aba89c78", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocViewer.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocViewer.tsx:73"}, "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-1e3dfd5c695e732b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactTree.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactTree.tsx:62"}, "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-f23727ef7159eda0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactViewer.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactViewer.tsx:53"}, "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-3575511ad2b2d1ab", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/EditChannelDialog.tsx:161", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/EditChannelDialog.tsx:161"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d284eed1639cfca", "name": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/AddChannelDialog.tsx:196", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/AddChannelDialog.tsx:196"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f61f92067d02a9c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout.tsx:102"}, "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-9da3c8597aade1e5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/TimeRangePicker.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/TimeRangePicker.tsx:103"}, "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-f843fc3f5fab2b56", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ToolCallCard.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ToolCallCard.tsx:35"}, "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-5be905982e6f922c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ConversationListItem.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ConversationListItem.tsx:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-346b0aac7ed0cb58", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigFileTree.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigFileTree.tsx:63"}, "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-6ec2f76a226bcf34", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/FolderPicker.tsx:124", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/FolderPicker.tsx:124"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4d748cc354b342e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigEditorPane.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigEditorPane.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2879fd3edb6e486b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileViewer.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileViewer.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-d23ec4ccc7ff5233", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileTree.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileTree.tsx:96"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d13a0c8581302970", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/settings/ModelsPage.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/settings/ModelsPage.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-3d9ba1f905928bcf", "name": "TODO/FIXME marker in shipping code \u2014 e2e/web/specs/shell_observability.spec.ts:271", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 e2e/web/specs/shell_observability.spec.ts:271"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5a01d7fb175b3d9", "name": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.ts:42", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.ts:42"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0da613cdac2531ec", "name": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.test.ts:25", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.test.ts:25"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-953221e6351adb8d", "name": "Insecure pattern 'eval_used' in .github/workflows/evals.yml:34", "shortDescription": {"text": "Insecure pattern 'eval_used' in .github/workflows/evals.yml:34"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2856026508c0503", "name": "Insecure pattern 'node_child_process' in e2e/mcp/specs/http_round_trip.spec.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/mcp/specs/http_round_trip.spec.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b93a4085df631b8", "name": "Insecure pattern 'node_child_process' in e2e/mcp/specs/_helpers.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/mcp/specs/_helpers.ts:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31d40babc9aa27ce", "name": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/_helpers.ts:37", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/_helpers.ts:37"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70db2a8ef3e96331", "name": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/shell_cold_start.spec.ts:119", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/shell_cold_start.spec.ts:119"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-448d8837178ae57a", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de71d9e7507d4621", "name": "Very large file: backend/tests/integration/application/mcp/test_gateway.py (1433 lines)", "shortDescription": {"text": "Very large file: backend/tests/integration/application/mcp/test_gateway.py (1433 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 54 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 100 placeholder/mock markers across 59 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e13283d988361f47", "name": "Agent authority lacks a verifier contract: docs-site/zh/guide/agents.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: docs-site/zh/guide/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-8924bd427573db9a", "name": "Agent authority lacks a verifier contract: docs-site/guide/agents.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: docs-site/guide/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-bc6ee4226b27d3ac", "name": "Agent authority lacks a verifier contract: .claude/skills/coffer-spec/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/coffer-spec/SKILL.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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0eafa77d9a660528", "name": "Commented-code block (5 lines) in frontend/vite.config.ts:151", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/vite.config.ts:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89ff398a5cbf6cfb", "name": "Commented-code block (7 lines) in frontend/src/main.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/main.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80b67f8af40ca43e", "name": "Commented-code block (5 lines) in frontend/src/kinds/mcp/InvocationsTable.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/InvocationsTable.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e933eff4c299c7a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/mcp/InvocationsTable.tsx:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/mcp/InvocationsTable.tsx:5"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbd7b65273bb4796", "name": "Commented-code block (5 lines) in frontend/src/kinds/mcp/CapabilityBulkActions.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/CapabilityBulkActions.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e82519f915aba1c3", "name": "Commented-code block (5 lines) in frontend/src/kinds/mcp/McpServersTable.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/McpServersTable.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d8a30dcae8506b5", "name": "Commented-code block (6 lines) in frontend/src/kinds/mcp/CapabilityList.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/mcp/CapabilityList.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eae8722632ad5564", "name": "Commented-code block (7 lines) in frontend/src/kinds/knowledge_base/api.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/kinds/knowledge_base/api.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b38f58d707263e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/knowledge_base/api.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/knowledge_base/api.ts:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b19b25e04a1c2289", "name": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2245d2f4c7ced56", "name": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1506222427c2d794", "name": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseSettingsDialog.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseSettingsDialog.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-598aeacc50e84985", "name": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/useKnowledgeBaseDetail.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/useKnowledgeBaseDetail.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14ca19343c7fee34", "name": "Commented-code block (6 lines) in frontend/src/kinds/memory/api.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/memory/api.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e65f39760fb10262", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/memory/api.ts:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/memory/api.ts:58"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1013ca62c17ac76", "name": "Commented-code block (5 lines) in frontend/src/kinds/memory/MemoryStoreDetailPage.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/memory/MemoryStoreDetailPage.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85684574161daa6e", "name": "Commented-code block (6 lines) in frontend/src/kinds/channel/EditChannelDialog.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/EditChannelDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-492f0556aa1b42f1", "name": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelDetailCards.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelDetailCards.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25886728f2183e14", "name": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelCallbackCard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelCallbackCard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4e0b54b09d07db6", "name": "Commented-code block (5 lines) in frontend/src/kinds/channel/registerChannel.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/registerChannel.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-0a90ae1849d19ac5", "name": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelsTable.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelsTable.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8fdcd6389430886", "name": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f21f1dd56bb3e2a4", "name": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.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-822a7c3b9c42f2a7", "name": "Commented-code block (7 lines) in frontend/src/test/mockApiClient.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/test/mockApiClient.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97cb5a522be56716", "name": "Commented-code block (6 lines) in frontend/src/test/acceptance.test.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/test/acceptance.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-803463df771b9ea7", "name": "Commented-code block (5 lines) in frontend/src/components/DataTable.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/DataTable.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e66e72d301c2c912", "name": "Commented-code block (6 lines) in frontend/src/components/DataCardGrid.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/DataCardGrid.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9aebfbf4cf62b3ab", "name": "Commented-code block (9 lines) in frontend/src/components/DataTableSelection.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/components/DataTableSelection.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-933ae761c5597eb9", "name": "Commented-code block (5 lines) in frontend/src/components/Markdown.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/Markdown.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2879d2e70db7b0a", "name": "Commented-code block (5 lines) in frontend/src/components/DataTableToolbar.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/DataTableToolbar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12b8697c2521aa88", "name": "Commented-code block (5 lines) in frontend/src/components/DaemonOfflineBanner.tsx:41", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/DaemonOfflineBanner.tsx:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2fb0ae08735375c", "name": "Commented-code block (6 lines) in frontend/src/components/settings/ProviderModelField.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/settings/ProviderModelField.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-776847d574a0bb1d", "name": "Commented-code block (9 lines) in frontend/src/components/ui/toast.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/components/ui/toast.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-977d3ed76770514e", "name": "Commented-code block (5 lines) in frontend/src/components/chat/ConversationList.test.tsx:100", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/chat/ConversationList.test.tsx:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80c22b36e4dd1fd6", "name": "Commented-code block (5 lines) in frontend/src/components/chat/MarkdownContent.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/chat/MarkdownContent.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db0122adca3da104", "name": "Commented-code block (7 lines) in frontend/src/components/chat/DraftThread.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/chat/DraftThread.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89f4fa25a6c27377", "name": "Commented-code block (6 lines) in frontend/src/components/agents/ConfigFileTree.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/ConfigFileTree.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9efffc75b2f13c43", "name": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMemoryTab.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMemoryTab.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bcb94b55bb70c5f", "name": "Commented-code block (8 lines) in frontend/src/components/agents/ConfigFindReplaceBar.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/ConfigFindReplaceBar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03756e8425b1bbbc", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentGatewayMcpSection.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentGatewayMcpSection.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01eaff11aef871e4", "name": "Commented-code block (10 lines) in frontend/src/components/agents/AgentMcpServersTab.test.tsx:3", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/components/agents/AgentMcpServersTab.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d572240b6b3f8c10", "name": "Commented-code block (7 lines) in frontend/src/components/agents/ConfigEditorDialogs.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/ConfigEditorDialogs.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08a2e539ef64db33", "name": "Commented-code block (5 lines) in frontend/src/components/agents/AgentPluginsTab.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/AgentPluginsTab.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d58fa65ccb198b87", "name": "Commented-code block (5 lines) in frontend/src/components/agents/FolderPicker.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/FolderPicker.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acd091f961253f58", "name": "Commented-code block (8 lines) in frontend/src/components/agents/AgentConfigFilesEditor.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentConfigFilesEditor.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1e907f138a951b5", "name": "Commented-code block (5 lines) in frontend/src/components/agents/AgentMcpControls.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/AgentMcpControls.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bffcb286197c1a7d", "name": "Commented-code block (7 lines) in frontend/src/components/agents/AgentSkillsBulkActions.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentSkillsBulkActions.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2348c3635aa29d62", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentManualAddForm.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentManualAddForm.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccdb0175bd4e9215", "name": "Commented-code block (8 lines) in frontend/src/components/agents/AgentSkillsTab.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentSkillsTab.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0669da6c991e581d", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28a8808820a5315c", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAddDialog.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAddDialog.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74b4223dca763ea7", "name": "Commented-code block (9 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-766eb7e91798c0de", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentMemoryTab.test.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentMemoryTab.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62c2c0db64b05684", "name": "Commented-code block (7 lines) in frontend/src/components/agents/AgentAddDialog.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentAddDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccda363bc9e563d3", "name": "Commented-code block (10 lines) in frontend/src/components/agents/AgentSkillsTab.test.tsx:8", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/components/agents/AgentSkillsTab.test.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcc8a5f08b01593b", "name": "Commented-code block (7 lines) in frontend/src/components/agents/AgentConfigFilesEditor.test.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentConfigFilesEditor.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4b86f69a90c9ec4", "name": "Commented-code block (6 lines) in frontend/src/components/agents/AgentInstallSkillsDialog.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentInstallSkillsDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ae1229c7a91ce32", "name": "Commented-code block (7 lines) in frontend/src/components/agents/AgentUnmanagedSkills.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentUnmanagedSkills.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eab45ba88ebbac41", "name": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMcpServersTab.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMcpServersTab.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-464ed87a24746d34", "name": "Commented-code block (5 lines) in frontend/src/components/agents/ConfigEditorPane.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/ConfigEditorPane.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9774023d8136bae", "name": "Commented-code block (5 lines) in frontend/src/components/knowledge_base/KnowledgeBaseAddDialog.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/knowledge_base/KnowledgeBaseAddDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20ac7e4fb2ad2f44", "name": "Commented-code block (5 lines) in frontend/src/components/memory/MemoryStoresTable.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/memory/MemoryStoresTable.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c7edfddf3c863e1", "name": "Commented-code block (6 lines) in frontend/src/components/skills/SkillAddDialog.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/skills/SkillAddDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c589dff4af487b01", "name": "Commented-code block (7 lines) in frontend/src/components/skills/SkillFileViewer.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/skills/SkillFileViewer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6d67f11fef46134", "name": "Commented-code block (5 lines) in frontend/src/components/skills/SkillFileTree.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/skills/SkillFileTree.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-798d5480e06d9fc9", "name": "Commented-code block (6 lines) in frontend/src/components/skills/SkillsTable.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/skills/SkillsTable.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e107b11aace4ad0", "name": "Commented-code block (5 lines) in frontend/src/components/skills/SkillsTableActions.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/skills/SkillsTableActions.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41547d71aba5c76b", "name": "Commented-code block (7 lines) in frontend/src/components/skills/SkillVerifyDialog.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/skills/SkillVerifyDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78f21861ffbf6841", "name": "Commented-code block (5 lines) in frontend/src/lib/chatCwd.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/chatCwd.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-b382f0df3bd187c6", "name": "Commented-code block (5 lines) in frontend/src/lib/auth.test.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/auth.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d45555871b1895d", "name": "Commented-code block (5 lines) in frontend/src/lib/tauri.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/tauri.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c613cec740f2fd7", "name": "Commented-code block (5 lines) in frontend/src/lib/api/agents.ts:191", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/agents.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4921865733ebff8", "name": "Commented-code block (5 lines) in frontend/src/lib/api/resources.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/resources.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-643dcc3bf5dd64b1", "name": "Commented-code block (5 lines) in frontend/src/lib/api/channels.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/channels.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-860118a57a1831f1", "name": "Commented-code block (7 lines) in frontend/src/lib/chat/streamClient.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/lib/chat/streamClient.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c96db5d4ef796808", "name": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChatController.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChatController.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-0f45e66d67050bc7", "name": "Commented-code block (6 lines) in frontend/src/lib/hooks/useConfigEditorState.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/lib/hooks/useConfigEditorState.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-e79b7b4762bc0d4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useEmbeddingConfig.ts:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useEmbeddingConfig.ts:4"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab76ff82f97f3ee6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSkills.test.tsx:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSkills.test.tsx:4"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96aeae56bac046b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSync.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSync.ts:46"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16772433e6d72d5c", "name": "Commented-code block (5 lines) in frontend/src/lib/hooks/useAgents.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useAgents.ts:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c45647ef46be03e4", "name": "Commented-code block (8 lines) in frontend/src/lib/hooks/useBulkMutate.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/lib/hooks/useBulkMutate.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-e9bd5115178e202a", "name": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChannels.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChannels.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02fad11fe3e52e46", "name": "Commented-code block (7 lines) in frontend/src/lib/hooks/useChatTurn.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/lib/hooks/useChatTurn.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62726c13f4cf4c3c", "name": "Commented-code block (5 lines) in frontend/src/pages/MemoryPage.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/MemoryPage.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d60e0db970a3dfae", "name": "Commented-code block (5 lines) in frontend/src/pages/ChatPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/ChatPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a651896d867abefa", "name": "Commented-code block (6 lines) in frontend/src/pages/ChannelDetailPage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/ChannelDetailPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b15d694c56f9c551", "name": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74f76084d5699c3e", "name": "Commented-code block (5 lines) in frontend/src/pages/SkillDetailPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillDetailPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-677246c35564d126", "name": "Commented-code block (5 lines) in frontend/src/pages/ChannelsPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/ChannelsPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07458a62068cecfa", "name": "Commented-code block (7 lines) in frontend/src/pages/ResourcesPage.test.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/ResourcesPage.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11eb96f70bd49075", "name": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.test.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.test.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fbe3a359bb77736", "name": "Commented-code block (6 lines) in frontend/src/pages/audit/AuditLogPage.test.tsx:22", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/audit/AuditLogPage.test.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc5cd3a911aad2e5", "name": "Commented-code block (7 lines) in docs-site/scripts/sync-reference.mjs:74", "shortDescription": {"text": "Commented-code block (7 lines) in docs-site/scripts/sync-reference.mjs:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-951cd405a1f24a29", "name": "Commented-code block (5 lines) in scripts/audit_acceptance.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/audit_acceptance.py:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2f0282ea1b917d7", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/verify_stamp.py:40", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/verify_stamp.py:40"}, "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-da385cdf5daa1158", "name": "Commented-code block (5 lines) in scripts/check_file_sizes.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check_file_sizes.py:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d060ce38231fae45", "name": "Commented-code block (5 lines) in backend/tests/integration/security/test_credential_leak.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/integration/security/test_credential_leak.py:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f7f57e9925d1d05", "name": "Commented-code block (5 lines) in backend/tests/integration/chat/test_cli_agent.py:116", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/integration/chat/test_cli_agent.py: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-0b99a5057fe2e459", "name": "Commented-code block (5 lines) in backend/tests/integration/infrastructure/mcp/test_progress_passthrough.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/integration/infrastructure/mcp/test_progress_passthrough.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-767ded78a1d2a726", "name": "Commented-code block (19 lines) in backend/tests/integration/infrastructure/persistence/test_migrations_roundtrip.py:24", "shortDescription": {"text": "Commented-code block (19 lines) in backend/tests/integration/infrastructure/persistence/test_migrations_roundtrip.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-437d910a0d35e316", "name": "Legacy-named symbol `upstream_v1` in backend/tests/integration/application/test_skill_service.py:617", "shortDescription": {"text": "Legacy-named symbol `upstream_v1` in backend/tests/integration/application/test_skill_service.py:617"}, "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-47459534a87d2714", "name": "Commented-code block (6 lines) in backend/tests/integration/surfaces/cli/test_skill_cmd.py:108", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/integration/surfaces/cli/test_skill_cmd.py:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-158518405dc1b4e7", "name": "Legacy-named symbol `vault_backup` in backend/tests/integration/surfaces/cli/test_vault_backup_restore.py:118", "shortDescription": {"text": "Legacy-named symbol `vault_backup` in backend/tests/integration/surfaces/cli/test_vault_backup_restore.py:118"}, "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-276ea1c1121dd60a", "name": "Legacy-named symbol `custom_backup` in backend/tests/integration/surfaces/cli/test_daemon_backup_rotate.py:47", "shortDescription": {"text": "Legacy-named symbol `custom_backup` in backend/tests/integration/surfaces/cli/test_daemon_backup_rotate.py:47"}, "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-6d286271fc89e962", "name": "Legacy-named symbol `r_old` in backend/tests/integration/surfaces/http/test_daemon_routes_extended.py:114", "shortDescription": {"text": "Legacy-named symbol `r_old` in backend/tests/integration/surfaces/http/test_daemon_routes_extended.py:114"}, "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-c28c0e861590e54e", "name": "Commented-code block (5 lines) in backend/tests/integration/channel/test_routing.py:159", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/integration/channel/test_routing.py:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfa172c15f9b4e7e", "name": "Legacy-named symbol `session_old` in backend/tests/unit/distill/test_parsers.py:111", "shortDescription": {"text": "Legacy-named symbol `session_old` in backend/tests/unit/distill/test_parsers.py:111"}, "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-4dfffd480e91dadf", "name": "Legacy-named symbol `test_write_atomic_keeps_backup` in backend/tests/unit/infrastructure/agent/test_config_file_store.p", "shortDescription": {"text": "Legacy-named symbol `test_write_atomic_keeps_backup` in backend/tests/unit/infrastructure/agent/test_config_file_store.py:35"}, "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-ca52148cd77d645c", "name": "Commented-code block (5 lines) in backend/tests/fixtures/fake_mcp_server.py:101", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/fixtures/fake_mcp_server.py:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be6af8c492afa163", "name": "Legacy-named symbol `create_backup` in backend/coffer/infrastructure/vault/backup.py:78", "shortDescription": {"text": "Legacy-named symbol `create_backup` in backend/coffer/infrastructure/vault/backup.py:78"}, "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-bcdb380badb5aaa8", "name": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/infrastructure/sync/git_repo.py:31", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/infrastructure/sync/git_repo.py:31"}, "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-9d9a8188ccb3283e", "name": "Commented-code block (10 lines) in backend/coffer/infrastructure/mcp/http_client.py:163", "shortDescription": {"text": "Commented-code block (10 lines) in backend/coffer/infrastructure/mcp/http_client.py:163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7d3d080e2cab61f", "name": "Commented-code block (6 lines) in backend/coffer/infrastructure/mcp/subprocess.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/infrastructure/mcp/subprocess.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60f854a980f17be8", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/codex_app_server.py:76", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/codex_app_server.py:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-050bb75fd1273cb4", "name": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/claude_sdk_p", "shortDescription": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/claude_sdk_provider.py:96"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2614538463a8e01c", "name": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/cli_provider", "shortDescription": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/cli_providers.py:328"}, "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-c0cc419d3f467508", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/claude_sdk_agent.py:308", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/claude_sdk_agent.py:308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27f62202aaa29e90", "name": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/codex_provid", "shortDescription": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/codex_provider.py:99"}, "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-178ba0ead4e86b0a", "name": "Commented-code block (7 lines) in backend/coffer/infrastructure/chat/codex_agent.py:161", "shortDescription": {"text": "Commented-code block (7 lines) in backend/coffer/infrastructure/chat/codex_agent.py:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c9c1fafc0c9621b", "name": "Commented-code block (6 lines) in backend/coffer/infrastructure/daemon/entry.py:88", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/infrastructure/daemon/entry.py:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2be1c1f8d1204d1", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/persistence.py:153", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/persistence.py:153"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-592463ca4865ab53", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/source_fetcher.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/source_fetcher.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28467db5e2bbb864", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/persistence/migrations/versions", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/persistence/migrations/versions/20260528_0007_memory_tables.py:30"}, "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-fb10d6f81bdda118", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/cleaning.py:19", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/cleaning.py:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb3246d3249ba033", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/vec_index.py:211", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/vec_index.py:211"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e97e01d6a25eeebe", "name": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/sqlite_index.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/sqlite_index.py:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7578a0cf74437a86", "name": "Commented-code block (6 lines) in backend/coffer/application/resource_service.py:118", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/application/resource_service.py:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c27cb74ed71dcd74", "name": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_handlers.py:199", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_handlers.py:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b6ad497f2db6202", "name": "Commented-code block (5 lines) in backend/coffer/application/mcp/discovery.py:189", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/discovery.py:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ba60344ea28927a", "name": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_server_requests.py:71", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_server_requests.py:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de5442fd8cc0a46b", "name": "Commented-code block (5 lines) in backend/coffer/application/mcp/supervisor.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/supervisor.py:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e6c1830e10f9d6f", "name": "Commented-code block (5 lines) in backend/coffer/application/agent/mcp_entry_service.py:296", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/agent/mcp_entry_service.py:296"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60f2fdc5131ba20b", "name": "Legacy-named symbol `model_copy` in backend/coffer/application/agent/service.py:226", "shortDescription": {"text": "Legacy-named symbol `model_copy` in backend/coffer/application/agent/service.py:226"}, "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-047f4be4d0482d6d", "name": "Commented-code block (5 lines) in backend/coffer/application/agent/service.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/agent/service.py:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b872c88d9605a738", "name": "Commented-code block (7 lines) in backend/coffer/application/agent/projection/adapters.py:46", "shortDescription": {"text": "Commented-code block (7 lines) in backend/coffer/application/agent/projection/adapters.py:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2306b75688a8196", "name": "Stub function `remove` (body is just `pass`/`return`) \u2014 backend/coffer/application/agent/projection/adapters.py:248", "shortDescription": {"text": "Stub function `remove` (body is just `pass`/`return`) \u2014 backend/coffer/application/agent/projection/adapters.py:248"}, "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-767bb2189225a154", "name": "Commented-code block (8 lines) in backend/coffer/application/chat/turn_orchestrator.py:224", "shortDescription": {"text": "Commented-code block (8 lines) in backend/coffer/application/chat/turn_orchestrator.py:224"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa212e1dad153ae1", "name": "Commented-code block (5 lines) in backend/coffer/application/chat/model_service.py:173", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/chat/model_service.py:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a065c1647b764d4c", "name": "Legacy-named symbol `model_copy` in backend/coffer/application/skill/update_ops.py:57", "shortDescription": {"text": "Legacy-named symbol `model_copy` in backend/coffer/application/skill/update_ops.py:57"}, "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-32bf47cfd97baeb1", "name": "Commented-code block (10 lines) in backend/coffer/application/skill/update_ops.py:116", "shortDescription": {"text": "Commented-code block (10 lines) in backend/coffer/application/skill/update_ops.py: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-54a7e122abebc595", "name": "Commented-code block (5 lines) in backend/coffer/application/skill/lifecycle_ops.py:227", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/skill/lifecycle_ops.py:227"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3cd51f1d9b1cda1", "name": "Commented-code block (6 lines) in backend/coffer/application/skill/delivery_ops.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/application/skill/delivery_ops.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0ea902d4d7ece3b", "name": "Commented-code block (6 lines) in backend/coffer/application/skill/builtin_tools.py:11", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/application/skill/builtin_tools.py:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e93221ec6c3424c", "name": "Commented-code block (8 lines) in backend/coffer/application/skill/unmanaged_ops.py:148", "shortDescription": {"text": "Commented-code block (8 lines) in backend/coffer/application/skill/unmanaged_ops.py:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc11e134fecadc97", "name": "Commented-code block (5 lines) in backend/coffer/application/skill/binding_ops.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/application/skill/binding_ops.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d60fc8267d0e2651", "name": "Commented-code block (6 lines) in backend/coffer/application/channel/inbound.py:182", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/application/channel/inbound.py:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bd1843f6e386d50", "name": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/daemon_cmd.py:84", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/daemon_cmd.py:84"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4db937ec130c8b82", "name": "Legacy-named symbol `create_backup` in backend/coffer/surfaces/cli/backup_cmd.py:58", "shortDescription": {"text": "Legacy-named symbol `create_backup` in backend/coffer/surfaces/cli/backup_cmd.py:58"}, "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-819602c9b43d16ba", "name": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/_client.py:100", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/_client.py:100"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e77ec497ffb35a06", "name": "Commented-code block (6 lines) in backend/coffer/surfaces/shim/main.py:39", "shortDescription": {"text": "Commented-code block (6 lines) in backend/coffer/surfaces/shim/main.py:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-948670595f8d8fcf", "name": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/shim/main.py:120", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/shim/main.py:120"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f18904741682b2a", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_service.py:254", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_service.py:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dc646ba25f8eaaa", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/audit_routes.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/audit_routes.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a3b1e8de1c05b9d", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/skill_routes.py:109", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/skill_routes.py:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-039767214d201b6e", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/wiring.py:116", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/wiring.py: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-aecf25731c31c4d3", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/dependencies.py:131", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/dependencies.py:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60bee7ff40f55b59", "name": "Commented-code block (7 lines) in backend/coffer/surfaces/http/app.py:166", "shortDescription": {"text": "Commented-code block (7 lines) in backend/coffer/surfaces/http/app.py:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0e9dd1438f1e9b4", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/agent_routes.py:29", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/agent_routes.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-548bc947a00a546f", "name": "Legacy-named symbol `_do_backup` in backend/coffer/surfaces/http/daemon_routes.py:306", "shortDescription": {"text": "Legacy-named symbol `_do_backup` in backend/coffer/surfaces/http/daemon_routes.py:306"}, "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-1740e9d15ffe2175", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_routes.py:107", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_routes.py:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1b8b019b89c1e0a", "name": "Commented-code block (7 lines) in backend/coffer/surfaces/http/agent_skill_wiring.py:76", "shortDescription": {"text": "Commented-code block (7 lines) in backend/coffer/surfaces/http/agent_skill_wiring.py:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5039657e87c62290", "name": "Legacy-named symbol `enable_capability_legacy` in backend/coffer/surfaces/http/mcp/capability_routes.py:272", "shortDescription": {"text": "Legacy-named symbol `enable_capability_legacy` in backend/coffer/surfaces/http/mcp/capability_routes.py:272"}, "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-3c754853d695d4ef", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/capability_routes.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/capability_routes.py:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87456fd63ea2416a", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/protocol_routes.py:74", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/protocol_routes.py:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0400da66b571f4c8", "name": "Commented-code block (5 lines) in backend/coffer/surfaces/http/knowledge_base/routes.py:139", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/knowledge_base/routes.py:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4c55eee7fd56878", "name": "Legacy-named symbol `model_copy` in backend/coffer/surfaces/http/memory/routes.py:146", "shortDescription": {"text": "Legacy-named symbol `model_copy` in backend/coffer/surfaces/http/memory/routes.py:146"}, "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-628bdd913624118d", "name": "Commented-code block (7 lines) in backend/coffer/domain/resource.py:92", "shortDescription": {"text": "Commented-code block (7 lines) in backend/coffer/domain/resource.py:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c375d1f184bfff37", "name": "Commented-code block (5 lines) in backend/coffer/domain/skill/validator.py:99", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/domain/skill/validator.py:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e662a1b09df3af35", "name": "Commented-code block (5 lines) in backend/coffer/domain/channel/config.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in backend/coffer/domain/channel/config.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b79492d900a981b6", "name": "Commented-code block (6 lines) in e2e/playwright.config.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/playwright.config.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c30f70da100e019", "name": "Commented-code block (5 lines) in e2e/mcp/specs/concurrent_clients.spec.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/concurrent_clients.spec.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76de50084da87ed8", "name": "Commented-code block (7 lines) in e2e/mcp/specs/upstream_crash_recovery.spec.ts:67", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/mcp/specs/upstream_crash_recovery.spec.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef4c69eff73a5a4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/http_round_trip.spec.ts:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/http_round_trip.spec.ts:71"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-566a4c7e01bb9fe5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/_helpers.ts:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/_helpers.ts:57"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e1984564550805c", "name": "Commented-code block (5 lines) in e2e/mcp/specs/capability_disable.spec.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/capability_disable.spec.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-529489da8117a5ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/capability_disable.spec.ts:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/capability_disable.spec.ts:31"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9b7a42abd4827fd", "name": "Commented-code block (5 lines) in e2e/mcp/specs/_acceptance.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/_acceptance.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c07a5f0f0d9c6f67", "name": "Commented-code block (5 lines) in e2e/web/specs/shell_memory.spec.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_memory.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d1469aa5f1d6e0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_memory.spec.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_memory.spec.ts:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-305d83607fe6ab2b", "name": "Commented-code block (9 lines) in e2e/web/specs/shell_settings.spec.ts:110", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/web/specs/shell_settings.spec.ts:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-813de9992e172848", "name": "Commented-code block (7 lines) in e2e/web/specs/agent_workspace.spec.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/web/specs/agent_workspace.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21e295aa077a3ade", "name": "Commented-code block (5 lines) in e2e/web/specs/shell_agents.spec.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_agents.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66c0de70edc93266", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_agents.spec.ts:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_agents.spec.ts:61"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5702571c6e40c26a", "name": "Commented-code block (5 lines) in e2e/web/specs/shell_knowledge_base.spec.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_knowledge_base.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc64e04e06385e6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_knowledge_base.spec.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_knowledge_base.spec.ts:47"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0dee6c82cbe2e0e", "name": "Commented-code block (5 lines) in e2e/web/specs/shell_mcp_flows.spec.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_mcp_flows.spec.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fede8e57eea87530", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_mcp_flows.spec.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_mcp_flows.spec.ts:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f448cdcd439866b8", "name": "Commented-code block (6 lines) in e2e/web/specs/shell_cold_start.spec.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/web/specs/shell_cold_start.spec.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a913a6a6bbd61084", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_cold_start.spec.ts:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_cold_start.spec.ts:123"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e40543df8e33331", "name": "Commented-code block (6 lines) in e2e/web/specs/shell_observability.spec.ts:190", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/web/specs/shell_observability.spec.ts:190"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf08d67448738239", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_observability.spec.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_observability.spec.ts:37"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4016e049cb65f0b", "name": "Commented-code block (5 lines) in e2e/web/specs/shell_skills.spec.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_skills.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa7b8342bad3115d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_skills.spec.ts:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_skills.spec.ts:74"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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:\n.claude/hooks/block_dangerous_bash.py:main, .claude/hooks/verify_before_commit.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/coffer/infrastructure/sync/persistence.py:set, backend/coffer/infrastructure/sync/persistence.py:set, backend/coffer/application/sync/config_service.py:set, backend/coffer/application/sync/config_service.py:set\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:\nbackend/coffer/infrastructure/mcp/persistence.py:insert, backend/coffer/infrastructure/mcp/persistence.py:set_enabled, backend/coffer/application/mcp/ports.py:insert, backend/coffer/application/mcp/ports.py:set_enabled\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:\nbackend/coffer/infrastructure/chat/claude_sdk_provider.py:init_conversation, backend/coffer/infrastructure/chat/cli_providers.py:init_conversation, backend/coffer/infrastructure/chat/codex_provider.py:init_conversation\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-e768985fea30cb08", "name": "Frontend route `/mcp-servers/mcp_server/:name` has no Link/navigate to it \u2014 frontend/src/kinds/mcp/AddMcpServerDialog.te", "shortDescription": {"text": "Frontend route `/mcp-servers/mcp_server/:name` has no Link/navigate to it \u2014 frontend/src/kinds/mcp/AddMcpServerDialog.test.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-f4355d047a15d152", "name": "Frontend route `/knowledge-bases/:name` has no Link/navigate to it \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDeta", "shortDescription": {"text": "Frontend route `/knowledge-bases/:name` has no Link/navigate to it \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.test.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-3cd87bd507540433", "name": "Frontend route `/memory/:name` has no Link/navigate to it \u2014 frontend/src/kinds/memory/MemoryStoreDetailPage.test.tsx", "shortDescription": {"text": "Frontend route `/memory/:name` has no Link/navigate to it \u2014 frontend/src/kinds/memory/MemoryStoreDetailPage.test.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-77741a542e3ba078", "name": "Frontend route `/skills/:name` has no Link/navigate to it \u2014 frontend/src/pages/SkillDetailPage.test.tsx", "shortDescription": {"text": "Frontend route `/skills/:name` has no Link/navigate to it \u2014 frontend/src/pages/SkillDetailPage.test.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-c9a9dee945d8d1f7", "name": "Frontend route `/mcp-servers/:kind/:name` has no Link/navigate to it \u2014 frontend/src/pages/ResourceDetailPage.test.tsx", "shortDescription": {"text": "Frontend route `/mcp-servers/:kind/:name` has no Link/navigate to it \u2014 frontend/src/pages/ResourceDetailPage.test.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-fa8569a031649030", "name": "Frontend route `/agents/:name` has no Link/navigate to it \u2014 frontend/src/pages/AgentDetailPage.test.tsx", "shortDescription": {"text": "Frontend route `/agents/:name` has no Link/navigate to it \u2014 frontend/src/pages/AgentDetailPage.test.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-87713e79bf3d217c", "name": "Frontend route `/chat/:id` has no Link/navigate to it \u2014 frontend/src/pages/ChatPage.test.tsx", "shortDescription": {"text": "Frontend route `/chat/:id` has no Link/navigate to it \u2014 frontend/src/pages/ChatPage.test.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-22e8107a89e03717", "name": "FastAPI POST `seatalk_callback` without auth dependency \u2014 backend/coffer/surfaces/callback/app.py:49", "shortDescription": {"text": "FastAPI POST `seatalk_callback` without auth dependency \u2014 backend/coffer/surfaces/callback/app.py:49"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-606684fe3133fa01", "name": "FastAPI POST `import_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:196", "shortDescription": {"text": "FastAPI POST `import_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:196"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9993d477f8e82b41", "name": "FastAPI POST `fetch_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:206", "shortDescription": {"text": "FastAPI POST `fetch_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:206"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1e8b75391b342e3", "name": "FastAPI DELETE `delete_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:231", "shortDescription": {"text": "FastAPI DELETE `delete_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:231"}, "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-6066e64a8ff8ffac", "name": "FastAPI POST `update_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:242", "shortDescription": {"text": "FastAPI POST `update_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:242"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8f1314d50916e52", "name": "FastAPI POST `enable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:261", "shortDescription": {"text": "FastAPI POST `enable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:261"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c2a0ee67e049968", "name": "FastAPI POST `disable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:284", "shortDescription": {"text": "FastAPI POST `disable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:284"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-887ca033e3c58e88", "name": "FastAPI POST `verify_skills` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:302", "shortDescription": {"text": "FastAPI POST `verify_skills` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:302"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e972fbf492798098", "name": "FastAPI PATCH `patch_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:163", "shortDescription": {"text": "FastAPI PATCH `patch_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:163"}, "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-821bb3077916e7ce", "name": "FastAPI DELETE `delete_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:178", "shortDescription": {"text": "FastAPI DELETE `delete_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:178"}, "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-8b77b42f9bffdaec", "name": "FastAPI POST `adopt_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:193", "shortDescription": {"text": "FastAPI POST `adopt_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:193"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3256f0698fa27d92", "name": "FastAPI PATCH `patch_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:242", "shortDescription": {"text": "FastAPI PATCH `patch_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:242"}, "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-00bd5c3a27767978", "name": "FastAPI DELETE `delete_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:257", "shortDescription": {"text": "FastAPI DELETE `delete_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:257"}, "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-863633f6cde307e8", "name": "FastAPI PATCH `update_policy` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:47", "shortDescription": {"text": "FastAPI PATCH `update_policy` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:47"}, "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-56b858471db3e185", "name": "FastAPI POST `prune_now` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:78", "shortDescription": {"text": "FastAPI POST `prune_now` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:78"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5af923be30db3d37", "name": "FastAPI PUT `update_config` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:45", "shortDescription": {"text": "FastAPI PUT `update_config` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:45"}, "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-62bf49a6fb8e4c1e", "name": "FastAPI POST `test_embedding` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:65", "shortDescription": {"text": "FastAPI POST `test_embedding` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:65"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1204760609152907", "name": "FastAPI PATCH `update_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:80", "shortDescription": {"text": "FastAPI PATCH `update_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:80"}, "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-7787124fe6b62629", "name": "FastAPI DELETE `delete_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:102", "shortDescription": {"text": "FastAPI DELETE `delete_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:102"}, "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-32536bb278ae99ac", "name": "FastAPI POST `enable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:113", "shortDescription": {"text": "FastAPI POST `enable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:113"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0f7694d604f49fc", "name": "FastAPI POST `disable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:124", "shortDescription": {"text": "FastAPI POST `disable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:124"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb1f0f4fcc99c8b3", "name": "FastAPI PATCH `update_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:197", "shortDescription": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:197"}, "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-0ba94a671cfc4c81", "name": "FastAPI DELETE `delete_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:227", "shortDescription": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:227"}, "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-43a25f989c819f69", "name": "FastAPI POST `set_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.py:48", "shortDescription": {"text": "FastAPI POST `set_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.py:48"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb75d13a08a9630f", "name": "FastAPI DELETE `delete_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.py:111", "shortDescription": {"text": "FastAPI DELETE `delete_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.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-eb9cc3ec57aff4b3", "name": "FastAPI POST `establish_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:99", "shortDescription": {"text": "FastAPI POST `establish_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:99"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a42ae867a8d87c43", "name": "FastAPI DELETE `remove_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:135", "shortDescription": {"text": "FastAPI DELETE `remove_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:135"}, "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-a4781fe8e99a6006", "name": "FastAPI PUT `put_credential_settings` without auth dependency \u2014 backend/coffer/surfaces/http/settings_routes.py:43", "shortDescription": {"text": "FastAPI PUT `put_credential_settings` without auth dependency \u2014 backend/coffer/surfaces/http/settings_routes.py:43"}, "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-db6ed74a066be6be", "name": "FastAPI PUT `write_skill_file` without auth dependency \u2014 backend/coffer/surfaces/http/skill_file_routes.py:125", "shortDescription": {"text": "FastAPI PUT `write_skill_file` without auth dependency \u2014 backend/coffer/surfaces/http/skill_file_routes.py:125"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-141b280aa33d38db", "name": "FastAPI PUT `put_config` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:115", "shortDescription": {"text": "FastAPI PUT `put_config` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:115"}, "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-2180419b0a0501eb", "name": "FastAPI POST `run_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:133", "shortDescription": {"text": "FastAPI POST `run_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:133"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68440160f2a5f686", "name": "FastAPI POST `resolve_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:139", "shortDescription": {"text": "FastAPI POST `resolve_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:139"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3837b8f4c98fda8", "name": "FastAPI POST `export_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:144", "shortDescription": {"text": "FastAPI POST `export_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:144"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fa8ef4010e897d6", "name": "FastAPI POST `import_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:149", "shortDescription": {"text": "FastAPI POST `import_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:149"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35d8f4923dfeaafc", "name": "FastAPI PUT `write_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:137", "shortDescription": {"text": "FastAPI PUT `write_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:137"}, "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-ea2e9cb8dc45ad08", "name": "FastAPI DELETE `delete_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:15", "shortDescription": {"text": "FastAPI DELETE `delete_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:158"}, "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-eeca53312af6c970", "name": "FastAPI PUT `write_config_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:182", "shortDescription": {"text": "FastAPI PUT `write_config_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:182"}, "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-5ca0e7f59c9ca001", "name": "FastAPI POST `install_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:205", "shortDescription": {"text": "FastAPI POST `install_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:205"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-335350c4c70973cd", "name": "FastAPI DELETE `uninstall_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:214", "shortDescription": {"text": "FastAPI DELETE `uninstall_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:214"}, "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-8b57ca6734100303", "name": "FastAPI POST `issue_pairing_code` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:86", "shortDescription": {"text": "FastAPI POST `issue_pairing_code` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.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-da5335ddf36d4ae1", "name": "FastAPI POST `notify_channel` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:129", "shortDescription": {"text": "FastAPI POST `notify_channel` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:129"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2733db75ffb10aac", "name": "FastAPI POST `test_channel_callback` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:135", "shortDescription": {"text": "FastAPI POST `test_channel_callback` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.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-6d69d3d7a93c24a6", "name": "FastAPI POST `ingest_channel_event` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:142", "shortDescription": {"text": "FastAPI POST `ingest_channel_event` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:142"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e836ac47b2312c5", "name": "FastAPI POST `adopt_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_routes", "shortDescription": {"text": "FastAPI POST `adopt_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py:74"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffb0b4278b887233", "name": "FastAPI DELETE `delete_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_rou", "shortDescription": {"text": "FastAPI DELETE `delete_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py:95"}, "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-b133af3293e70421", "name": "FastAPI POST `distill_transcript` without auth dependency \u2014 backend/coffer/surfaces/http/distill/routes.py:70", "shortDescription": {"text": "FastAPI POST `distill_transcript` without auth dependency \u2014 backend/coffer/surfaces/http/distill/routes.py:70"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf72887270257f73", "name": "FastAPI POST `enable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:209", "shortDescription": {"text": "FastAPI POST `enable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:209"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2643ebfa64eb4b71", "name": "FastAPI POST `disable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:236", "shortDescription": {"text": "FastAPI POST `disable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:236"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb46299e8c40c0ea", "name": "FastAPI POST `enable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:", "shortDescription": {"text": "FastAPI POST `enable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:266"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b0cead3008a5759", "name": "FastAPI POST `disable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py", "shortDescription": {"text": "FastAPI POST `disable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:293"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d6a9aa04cfab810", "name": "FastAPI POST `refresh_capabilities` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:320", "shortDescription": {"text": "FastAPI POST `refresh_capabilities` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:320"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b340661d3d0f7ee6", "name": "FastAPI POST `test_mcp_server` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:336", "shortDescription": {"text": "FastAPI POST `test_mcp_server` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.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-103f48b25c16a0ec", "name": "FastAPI POST `create_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:67", "shortDescription": {"text": "FastAPI POST `create_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:67"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cec2f19960818a6", "name": "FastAPI PATCH `update_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:84", "shortDescription": {"text": "FastAPI PATCH `update_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:84"}, "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-4dc36af2dd2918e6", "name": "FastAPI DELETE `delete_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:102", "shortDescription": {"text": "FastAPI DELETE `delete_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:102"}, "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-13f7a2f509260f21", "name": "FastAPI POST `list_provider_models` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:119", "shortDescription": {"text": "FastAPI POST `list_provider_models` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:119"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d87b45359612980", "name": "FastAPI POST `test_connection` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:131", "shortDescription": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:131"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7a83fc8043f9b9d", "name": "FastAPI POST `create_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:15", "shortDescription": {"text": "FastAPI POST `create_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:152"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1591d62e87791b56", "name": "FastAPI PATCH `update_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:1", "shortDescription": {"text": "FastAPI PATCH `update_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:181"}, "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-7a8e4b68b2c6bfdd", "name": "FastAPI POST `archive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:2", "shortDescription": {"text": "FastAPI POST `archive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:208"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a1a276b42dd947d", "name": "FastAPI POST `unarchive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py", "shortDescription": {"text": "FastAPI POST `unarchive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:218"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c3334853f7ddc26", "name": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:", "shortDescription": {"text": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:228"}, "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-70e588bf5b02ad7e", "name": "FastAPI POST `send_message` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:48", "shortDescription": {"text": "FastAPI POST `send_message` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:48"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-294fd886c2bdaaa0", "name": "FastAPI POST `submit_approval` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:93", "shortDescription": {"text": "FastAPI POST `submit_approval` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:93"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d1f80c331ad59a3", "name": "FastAPI POST `interrupt_turn` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:118", "shortDescription": {"text": "FastAPI POST `interrupt_turn` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.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-c6102ee09e3dc52c", "name": "FastAPI POST `create_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:99", "shortDescription": {"text": "FastAPI POST `create_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:99"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c452d2526bb8314b", "name": "FastAPI POST `ingest_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:127", "shortDescription": {"text": "FastAPI POST `ingest_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:127"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a9cb7f84a10fb8a", "name": "FastAPI PUT `edit_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:203", "shortDescription": {"text": "FastAPI PUT `edit_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:203"}, "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-db387f4b24c86a4e", "name": "FastAPI POST `reconvert_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:218", "shortDescription": {"text": "FastAPI POST `reconvert_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:218"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b334dcc5e841066", "name": "FastAPI DELETE `delete_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:230", "shortDescription": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:230"}, "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-0753c80adc867815", "name": "FastAPI POST `reindex` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:245", "shortDescription": {"text": "FastAPI POST `reindex` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:245"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4f596c9abdf9a51", "name": "FastAPI POST `search_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:263", "shortDescription": {"text": "FastAPI POST `search_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:263"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5da8959981edaeeb", "name": "FastAPI POST `grep_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:273", "shortDescription": {"text": "FastAPI POST `grep_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:273"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e6b29ca7884fbc4", "name": "FastAPI PATCH `update_store` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:131", "shortDescription": {"text": "FastAPI PATCH `update_store` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:131"}, "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-a54f4f7b7af6251f", "name": "FastAPI POST `add_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:174", "shortDescription": {"text": "FastAPI POST `add_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:174"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80313133fd3e4e1d", "name": "FastAPI DELETE `clear_facts` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:219", "shortDescription": {"text": "FastAPI DELETE `clear_facts` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:219"}, "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-3895b2e5f82cf84d", "name": "FastAPI PATCH `update_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:240", "shortDescription": {"text": "FastAPI PATCH `update_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:240"}, "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-3b657ae8606dd3c4", "name": "FastAPI DELETE `forget_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:262", "shortDescription": {"text": "FastAPI DELETE `forget_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:262"}, "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-9a942b816ca2ee80", "name": "FastAPI POST `recall` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:280", "shortDescription": {"text": "FastAPI POST `recall` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.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-d503d271ff4a452b", "name": "Dangling fetch: POST http://127.0.0.1:${daemonPort}/api/v1/resources (e2e/mcp/specs/http_round_trip.spec.ts:71)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${daemonPort}/api/v1/resources (e2e/mcp/specs/http_round_trip.spec.ts:71)"}, "fullDescription": {"text": "`e2e/mcp/specs/http_round_trip.spec.ts:71` calls `POST http://127.0.0.1:${daemonPort}/api/v1/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecacd83d7988b0c1", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/mcp/specs/_helpers.ts:57)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/mcp/specs/_helpers.ts:57)"}, "fullDescription": {"text": "`e2e/mcp/specs/_helpers.ts:57` calls `POST http://127.0.0.1:${port}/api/v1/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e1028bb53aa49c7", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name} (e2e/mcp/specs/_helpers.ts:91)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name} (e2e/mcp/specs/_helpers.ts:91)"}, "fullDescription": {"text": "`e2e/mcp/specs/_helpers.ts:91` calls `DELETE http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources/mcp_server/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55614e222065f8f5", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:83)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:83)"}, "fullDescription": {"text": "`e2e/web/specs/shell_memory.spec.ts:83` calls `POST http://127.0.0.1:${port}/api/v1/memory_stores/global/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/memory_stores/global/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edd79cf93c60f03c", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:11", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:112)"}, "fullDescription": {"text": "`e2e/web/specs/shell_memory.spec.ts:112` calls `DELETE http://127.0.0.1:${port}/api/v1/memory_stores/global/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/memory_stores/global/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-994c76653096a070", "name": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/v1/retention/policies/mcp_invocations (e2e/web/specs/shell_settings.s", "shortDescription": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/v1/retention/policies/mcp_invocations (e2e/web/specs/shell_settings.spec.ts:78)"}, "fullDescription": {"text": "`e2e/web/specs/shell_settings.spec.ts:78` calls `PATCH http://127.0.0.1:${port}/api/v1/retention/policies/mcp_invocations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/retention/policies/mcp_invocations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ded7e76d264df6ca", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/agent_workspace.spec.ts:55)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/agent_workspace.spec.ts:55)"}, "fullDescription": {"text": "`e2e/web/specs/agent_workspace.spec.ts:55` calls `DELETE http://127.0.0.1:${port}/api/v1/agents/${name}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/agents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-220c1d8f96b31816", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/agent_workspace.spec.ts:73)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/agent_workspace.spec.ts:73)"}, "fullDescription": {"text": "`e2e/web/specs/agent_workspace.spec.ts:73` calls `POST http://127.0.0.1:${port}/api/v1/agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/agents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a3b8711001118ae", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/shell_agents.spec.ts:33)", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/shell_agents.spec.ts:33)"}, "fullDescription": {"text": "`e2e/web/specs/shell_agents.spec.ts:33` calls `DELETE http://127.0.0.1:${port}/api/v1/agents/${name}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/agents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0afecd6dace6319", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_agents.spec.ts:61)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_agents.spec.ts:61)"}, "fullDescription": {"text": "`e2e/web/specs/shell_agents.spec.ts:61` calls `POST http://127.0.0.1:${port}/api/v1/agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/agents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8472d1b766798a57", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_mcp_flows.spec.ts:35)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_mcp_flows.spec.ts:35)"}, "fullDescription": {"text": "`e2e/web/specs/shell_mcp_flows.spec.ts:35` calls `POST http://127.0.0.1:${port}/api/v1/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1eb1bc7177050c32", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_mcp_flows", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_mcp_flows.spec.ts:63)"}, "fullDescription": {"text": "`e2e/web/specs/shell_mcp_flows.spec.ts:63` calls `POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources/mcp_server/<p>/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12e2a916a209b0d5", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_cold_start.spec.ts:123)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_cold_start.spec.ts:123)"}, "fullDescription": {"text": "`e2e/web/specs/shell_cold_start.spec.ts:123` calls `GET http://127.0.0.1:${port}/api/v1/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1ef3ad0fe3b6efd", "name": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/${r.kind}/${r.name} (e2e/web/specs/shell_cold_start.spe", "shortDescription": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/${r.kind}/${r.name} (e2e/web/specs/shell_cold_start.spec.ts:131)"}, "fullDescription": {"text": "`e2e/web/specs/shell_cold_start.spec.ts:131` calls `DELETE http://127.0.0.1:${port}/api/v1/resources/${r.kind}/${r.name}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62e9cc4b81067362", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_observability.spec.ts:37)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_observability.spec.ts:37)"}, "fullDescription": {"text": "`e2e/web/specs/shell_observability.spec.ts:37` calls `POST http://127.0.0.1:${port}/api/v1/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3b9e4b729a8c4b1", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_observabi", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_observability.spec.ts:65)"}, "fullDescription": {"text": "`e2e/web/specs/shell_observability.spec.ts:65` calls `POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/resources/mcp_server/<p>/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2d3b950167eaa39", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_skills.spec.ts:74)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_skills.spec.ts:74)"}, "fullDescription": {"text": "`e2e/web/specs/shell_skills.spec.ts:74` calls `POST http://127.0.0.1:${port}/api/v1/agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/agents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2873ee7469d62609", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/import (e2e/web/specs/shell_skills.spec.ts:91)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/import (e2e/web/specs/shell_skills.spec.ts:91)"}, "fullDescription": {"text": "`e2e/web/specs/shell_skills.spec.ts:91` calls `POST http://127.0.0.1:${port}/api/v1/skills/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/skills/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a248228cd5ef8fa8", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/${skillName}/disable (e2e/web/specs/shell_skills.spec.ts:122", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/${skillName}/disable (e2e/web/specs/shell_skills.spec.ts:122)"}, "fullDescription": {"text": "`e2e/web/specs/shell_skills.spec.ts:122` calls `POST http://127.0.0.1:${port}/api/v1/skills/${skillName}/disable` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/skills/<p>/disable`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94a1f42f4828b262", "name": "Unused endpoint: POST /seatalk/{channel}", "shortDescription": {"text": "Unused endpoint: POST /seatalk/{channel}"}, "fullDescription": {"text": "`backend/coffer/surfaces/callback/app.py` declares `POST /seatalk/{channel}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/audit_routes.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be4cb5e3cabcce80", "name": "Unused endpoint: POST /import", "shortDescription": {"text": "Unused endpoint: POST /import"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /import` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae81e427508a9951", "name": "Unused endpoint: POST /fetch", "shortDescription": {"text": "Unused endpoint: POST /fetch"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /fetch` 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-a12f85b46010cb53", "name": "Unused endpoint: GET /{name}", "shortDescription": {"text": "Unused endpoint: GET /{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `GET /{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c562c83979dce866", "name": "Unused endpoint: DELETE /{name}", "shortDescription": {"text": "Unused endpoint: DELETE /{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `DELETE /{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-555cf6322605193f", "name": "Unused endpoint: POST /{name}/update", "shortDescription": {"text": "Unused endpoint: POST /{name}/update"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /{name}/update` 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-8c2e88c6246a9bc1", "name": "Unused endpoint: POST /{name}/enable", "shortDescription": {"text": "Unused endpoint: POST /{name}/enable"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /{name}/enable` 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-8f01ba97259923d8", "name": "Unused endpoint: POST /{name}/disable", "shortDescription": {"text": "Unused endpoint: POST /{name}/disable"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /{name}/disable` 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-aee9168e964a3822", "name": "Unused endpoint: POST /verify", "shortDescription": {"text": "Unused endpoint: POST /verify"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_routes.py` declares `POST /verify` 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-dfb9b890706e902e", "name": "Unused endpoint: GET /{name}/mcp-entries", "shortDescription": {"text": "Unused endpoint: GET /{name}/mcp-entries"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `GET /{name}/mcp-entries` 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-15824e541a7ca184", "name": "Unused endpoint: PATCH /{name}/mcp-entries/{entry}", "shortDescription": {"text": "Unused endpoint: PATCH /{name}/mcp-entries/{entry}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `PATCH /{name}/mcp-entries/{entry}` 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-89865cbee024d64e", "name": "Unused endpoint: DELETE /{name}/mcp-entries/{entry}", "shortDescription": {"text": "Unused endpoint: DELETE /{name}/mcp-entries/{entry}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `DELETE /{name}/mcp-entries/{entry}` 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-7c67cb5f55df54cc", "name": "Unused endpoint: POST /{name}/mcp-entries/{entry}/adopt", "shortDescription": {"text": "Unused endpoint: POST /{name}/mcp-entries/{entry}/adopt"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `POST /{name}/mcp-entries/{entry}/adopt` 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-4567690329220967", "name": "Unused endpoint: GET /{name}/plugins", "shortDescription": {"text": "Unused endpoint: GET /{name}/plugins"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `GET /{name}/plugins` 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-1bba1376d87f1f89", "name": "Unused endpoint: PATCH /{name}/plugins/{plugin_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{name}/plugins/{plugin_id}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `PATCH /{name}/plugins/{plugin_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-a95f8413b49a817b", "name": "Unused endpoint: DELETE /{name}/plugins/{plugin_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{name}/plugins/{plugin_id}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_workspace_routes.py` declares `DELETE /{name}/plugins/{plugin_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-512a13634818900f", "name": "Unused endpoint: GET /policies", "shortDescription": {"text": "Unused endpoint: GET /policies"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/retention_routes.py` declares `GET /policies` 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-7a4d199b6ff0c347", "name": "Unused endpoint: PATCH /policies/{table_name}", "shortDescription": {"text": "Unused endpoint: PATCH /policies/{table_name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/retention_routes.py` declares `PATCH /policies/{table_name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75735d987ceb2fae", "name": "Unused endpoint: POST /prune", "shortDescription": {"text": "Unused endpoint: POST /prune"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/retention_routes.py` declares `POST /prune` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6f48e60c30777ab", "name": "Unused endpoint: GET /config", "shortDescription": {"text": "Unused endpoint: GET /config"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/embedding_routes.py` declares `GET /config` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d2c56c613802d65", "name": "Unused endpoint: PUT /config", "shortDescription": {"text": "Unused endpoint: PUT /config"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/embedding_routes.py` declares `PUT /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-731c57f59aaca553", "name": "Unused endpoint: POST /test", "shortDescription": {"text": "Unused endpoint: POST /test"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/embedding_routes.py` declares `POST /test` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-283383e6466179f1", "name": "Unused endpoint: GET /{kind}/{name}", "shortDescription": {"text": "Unused endpoint: GET /{kind}/{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `GET /{kind}/{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aaa1e0db421b4c1d", "name": "Unused endpoint: PATCH /{kind}/{name}", "shortDescription": {"text": "Unused endpoint: PATCH /{kind}/{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `PATCH /{kind}/{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e3dc0466f2b6d36", "name": "Unused endpoint: DELETE /{kind}/{name}", "shortDescription": {"text": "Unused endpoint: DELETE /{kind}/{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `DELETE /{kind}/{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0924e299376d1424", "name": "Unused endpoint: POST /{kind}/{name}/enable", "shortDescription": {"text": "Unused endpoint: POST /{kind}/{name}/enable"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `POST /{kind}/{name}/enable` 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-d1e7bd74ee77a18b", "name": "Unused endpoint: POST /{kind}/{name}/disable", "shortDescription": {"text": "Unused endpoint: POST /{kind}/{name}/disable"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/resource_routes.py` declares `POST /{kind}/{name}/disable` 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-ab7ce0fa328c93ea", "name": "Unused endpoint: GET /candidates", "shortDescription": {"text": "Unused endpoint: GET /candidates"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_routes.py` declares `GET /candidates` 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-dcb020c17838ec62", "name": "Unused endpoint: GET /{name}/native-memory", "shortDescription": {"text": "Unused endpoint: GET /{name}/native-memory"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_routes.py` declares `GET /{name}/native-memory` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34e524868ffcb0e9", "name": "Unused endpoint: PATCH /{name}", "shortDescription": {"text": "Unused endpoint: PATCH /{name}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/agent_routes.py` declares `PATCH /{name}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b5343d0af16b42b", "name": "Unused endpoint: POST /rotate-token", "shortDescription": {"text": "Unused endpoint: POST /rotate-token"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/daemon_routes.py` declares `POST /rotate-token` 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-a60ed948238ae8f3", "name": "Unused endpoint: POST /backup", "shortDescription": {"text": "Unused endpoint: POST /backup"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/daemon_routes.py` declares `POST /backup` 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-c9537c842ba93d4c", "name": "Unused endpoint: POST /shutdown", "shortDescription": {"text": "Unused endpoint: POST /shutdown"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/daemon_routes.py` declares `POST /shutdown` 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-225fc9659a29ab51", "name": "Unused endpoint: GET /{ref:path}/exists", "shortDescription": {"text": "Unused endpoint: GET /{ref:path}/exists"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/credential_routes.py` declares `GET /{ref:path}/exists` 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-c7d771be1dd95911", "name": "Unused endpoint: GET /{ref:path}", "shortDescription": {"text": "Unused endpoint: GET /{ref:path}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/credential_routes.py` declares `GET /{ref: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-d59e0f04300d86eb", "name": "Unused endpoint: DELETE /{ref:path}", "shortDescription": {"text": "Unused endpoint: DELETE /{ref:path}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/credential_routes.py` declares `DELETE /{ref: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-40856c70f1a917f8", "name": "Unused endpoint: GET /{name}/projections", "shortDescription": {"text": "Unused endpoint: GET /{name}/projections"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/projection_routes.py` declares `GET /{name}/projections` 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-6d5deb19c392a118", "name": "Unused endpoint: POST /{name}/projections", "shortDescription": {"text": "Unused endpoint: POST /{name}/projections"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/projection_routes.py` declares `POST /{name}/projections` 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-6085542f1e1fd6cf", "name": "Unused endpoint: DELETE /{name}/projections/{agent_ref}", "shortDescription": {"text": "Unused endpoint: DELETE /{name}/projections/{agent_ref}"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/projection_routes.py` declares `DELETE /{name}/projections/{agent_ref}` 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-bbd34f00b5916167", "name": "Unused endpoint: POST /{name}/native-memory/import", "shortDescription": {"text": "Unused endpoint: POST /{name}/native-memory/import"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/projection_routes.py` declares `POST /{name}/native-memory/import` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-35c268ad9306182e", "name": "Unused endpoint: GET /credentials", "shortDescription": {"text": "Unused endpoint: GET /credentials"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/settings_routes.py` declares `GET /credentials` 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-ad488e6a29eb0218", "name": "Unused endpoint: PUT /credentials", "shortDescription": {"text": "Unused endpoint: PUT /credentials"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/settings_routes.py` declares `PUT /credentials` 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-7e7f34f077242f37", "name": "Unused endpoint: GET /{name}/files", "shortDescription": {"text": "Unused endpoint: GET /{name}/files"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_file_routes.py` declares `GET /{name}/files` 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-67ebec2d35939b19", "name": "Unused endpoint: GET /{name}/files/content", "shortDescription": {"text": "Unused endpoint: GET /{name}/files/content"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_file_routes.py` declares `GET /{name}/files/content` 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-4da2fb5c85e01954", "name": "Unused endpoint: PUT /{name}/files/content", "shortDescription": {"text": "Unused endpoint: PUT /{name}/files/content"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/skill_file_routes.py` declares `PUT /{name}/files/content` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69a693dfc33637f4", "name": "Unused endpoint: POST /run", "shortDescription": {"text": "Unused endpoint: POST /run"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/sync_routes.py` declares `POST /run` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfa1b57ebf524401", "name": "Unused endpoint: POST /resolve", "shortDescription": {"text": "Unused endpoint: POST /resolve"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/sync_routes.py` declares `POST /resolve` 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-d689de6312691cb5", "name": "Unused endpoint: POST /key/export", "shortDescription": {"text": "Unused endpoint: POST /key/export"}, "fullDescription": {"text": "`backend/coffer/surfaces/http/sync_routes.py` declares `POST /key/export` 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/22930"}, "properties": {"repository": "wyx-sg/Coffer", "repoUrl": "https://github.com/wyx-sg/Coffer", "branch": "main"}, "results": [{"ruleId": "scanner-14b077684774bb18", "level": "note", "message": {"text": "Possibly dead Python function: write_ciphertext"}, "properties": {"repobilityId": "d634cd601a621099", "scanner": "scanner-primary", "fingerprint": "14b077684774bb18", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/infrastructure/sync/credentials.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e90e07518587d171", "level": "note", "message": {"text": "Possibly dead Python function: mirrored_trees"}, "properties": {"repobilityId": "7f12c6e7bb7373ec", "scanner": "scanner-primary", "fingerprint": "e90e07518587d171", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/infrastructure/sync/paths.py:47"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-662758f3b678aec8", "level": "note", "message": {"text": "Possibly dead Python function: build_upstream"}, "properties": {"repobilityId": "a02684ca5aba450c", "scanner": "scanner-primary", "fingerprint": "662758f3b678aec8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/infrastructure/mcp/factory.py:17"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9856a9aa5da56d8", "level": "note", "message": {"text": "Possibly dead Python function: all_bindings"}, "properties": {"repobilityId": "1925b39a9a939263", "scanner": "scanner-primary", "fingerprint": "e9856a9aa5da56d8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/infrastructure/agent/projection_persistence.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f37ddd3ea3059454", "level": "note", "message": {"text": "Possibly dead Python function: install_key"}, "properties": {"repobilityId": "e3bd581a7cc8fb65", "scanner": "scanner-primary", "fingerprint": "f37ddd3ea3059454", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/infrastructure/credentials/master_key.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2bf3f85b64fb161", "level": "note", "message": {"text": "Possibly dead Python function: write_ciphertext"}, "properties": {"repobilityId": "d634cd601a621099", "scanner": "scanner-primary", "fingerprint": "d2bf3f85b64fb161", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/sync/ports.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fbb7b4ebbd38ebdc", "level": "note", "message": {"text": "Possibly dead Python function: install_key"}, "properties": {"repobilityId": "e3bd581a7cc8fb65", "scanner": "scanner-primary", "fingerprint": "fbb7b4ebbd38ebdc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/sync/ports.py:95"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-261e8568af8fb27c", "level": "note", "message": {"text": "Possibly dead Python function: coerce_read_result"}, "properties": {"repobilityId": "020abf8aba38b040", "scanner": "scanner-primary", "fingerprint": "261e8568af8fb27c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/mcp/gateway_handlers.py:282"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a8f6c828ee91a6bf", "level": "note", "message": {"text": "Possibly dead Python function: coerce_prompt_result"}, "properties": {"repobilityId": "149990521c19af22", "scanner": "scanner-primary", "fingerprint": "a8f6c828ee91a6bf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/mcp/gateway_handlers.py:286"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad15e5ace0c25c0c", "level": "note", "message": {"text": "Possibly dead Python function: rerender_target"}, "properties": {"repobilityId": "91fb204c1419877d", "scanner": "scanner-primary", "fingerprint": "ad15e5ace0c25c0c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/agent/projection/engine.py:135"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01013d43faea175a", "level": "note", "message": {"text": "Possibly dead Python function: trim_history"}, "properties": {"repobilityId": "e1cba45a17e02187", "scanner": "scanner-primary", "fingerprint": "01013d43faea175a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/chat/history.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2de44b4e1115f52b", "level": "note", "message": {"text": "Possibly dead Python function: mkparent_write"}, "properties": {"repobilityId": "187a59783cdf6a8e", "scanner": "scanner-primary", "fingerprint": "2de44b4e1115f52b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/knowledge_base/pipeline_helpers.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d298397beb48cee", "level": "note", "message": {"text": "Possibly dead Python function: du_bytes"}, "properties": {"repobilityId": "33933a41d2c608d4", "scanner": "scanner-primary", "fingerprint": "8d298397beb48cee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/knowledge_base/pipeline_helpers.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be7d2c009b11f5e6", "level": "note", "message": {"text": "Possibly dead Python function: build_store_ref_for"}, "properties": {"repobilityId": "00cf57340d34b7bc", "scanner": "scanner-primary", "fingerprint": "be7d2c009b11f5e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/memory/stores.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb502a3c92f0599f", "level": "note", "message": {"text": "Possibly dead Python function: read_fact"}, "properties": {"repobilityId": "a237dd30f2a036a1", "scanner": "scanner-primary", "fingerprint": "cb502a3c92f0599f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/memory/queries.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3608728cda2189c", "level": "note", "message": {"text": "Possibly dead Python function: list_fact_files_in_dir"}, "properties": {"repobilityId": "b0e2a572ed76f45f", "scanner": "scanner-primary", "fingerprint": "f3608728cda2189c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/memory/queries.py:31"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79f5d9b563b2e0e6", "level": "note", "message": {"text": "Possibly dead Python function: du_bytes"}, "properties": {"repobilityId": "33933a41d2c608d4", "scanner": "scanner-primary", "fingerprint": "79f5d9b563b2e0e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/application/memory/service_helpers.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70cfe2a29f08114b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/mcp/JsonImportPanel.tsx:85"}, "properties": {"repobilityId": "d264e775ca646d20", "scanner": "scanner-primary", "fingerprint": "70cfe2a29f08114b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99badef3073dc064", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocTree.tsx:62"}, "properties": {"repobilityId": "da663e861b417e7b", "scanner": "scanner-primary", "fingerprint": "99badef3073dc064", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f25fa9c3704ac98f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseSearchBar.tsx:125"}, "properties": {"repobilityId": "aec87e99b0f6525c", "scanner": "scanner-primary", "fingerprint": "f25fa9c3704ac98f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3f1f6e64aba89c78", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDocViewer.tsx:73"}, "properties": {"repobilityId": "d40346b7ebe66f2c", "scanner": "scanner-primary", "fingerprint": "3f1f6e64aba89c78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1e3dfd5c695e732b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactTree.tsx:62"}, "properties": {"repobilityId": "9bb908b3751077e8", "scanner": "scanner-primary", "fingerprint": "1e3dfd5c695e732b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f23727ef7159eda0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/kinds/memory/MemoryFactViewer.tsx:53"}, "properties": {"repobilityId": "5abaab2a1ae5061f", "scanner": "scanner-primary", "fingerprint": "f23727ef7159eda0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3575511ad2b2d1ab", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/EditChannelDialog.tsx:161"}, "properties": {"repobilityId": "e25bdb0b2f4604ce", "scanner": "scanner-primary", "fingerprint": "3575511ad2b2d1ab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8d284eed1639cfca", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/src/kinds/channel/AddChannelDialog.tsx:196"}, "properties": {"repobilityId": "0246e7e4661e3b14", "scanner": "scanner-primary", "fingerprint": "8d284eed1639cfca", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4f61f92067d02a9c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/Layout.tsx:102"}, "properties": {"repobilityId": "4d0ca9e37bee02cd", "scanner": "scanner-primary", "fingerprint": "4f61f92067d02a9c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9da3c8597aade1e5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/TimeRangePicker.tsx:103"}, "properties": {"repobilityId": "21bc9b6660e77bdf", "scanner": "scanner-primary", "fingerprint": "9da3c8597aade1e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f843fc3f5fab2b56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ToolCallCard.tsx:35"}, "properties": {"repobilityId": "e86bb1f91c869c42", "scanner": "scanner-primary", "fingerprint": "f843fc3f5fab2b56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5be905982e6f922c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/chat/ConversationListItem.tsx:89"}, "properties": {"repobilityId": "c438a3d2e5c217d7", "scanner": "scanner-primary", "fingerprint": "5be905982e6f922c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-346b0aac7ed0cb58", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigFileTree.tsx:63"}, "properties": {"repobilityId": "574f6593549e4b09", "scanner": "scanner-primary", "fingerprint": "346b0aac7ed0cb58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ec2f76a226bcf34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/FolderPicker.tsx:124"}, "properties": {"repobilityId": "34c0963ad30174d5", "scanner": "scanner-primary", "fingerprint": "6ec2f76a226bcf34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4d748cc354b342e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/agents/ConfigEditorPane.tsx:47"}, "properties": {"repobilityId": "e5c4751e24372121", "scanner": "scanner-primary", "fingerprint": "b4d748cc354b342e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2879fd3edb6e486b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileViewer.tsx:78"}, "properties": {"repobilityId": "f7ad64d8d9043781", "scanner": "scanner-primary", "fingerprint": "2879fd3edb6e486b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d23ec4ccc7ff5233", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/skills/SkillFileTree.tsx:96"}, "properties": {"repobilityId": "24998f47ea7d77ec", "scanner": "scanner-primary", "fingerprint": "d23ec4ccc7ff5233", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d13a0c8581302970", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/pages/settings/ModelsPage.tsx:78"}, "properties": {"repobilityId": "fe083724114ddf83", "scanner": "scanner-primary", "fingerprint": "d13a0c8581302970", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d9ba1f905928bcf", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 e2e/web/specs/shell_observability.spec.ts:271"}, "properties": {"repobilityId": "70be59c09e18a9b3", "scanner": "scanner-primary", "fingerprint": "3d9ba1f905928bcf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d5a01d7fb175b3d9", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.ts:42"}, "properties": {"repobilityId": "fa82456966cc4f76", "scanner": "scanner-primary", "fingerprint": "d5a01d7fb175b3d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/lib/auth.ts"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-0da613cdac2531ec", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/lib/auth.test.ts:25"}, "properties": {"repobilityId": "3481e2c040fc566d", "scanner": "scanner-primary", "fingerprint": "0da613cdac2531ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/lib/auth.test.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-953221e6351adb8d", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .github/workflows/evals.yml:34"}, "properties": {"repobilityId": "2b408598984700a4", "scanner": "scanner-primary", "fingerprint": "953221e6351adb8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/evals.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-f2856026508c0503", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/mcp/specs/http_round_trip.spec.ts:7"}, "properties": {"repobilityId": "d7aad4ba63dfa07b", "scanner": "scanner-primary", "fingerprint": "f2856026508c0503", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/mcp/specs/http_round_trip.spec.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-5b93a4085df631b8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/mcp/specs/_helpers.ts:8"}, "properties": {"repobilityId": "b2788f6187014fb1", "scanner": "scanner-primary", "fingerprint": "5b93a4085df631b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/mcp/specs/_helpers.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-31d40babc9aa27ce", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/_helpers.ts:37"}, "properties": {"repobilityId": "863cc02ef6154ea9", "scanner": "scanner-primary", "fingerprint": "31d40babc9aa27ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/web/specs/_helpers.ts"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-70db2a8ef3e96331", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in e2e/web/specs/shell_cold_start.spec.ts:119"}, "properties": {"repobilityId": "c9e054f0642fcf18", "scanner": "scanner-primary", "fingerprint": "70db2a8ef3e96331", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/web/specs/shell_cold_start.spec.ts"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-448d8837178ae57a", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "13af6451e15656fc", "scanner": "scanner-primary", "fingerprint": "448d8837178ae57a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de71d9e7507d4621", "level": "note", "message": {"text": "Very large file: backend/tests/integration/application/mcp/test_gateway.py (1433 lines)"}, "properties": {"repobilityId": "ae78f35421ab52fb", "scanner": "scanner-primary", "fingerprint": "de71d9e7507d4621", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "15ec82512830f472", "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": "499398143ee335b1", "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": "ce22f78c91dc9076", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "05b2468f340be393", "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": "11e19f1f7ee97d40", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e13283d988361f47", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: docs-site/zh/guide/agents.md"}, "properties": {"repobilityId": "9060369dcd4ca314", "scanner": "scanner-primary", "fingerprint": "e13283d988361f47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs-site/zh/guide/agents.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8924bd427573db9a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: docs-site/guide/agents.md"}, "properties": {"repobilityId": "348a01cbdff75e64", "scanner": "scanner-primary", "fingerprint": "8924bd427573db9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs-site/guide/agents.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc6ee4226b27d3ac", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/coffer-spec/SKILL.md"}, "properties": {"repobilityId": "0c4896a96e56d5b3", "scanner": "scanner-primary", "fingerprint": "bc6ee4226b27d3ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/coffer-spec/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-0eafa77d9a660528", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/vite.config.ts:151"}, "properties": {"repobilityId": "1d6e58934ed5204d", "scanner": "scanner-primary", "fingerprint": "0eafa77d9a660528", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89ff398a5cbf6cfb", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/main.tsx:14"}, "properties": {"repobilityId": "882a9329160f8895", "scanner": "scanner-primary", "fingerprint": "89ff398a5cbf6cfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80b67f8af40ca43e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/InvocationsTable.tsx:3"}, "properties": {"repobilityId": "bec405d082725237", "scanner": "scanner-primary", "fingerprint": "80b67f8af40ca43e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e933eff4c299c7a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/mcp/InvocationsTable.tsx:5"}, "properties": {"repobilityId": "df21719be82c903c", "scanner": "scanner-primary", "fingerprint": "e933eff4c299c7a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbd7b65273bb4796", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/CapabilityBulkActions.tsx:3"}, "properties": {"repobilityId": "27ca819011d752af", "scanner": "scanner-primary", "fingerprint": "fbd7b65273bb4796", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e82519f915aba1c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/mcp/McpServersTable.tsx:3"}, "properties": {"repobilityId": "d31a5971063b070c", "scanner": "scanner-primary", "fingerprint": "e82519f915aba1c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d8a30dcae8506b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/mcp/CapabilityList.tsx:3"}, "properties": {"repobilityId": "f0a7fffb6fd9e0bc", "scanner": "scanner-primary", "fingerprint": "8d8a30dcae8506b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eae8722632ad5564", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/kinds/knowledge_base/api.ts:3"}, "properties": {"repobilityId": "4a495e2b41cfbdb2", "scanner": "scanner-primary", "fingerprint": "eae8722632ad5564", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b38f58d707263e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/knowledge_base/api.ts:68"}, "properties": {"repobilityId": "09ddbae3cfee0264", "scanner": "scanner-primary", "fingerprint": "4b38f58d707263e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b19b25e04a1c2289", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.test.tsx:3"}, "properties": {"repobilityId": "eab6484b0483522c", "scanner": "scanner-primary", "fingerprint": "b19b25e04a1c2289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2245d2f4c7ced56", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.tsx:3"}, "properties": {"repobilityId": "f3b6346fd7dbcb34", "scanner": "scanner-primary", "fingerprint": "d2245d2f4c7ced56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1506222427c2d794", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/knowledge_base/KnowledgeBaseSettingsDialog.tsx:3"}, "properties": {"repobilityId": "67d47770ecbf5f3f", "scanner": "scanner-primary", "fingerprint": "1506222427c2d794", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-598aeacc50e84985", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/knowledge_base/useKnowledgeBaseDetail.ts:3"}, "properties": {"repobilityId": "3ef11891d95331b2", "scanner": "scanner-primary", "fingerprint": "598aeacc50e84985", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14ca19343c7fee34", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/memory/api.ts:3"}, "properties": {"repobilityId": "0ae50e48b5387ce3", "scanner": "scanner-primary", "fingerprint": "14ca19343c7fee34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e65f39760fb10262", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/kinds/memory/api.ts:58"}, "properties": {"repobilityId": "54ff2b5444ee148b", "scanner": "scanner-primary", "fingerprint": "e65f39760fb10262", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1013ca62c17ac76", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/memory/MemoryStoreDetailPage.tsx:3"}, "properties": {"repobilityId": "09ffdca9b3937f8a", "scanner": "scanner-primary", "fingerprint": "f1013ca62c17ac76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85684574161daa6e", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/EditChannelDialog.tsx:1"}, "properties": {"repobilityId": "36a4369b77dfa775", "scanner": "scanner-primary", "fingerprint": "85684574161daa6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-492f0556aa1b42f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelDetailCards.tsx:1"}, "properties": {"repobilityId": "751393361e983e8f", "scanner": "scanner-primary", "fingerprint": "492f0556aa1b42f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25886728f2183e14", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelCallbackCard.tsx:1"}, "properties": {"repobilityId": "867520c7b9e5bb63", "scanner": "scanner-primary", "fingerprint": "25886728f2183e14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4e0b54b09d07db6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/registerChannel.ts:1"}, "properties": {"repobilityId": "1492cce32f19a368", "scanner": "scanner-primary", "fingerprint": "b4e0b54b09d07db6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a90ae1849d19ac5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/kinds/channel/ChannelsTable.tsx:1"}, "properties": {"repobilityId": "c86590d1b73df183", "scanner": "scanner-primary", "fingerprint": "0a90ae1849d19ac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8fdcd6389430886", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.test.ts:3"}, "properties": {"repobilityId": "ac301ac57d8d17c1", "scanner": "scanner-primary", "fingerprint": "a8fdcd6389430886", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f21f1dd56bb3e2a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/kinds/channel/editChannel.ts:1"}, "properties": {"repobilityId": "3257669b40825f42", "scanner": "scanner-primary", "fingerprint": "f21f1dd56bb3e2a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-822a7c3b9c42f2a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/test/mockApiClient.ts:7"}, "properties": {"repobilityId": "5b4bd1cf53c9ab01", "scanner": "scanner-primary", "fingerprint": "822a7c3b9c42f2a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97cb5a522be56716", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/test/acceptance.test.ts:4"}, "properties": {"repobilityId": "0c7f710ef12b6e71", "scanner": "scanner-primary", "fingerprint": "97cb5a522be56716", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-803463df771b9ea7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/DataTable.tsx:1"}, "properties": {"repobilityId": "050d2d8029a9422d", "scanner": "scanner-primary", "fingerprint": "803463df771b9ea7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e66e72d301c2c912", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/DataCardGrid.tsx:3"}, "properties": {"repobilityId": "05f9d26cc5666f41", "scanner": "scanner-primary", "fingerprint": "e66e72d301c2c912", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9aebfbf4cf62b3ab", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/components/DataTableSelection.tsx:1"}, "properties": {"repobilityId": "ea0588a4549953e3", "scanner": "scanner-primary", "fingerprint": "9aebfbf4cf62b3ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-933ae761c5597eb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/Markdown.tsx:1"}, "properties": {"repobilityId": "1aa15d3358b6bc00", "scanner": "scanner-primary", "fingerprint": "933ae761c5597eb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2879d2e70db7b0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/DataTableToolbar.tsx:1"}, "properties": {"repobilityId": "8a202fb3e8f8cbd6", "scanner": "scanner-primary", "fingerprint": "f2879d2e70db7b0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12b8697c2521aa88", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/DaemonOfflineBanner.tsx:41"}, "properties": {"repobilityId": "fdce1dfe9fc7cbfa", "scanner": "scanner-primary", "fingerprint": "12b8697c2521aa88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2fb0ae08735375c", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/settings/ProviderModelField.tsx:3"}, "properties": {"repobilityId": "2f3d56e426994f7b", "scanner": "scanner-primary", "fingerprint": "b2fb0ae08735375c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-776847d574a0bb1d", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/components/ui/toast.tsx:1"}, "properties": {"repobilityId": "dc1b955a85efc10a", "scanner": "scanner-primary", "fingerprint": "776847d574a0bb1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-977d3ed76770514e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/chat/ConversationList.test.tsx:100"}, "properties": {"repobilityId": "7365d8d6b1ccfbf7", "scanner": "scanner-primary", "fingerprint": "977d3ed76770514e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80c22b36e4dd1fd6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/chat/MarkdownContent.tsx:1"}, "properties": {"repobilityId": "54a9f2d3235c9bef", "scanner": "scanner-primary", "fingerprint": "80c22b36e4dd1fd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db0122adca3da104", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/chat/DraftThread.tsx:1"}, "properties": {"repobilityId": "74321810e96659f1", "scanner": "scanner-primary", "fingerprint": "db0122adca3da104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89f4fa25a6c27377", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/ConfigFileTree.tsx:1"}, "properties": {"repobilityId": "01ece9762d059548", "scanner": "scanner-primary", "fingerprint": "89f4fa25a6c27377", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9efffc75b2f13c43", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMemoryTab.tsx:1"}, "properties": {"repobilityId": "f06c9eff57cb1b8c", "scanner": "scanner-primary", "fingerprint": "9efffc75b2f13c43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bcb94b55bb70c5f", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/ConfigFindReplaceBar.tsx:1"}, "properties": {"repobilityId": "b5b740d83fed28b2", "scanner": "scanner-primary", "fingerprint": "9bcb94b55bb70c5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03756e8425b1bbbc", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentGatewayMcpSection.tsx:1"}, "properties": {"repobilityId": "66cd5d3d72354d0e", "scanner": "scanner-primary", "fingerprint": "03756e8425b1bbbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01eaff11aef871e4", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/components/agents/AgentMcpServersTab.test.tsx:3"}, "properties": {"repobilityId": "1ba728431f1e4b88", "scanner": "scanner-primary", "fingerprint": "01eaff11aef871e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d572240b6b3f8c10", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/ConfigEditorDialogs.tsx:1"}, "properties": {"repobilityId": "7089a154ee99d2d7", "scanner": "scanner-primary", "fingerprint": "d572240b6b3f8c10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08a2e539ef64db33", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/AgentPluginsTab.tsx:1"}, "properties": {"repobilityId": "e1a121ae96ff3e15", "scanner": "scanner-primary", "fingerprint": "08a2e539ef64db33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d58fa65ccb198b87", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/FolderPicker.tsx:1"}, "properties": {"repobilityId": "c1be05b5f5a6da79", "scanner": "scanner-primary", "fingerprint": "d58fa65ccb198b87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acd091f961253f58", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentConfigFilesEditor.tsx:1"}, "properties": {"repobilityId": "4529844b16fba613", "scanner": "scanner-primary", "fingerprint": "acd091f961253f58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1e907f138a951b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/AgentMcpControls.tsx:1"}, "properties": {"repobilityId": "e4821588b6a448bc", "scanner": "scanner-primary", "fingerprint": "e1e907f138a951b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bffcb286197c1a7d", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentSkillsBulkActions.tsx:1"}, "properties": {"repobilityId": "60ab2842b71450bd", "scanner": "scanner-primary", "fingerprint": "bffcb286197c1a7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2348c3635aa29d62", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentManualAddForm.tsx:1"}, "properties": {"repobilityId": "21f2efd4a3b2ec54", "scanner": "scanner-primary", "fingerprint": "2348c3635aa29d62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccdb0175bd4e9215", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentSkillsTab.tsx:1"}, "properties": {"repobilityId": "950fa0af3277978b", "scanner": "scanner-primary", "fingerprint": "ccdb0175bd4e9215", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0669da6c991e581d", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.test.tsx:3"}, "properties": {"repobilityId": "3a4067b19423f429", "scanner": "scanner-primary", "fingerprint": "0669da6c991e581d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28a8808820a5315c", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentAddDialog.test.tsx:3"}, "properties": {"repobilityId": "aef6b7cf725dd21a", "scanner": "scanner-primary", "fingerprint": "28a8808820a5315c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74b4223dca763ea7", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/components/agents/AgentAdoptMcpDialog.tsx:1"}, "properties": {"repobilityId": "8db7a37470c81a70", "scanner": "scanner-primary", "fingerprint": "74b4223dca763ea7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766eb7e91798c0de", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentMemoryTab.test.tsx:3"}, "properties": {"repobilityId": "96fa995e05cb1183", "scanner": "scanner-primary", "fingerprint": "766eb7e91798c0de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62c2c0db64b05684", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentAddDialog.tsx:1"}, "properties": {"repobilityId": "2d789d36a2601335", "scanner": "scanner-primary", "fingerprint": "62c2c0db64b05684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccda363bc9e563d3", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/components/agents/AgentSkillsTab.test.tsx:8"}, "properties": {"repobilityId": "809968bab2982be1", "scanner": "scanner-primary", "fingerprint": "ccda363bc9e563d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcc8a5f08b01593b", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentConfigFilesEditor.test.tsx:1"}, "properties": {"repobilityId": "2d8b2e1d6e807e48", "scanner": "scanner-primary", "fingerprint": "dcc8a5f08b01593b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4b86f69a90c9ec4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/agents/AgentInstallSkillsDialog.tsx:1"}, "properties": {"repobilityId": "1549ada480983d11", "scanner": "scanner-primary", "fingerprint": "b4b86f69a90c9ec4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ae1229c7a91ce32", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/agents/AgentUnmanagedSkills.tsx:1"}, "properties": {"repobilityId": "e2bb9fb48a6d1fbb", "scanner": "scanner-primary", "fingerprint": "4ae1229c7a91ce32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab45ba88ebbac41", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/components/agents/AgentMcpServersTab.tsx:8"}, "properties": {"repobilityId": "0061eb41835dc349", "scanner": "scanner-primary", "fingerprint": "eab45ba88ebbac41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-464ed87a24746d34", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/agents/ConfigEditorPane.tsx:1"}, "properties": {"repobilityId": "84263f9b12c92b05", "scanner": "scanner-primary", "fingerprint": "464ed87a24746d34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9774023d8136bae", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/knowledge_base/KnowledgeBaseAddDialog.tsx:1"}, "properties": {"repobilityId": "1be8d09c282edcd9", "scanner": "scanner-primary", "fingerprint": "f9774023d8136bae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20ac7e4fb2ad2f44", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/memory/MemoryStoresTable.tsx:1"}, "properties": {"repobilityId": "49b4a18e07bf84dd", "scanner": "scanner-primary", "fingerprint": "20ac7e4fb2ad2f44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c7edfddf3c863e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/skills/SkillAddDialog.tsx:1"}, "properties": {"repobilityId": "28197188ac67f84a", "scanner": "scanner-primary", "fingerprint": "4c7edfddf3c863e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c589dff4af487b01", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/skills/SkillFileViewer.tsx:1"}, "properties": {"repobilityId": "c4a44c69520cc5a4", "scanner": "scanner-primary", "fingerprint": "c589dff4af487b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6d67f11fef46134", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/skills/SkillFileTree.tsx:1"}, "properties": {"repobilityId": "f426477ce6b62b7d", "scanner": "scanner-primary", "fingerprint": "d6d67f11fef46134", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-798d5480e06d9fc9", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/skills/SkillsTable.tsx:3"}, "properties": {"repobilityId": "4b2b62e79cf2d177", "scanner": "scanner-primary", "fingerprint": "798d5480e06d9fc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e107b11aace4ad0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/skills/SkillsTableActions.tsx:1"}, "properties": {"repobilityId": "653cb8fa72fccc35", "scanner": "scanner-primary", "fingerprint": "9e107b11aace4ad0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41547d71aba5c76b", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/skills/SkillVerifyDialog.tsx:1"}, "properties": {"repobilityId": "b4c343bfef393bdb", "scanner": "scanner-primary", "fingerprint": "41547d71aba5c76b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78f21861ffbf6841", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/chatCwd.ts:1"}, "properties": {"repobilityId": "675c2b797a47f818", "scanner": "scanner-primary", "fingerprint": "78f21861ffbf6841", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b382f0df3bd187c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/auth.test.ts:9"}, "properties": {"repobilityId": "ed966c0f61a873f4", "scanner": "scanner-primary", "fingerprint": "b382f0df3bd187c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d45555871b1895d", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/tauri.test.ts:3"}, "properties": {"repobilityId": "d290d20c4407ab45", "scanner": "scanner-primary", "fingerprint": "2d45555871b1895d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c613cec740f2fd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/agents.ts:191"}, "properties": {"repobilityId": "5030db0aff655aab", "scanner": "scanner-primary", "fingerprint": "7c613cec740f2fd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4921865733ebff8", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/resources.ts:1"}, "properties": {"repobilityId": "593bcc9e55d2410e", "scanner": "scanner-primary", "fingerprint": "f4921865733ebff8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-643dcc3bf5dd64b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/api/channels.ts:1"}, "properties": {"repobilityId": "9b5245540a3f0409", "scanner": "scanner-primary", "fingerprint": "643dcc3bf5dd64b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-860118a57a1831f1", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/lib/chat/streamClient.ts:4"}, "properties": {"repobilityId": "05afdc9317989df8", "scanner": "scanner-primary", "fingerprint": "860118a57a1831f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c96db5d4ef796808", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChatController.ts:1"}, "properties": {"repobilityId": "12bb01c6cf6ab51f", "scanner": "scanner-primary", "fingerprint": "c96db5d4ef796808", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f45e66d67050bc7", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/lib/hooks/useConfigEditorState.ts:1"}, "properties": {"repobilityId": "c790a8c355e4474b", "scanner": "scanner-primary", "fingerprint": "0f45e66d67050bc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e79b7b4762bc0d4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useEmbeddingConfig.ts:4"}, "properties": {"repobilityId": "3379e698919e1d3d", "scanner": "scanner-primary", "fingerprint": "e79b7b4762bc0d4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab76ff82f97f3ee6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSkills.test.tsx:4"}, "properties": {"repobilityId": "79d7a69ba8cabe12", "scanner": "scanner-primary", "fingerprint": "ab76ff82f97f3ee6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96aeae56bac046b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/hooks/useSync.ts:46"}, "properties": {"repobilityId": "232301f712a9aa29", "scanner": "scanner-primary", "fingerprint": "96aeae56bac046b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-16772433e6d72d5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useAgents.ts:89"}, "properties": {"repobilityId": "d19790adc6bc6eeb", "scanner": "scanner-primary", "fingerprint": "16772433e6d72d5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c45647ef46be03e4", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/lib/hooks/useBulkMutate.ts:1"}, "properties": {"repobilityId": "4685c473705f20bc", "scanner": "scanner-primary", "fingerprint": "c45647ef46be03e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9bd5115178e202a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/hooks/useChannels.ts:3"}, "properties": {"repobilityId": "f57f18418e62281f", "scanner": "scanner-primary", "fingerprint": "e9bd5115178e202a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02fad11fe3e52e46", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/lib/hooks/useChatTurn.ts:9"}, "properties": {"repobilityId": "966df1aac2d986a5", "scanner": "scanner-primary", "fingerprint": "02fad11fe3e52e46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62726c13f4cf4c3c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/MemoryPage.test.tsx:3"}, "properties": {"repobilityId": "e9d8253e1c0a2931", "scanner": "scanner-primary", "fingerprint": "62726c13f4cf4c3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d60e0db970a3dfae", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/ChatPage.tsx:1"}, "properties": {"repobilityId": "eae3e0c9aa2844d5", "scanner": "scanner-primary", "fingerprint": "d60e0db970a3dfae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a651896d867abefa", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/ChannelDetailPage.tsx:1"}, "properties": {"repobilityId": "5f1374cdcaeb749e", "scanner": "scanner-primary", "fingerprint": "a651896d867abefa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b15d694c56f9c551", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.tsx:1"}, "properties": {"repobilityId": "63a3fce68ae4ff6d", "scanner": "scanner-primary", "fingerprint": "b15d694c56f9c551", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74f76084d5699c3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillDetailPage.tsx:1"}, "properties": {"repobilityId": "cec5daeac3117458", "scanner": "scanner-primary", "fingerprint": "74f76084d5699c3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-677246c35564d126", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/ChannelsPage.tsx:1"}, "properties": {"repobilityId": "3c86aec694c3444e", "scanner": "scanner-primary", "fingerprint": "677246c35564d126", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07458a62068cecfa", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/ResourcesPage.test.tsx:3"}, "properties": {"repobilityId": "d63f23bdb1762103", "scanner": "scanner-primary", "fingerprint": "07458a62068cecfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11eb96f70bd49075", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SkillsPage.test.tsx:3"}, "properties": {"repobilityId": "d2ed661b0b4c7717", "scanner": "scanner-primary", "fingerprint": "11eb96f70bd49075", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fbe3a359bb77736", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/audit/AuditLogPage.test.tsx:22"}, "properties": {"repobilityId": "43be02705602d51b", "scanner": "scanner-primary", "fingerprint": "5fbe3a359bb77736", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc5cd3a911aad2e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs-site/scripts/sync-reference.mjs:74"}, "properties": {"repobilityId": "7208980b283b7366", "scanner": "scanner-primary", "fingerprint": "dc5cd3a911aad2e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-951cd405a1f24a29", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/audit_acceptance.py:51"}, "properties": {"repobilityId": "0b5673304f8d67b0", "scanner": "scanner-primary", "fingerprint": "951cd405a1f24a29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2f0282ea1b917d7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/verify_stamp.py:40"}, "properties": {"repobilityId": "67c5a219d781a052", "scanner": "scanner-primary", "fingerprint": "b2f0282ea1b917d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-da385cdf5daa1158", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check_file_sizes.py:75"}, "properties": {"repobilityId": "c18f142991ecd988", "scanner": "scanner-primary", "fingerprint": "da385cdf5daa1158", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d060ce38231fae45", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/integration/security/test_credential_leak.py:72"}, "properties": {"repobilityId": "b1041af5fa09e558", "scanner": "scanner-primary", "fingerprint": "d060ce38231fae45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f7f57e9925d1d05", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/integration/chat/test_cli_agent.py:116"}, "properties": {"repobilityId": "d6ff6e816e737800", "scanner": "scanner-primary", "fingerprint": "4f7f57e9925d1d05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b99a5057fe2e459", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/integration/infrastructure/mcp/test_progress_passthrough.py:41"}, "properties": {"repobilityId": "3f3166e200912c05", "scanner": "scanner-primary", "fingerprint": "0b99a5057fe2e459", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-767ded78a1d2a726", "level": "none", "message": {"text": "Commented-code block (19 lines) in backend/tests/integration/infrastructure/persistence/test_migrations_roundtrip.py:24"}, "properties": {"repobilityId": "8488daefe8497731", "scanner": "scanner-primary", "fingerprint": "767ded78a1d2a726", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-437d910a0d35e316", "level": "note", "message": {"text": "Legacy-named symbol `upstream_v1` in backend/tests/integration/application/test_skill_service.py:617"}, "properties": {"repobilityId": "a1f76e5630f87ce3", "scanner": "scanner-primary", "fingerprint": "437d910a0d35e316", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-47459534a87d2714", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/integration/surfaces/cli/test_skill_cmd.py:108"}, "properties": {"repobilityId": "94cbefc58e7444f3", "scanner": "scanner-primary", "fingerprint": "47459534a87d2714", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-158518405dc1b4e7", "level": "note", "message": {"text": "Legacy-named symbol `vault_backup` in backend/tests/integration/surfaces/cli/test_vault_backup_restore.py:118"}, "properties": {"repobilityId": "f59cdfd3037e7874", "scanner": "scanner-primary", "fingerprint": "158518405dc1b4e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-276ea1c1121dd60a", "level": "note", "message": {"text": "Legacy-named symbol `custom_backup` in backend/tests/integration/surfaces/cli/test_daemon_backup_rotate.py:47"}, "properties": {"repobilityId": "9f78ba78b548aae5", "scanner": "scanner-primary", "fingerprint": "276ea1c1121dd60a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6d286271fc89e962", "level": "note", "message": {"text": "Legacy-named symbol `r_old` in backend/tests/integration/surfaces/http/test_daemon_routes_extended.py:114"}, "properties": {"repobilityId": "3c4bddb9d0972d50", "scanner": "scanner-primary", "fingerprint": "6d286271fc89e962", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c28c0e861590e54e", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/integration/channel/test_routing.py:159"}, "properties": {"repobilityId": "7c7fb1f057638e92", "scanner": "scanner-primary", "fingerprint": "c28c0e861590e54e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfa172c15f9b4e7e", "level": "note", "message": {"text": "Legacy-named symbol `session_old` in backend/tests/unit/distill/test_parsers.py:111"}, "properties": {"repobilityId": "5612868b42492b32", "scanner": "scanner-primary", "fingerprint": "bfa172c15f9b4e7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4dfffd480e91dadf", "level": "note", "message": {"text": "Legacy-named symbol `test_write_atomic_keeps_backup` in backend/tests/unit/infrastructure/agent/test_config_file_store.py:35"}, "properties": {"repobilityId": "87e668013ba775ea", "scanner": "scanner-primary", "fingerprint": "4dfffd480e91dadf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca52148cd77d645c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/fixtures/fake_mcp_server.py:101"}, "properties": {"repobilityId": "a29a4ef1c0141881", "scanner": "scanner-primary", "fingerprint": "ca52148cd77d645c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be6af8c492afa163", "level": "note", "message": {"text": "Legacy-named symbol `create_backup` in backend/coffer/infrastructure/vault/backup.py:78"}, "properties": {"repobilityId": "d6abc2eb02e2f56f", "scanner": "scanner-primary", "fingerprint": "be6af8c492afa163", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bcdb380badb5aaa8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/infrastructure/sync/git_repo.py:31"}, "properties": {"repobilityId": "3b5313a8be0369e4", "scanner": "scanner-primary", "fingerprint": "bcdb380badb5aaa8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d9a8188ccb3283e", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/coffer/infrastructure/mcp/http_client.py:163"}, "properties": {"repobilityId": "c06913ef5f79e6a7", "scanner": "scanner-primary", "fingerprint": "9d9a8188ccb3283e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7d3d080e2cab61f", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/infrastructure/mcp/subprocess.py:30"}, "properties": {"repobilityId": "2532d4e2b27a81b7", "scanner": "scanner-primary", "fingerprint": "a7d3d080e2cab61f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f854a980f17be8", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/codex_app_server.py:76"}, "properties": {"repobilityId": "96b8db63e194898e", "scanner": "scanner-primary", "fingerprint": "60f854a980f17be8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-050bb75fd1273cb4", "level": "note", "message": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/claude_sdk_provider.py:96"}, "properties": {"repobilityId": "b9e3cb57c18ec29f", "scanner": "scanner-primary", "fingerprint": "050bb75fd1273cb4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-2614538463a8e01c", "level": "note", "message": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/cli_providers.py:328"}, "properties": {"repobilityId": "ecab08f51287c452", "scanner": "scanner-primary", "fingerprint": "2614538463a8e01c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c0cc419d3f467508", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/chat/claude_sdk_agent.py:308"}, "properties": {"repobilityId": "9b1385b11fd6cda4", "scanner": "scanner-primary", "fingerprint": "c0cc419d3f467508", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27f62202aaa29e90", "level": "note", "message": {"text": "Stub function `on_conversation_deleted` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/chat/codex_provider.py:99"}, "properties": {"repobilityId": "0fb00142f3081ce8", "scanner": "scanner-primary", "fingerprint": "27f62202aaa29e90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-178ba0ead4e86b0a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/coffer/infrastructure/chat/codex_agent.py:161"}, "properties": {"repobilityId": "31b8b075d2ce8f9c", "scanner": "scanner-primary", "fingerprint": "178ba0ead4e86b0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c9c1fafc0c9621b", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/infrastructure/daemon/entry.py:88"}, "properties": {"repobilityId": "3bd9d31481d795bb", "scanner": "scanner-primary", "fingerprint": "3c9c1fafc0c9621b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2be1c1f8d1204d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/persistence.py:153"}, "properties": {"repobilityId": "62ea1d2b50d80569", "scanner": "scanner-primary", "fingerprint": "d2be1c1f8d1204d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-592463ca4865ab53", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/skill/source_fetcher.py:43"}, "properties": {"repobilityId": "02c6e7f5a0041b9d", "scanner": "scanner-primary", "fingerprint": "592463ca4865ab53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28467db5e2bbb864", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/coffer/infrastructure/persistence/migrations/versions/20260528_0007_memory_tables.py:30"}, "properties": {"repobilityId": "476caa84c174334e", "scanner": "scanner-primary", "fingerprint": "28467db5e2bbb864", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-fb10d6f81bdda118", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/cleaning.py:19"}, "properties": {"repobilityId": "2bf5e4792d4a9f00", "scanner": "scanner-primary", "fingerprint": "fb10d6f81bdda118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb3246d3249ba033", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/vec_index.py:211"}, "properties": {"repobilityId": "3276598512de3d6e", "scanner": "scanner-primary", "fingerprint": "bb3246d3249ba033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e97e01d6a25eeebe", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/infrastructure/knowledge/sqlite_index.py:75"}, "properties": {"repobilityId": "12ad1966da78cbbc", "scanner": "scanner-primary", "fingerprint": "e97e01d6a25eeebe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7578a0cf74437a86", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/application/resource_service.py:118"}, "properties": {"repobilityId": "0275a5a9c41e8c79", "scanner": "scanner-primary", "fingerprint": "7578a0cf74437a86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c27cb74ed71dcd74", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_handlers.py:199"}, "properties": {"repobilityId": "675f8774399c3c6f", "scanner": "scanner-primary", "fingerprint": "c27cb74ed71dcd74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b6ad497f2db6202", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/discovery.py:189"}, "properties": {"repobilityId": "fb238f55faa17f7d", "scanner": "scanner-primary", "fingerprint": "0b6ad497f2db6202", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ba60344ea28927a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/gateway_server_requests.py:71"}, "properties": {"repobilityId": "b7b160c8a40354b8", "scanner": "scanner-primary", "fingerprint": "8ba60344ea28927a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de5442fd8cc0a46b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/mcp/supervisor.py:93"}, "properties": {"repobilityId": "96e2ff345b23038d", "scanner": "scanner-primary", "fingerprint": "de5442fd8cc0a46b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e6c1830e10f9d6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/agent/mcp_entry_service.py:296"}, "properties": {"repobilityId": "e53691f59cf60350", "scanner": "scanner-primary", "fingerprint": "7e6c1830e10f9d6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f2fdc5131ba20b", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in backend/coffer/application/agent/service.py:226"}, "properties": {"repobilityId": "8b14c52c8259681d", "scanner": "scanner-primary", "fingerprint": "60f2fdc5131ba20b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-047f4be4d0482d6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/agent/service.py:93"}, "properties": {"repobilityId": "bc4e80bf21d9c5b0", "scanner": "scanner-primary", "fingerprint": "047f4be4d0482d6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b872c88d9605a738", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/coffer/application/agent/projection/adapters.py:46"}, "properties": {"repobilityId": "8f7b2db1b3a73a64", "scanner": "scanner-primary", "fingerprint": "b872c88d9605a738", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2306b75688a8196", "level": "note", "message": {"text": "Stub function `remove` (body is just `pass`/`return`) \u2014 backend/coffer/application/agent/projection/adapters.py:248"}, "properties": {"repobilityId": "f76b88ec001770f0", "scanner": "scanner-primary", "fingerprint": "a2306b75688a8196", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-767bb2189225a154", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/coffer/application/chat/turn_orchestrator.py:224"}, "properties": {"repobilityId": "d6da680f4ae4ce5c", "scanner": "scanner-primary", "fingerprint": "767bb2189225a154", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa212e1dad153ae1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/chat/model_service.py:173"}, "properties": {"repobilityId": "878fe90a23ccaca0", "scanner": "scanner-primary", "fingerprint": "aa212e1dad153ae1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a065c1647b764d4c", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in backend/coffer/application/skill/update_ops.py:57"}, "properties": {"repobilityId": "979a40515117c3a9", "scanner": "scanner-primary", "fingerprint": "a065c1647b764d4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-32bf47cfd97baeb1", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/coffer/application/skill/update_ops.py:116"}, "properties": {"repobilityId": "239ac54559ed413b", "scanner": "scanner-primary", "fingerprint": "32bf47cfd97baeb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54a7e122abebc595", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/skill/lifecycle_ops.py:227"}, "properties": {"repobilityId": "08dcd14593cb7e6e", "scanner": "scanner-primary", "fingerprint": "54a7e122abebc595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3cd51f1d9b1cda1", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/application/skill/delivery_ops.py:30"}, "properties": {"repobilityId": "23707343f2ff4108", "scanner": "scanner-primary", "fingerprint": "d3cd51f1d9b1cda1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0ea902d4d7ece3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/application/skill/builtin_tools.py:11"}, "properties": {"repobilityId": "ccf24025b8e1a3a4", "scanner": "scanner-primary", "fingerprint": "f0ea902d4d7ece3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e93221ec6c3424c", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/coffer/application/skill/unmanaged_ops.py:148"}, "properties": {"repobilityId": "282a8bc134fdb010", "scanner": "scanner-primary", "fingerprint": "6e93221ec6c3424c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc11e134fecadc97", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/application/skill/binding_ops.py:42"}, "properties": {"repobilityId": "3657af35ecb7be69", "scanner": "scanner-primary", "fingerprint": "cc11e134fecadc97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d60fc8267d0e2651", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/application/channel/inbound.py:182"}, "properties": {"repobilityId": "39df85f1bcaa4432", "scanner": "scanner-primary", "fingerprint": "d60fc8267d0e2651", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bd1843f6e386d50", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/daemon_cmd.py:84"}, "properties": {"repobilityId": "5cc91311c96bf94a", "scanner": "scanner-primary", "fingerprint": "7bd1843f6e386d50", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4db937ec130c8b82", "level": "note", "message": {"text": "Legacy-named symbol `create_backup` in backend/coffer/surfaces/cli/backup_cmd.py:58"}, "properties": {"repobilityId": "6c336703f6db9acb", "scanner": "scanner-primary", "fingerprint": "4db937ec130c8b82", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-819602c9b43d16ba", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/cli/_client.py:100"}, "properties": {"repobilityId": "08645720ed2fa5c2", "scanner": "scanner-primary", "fingerprint": "819602c9b43d16ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e77ec497ffb35a06", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/coffer/surfaces/shim/main.py:39"}, "properties": {"repobilityId": "850f1f30b6644b10", "scanner": "scanner-primary", "fingerprint": "e77ec497ffb35a06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-948670595f8d8fcf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/coffer/surfaces/shim/main.py:120"}, "properties": {"repobilityId": "9791f1c15d732bc1", "scanner": "scanner-primary", "fingerprint": "948670595f8d8fcf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4f18904741682b2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_service.py:254"}, "properties": {"repobilityId": "0facf24c04030a4f", "scanner": "scanner-primary", "fingerprint": "4f18904741682b2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dc646ba25f8eaaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/audit_routes.py:22"}, "properties": {"repobilityId": "360d909572d29e28", "scanner": "scanner-primary", "fingerprint": "4dc646ba25f8eaaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a3b1e8de1c05b9d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/skill_routes.py:109"}, "properties": {"repobilityId": "0447552569e7d799", "scanner": "scanner-primary", "fingerprint": "8a3b1e8de1c05b9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-039767214d201b6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/wiring.py:116"}, "properties": {"repobilityId": "4b0e84873ccf1707", "scanner": "scanner-primary", "fingerprint": "039767214d201b6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aecf25731c31c4d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/dependencies.py:131"}, "properties": {"repobilityId": "b049cc7b281d7722", "scanner": "scanner-primary", "fingerprint": "aecf25731c31c4d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60bee7ff40f55b59", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/coffer/surfaces/http/app.py:166"}, "properties": {"repobilityId": "89d93777607d5b01", "scanner": "scanner-primary", "fingerprint": "60bee7ff40f55b59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0e9dd1438f1e9b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/agent_routes.py:29"}, "properties": {"repobilityId": "dacaba791cc626af", "scanner": "scanner-primary", "fingerprint": "c0e9dd1438f1e9b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-548bc947a00a546f", "level": "note", "message": {"text": "Legacy-named symbol `_do_backup` in backend/coffer/surfaces/http/daemon_routes.py:306"}, "properties": {"repobilityId": "e84b2c783e2a46c0", "scanner": "scanner-primary", "fingerprint": "548bc947a00a546f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1740e9d15ffe2175", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/projection_routes.py:107"}, "properties": {"repobilityId": "9ae1b14acaa73044", "scanner": "scanner-primary", "fingerprint": "1740e9d15ffe2175", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1b8b019b89c1e0a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/coffer/surfaces/http/agent_skill_wiring.py:76"}, "properties": {"repobilityId": "888dde084e1ebf08", "scanner": "scanner-primary", "fingerprint": "a1b8b019b89c1e0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5039657e87c62290", "level": "note", "message": {"text": "Legacy-named symbol `enable_capability_legacy` in backend/coffer/surfaces/http/mcp/capability_routes.py:272"}, "properties": {"repobilityId": "6ecef19076946476", "scanner": "scanner-primary", "fingerprint": "5039657e87c62290", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3c754853d695d4ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/capability_routes.py:58"}, "properties": {"repobilityId": "a0e13a30bec215f9", "scanner": "scanner-primary", "fingerprint": "3c754853d695d4ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87456fd63ea2416a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/mcp/protocol_routes.py:74"}, "properties": {"repobilityId": "e409f20f03858b5e", "scanner": "scanner-primary", "fingerprint": "87456fd63ea2416a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0400da66b571f4c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/surfaces/http/knowledge_base/routes.py:139"}, "properties": {"repobilityId": "956caa4a5284eaae", "scanner": "scanner-primary", "fingerprint": "0400da66b571f4c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4c55eee7fd56878", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in backend/coffer/surfaces/http/memory/routes.py:146"}, "properties": {"repobilityId": "362c72e3983fb7ca", "scanner": "scanner-primary", "fingerprint": "f4c55eee7fd56878", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-628bdd913624118d", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/coffer/domain/resource.py:92"}, "properties": {"repobilityId": "87ef7c030e93fcea", "scanner": "scanner-primary", "fingerprint": "628bdd913624118d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c375d1f184bfff37", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/domain/skill/validator.py:99"}, "properties": {"repobilityId": "9b82199dc085cb09", "scanner": "scanner-primary", "fingerprint": "c375d1f184bfff37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e662a1b09df3af35", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/coffer/domain/channel/config.py:20"}, "properties": {"repobilityId": "05c28cf165f90719", "scanner": "scanner-primary", "fingerprint": "e662a1b09df3af35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b79492d900a981b6", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/playwright.config.ts:20"}, "properties": {"repobilityId": "7f373010cd75e9f0", "scanner": "scanner-primary", "fingerprint": "b79492d900a981b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c30f70da100e019", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/concurrent_clients.spec.ts:27"}, "properties": {"repobilityId": "9f68c2f32ac9816f", "scanner": "scanner-primary", "fingerprint": "0c30f70da100e019", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76de50084da87ed8", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/mcp/specs/upstream_crash_recovery.spec.ts:67"}, "properties": {"repobilityId": "3a408e6eed8f0ca9", "scanner": "scanner-primary", "fingerprint": "76de50084da87ed8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef4c69eff73a5a4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/http_round_trip.spec.ts:71"}, "properties": {"repobilityId": "f5d1d9d26945c5b5", "scanner": "scanner-primary", "fingerprint": "ef4c69eff73a5a4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-566a4c7e01bb9fe5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/_helpers.ts:57"}, "properties": {"repobilityId": "26a7a43e3dd7e96f", "scanner": "scanner-primary", "fingerprint": "566a4c7e01bb9fe5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e1984564550805c", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/capability_disable.spec.ts:3"}, "properties": {"repobilityId": "cf91d83c6d421d90", "scanner": "scanner-primary", "fingerprint": "8e1984564550805c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-529489da8117a5ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/mcp/specs/capability_disable.spec.ts:31"}, "properties": {"repobilityId": "0f536b071633b3b6", "scanner": "scanner-primary", "fingerprint": "529489da8117a5ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9b7a42abd4827fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/mcp/specs/_acceptance.ts:3"}, "properties": {"repobilityId": "60ad22e36325026e", "scanner": "scanner-primary", "fingerprint": "b9b7a42abd4827fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c07a5f0f0d9c6f67", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_memory.spec.ts:5"}, "properties": {"repobilityId": "26caab4b21384dc2", "scanner": "scanner-primary", "fingerprint": "c07a5f0f0d9c6f67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d1469aa5f1d6e0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_memory.spec.ts:36"}, "properties": {"repobilityId": "9892a3ee269d9a89", "scanner": "scanner-primary", "fingerprint": "6d1469aa5f1d6e0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-305d83607fe6ab2b", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/web/specs/shell_settings.spec.ts:110"}, "properties": {"repobilityId": "3c260cf124460fa1", "scanner": "scanner-primary", "fingerprint": "305d83607fe6ab2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-813de9992e172848", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/web/specs/agent_workspace.spec.ts:5"}, "properties": {"repobilityId": "12818f050d342b6f", "scanner": "scanner-primary", "fingerprint": "813de9992e172848", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e295aa077a3ade", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_agents.spec.ts:5"}, "properties": {"repobilityId": "db4716ea89007fea", "scanner": "scanner-primary", "fingerprint": "21e295aa077a3ade", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66c0de70edc93266", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_agents.spec.ts:61"}, "properties": {"repobilityId": "9a5cc92724cac922", "scanner": "scanner-primary", "fingerprint": "66c0de70edc93266", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5702571c6e40c26a", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_knowledge_base.spec.ts:5"}, "properties": {"repobilityId": "54d0fe459a7cea9d", "scanner": "scanner-primary", "fingerprint": "5702571c6e40c26a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc64e04e06385e6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_knowledge_base.spec.ts:47"}, "properties": {"repobilityId": "4c32692d6cc9f03d", "scanner": "scanner-primary", "fingerprint": "cc64e04e06385e6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0dee6c82cbe2e0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_mcp_flows.spec.ts:3"}, "properties": {"repobilityId": "c94131b54f7956b6", "scanner": "scanner-primary", "fingerprint": "a0dee6c82cbe2e0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fede8e57eea87530", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_mcp_flows.spec.ts:35"}, "properties": {"repobilityId": "42518306d43d190a", "scanner": "scanner-primary", "fingerprint": "fede8e57eea87530", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f448cdcd439866b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/web/specs/shell_cold_start.spec.ts:3"}, "properties": {"repobilityId": "da84e2823200f077", "scanner": "scanner-primary", "fingerprint": "f448cdcd439866b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a913a6a6bbd61084", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_cold_start.spec.ts:123"}, "properties": {"repobilityId": "22b5e7c4bbcaed4a", "scanner": "scanner-primary", "fingerprint": "a913a6a6bbd61084", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1e40543df8e33331", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/web/specs/shell_observability.spec.ts:190"}, "properties": {"repobilityId": "eaf84d4d07f5939f", "scanner": "scanner-primary", "fingerprint": "1e40543df8e33331", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf08d67448738239", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_observability.spec.ts:37"}, "properties": {"repobilityId": "a8fe0f3c7fca6212", "scanner": "scanner-primary", "fingerprint": "cf08d67448738239", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d4016e049cb65f0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/web/specs/shell_skills.spec.ts:5"}, "properties": {"repobilityId": "7313267a648d2cca", "scanner": "scanner-primary", "fingerprint": "d4016e049cb65f0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa7b8342bad3115d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/web/specs/shell_skills.spec.ts:74"}, "properties": {"repobilityId": "e549db434019f4c5", "scanner": "scanner-primary", "fingerprint": "fa7b8342bad3115d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7d5c6e782e7955f1", "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": "5ff292bddd510d1e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "289fb1ff5ba1b693", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a57211c6ce981c3c", "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": "a54678329be69925", "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": "6ee411fb9e6b655a", "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": "0b0bdf576826c720", "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": "d4c9bcb9ca44f6f9", "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": "0921a5ad56520b2e", "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": "eb78c2357cd6a958", "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": "5751a08f2e1f1362", "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": "4cfa5ebdfcb65ad8", "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": "ad3b1ba454daddcb", "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": "4b3a2139be81a885", "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": "697528230b4c3ced", "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": "f23e5b79badc107a", "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": "de2a0701d9c8ee8c", "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": "4edb68568c295aba", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "7863867f1daed780", "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": "1df3b33885dc43c4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-e768985fea30cb08", "level": "warning", "message": {"text": "Frontend route `/mcp-servers/mcp_server/:name` has no Link/navigate to it \u2014 frontend/src/kinds/mcp/AddMcpServerDialog.test.tsx"}, "properties": {"repobilityId": "01933e74f1bbb637", "scanner": "scanner-primary", "fingerprint": "e768985fea30cb08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f4355d047a15d152", "level": "warning", "message": {"text": "Frontend route `/knowledge-bases/:name` has no Link/navigate to it \u2014 frontend/src/kinds/knowledge_base/KnowledgeBaseDetailPage.test.tsx"}, "properties": {"repobilityId": "ff14c4afce49165e", "scanner": "scanner-primary", "fingerprint": "f4355d047a15d152", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3cd87bd507540433", "level": "warning", "message": {"text": "Frontend route `/memory/:name` has no Link/navigate to it \u2014 frontend/src/kinds/memory/MemoryStoreDetailPage.test.tsx"}, "properties": {"repobilityId": "4d08b8f54f91acd2", "scanner": "scanner-primary", "fingerprint": "3cd87bd507540433", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-77741a542e3ba078", "level": "warning", "message": {"text": "Frontend route `/skills/:name` has no Link/navigate to it \u2014 frontend/src/pages/SkillDetailPage.test.tsx"}, "properties": {"repobilityId": "e4f9901086885d5b", "scanner": "scanner-primary", "fingerprint": "77741a542e3ba078", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c9a9dee945d8d1f7", "level": "warning", "message": {"text": "Frontend route `/mcp-servers/:kind/:name` has no Link/navigate to it \u2014 frontend/src/pages/ResourceDetailPage.test.tsx"}, "properties": {"repobilityId": "239c3e15d21645f7", "scanner": "scanner-primary", "fingerprint": "c9a9dee945d8d1f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fa8569a031649030", "level": "warning", "message": {"text": "Frontend route `/agents/:name` has no Link/navigate to it \u2014 frontend/src/pages/AgentDetailPage.test.tsx"}, "properties": {"repobilityId": "6cc513f87cea1196", "scanner": "scanner-primary", "fingerprint": "fa8569a031649030", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-87713e79bf3d217c", "level": "warning", "message": {"text": "Frontend route `/chat/:id` has no Link/navigate to it \u2014 frontend/src/pages/ChatPage.test.tsx"}, "properties": {"repobilityId": "3ab4f47e89490b7a", "scanner": "scanner-primary", "fingerprint": "87713e79bf3d217c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-22e8107a89e03717", "level": "error", "message": {"text": "FastAPI POST `seatalk_callback` without auth dependency \u2014 backend/coffer/surfaces/callback/app.py:49"}, "properties": {"repobilityId": "95de65cd0bf342a5", "scanner": "scanner-primary", "fingerprint": "22e8107a89e03717", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/callback/app.py"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-606684fe3133fa01", "level": "error", "message": {"text": "FastAPI POST `import_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:196"}, "properties": {"repobilityId": "1f622d2ac7f574ff", "scanner": "scanner-primary", "fingerprint": "606684fe3133fa01", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-9993d477f8e82b41", "level": "error", "message": {"text": "FastAPI POST `fetch_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:206"}, "properties": {"repobilityId": "44c0df799cb33b1e", "scanner": "scanner-primary", "fingerprint": "9993d477f8e82b41", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-a1e8b75391b342e3", "level": "error", "message": {"text": "FastAPI DELETE `delete_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:231"}, "properties": {"repobilityId": "a6d784ffbe00dfa2", "scanner": "scanner-primary", "fingerprint": "a1e8b75391b342e3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-6066e64a8ff8ffac", "level": "error", "message": {"text": "FastAPI POST `update_skill` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:242"}, "properties": {"repobilityId": "ad14822277df1109", "scanner": "scanner-primary", "fingerprint": "6066e64a8ff8ffac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-f8f1314d50916e52", "level": "error", "message": {"text": "FastAPI POST `enable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:261"}, "properties": {"repobilityId": "72329ca58bc83bbc", "scanner": "scanner-primary", "fingerprint": "f8f1314d50916e52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-1c2a0ee67e049968", "level": "error", "message": {"text": "FastAPI POST `disable_skill_for_agent` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:284"}, "properties": {"repobilityId": "5ced8a20c6cc58d4", "scanner": "scanner-primary", "fingerprint": "1c2a0ee67e049968", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-887ca033e3c58e88", "level": "error", "message": {"text": "FastAPI POST `verify_skills` without auth dependency \u2014 backend/coffer/surfaces/http/skill_routes.py:302"}, "properties": {"repobilityId": "ed7baf832fab1a77", "scanner": "scanner-primary", "fingerprint": "887ca033e3c58e88", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_routes.py"}, "region": {"startLine": 302}}}]}, {"ruleId": "scanner-e972fbf492798098", "level": "error", "message": {"text": "FastAPI PATCH `patch_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:163"}, "properties": {"repobilityId": "7b1af51e1f6ed83b", "scanner": "scanner-primary", "fingerprint": "e972fbf492798098", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_workspace_routes.py"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-821bb3077916e7ce", "level": "error", "message": {"text": "FastAPI DELETE `delete_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:178"}, "properties": {"repobilityId": "38620d9af0c45f9f", "scanner": "scanner-primary", "fingerprint": "821bb3077916e7ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_workspace_routes.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-8b77b42f9bffdaec", "level": "error", "message": {"text": "FastAPI POST `adopt_mcp_entry` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:193"}, "properties": {"repobilityId": "4ed24289e02f634a", "scanner": "scanner-primary", "fingerprint": "8b77b42f9bffdaec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_workspace_routes.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-3256f0698fa27d92", "level": "error", "message": {"text": "FastAPI PATCH `patch_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:242"}, "properties": {"repobilityId": "d92f0122b6db1bf6", "scanner": "scanner-primary", "fingerprint": "3256f0698fa27d92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_workspace_routes.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-00bd5c3a27767978", "level": "error", "message": {"text": "FastAPI DELETE `delete_plugin` without auth dependency \u2014 backend/coffer/surfaces/http/agent_workspace_routes.py:257"}, "properties": {"repobilityId": "60cb2bd75386d864", "scanner": "scanner-primary", "fingerprint": "00bd5c3a27767978", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_workspace_routes.py"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-863633f6cde307e8", "level": "error", "message": {"text": "FastAPI PATCH `update_policy` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:47"}, "properties": {"repobilityId": "8030a7c046d9b704", "scanner": "scanner-primary", "fingerprint": "863633f6cde307e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/retention_routes.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-56b858471db3e185", "level": "error", "message": {"text": "FastAPI POST `prune_now` without auth dependency \u2014 backend/coffer/surfaces/http/retention_routes.py:78"}, "properties": {"repobilityId": "da04ba6aaf08bfc3", "scanner": "scanner-primary", "fingerprint": "56b858471db3e185", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/retention_routes.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-5af923be30db3d37", "level": "error", "message": {"text": "FastAPI PUT `update_config` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:45"}, "properties": {"repobilityId": "e17e56e3850f8120", "scanner": "scanner-primary", "fingerprint": "5af923be30db3d37", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/embedding_routes.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-62bf49a6fb8e4c1e", "level": "error", "message": {"text": "FastAPI POST `test_embedding` without auth dependency \u2014 backend/coffer/surfaces/http/embedding_routes.py:65"}, "properties": {"repobilityId": "92028e20fddb777e", "scanner": "scanner-primary", "fingerprint": "62bf49a6fb8e4c1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/embedding_routes.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-1204760609152907", "level": "error", "message": {"text": "FastAPI PATCH `update_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:80"}, "properties": {"repobilityId": "23f6ae12ce969a91", "scanner": "scanner-primary", "fingerprint": "1204760609152907", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/resource_routes.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-7787124fe6b62629", "level": "error", "message": {"text": "FastAPI DELETE `delete_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:102"}, "properties": {"repobilityId": "1349ecfc34aa88b9", "scanner": "scanner-primary", "fingerprint": "7787124fe6b62629", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/resource_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-32536bb278ae99ac", "level": "error", "message": {"text": "FastAPI POST `enable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:113"}, "properties": {"repobilityId": "377390fe05e524bc", "scanner": "scanner-primary", "fingerprint": "32536bb278ae99ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/resource_routes.py"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-b0f7694d604f49fc", "level": "error", "message": {"text": "FastAPI POST `disable_resource` without auth dependency \u2014 backend/coffer/surfaces/http/resource_routes.py:124"}, "properties": {"repobilityId": "0a65bd0e1b0415b9", "scanner": "scanner-primary", "fingerprint": "b0f7694d604f49fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/resource_routes.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-fb1f0f4fcc99c8b3", "level": "error", "message": {"text": "FastAPI PATCH `update_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:197"}, "properties": {"repobilityId": "a5af8da2b264033a", "scanner": "scanner-primary", "fingerprint": "fb1f0f4fcc99c8b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_routes.py"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-0ba94a671cfc4c81", "level": "error", "message": {"text": "FastAPI DELETE `delete_agent` without auth dependency \u2014 backend/coffer/surfaces/http/agent_routes.py:227"}, "properties": {"repobilityId": "b5d0c0adae789036", "scanner": "scanner-primary", "fingerprint": "0ba94a671cfc4c81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_routes.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-43a25f989c819f69", "level": "error", "message": {"text": "FastAPI POST `set_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.py:48"}, "properties": {"repobilityId": "d4d6839cc75fec8f", "scanner": "scanner-primary", "fingerprint": "43a25f989c819f69", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/credential_routes.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-cb75d13a08a9630f", "level": "error", "message": {"text": "FastAPI DELETE `delete_secret` without auth dependency \u2014 backend/coffer/surfaces/http/credential_routes.py:111"}, "properties": {"repobilityId": "ce4dd3845e3fd20a", "scanner": "scanner-primary", "fingerprint": "cb75d13a08a9630f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/credential_routes.py"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-eb9cc3ec57aff4b3", "level": "error", "message": {"text": "FastAPI POST `establish_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:99"}, "properties": {"repobilityId": "d3cd252e07d4ccb4", "scanner": "scanner-primary", "fingerprint": "eb9cc3ec57aff4b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/projection_routes.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-a42ae867a8d87c43", "level": "error", "message": {"text": "FastAPI DELETE `remove_projection` without auth dependency \u2014 backend/coffer/surfaces/http/projection_routes.py:135"}, "properties": {"repobilityId": "c22f78ad3f6c3a06", "scanner": "scanner-primary", "fingerprint": "a42ae867a8d87c43", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/projection_routes.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-a4781fe8e99a6006", "level": "error", "message": {"text": "FastAPI PUT `put_credential_settings` without auth dependency \u2014 backend/coffer/surfaces/http/settings_routes.py:43"}, "properties": {"repobilityId": "2cc8ff60b68af898", "scanner": "scanner-primary", "fingerprint": "a4781fe8e99a6006", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/settings_routes.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-db6ed74a066be6be", "level": "error", "message": {"text": "FastAPI PUT `write_skill_file` without auth dependency \u2014 backend/coffer/surfaces/http/skill_file_routes.py:125"}, "properties": {"repobilityId": "7f5639e9f8686e5c", "scanner": "scanner-primary", "fingerprint": "db6ed74a066be6be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/skill_file_routes.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-141b280aa33d38db", "level": "error", "message": {"text": "FastAPI PUT `put_config` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:115"}, "properties": {"repobilityId": "cef4dbccb0ba4e80", "scanner": "scanner-primary", "fingerprint": "141b280aa33d38db", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/sync_routes.py"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-2180419b0a0501eb", "level": "error", "message": {"text": "FastAPI POST `run_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:133"}, "properties": {"repobilityId": "b8d331ba78617d19", "scanner": "scanner-primary", "fingerprint": "2180419b0a0501eb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/sync_routes.py"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-68440160f2a5f686", "level": "error", "message": {"text": "FastAPI POST `resolve_sync` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:139"}, "properties": {"repobilityId": "cf273eba9309be11", "scanner": "scanner-primary", "fingerprint": "68440160f2a5f686", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/sync_routes.py"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-f3837b8f4c98fda8", "level": "error", "message": {"text": "FastAPI POST `export_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:144"}, "properties": {"repobilityId": "6fd3c2517aa8bc12", "scanner": "scanner-primary", "fingerprint": "f3837b8f4c98fda8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/sync_routes.py"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-9fa8ef4010e897d6", "level": "error", "message": {"text": "FastAPI POST `import_key` without auth dependency \u2014 backend/coffer/surfaces/http/sync_routes.py:149"}, "properties": {"repobilityId": "e8ecfca2c99466d6", "scanner": "scanner-primary", "fingerprint": "9fa8ef4010e897d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/sync_routes.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-35d8f4923dfeaafc", "level": "error", "message": {"text": "FastAPI PUT `write_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:137"}, "properties": {"repobilityId": "0585796641446f7b", "scanner": "scanner-primary", "fingerprint": "35d8f4923dfeaafc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_config_routes.py"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-ea2e9cb8dc45ad08", "level": "error", "message": {"text": "FastAPI DELETE `delete_config_dir_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:158"}, "properties": {"repobilityId": "86f36b818324447a", "scanner": "scanner-primary", "fingerprint": "ea2e9cb8dc45ad08", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_config_routes.py"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-eeca53312af6c970", "level": "error", "message": {"text": "FastAPI PUT `write_config_file` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:182"}, "properties": {"repobilityId": "28a3792a24b09c1a", "scanner": "scanner-primary", "fingerprint": "eeca53312af6c970", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_config_routes.py"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-5ca0e7f59c9ca001", "level": "error", "message": {"text": "FastAPI POST `install_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:205"}, "properties": {"repobilityId": "33c24e5afd111e83", "scanner": "scanner-primary", "fingerprint": "5ca0e7f59c9ca001", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_config_routes.py"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-335350c4c70973cd", "level": "error", "message": {"text": "FastAPI DELETE `uninstall_mcp` without auth dependency \u2014 backend/coffer/surfaces/http/agent_config_routes.py:214"}, "properties": {"repobilityId": "3b1e6d8ed2dc86c6", "scanner": "scanner-primary", "fingerprint": "335350c4c70973cd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_config_routes.py"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-8b57ca6734100303", "level": "error", "message": {"text": "FastAPI POST `issue_pairing_code` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:86"}, "properties": {"repobilityId": "fde96cd20ad394ca", "scanner": "scanner-primary", "fingerprint": "8b57ca6734100303", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/channel_routes.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-da5335ddf36d4ae1", "level": "error", "message": {"text": "FastAPI POST `notify_channel` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:129"}, "properties": {"repobilityId": "c9b4c926e38d0305", "scanner": "scanner-primary", "fingerprint": "da5335ddf36d4ae1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/channel_routes.py"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-2733db75ffb10aac", "level": "error", "message": {"text": "FastAPI POST `test_channel_callback` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:135"}, "properties": {"repobilityId": "5af2c80cb8362053", "scanner": "scanner-primary", "fingerprint": "2733db75ffb10aac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/channel_routes.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-6d69d3d7a93c24a6", "level": "error", "message": {"text": "FastAPI POST `ingest_channel_event` without auth dependency \u2014 backend/coffer/surfaces/http/channel_routes.py:142"}, "properties": {"repobilityId": "015e4232bd4c3875", "scanner": "scanner-primary", "fingerprint": "6d69d3d7a93c24a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/channel_routes.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-7e836ac47b2312c5", "level": "error", "message": {"text": "FastAPI POST `adopt_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py:74"}, "properties": {"repobilityId": "0ae5e5fa25496620", "scanner": "scanner-primary", "fingerprint": "7e836ac47b2312c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-ffb0b4278b887233", "level": "error", "message": {"text": "FastAPI DELETE `delete_unmanaged_skill` without auth dependency \u2014 backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py:95"}, "properties": {"repobilityId": "5c3ee3cc7d42d641", "scanner": "scanner-primary", "fingerprint": "ffb0b4278b887233", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/agent_unmanaged_skill_routes.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-b133af3293e70421", "level": "error", "message": {"text": "FastAPI POST `distill_transcript` without auth dependency \u2014 backend/coffer/surfaces/http/distill/routes.py:70"}, "properties": {"repobilityId": "0ba4b9ad3e4fbbb8", "scanner": "scanner-primary", "fingerprint": "b133af3293e70421", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/distill/routes.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-cf72887270257f73", "level": "error", "message": {"text": "FastAPI POST `enable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:209"}, "properties": {"repobilityId": "274c260d2581cd6d", "scanner": "scanner-primary", "fingerprint": "cf72887270257f73", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-2643ebfa64eb4b71", "level": "error", "message": {"text": "FastAPI POST `disable_capability` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:236"}, "properties": {"repobilityId": "b86990b7eeccd775", "scanner": "scanner-primary", "fingerprint": "2643ebfa64eb4b71", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-bb46299e8c40c0ea", "level": "error", "message": {"text": "FastAPI POST `enable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:266"}, "properties": {"repobilityId": "82abfdbcb8eaf1eb", "scanner": "scanner-primary", "fingerprint": "bb46299e8c40c0ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-8b0cead3008a5759", "level": "error", "message": {"text": "FastAPI POST `disable_capability_legacy` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:293"}, "properties": {"repobilityId": "06c15f82186f9fcb", "scanner": "scanner-primary", "fingerprint": "8b0cead3008a5759", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 293}}}]}, {"ruleId": "scanner-9d6a9aa04cfab810", "level": "error", "message": {"text": "FastAPI POST `refresh_capabilities` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:320"}, "properties": {"repobilityId": "801bffbf425b5ae0", "scanner": "scanner-primary", "fingerprint": "9d6a9aa04cfab810", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-b340661d3d0f7ee6", "level": "error", "message": {"text": "FastAPI POST `test_mcp_server` without auth dependency \u2014 backend/coffer/surfaces/http/mcp/capability_routes.py:336"}, "properties": {"repobilityId": "1734a3f958490cf8", "scanner": "scanner-primary", "fingerprint": "b340661d3d0f7ee6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/mcp/capability_routes.py"}, "region": {"startLine": 336}}}]}, {"ruleId": "scanner-103f48b25c16a0ec", "level": "error", "message": {"text": "FastAPI POST `create_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:67"}, "properties": {"repobilityId": "f408d5c9c1b95931", "scanner": "scanner-primary", "fingerprint": "103f48b25c16a0ec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/model_routes.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-2cec2f19960818a6", "level": "error", "message": {"text": "FastAPI PATCH `update_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:84"}, "properties": {"repobilityId": "6f34d6cc050c7b52", "scanner": "scanner-primary", "fingerprint": "2cec2f19960818a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/model_routes.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-4dc36af2dd2918e6", "level": "error", "message": {"text": "FastAPI DELETE `delete_model` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:102"}, "properties": {"repobilityId": "ec0b5e81b3ec196f", "scanner": "scanner-primary", "fingerprint": "4dc36af2dd2918e6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/model_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-13f7a2f509260f21", "level": "error", "message": {"text": "FastAPI POST `list_provider_models` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:119"}, "properties": {"repobilityId": "21542e6baafe3f80", "scanner": "scanner-primary", "fingerprint": "13f7a2f509260f21", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/model_routes.py"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-5d87b45359612980", "level": "error", "message": {"text": "FastAPI POST `test_connection` without auth dependency \u2014 backend/coffer/surfaces/http/chat/model_routes.py:131"}, "properties": {"repobilityId": "4f0f3a5725cdf146", "scanner": "scanner-primary", "fingerprint": "5d87b45359612980", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/model_routes.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-d7a83fc8043f9b9d", "level": "error", "message": {"text": "FastAPI POST `create_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:152"}, "properties": {"repobilityId": "6202d2abe016c598", "scanner": "scanner-primary", "fingerprint": "d7a83fc8043f9b9d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/conversation_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-1591d62e87791b56", "level": "error", "message": {"text": "FastAPI PATCH `update_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:181"}, "properties": {"repobilityId": "b60fabdb79cf8a3d", "scanner": "scanner-primary", "fingerprint": "1591d62e87791b56", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/conversation_routes.py"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-7a8e4b68b2c6bfdd", "level": "error", "message": {"text": "FastAPI POST `archive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:208"}, "properties": {"repobilityId": "7bea49ee3855c5a6", "scanner": "scanner-primary", "fingerprint": "7a8e4b68b2c6bfdd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/conversation_routes.py"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-6a1a276b42dd947d", "level": "error", "message": {"text": "FastAPI POST `unarchive_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:218"}, "properties": {"repobilityId": "1b76a967045dbe5a", "scanner": "scanner-primary", "fingerprint": "6a1a276b42dd947d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/conversation_routes.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-2c3334853f7ddc26", "level": "error", "message": {"text": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 backend/coffer/surfaces/http/chat/conversation_routes.py:228"}, "properties": {"repobilityId": "c23bdb41cd5d8549", "scanner": "scanner-primary", "fingerprint": "2c3334853f7ddc26", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/conversation_routes.py"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-70e588bf5b02ad7e", "level": "error", "message": {"text": "FastAPI POST `send_message` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:48"}, "properties": {"repobilityId": "19ff23af58f7f75d", "scanner": "scanner-primary", "fingerprint": "70e588bf5b02ad7e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/turn_routes.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-294fd886c2bdaaa0", "level": "error", "message": {"text": "FastAPI POST `submit_approval` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:93"}, "properties": {"repobilityId": "a59ff68a807eb887", "scanner": "scanner-primary", "fingerprint": "294fd886c2bdaaa0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/turn_routes.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-4d1f80c331ad59a3", "level": "error", "message": {"text": "FastAPI POST `interrupt_turn` without auth dependency \u2014 backend/coffer/surfaces/http/chat/turn_routes.py:118"}, "properties": {"repobilityId": "095f0e4c75fbfc31", "scanner": "scanner-primary", "fingerprint": "4d1f80c331ad59a3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/chat/turn_routes.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-c6102ee09e3dc52c", "level": "error", "message": {"text": "FastAPI POST `create_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:99"}, "properties": {"repobilityId": "dce993d02a1ed794", "scanner": "scanner-primary", "fingerprint": "c6102ee09e3dc52c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-c452d2526bb8314b", "level": "error", "message": {"text": "FastAPI POST `ingest_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:127"}, "properties": {"repobilityId": "139986f9d77b75dd", "scanner": "scanner-primary", "fingerprint": "c452d2526bb8314b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-0a9cb7f84a10fb8a", "level": "error", "message": {"text": "FastAPI PUT `edit_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:203"}, "properties": {"repobilityId": "e1edfe080aa4b6eb", "scanner": "scanner-primary", "fingerprint": "0a9cb7f84a10fb8a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-db387f4b24c86a4e", "level": "error", "message": {"text": "FastAPI POST `reconvert_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:218"}, "properties": {"repobilityId": "eda5c1165b25bbab", "scanner": "scanner-primary", "fingerprint": "db387f4b24c86a4e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-4b334dcc5e841066", "level": "error", "message": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:230"}, "properties": {"repobilityId": "68501e0a4a98d6c6", "scanner": "scanner-primary", "fingerprint": "4b334dcc5e841066", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-0753c80adc867815", "level": "error", "message": {"text": "FastAPI POST `reindex` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:245"}, "properties": {"repobilityId": "895a9df27edbab39", "scanner": "scanner-primary", "fingerprint": "0753c80adc867815", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 245}}}]}, {"ruleId": "scanner-a4f596c9abdf9a51", "level": "error", "message": {"text": "FastAPI POST `search_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:263"}, "properties": {"repobilityId": "7c9a2ea6e7c0c13a", "scanner": "scanner-primary", "fingerprint": "a4f596c9abdf9a51", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-5da8959981edaeeb", "level": "error", "message": {"text": "FastAPI POST `grep_kb` without auth dependency \u2014 backend/coffer/surfaces/http/knowledge_base/routes.py:273"}, "properties": {"repobilityId": "165493a523349796", "scanner": "scanner-primary", "fingerprint": "5da8959981edaeeb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/knowledge_base/routes.py"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-8e6b29ca7884fbc4", "level": "error", "message": {"text": "FastAPI PATCH `update_store` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:131"}, "properties": {"repobilityId": "dfa422f45aede427", "scanner": "scanner-primary", "fingerprint": "8e6b29ca7884fbc4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-a54f4f7b7af6251f", "level": "error", "message": {"text": "FastAPI POST `add_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:174"}, "properties": {"repobilityId": "fece64069ef88ff7", "scanner": "scanner-primary", "fingerprint": "a54f4f7b7af6251f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-80313133fd3e4e1d", "level": "error", "message": {"text": "FastAPI DELETE `clear_facts` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:219"}, "properties": {"repobilityId": "44b6a5c7c05a4d95", "scanner": "scanner-primary", "fingerprint": "80313133fd3e4e1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-3895b2e5f82cf84d", "level": "error", "message": {"text": "FastAPI PATCH `update_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:240"}, "properties": {"repobilityId": "c9fd9d92017ef8c7", "scanner": "scanner-primary", "fingerprint": "3895b2e5f82cf84d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-3b657ae8606dd3c4", "level": "error", "message": {"text": "FastAPI DELETE `forget_fact` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:262"}, "properties": {"repobilityId": "05f4b1e1c411f0e7", "scanner": "scanner-primary", "fingerprint": "3b657ae8606dd3c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-9a942b816ca2ee80", "level": "error", "message": {"text": "FastAPI POST `recall` without auth dependency \u2014 backend/coffer/surfaces/http/memory/routes.py:280"}, "properties": {"repobilityId": "da333e84a33b8c06", "scanner": "scanner-primary", "fingerprint": "9a942b816ca2ee80", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/coffer/surfaces/http/memory/routes.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-d503d271ff4a452b", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${daemonPort}/api/v1/resources (e2e/mcp/specs/http_round_trip.spec.ts:71)"}, "properties": {"repobilityId": "bc08403276ccd364", "scanner": "scanner-primary", "fingerprint": "d503d271ff4a452b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ecacd83d7988b0c1", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/mcp/specs/_helpers.ts:57)"}, "properties": {"repobilityId": "79ed7938816461da", "scanner": "scanner-primary", "fingerprint": "ecacd83d7988b0c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e1028bb53aa49c7", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name} (e2e/mcp/specs/_helpers.ts:91)"}, "properties": {"repobilityId": "18d9c231f7589be2", "scanner": "scanner-primary", "fingerprint": "9e1028bb53aa49c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-55614e222065f8f5", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:83)"}, "properties": {"repobilityId": "b3e82303b9abbe8d", "scanner": "scanner-primary", "fingerprint": "55614e222065f8f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-edd79cf93c60f03c", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/memory_stores/global/facts (e2e/web/specs/shell_memory.spec.ts:112)"}, "properties": {"repobilityId": "e83846f32b292270", "scanner": "scanner-primary", "fingerprint": "edd79cf93c60f03c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-994c76653096a070", "level": "error", "message": {"text": "Dangling fetch: PATCH http://127.0.0.1:${port}/api/v1/retention/policies/mcp_invocations (e2e/web/specs/shell_settings.spec.ts:78)"}, "properties": {"repobilityId": "6b75c723cf9cb571", "scanner": "scanner-primary", "fingerprint": "994c76653096a070", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ded7e76d264df6ca", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/agent_workspace.spec.ts:55)"}, "properties": {"repobilityId": "8572efaaa7ab6f3f", "scanner": "scanner-primary", "fingerprint": "ded7e76d264df6ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-220c1d8f96b31816", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/agent_workspace.spec.ts:73)"}, "properties": {"repobilityId": "1228ad5b67d2a416", "scanner": "scanner-primary", "fingerprint": "220c1d8f96b31816", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a3b8711001118ae", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/agents/${name} (e2e/web/specs/shell_agents.spec.ts:33)"}, "properties": {"repobilityId": "7fdc39b5895e08ae", "scanner": "scanner-primary", "fingerprint": "1a3b8711001118ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0afecd6dace6319", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_agents.spec.ts:61)"}, "properties": {"repobilityId": "246e033fe4ccec44", "scanner": "scanner-primary", "fingerprint": "d0afecd6dace6319", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8472d1b766798a57", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_mcp_flows.spec.ts:35)"}, "properties": {"repobilityId": "df733c64970873ff", "scanner": "scanner-primary", "fingerprint": "8472d1b766798a57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1eb1bc7177050c32", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_mcp_flows.spec.ts:63)"}, "properties": {"repobilityId": "1d1ae97423aab605", "scanner": "scanner-primary", "fingerprint": "1eb1bc7177050c32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12e2a916a209b0d5", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_cold_start.spec.ts:123)"}, "properties": {"repobilityId": "0631b98ad99d336d", "scanner": "scanner-primary", "fingerprint": "12e2a916a209b0d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f1ef3ad0fe3b6efd", "level": "error", "message": {"text": "Dangling fetch: DELETE http://127.0.0.1:${port}/api/v1/resources/${r.kind}/${r.name} (e2e/web/specs/shell_cold_start.spec.ts:131)"}, "properties": {"repobilityId": "e13017586a261e15", "scanner": "scanner-primary", "fingerprint": "f1ef3ad0fe3b6efd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62e9cc4b81067362", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources (e2e/web/specs/shell_observability.spec.ts:37)"}, "properties": {"repobilityId": "911b8cc82ad97c15", "scanner": "scanner-primary", "fingerprint": "62e9cc4b81067362", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f3b9e4b729a8c4b1", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/resources/mcp_server/${name}/refresh (e2e/web/specs/shell_observability.spec.ts:65)"}, "properties": {"repobilityId": "dfedae90fd373950", "scanner": "scanner-primary", "fingerprint": "f3b9e4b729a8c4b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2d3b950167eaa39", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/agents (e2e/web/specs/shell_skills.spec.ts:74)"}, "properties": {"repobilityId": "e2d8c982eac22a73", "scanner": "scanner-primary", "fingerprint": "f2d3b950167eaa39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2873ee7469d62609", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/import (e2e/web/specs/shell_skills.spec.ts:91)"}, "properties": {"repobilityId": "4ce1ae53f0599f1e", "scanner": "scanner-primary", "fingerprint": "2873ee7469d62609", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a248228cd5ef8fa8", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/v1/skills/${skillName}/disable (e2e/web/specs/shell_skills.spec.ts:122)"}, "properties": {"repobilityId": "d1159a807266a58e", "scanner": "scanner-primary", "fingerprint": "a248228cd5ef8fa8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94a1f42f4828b262", "level": "note", "message": {"text": "Unused endpoint: POST /seatalk/{channel}"}, "properties": {"repobilityId": "71d4a60d41c8accb", "scanner": "scanner-primary", "fingerprint": "94a1f42f4828b262", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "48f77e8e76947f06", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be4cb5e3cabcce80", "level": "note", "message": {"text": "Unused endpoint: POST /import"}, "properties": {"repobilityId": "c7e80db684b1acad", "scanner": "scanner-primary", "fingerprint": "be4cb5e3cabcce80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ae81e427508a9951", "level": "note", "message": {"text": "Unused endpoint: POST /fetch"}, "properties": {"repobilityId": "c58816e43d0ba3d1", "scanner": "scanner-primary", "fingerprint": "ae81e427508a9951", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a12f85b46010cb53", "level": "note", "message": {"text": "Unused endpoint: GET /{name}"}, "properties": {"repobilityId": "404c0744b584713b", "scanner": "scanner-primary", "fingerprint": "a12f85b46010cb53", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c562c83979dce866", "level": "note", "message": {"text": "Unused endpoint: DELETE /{name}"}, "properties": {"repobilityId": "4bf40d7d335d10f4", "scanner": "scanner-primary", "fingerprint": "c562c83979dce866", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-555cf6322605193f", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/update"}, "properties": {"repobilityId": "22499ab3dcc71aea", "scanner": "scanner-primary", "fingerprint": "555cf6322605193f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c2e88c6246a9bc1", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/enable"}, "properties": {"repobilityId": "db374eb10da11e9f", "scanner": "scanner-primary", "fingerprint": "8c2e88c6246a9bc1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8f01ba97259923d8", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/disable"}, "properties": {"repobilityId": "ccaf08ca447408d3", "scanner": "scanner-primary", "fingerprint": "8f01ba97259923d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aee9168e964a3822", "level": "note", "message": {"text": "Unused endpoint: POST /verify"}, "properties": {"repobilityId": "368fe12c6bfed719", "scanner": "scanner-primary", "fingerprint": "aee9168e964a3822", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfb9b890706e902e", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/mcp-entries"}, "properties": {"repobilityId": "344b0c7ae812cb78", "scanner": "scanner-primary", "fingerprint": "dfb9b890706e902e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15824e541a7ca184", "level": "note", "message": {"text": "Unused endpoint: PATCH /{name}/mcp-entries/{entry}"}, "properties": {"repobilityId": "2a7f837af2a05c0a", "scanner": "scanner-primary", "fingerprint": "15824e541a7ca184", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-89865cbee024d64e", "level": "note", "message": {"text": "Unused endpoint: DELETE /{name}/mcp-entries/{entry}"}, "properties": {"repobilityId": "4e185cdb83fbe545", "scanner": "scanner-primary", "fingerprint": "89865cbee024d64e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7c67cb5f55df54cc", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/mcp-entries/{entry}/adopt"}, "properties": {"repobilityId": "6965108aab01cce1", "scanner": "scanner-primary", "fingerprint": "7c67cb5f55df54cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4567690329220967", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/plugins"}, "properties": {"repobilityId": "3e02b077c05e2ded", "scanner": "scanner-primary", "fingerprint": "4567690329220967", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bba1376d87f1f89", "level": "note", "message": {"text": "Unused endpoint: PATCH /{name}/plugins/{plugin_id}"}, "properties": {"repobilityId": "0fe4954a1e826265", "scanner": "scanner-primary", "fingerprint": "1bba1376d87f1f89", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a95f8413b49a817b", "level": "note", "message": {"text": "Unused endpoint: DELETE /{name}/plugins/{plugin_id}"}, "properties": {"repobilityId": "f40d64b37bf17fee", "scanner": "scanner-primary", "fingerprint": "a95f8413b49a817b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-512a13634818900f", "level": "note", "message": {"text": "Unused endpoint: GET /policies"}, "properties": {"repobilityId": "f937c15d33db9f30", "scanner": "scanner-primary", "fingerprint": "512a13634818900f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a4d199b6ff0c347", "level": "note", "message": {"text": "Unused endpoint: PATCH /policies/{table_name}"}, "properties": {"repobilityId": "d13cf31ad24740e8", "scanner": "scanner-primary", "fingerprint": "7a4d199b6ff0c347", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75735d987ceb2fae", "level": "note", "message": {"text": "Unused endpoint: POST /prune"}, "properties": {"repobilityId": "120c1b600463e697", "scanner": "scanner-primary", "fingerprint": "75735d987ceb2fae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6f48e60c30777ab", "level": "note", "message": {"text": "Unused endpoint: GET /config"}, "properties": {"repobilityId": "f3a95e8d71c8abd3", "scanner": "scanner-primary", "fingerprint": "a6f48e60c30777ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7d2c56c613802d65", "level": "note", "message": {"text": "Unused endpoint: PUT /config"}, "properties": {"repobilityId": "421213f4a00836ce", "scanner": "scanner-primary", "fingerprint": "7d2c56c613802d65", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-731c57f59aaca553", "level": "note", "message": {"text": "Unused endpoint: POST /test"}, "properties": {"repobilityId": "ad3128fc06a0a832", "scanner": "scanner-primary", "fingerprint": "731c57f59aaca553", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "e43e357c63696e78", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-283383e6466179f1", "level": "note", "message": {"text": "Unused endpoint: GET /{kind}/{name}"}, "properties": {"repobilityId": "8eef096f73cb1a26", "scanner": "scanner-primary", "fingerprint": "283383e6466179f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aaa1e0db421b4c1d", "level": "note", "message": {"text": "Unused endpoint: PATCH /{kind}/{name}"}, "properties": {"repobilityId": "ceade2611eac86a4", "scanner": "scanner-primary", "fingerprint": "aaa1e0db421b4c1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0e3dc0466f2b6d36", "level": "note", "message": {"text": "Unused endpoint: DELETE /{kind}/{name}"}, "properties": {"repobilityId": "e05be9684cf6c594", "scanner": "scanner-primary", "fingerprint": "0e3dc0466f2b6d36", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0924e299376d1424", "level": "note", "message": {"text": "Unused endpoint: POST /{kind}/{name}/enable"}, "properties": {"repobilityId": "a7762863547e63bd", "scanner": "scanner-primary", "fingerprint": "0924e299376d1424", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d1e7bd74ee77a18b", "level": "note", "message": {"text": "Unused endpoint: POST /{kind}/{name}/disable"}, "properties": {"repobilityId": "ad7fec60f874283a", "scanner": "scanner-primary", "fingerprint": "d1e7bd74ee77a18b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ab7ce0fa328c93ea", "level": "note", "message": {"text": "Unused endpoint: GET /candidates"}, "properties": {"repobilityId": "dbf8da6f826ee06c", "scanner": "scanner-primary", "fingerprint": "ab7ce0fa328c93ea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dcb020c17838ec62", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/native-memory"}, "properties": {"repobilityId": "f8ccc10e5c6507c3", "scanner": "scanner-primary", "fingerprint": "dcb020c17838ec62", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34e524868ffcb0e9", "level": "note", "message": {"text": "Unused endpoint: PATCH /{name}"}, "properties": {"repobilityId": "b31293b287ae7541", "scanner": "scanner-primary", "fingerprint": "34e524868ffcb0e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b5343d0af16b42b", "level": "note", "message": {"text": "Unused endpoint: POST /rotate-token"}, "properties": {"repobilityId": "115a2ae1c050e996", "scanner": "scanner-primary", "fingerprint": "6b5343d0af16b42b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a60ed948238ae8f3", "level": "note", "message": {"text": "Unused endpoint: POST /backup"}, "properties": {"repobilityId": "e0b871c57e93a504", "scanner": "scanner-primary", "fingerprint": "a60ed948238ae8f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c9537c842ba93d4c", "level": "note", "message": {"text": "Unused endpoint: POST /shutdown"}, "properties": {"repobilityId": "40e0359d98364dca", "scanner": "scanner-primary", "fingerprint": "c9537c842ba93d4c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-225fc9659a29ab51", "level": "note", "message": {"text": "Unused endpoint: GET /{ref:path}/exists"}, "properties": {"repobilityId": "0fcea134f82455c9", "scanner": "scanner-primary", "fingerprint": "225fc9659a29ab51", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7d771be1dd95911", "level": "note", "message": {"text": "Unused endpoint: GET /{ref:path}"}, "properties": {"repobilityId": "7eee51f18fcf55a0", "scanner": "scanner-primary", "fingerprint": "c7d771be1dd95911", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d59e0f04300d86eb", "level": "note", "message": {"text": "Unused endpoint: DELETE /{ref:path}"}, "properties": {"repobilityId": "3acc701b86cee4ca", "scanner": "scanner-primary", "fingerprint": "d59e0f04300d86eb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-40856c70f1a917f8", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/projections"}, "properties": {"repobilityId": "adb21ffc3a74cb62", "scanner": "scanner-primary", "fingerprint": "40856c70f1a917f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d5deb19c392a118", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/projections"}, "properties": {"repobilityId": "dd1a75d9fece193b", "scanner": "scanner-primary", "fingerprint": "6d5deb19c392a118", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6085542f1e1fd6cf", "level": "note", "message": {"text": "Unused endpoint: DELETE /{name}/projections/{agent_ref}"}, "properties": {"repobilityId": "5121f1ce5095d7a6", "scanner": "scanner-primary", "fingerprint": "6085542f1e1fd6cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bbd34f00b5916167", "level": "note", "message": {"text": "Unused endpoint: POST /{name}/native-memory/import"}, "properties": {"repobilityId": "6b5688d2de4722b8", "scanner": "scanner-primary", "fingerprint": "bbd34f00b5916167", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35c268ad9306182e", "level": "note", "message": {"text": "Unused endpoint: GET /credentials"}, "properties": {"repobilityId": "62e8517eb2109bac", "scanner": "scanner-primary", "fingerprint": "35c268ad9306182e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad488e6a29eb0218", "level": "note", "message": {"text": "Unused endpoint: PUT /credentials"}, "properties": {"repobilityId": "86324700b3b0acd3", "scanner": "scanner-primary", "fingerprint": "ad488e6a29eb0218", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e7f34f077242f37", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/files"}, "properties": {"repobilityId": "4afffca042f17e22", "scanner": "scanner-primary", "fingerprint": "7e7f34f077242f37", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67ebec2d35939b19", "level": "note", "message": {"text": "Unused endpoint: GET /{name}/files/content"}, "properties": {"repobilityId": "65b5d3abc27c4de6", "scanner": "scanner-primary", "fingerprint": "67ebec2d35939b19", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4da2fb5c85e01954", "level": "note", "message": {"text": "Unused endpoint: PUT /{name}/files/content"}, "properties": {"repobilityId": "479ce0bfd2d6344d", "scanner": "scanner-primary", "fingerprint": "4da2fb5c85e01954", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69a693dfc33637f4", "level": "note", "message": {"text": "Unused endpoint: POST /run"}, "properties": {"repobilityId": "c9f64f5f46cc304a", "scanner": "scanner-primary", "fingerprint": "69a693dfc33637f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfa1b57ebf524401", "level": "note", "message": {"text": "Unused endpoint: POST /resolve"}, "properties": {"repobilityId": "d698981fbc983c38", "scanner": "scanner-primary", "fingerprint": "dfa1b57ebf524401", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d689de6312691cb5", "level": "note", "message": {"text": "Unused endpoint: POST /key/export"}, "properties": {"repobilityId": "5d28db021f103ef5", "scanner": "scanner-primary", "fingerprint": "d689de6312691cb5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}