{"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-b7d8d7428b7e9f65", "name": "Possibly dead Python function: execute_curl", "shortDescription": {"text": "Possibly dead Python function: execute_curl"}, "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-77d1d3a2ed3c12b5", "name": "Possibly dead Python function: run_collection", "shortDescription": {"text": "Possibly dead Python function: run_collection"}, "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-4df3d2dc963ee321", "name": "Possibly dead Python function: update_api", "shortDescription": {"text": "Possibly dead Python function: update_api"}, "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-d3e1dfca6f531b97", "name": "Possibly dead Python function: delete_api", "shortDescription": {"text": "Possibly dead Python function: delete_api"}, "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-c3c57da59897e696", "name": "Possibly dead Python function: update_spec", "shortDescription": {"text": "Possibly dead Python function: update_spec"}, "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-b4b615f86763ce3e", "name": "Possibly dead Python function: delete_spec", "shortDescription": {"text": "Possibly dead Python function: delete_spec"}, "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-c60fdb7867b211e9", "name": "Possibly dead Python function: create_spec_file", "shortDescription": {"text": "Possibly dead Python function: create_spec_file"}, "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-e0e3c83c2bbaf927", "name": "Possibly dead Python function: update_spec_file", "shortDescription": {"text": "Possibly dead Python function: update_spec_file"}, "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-b4a5e2cc0c27e43e", "name": "Possibly dead Python function: delete_spec_file", "shortDescription": {"text": "Possibly dead Python function: delete_spec_file"}, "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-420af5ac37f7f5f4", "name": "Possibly dead Python function: list_collections_from_spec", "shortDescription": {"text": "Possibly dead Python function: list_collections_from_spec"}, "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-04cbfba9ab49ea3d", "name": "Possibly dead Python function: generate_spec_from_collection", "shortDescription": {"text": "Possibly dead Python function: generate_spec_from_collection"}, "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-d16eac2eb6d48632", "name": "Possibly dead Python function: list_mocks", "shortDescription": {"text": "Possibly dead Python function: list_mocks"}, "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-cb33c9219c4d4063", "name": "Possibly dead Python function: create_mock", "shortDescription": {"text": "Possibly dead Python function: create_mock"}, "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-b531af7fd725d5ce", "name": "Possibly dead Python function: update_mock", "shortDescription": {"text": "Possibly dead Python function: update_mock"}, "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-5fe7a8bf05bd3b6b", "name": "Possibly dead Python function: delete_mock", "shortDescription": {"text": "Possibly dead Python function: delete_mock"}, "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-9354011ba0c50b7d", "name": "Possibly dead Python function: format_monitor", "shortDescription": {"text": "Possibly dead Python function: format_monitor"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-63a31983f80cfee9", "name": "Possibly dead Python function: format_monitor_runs_summary", "shortDescription": {"text": "Possibly dead Python function: format_monitor_runs_summary"}, "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-2658a5130c3f5dfd", "name": "Possibly dead Python function: example_1_enhanced_error_handling", "shortDescription": {"text": "Possibly dead Python function: example_1_enhanced_error_handling"}, "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-67143c00e7dd9274", "name": "Possibly dead Python function: example_2_collection_version_control", "shortDescription": {"text": "Possibly dead Python function: example_2_collection_version_control"}, "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-ffc1a170680db35b", "name": "Possibly dead Python function: example_3_collection_duplication", "shortDescription": {"text": "Possibly dead Python function: example_3_collection_duplication"}, "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-8558567a01cabd5c", "name": "Possibly dead Python function: example_4_environment_secrets", "shortDescription": {"text": "Possibly dead Python function: example_4_environment_secrets"}, "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-429cc0ce8ad99545", "name": "Possibly dead Python function: example_5_environment_updates", "shortDescription": {"text": "Possibly dead Python function: example_5_environment_updates"}, "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-911c16405d429a0c", "name": "Possibly dead Python function: example_6_environment_duplication", "shortDescription": {"text": "Possibly dead Python function: example_6_environment_duplication"}, "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-f3106a4054701f9c", "name": "Possibly dead Python function: add_tool", "shortDescription": {"text": "Possibly dead Python function: add_tool"}, "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-1535f27c4a9e0901", "name": "Possibly dead Python function: add_system_prompt_function", "shortDescription": {"text": "Possibly dead Python function: add_system_prompt_function"}, "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-7b95836a833827df", "name": "Stray `console.log` in TS/JS \u2014 check-env.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 check-env.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b28703a26fda4aed", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/vite.config.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/vite.config.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe4674ad048000a1", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/tests/manual/test-knowledge-api.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/tests/manual/test-knowledge-api.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-377c9e23c26f1017", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/utils/onboarding.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/utils/onboarding.ts:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e350108a4086b055", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/FeaturesSection.tsx:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/FeaturesSection.tsx:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fa071f2b483f39d8", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelDiscoveryModal.tsx:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelDiscoveryModal.tsx:4"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b98f5df62c893922", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/DefaultExtensionsSection.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/DefaultExtensionsSection.tsx:28"}, "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-85bc9673cee50681", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:312", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:312"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b4cafe033bd6c4c", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/APIKeysSection.tsx:297", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/APIKeysSection.tsx:297"}, "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-7e05876df73bcfb2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/components/settings/IDEGlobalRules.tsx:247", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/components/settings/IDEGlobalRules.tsx:247"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea52fdbbbfb0e778", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:109"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5780cef6d735846e", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/ui/CoverageVisualization.tsx:190", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/ui/CoverageVisualization.tsx:190"}, "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-9f0a3d1bcaf2c689", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/services/serverHealthService.ts:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/services/serverHealthService.ts:131"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46d539a61ddfb926", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/auto-research/components/AutoResearchPage.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/auto-research/components/AutoResearchPage.tsx:82"}, "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-bc1d909fc733ecc1", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/SidebarRepositoryCard.tsx:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/SidebarRepositoryCard.tsx:98"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6f8cb7b7627b630", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/RepositoryCard.tsx:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/RepositoryCard.tsx:80"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16748933bdf06433", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/StepHistoryCard.tsx:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/StepHistoryCard.tsx:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-850d906fab265ade", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/agent-work-orders/components/RealTimeStats.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/agent-work-orders/components/RealTimeStats.tsx:307"}, "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-6826b5bfa6b642f2", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectGridCard.tsx:137", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectGridCard.tsx:137"}, "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-bab6d16fe6c49c05", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ManageSubProjectsModal.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ManageSubProjectsModal.tsx:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9db2109d5384dbcd", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectTableRow.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectTableRow.tsx:104"}, "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-6800bd04564ea0be", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/SubProjectCard.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/SubProjectCard.tsx:49"}, "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-d74067ff1dccc597", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/SystemCard.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/SystemCard.tsx:25"}, "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-db9bf6fac0655eb2", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/AddExtensionD", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/AddExtensionDialog.tsx:182"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4bf3842a3c6bd1f", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/views/ProjectsView.tsx:231", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/views/ProjectsView.tsx:231"}, "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-db277c71a2856b75", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/knowledge/components/ProjectSourceI", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/knowledge/components/ProjectSourceInspector.tsx:133"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc0f6c754707afbd", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/ui/primitives/combobox.tsx:203", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/ui/primitives/combobox.tsx:203"}, "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-9334b0be6e949a07", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ToolUseCard.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ToolUseCard.tsx:59"}, "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-0c6fdd7f300a12dd", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ConversationContext.tsx:82", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ConversationContext.tsx:82"}, "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-69ddc66068277db7", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ModelSelector.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ModelSelector.tsx:72"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10e93df2763bdc68", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/progress/components/CrawlingProgress.tsx:162", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/progress/components/CrawlingProgress.tsx:162"}, "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-ccf96ca82a856e4d", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/SuggestedWorkflows.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/SuggestedWorkflows.tsx:61"}, "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-33dc372f3b378cd9", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowsPage.tsx:230", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowsPage.tsx:230"}, "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-b7e06c85fba9b293", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/ApprovalList.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/ApprovalList.tsx:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1e115159e939e4c", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/CommandEditor.tsx:179", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/CommandEditor.tsx:179"}, "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-aed9b5196a518be0", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunCard.tsx:42", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunCard.tsx:42"}, "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-42a84b8ceca799e9", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunView.tsx:281", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunView.tsx:281"}, "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-2ccab22bfeb61c8d", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/DependencySelect", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/DependencySelect.tsx:42"}, "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-7834f06674e9399d", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/NodeList.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/NodeList.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-4df3f021ff8e0913", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/shared/SideNavigation.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/shared/SideNavigation.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e0868e7aecaf061", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.tsx:235"}, "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-27c527f35c11477a", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.tsx:252", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.tsx:252"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99900971779faa5f", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/DocumentBrowserExample.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/DocumentBrowserExample.tsx:107"}, "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-42c069bec50967e7", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/AgentWorkOrderLayoutExample.tsx:1015", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/AgentWorkOrderLayoutExample.tsx:1015"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60ffa308229498fa", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/components/RealTimeStats", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/components/RealTimeStatsExample.tsx:112"}, "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-5ae87cbca1daec84", "name": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/components/StepHistoryCard.tsx:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/components/StepHistoryCard.tsx:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb04d0897d266d6a", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeTable.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeTable.tsx:129"}, "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-68e4762a14542845", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/TagInput.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/TagInput.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-c2b4bd4c4dbcbfa6", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeCard.tsx:201", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeCard.tsx:201"}, "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-c832e3030f6f3701", "name": "TODO/FIXME marker in shipping code \u2014 cortex-ui/src/features/knowledge/hooks/useKnowledgeQueries.ts:122", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 cortex-ui/src/features/knowledge/hooks/useKnowledgeQueries.ts:122"}, "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-8d5c446b50863035", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/InspectorHead", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/InspectorHeader.tsx:86"}, "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-115012025f11c45d", "name": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewer", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:100"}, "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-ff8d731f501a754a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewe", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:200"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73a495cc9cfdd0b6", "name": "Privileged port 230 in use", "shortDescription": {"text": "Privileged port 230 in use"}, "fullDescription": {"text": "Port 230 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80cf9ec0a4287ba6", "name": "Privileged port 123 in use", "shortDescription": {"text": "Privileged port 123 in use"}, "fullDescription": {"text": "Port 123 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac5b1988ef52a757", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ce33b9b4acae852", "name": "Dockerfile runs as root: cortex-ui/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: cortex-ui/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ca36632d07aa0b9", "name": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e5c398912607768", "name": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-memory/SKILL.md:162", "shortDescription": {"text": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-memory/SKILL.md:162"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86f2eb55cda6f7ee", "name": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-link-project/SKILL.md:296", "shortDescription": {"text": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-link-project/SKILL.md:296"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5e6d602a6ca4668", "name": "Insecure pattern 'exec_used' in cortex-ui/vite.config.ts:74", "shortDescription": {"text": "Insecure pattern 'exec_used' in cortex-ui/vite.config.ts:74"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e294951e0950ce2", "name": "Insecure pattern 'node_child_process' in cortex-ui/vite.config.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in cortex-ui/vite.config.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-77f9a35dadee1c19", "name": "Insecure pattern 'cors_wildcard' in cortex-ui/vite.config.ts:69", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in cortex-ui/vite.config.ts:69"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abf3ad294c0c7cc1", "name": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/components/settings/IDEGlobalRules.tsx:247", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/components/settings/IDEGlobalRules.tsx:247"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72d5810ceb003c81", "name": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:200", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:200"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ccb07423ec0ea791", "name": "Insecure pattern 'cors_wildcard' in python/src/server/main.py:200", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in python/src/server/main.py:200"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2174ad1fe50df08b", "name": "Insecure pattern 'tls_verify_false' in python/src/server/services/postman/postman_client.py:127", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in python/src/server/services/postman/postman_client.py:127"}, "fullDescription": {"text": "Found a known-risky pattern (tls_verify_false). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-270bd34c57bdf1c9", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d77ba4388dad75cb", "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-8a2678aff39d780d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-063997d8d14f8d5c", "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-4b15767decaf2d3d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9b706cff1088353", "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-1ef7a1d5b6de8eae", "name": "Very large file: cortex-ui/src/components/settings/RAGSettings.tsx (2507 lines)", "shortDescription": {"text": "Very large file: cortex-ui/src/components/settings/RAGSettings.tsx (2507 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-43bd745dfc126e06", "name": "Very large file: postmanSkill/scripts/postman_client.py (1542 lines)", "shortDescription": {"text": "Very large file: postmanSkill/scripts/postman_client.py (1542 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-178eb85587599899", "name": "Very large file: python/src/server/api_routes/ollama_api.py (1331 lines)", "shortDescription": {"text": "Very large file: python/src/server/api_routes/ollama_api.py (1331 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3cfdbdb2235bc9e2", "name": "Very large file: python/src/server/api_routes/projects_api.py (1870 lines)", "shortDescription": {"text": "Very large file: python/src/server/api_routes/projects_api.py (1870 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-bb11550f219e069d", "name": "Very large file: python/src/server/api_routes/knowledge_api.py (2179 lines)", "shortDescription": {"text": "Very large file: python/src/server/api_routes/knowledge_api.py (2179 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-4aa93d7b1bc0b328", "name": "Very large file: python/src/server/services/crawling/crawling_service.py (1085 lines)", "shortDescription": {"text": "Very large file: python/src/server/services/crawling/crawling_service.py (1085 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-5ae50256f248e653", "name": "Very large file: python/src/server/services/crawling/code_extraction_service.py (1781 lines)", "shortDescription": {"text": "Very large file: python/src/server/services/crawling/code_extraction_service.py (1781 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-6238c50687589f1a", "name": "Very large file: python/src/server/services/ollama/model_discovery_service.py (1122 lines)", "shortDescription": {"text": "Very large file: python/src/server/services/ollama/model_discovery_service.py (1122 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-c1e80b54be4ee1d6", "name": "Very large file: python/src/server/services/storage/code_storage_service.py (1410 lines)", "shortDescription": {"text": "Very large file: python/src/server/services/storage/code_storage_service.py (1410 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 738 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 235 placeholder/mock markers across 69 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbb5857940ba0dc2", "name": "Agent instruction/config may expose a secret: AGENTS.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: AGENTS.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdc7583058aa1d52", "name": "Agent instruction contains unpinned remote install: integrations/claude-code/extensions/cortex-move-project/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: integrations/claude-code/extensions/cortex-move-project/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f68fff6056a32f4", "name": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/.mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/.mcp.json"}, "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-124193c76303bd00", "name": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/skills/smart-explore/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/skills/smart-explore/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-c1ac769333c5e4a1", "name": "Agent instruction/config may expose a secret: postmanSkill/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: postmanSkill/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdfcea19fa37e23b", "name": "Agent authority lacks a verifier contract: .claude/commands/create-prd.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/create-prd.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-4fd1a02ef972c4c4", "name": "Agent instruction/config may expose a secret: .claude/commands/init-project.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/commands/init-project.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4e501dd3e58820e", "name": "Agent authority lacks a verifier contract: .claude/commands/commit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/commit.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-91eb906188e0f279", "name": "Agent authority lacks a verifier contract: .claude/commands/prp-any-agent/prp-any-cli-execute.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/prp-any-agent/prp-any-cli-execute.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-eebb140f50c84d65", "name": "Agent authority lacks a verifier contract: .claude/commands/validation/execution-report.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/validation/execution-report.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-06ddd2566df9c74c", "name": "Agent authority lacks a verifier contract: .claude/commands/validation/system-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/validation/system-review.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-f13cb3120d999832", "name": "Agent instruction/config may expose a secret: .claude/agents/library-researcher.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/agents/library-researcher.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60f48ec33be09dd0", "name": "Agent authority lacks a verifier contract: cortex-example-workflow/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: cortex-example-workflow/CLAUDE.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-8a9f1b9a96e8a256", "name": "Commented-code block (8 lines) in cortex-ui/src/components/settings/RAGSettings.tsx:846", "shortDescription": {"text": "Commented-code block (8 lines) in cortex-ui/src/components/settings/RAGSettings.tsx:846"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5805542a78232b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:784", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:784"}, "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-92cb9ff10af87e2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525"}, "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-c2f05c2570a20103", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/bugReportService.ts:164", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/bugReportService.ts:164"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7da21a7645d550e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/credentialsService.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/credentialsService.ts:109"}, "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-3bb10c2b8747091a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/ollamaService.ts:202", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/ollamaService.ts:202"}, "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-c2ec58ecc3e96d1f", "name": "Commented-code block (5 lines) in cortex-ui/src/features/agent-work-orders/state/agentWorkOrdersStore.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/agent-work-orders/state/agentWorkOrdersStore.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-87bce0cd4fe4e3f7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/features/projects/extensions/services/extensionService.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/features/projects/extensions/services/extensionService.ts:18"}, "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-c00cb408bd338f98", "name": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/apiClient.ts:76", "shortDescription": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/apiClient.ts: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-456fb90ce1bc398f", "name": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/tests/apiClient.test.ts:204", "shortDescription": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/tests/apiClient.test.ts:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d758713aa9c5659e", "name": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/scripts/manage_monitors.py:241", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/scripts/manage_monitors.py:241"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c8e0e944cc2725e", "name": "Legacy-named symbol `schema_v1` in postmanSkill/scripts/manage_pet_store_api.py:374", "shortDescription": {"text": "Legacy-named symbol `schema_v1` in postmanSkill/scripts/manage_pet_store_api.py:374"}, "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-3c07b0d72a304554", "name": "Legacy-named symbol `requests_v1` in postmanSkill/scripts/manage_pet_store_v10.py:232", "shortDescription": {"text": "Legacy-named symbol `requests_v1` in postmanSkill/scripts/manage_pet_store_v10.py:232"}, "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-cf1a5c25bf461c64", "name": "Legacy-named symbol `nDeprecated` in postmanSkill/utils/exceptions.py:186", "shortDescription": {"text": "Legacy-named symbol `nDeprecated` in postmanSkill/utils/exceptions.py:186"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c55384e564f3ae80", "name": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/utils/formatters.py:265", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/utils/formatters.py:265"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1839195e1060629f", "name": "Legacy-named symbol `hash_old` in python/tests/server/api_routes/test_file_hash_incremental_sync.py:101", "shortDescription": {"text": "Legacy-named symbol `hash_old` in python/tests/server/api_routes/test_file_hash_incremental_sync.py:101"}, "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-bec780b12c252429", "name": "Legacy-named symbol `model_copy` in python/tests/server/services/auto_research/test_auto_research_service.py:231", "shortDescription": {"text": "Legacy-named symbol `model_copy` in python/tests/server/services/auto_research/test_auto_research_service.py:231"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dec0f744949e2d0d", "name": "Legacy-named symbol `planning_prompt_v1` in python/tests/server/services/auto_research/test_auto_research_e2e.py:17", "shortDescription": {"text": "Legacy-named symbol `planning_prompt_v1` in python/tests/server/services/auto_research/test_auto_research_e2e.py:17"}, "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-015db7483c705525", "name": "Commented-code block (6 lines) in python/src/server/config/config.py:147", "shortDescription": {"text": "Commented-code block (6 lines) in python/src/server/config/config.py:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e971594c47a01d34", "name": "Commented-code block (5 lines) in python/src/server/api_routes/knowledge_api.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in python/src/server/api_routes/knowledge_api.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-3e07ed7c7658fe94", "name": "Commented-code block (6 lines) in python/src/server/services/credential_service.py:604", "shortDescription": {"text": "Commented-code block (6 lines) in python/src/server/services/credential_service.py:604"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c65a9f9901a38c6", "name": "Legacy-named symbol `model_copy` in python/src/server/services/auto_research_service.py:112", "shortDescription": {"text": "Legacy-named symbol `model_copy` in python/src/server/services/auto_research_service.py:112"}, "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-96d72a85a9fd79d0", "name": "Stub function `get_provider_name` (body is just `pass`/`return`) \u2014 python/src/server/services/embeddings/provider_error_", "shortDescription": {"text": "Stub function `get_provider_name` (body is just `pass`/`return`) \u2014 python/src/server/services/embeddings/provider_error_adapters.py:16"}, "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-1f22f0e83d529743", "name": "Commented-code block (6 lines) in python/src/server/services/crawling/helpers/url_handler.py:313", "shortDescription": {"text": "Commented-code block (6 lines) in python/src/server/services/crawling/helpers/url_handler.py:313"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c0c3d75c93e81eb", "name": "Commented-code block (35 lines) in python/src/server/services/ollama/model_discovery_service.py:136", "shortDescription": {"text": "Commented-code block (35 lines) in python/src/server/services/ollama/model_discovery_service.py:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69eb8b749acaeb23", "name": "Legacy-named symbol `nDeprecated` in python/src/server/services/postman/exceptions.py:186", "shortDescription": {"text": "Legacy-named symbol `nDeprecated` in python/src/server/services/postman/exceptions.py:186"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b8127d4429a098f5", "name": "Network/subprocess call without timeout or try/except \u2014 python/src/server/services/postman/formatters.py:257", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 python/src/server/services/postman/formatters.py:257"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5417a5f0affce13", "name": "52 env vars used in code but missing from .env.example", "shortDescription": {"text": "52 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `A2UI_GENERATION_TIMEOUT`, `A2UI_SERVICE_URL`, `CODE_SUMMARY_MAX_WORKERS`, `CONTEXTUAL_EMBEDDINGS_MAX_WORKERS`, `CORTEX_API_URL`, `CORTEX_TELEGRAM_BOT_TOKEN`, `CORTEX_TELEGRAM_CHAT_IDS`, `DEV` + 44 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npostmanSkill/scripts/postman_client.py:list_collections, python/src/server/services/postman/postman_client.py:list_collections\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npostmanSkill/scripts/postman_client.py:get_api_versions, postmanSkill/scripts/postman_client.py:get_api_version, python/src/server/services/postman/postman_client.py:get_api_versions, python/src/server/services/postman/postman_client.py:get_api_version\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-1dc0fd3b11900eb5", "name": "Frontend route `/projects/:projectId` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx", "shortDescription": {"text": "Frontend route `/projects/:projectId` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50c7d923c3514881", "name": "Frontend route `/agent-work-orders/:id` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx", "shortDescription": {"text": "Frontend route `/agent-work-orders/:id` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d2462b198041876", "name": "FastAPI POST `run_agent` without auth dependency \u2014 python/src/agents/server.py:164", "shortDescription": {"text": "FastAPI POST `run_agent` without auth dependency \u2014 python/src/agents/server.py:164"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14c9cb257c3cbf60", "name": "FastAPI POST `stream_chat` without auth dependency \u2014 python/src/agents/server.py:217", "shortDescription": {"text": "FastAPI POST `stream_chat` without auth dependency \u2014 python/src/agents/server.py:217"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd76f3d677a61d1d", "name": "FastAPI POST `stream_agent` without auth dependency \u2014 python/src/agents/server.py:342", "shortDescription": {"text": "FastAPI POST `stream_agent` without auth dependency \u2014 python/src/agents/server.py:342"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-931f2dc109801ef4", "name": "FastAPI POST `validate_instance_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:207", "shortDescription": {"text": "FastAPI POST `validate_instance_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:207"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8609da37b6eaa865", "name": "FastAPI POST `analyze_embedding_route_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:257", "shortDescription": {"text": "FastAPI POST `analyze_embedding_route_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:257"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-044f8c8d88063151", "name": "FastAPI DELETE `clear_ollama_cache_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:350", "shortDescription": {"text": "FastAPI DELETE `clear_ollama_cache_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:350"}, "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-4668071dd6359a22", "name": "FastAPI POST `discover_and_store_models_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:4", "shortDescription": {"text": "FastAPI POST `discover_and_store_models_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:411"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0bbc0035f8610682", "name": "FastAPI POST `discover_models_with_real_details` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:95", "shortDescription": {"text": "FastAPI POST `discover_models_with_real_details` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:957"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aeb4a7fbffe0c9c2", "name": "FastAPI POST `test_model_capabilities_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:123", "shortDescription": {"text": "FastAPI POST `test_model_capabilities_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:1231"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5eb65eff1b41f10", "name": "FastAPI POST `create_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:391", "shortDescription": {"text": "FastAPI POST `create_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:391"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1e74737befc6bc2", "name": "FastAPI PUT `update_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:643", "shortDescription": {"text": "FastAPI PUT `update_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:643"}, "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-1d0942a87c814b2d", "name": "FastAPI DELETE `delete_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:814", "shortDescription": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:814"}, "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-bd53cd1b5122d833", "name": "FastAPI POST `create_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1076", "shortDescription": {"text": "FastAPI POST `create_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1076"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-664c1696d559d425", "name": "FastAPI PUT `update_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1281", "shortDescription": {"text": "FastAPI PUT `update_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1281"}, "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-c4eae2d615bc7219", "name": "FastAPI DELETE `delete_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1336", "shortDescription": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1336"}, "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-c868f3c5682ee0b6", "name": "FastAPI PUT `mcp_update_task_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1376", "shortDescription": {"text": "FastAPI PUT `mcp_update_task_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1376"}, "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-4c2542cd1b339a00", "name": "FastAPI POST `create_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1471", "shortDescription": {"text": "FastAPI POST `create_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1471"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3f02a124165e107", "name": "FastAPI PUT `update_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1554", "shortDescription": {"text": "FastAPI PUT `update_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1554"}, "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-bbd18a3b47e65b0e", "name": "FastAPI DELETE `delete_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1602", "shortDescription": {"text": "FastAPI DELETE `delete_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1602"}, "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-165440673b498878", "name": "FastAPI POST `create_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1680", "shortDescription": {"text": "FastAPI POST `create_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1680"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa7575e94857e450", "name": "FastAPI POST `restore_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1770", "shortDescription": {"text": "FastAPI POST `restore_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1770"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18a0afef00b4f44b", "name": "FastAPI PUT `update_git_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1858", "shortDescription": {"text": "FastAPI PUT `update_git_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1858"}, "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-7a41f1a7107f31b1", "name": "FastAPI POST `resolve_approval` without auth dependency \u2014 python/src/server/api_routes/workflow_approval_api.py:55", "shortDescription": {"text": "FastAPI POST `resolve_approval` without auth dependency \u2014 python/src/server/api_routes/workflow_approval_api.py:55"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d29a7d3e07dbc805", "name": "FastAPI POST `start_optimization` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:43", "shortDescription": {"text": "FastAPI POST `start_optimization` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:43"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69d9f359f45f4ab1", "name": "FastAPI POST `apply_job_result` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:78", "shortDescription": {"text": "FastAPI POST `apply_job_result` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.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-c3dc083e24a7ba3f", "name": "FastAPI POST `cancel_job` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:89", "shortDescription": {"text": "FastAPI POST `cancel_job` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:89"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa58f6d10e465380", "name": "FastAPI DELETE `deregister_backend` without auth dependency \u2014 python/src/server/api_routes/workflow_backend_api.py:120", "shortDescription": {"text": "FastAPI DELETE `deregister_backend` without auth dependency \u2014 python/src/server/api_routes/workflow_backend_api.py:120"}, "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-7a6473e4c36966e0", "name": "FastAPI POST `create_collection` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:71", "shortDescription": {"text": "FastAPI POST `create_collection` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:71"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30899e245a66b967", "name": "FastAPI POST `upsert_request` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:89", "shortDescription": {"text": "FastAPI POST `upsert_request` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:89"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be208e80829d1bad", "name": "FastAPI PUT `upsert_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:107", "shortDescription": {"text": "FastAPI PUT `upsert_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:107"}, "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-a41d62bae19fc4af", "name": "FastAPI POST `sync_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:125", "shortDescription": {"text": "FastAPI POST `sync_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:125"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fba9f043600a25c1", "name": "FastAPI POST `create_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:62", "shortDescription": {"text": "FastAPI POST `create_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:62"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4e29c2ec30b8549", "name": "FastAPI PUT `update_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:98", "shortDescription": {"text": "FastAPI PUT `update_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:98"}, "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-1945730391b740be", "name": "FastAPI DELETE `delete_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:118", "shortDescription": {"text": "FastAPI DELETE `delete_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:118"}, "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-eb0af50e6bb80da4", "name": "FastAPI POST `export_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:133", "shortDescription": {"text": "FastAPI POST `export_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.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-d9f243110f491367", "name": "FastAPI POST `create_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:188", "shortDescription": {"text": "FastAPI POST `create_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:188"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f929d6da46821ec", "name": "FastAPI PUT `update_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:209", "shortDescription": {"text": "FastAPI PUT `update_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:209"}, "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-3ba30d56cd361ac9", "name": "FastAPI DELETE `delete_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:231", "shortDescription": {"text": "FastAPI DELETE `delete_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.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-43233e49b9c28131", "name": "FastAPI POST `create_session` without auth dependency \u2014 python/src/server/api_routes/sessions_api.py:47", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 python/src/server/api_routes/sessions_api.py:47"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1939292137d3b558", "name": "FastAPI POST `create_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:37", "shortDescription": {"text": "FastAPI POST `create_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:37"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5093e4c4623e6f2a", "name": "FastAPI POST `cancel_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:148", "shortDescription": {"text": "FastAPI POST `cancel_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:148"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63c5d6e3bb2f2e1e", "name": "FastAPI PUT `upsert_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:15", "shortDescription": {"text": "FastAPI PUT `upsert_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:15"}, "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-5cf62609b2f48b62", "name": "FastAPI DELETE `delete_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:43", "shortDescription": {"text": "FastAPI DELETE `delete_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:43"}, "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-3f2c380c1bbd4bea", "name": "FastAPI POST `accept_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:33", "shortDescription": {"text": "FastAPI POST `accept_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:33"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80d3decee73b1107", "name": "FastAPI POST `dismiss_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:52", "shortDescription": {"text": "FastAPI POST `dismiss_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:52"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a0c484001756c51", "name": "FastAPI POST `trigger_backfill` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:67", "shortDescription": {"text": "FastAPI POST `trigger_backfill` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.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-662de8725f5f448d", "name": "FastAPI POST `run_pipeline` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:85", "shortDescription": {"text": "FastAPI POST `run_pipeline` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:85"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1b0790c9f2b1ce2", "name": "FastAPI POST `validate_extension_standalone` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:85", "shortDescription": {"text": "FastAPI POST `validate_extension_standalone` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:85"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63b9e70bd2b679be", "name": "FastAPI POST `create_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:140", "shortDescription": {"text": "FastAPI POST `create_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:140"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b9317c2ca37170d", "name": "FastAPI PUT `update_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:195", "shortDescription": {"text": "FastAPI PUT `update_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:195"}, "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-aedc69a7bc329cf6", "name": "FastAPI DELETE `delete_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:239", "shortDescription": {"text": "FastAPI DELETE `delete_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:239"}, "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-f77e27954a173167", "name": "FastAPI POST `validate_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:262", "shortDescription": {"text": "FastAPI POST `validate_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:262"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c5e52a702dab2a2", "name": "FastAPI PUT `update_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:368", "shortDescription": {"text": "FastAPI PUT `update_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:368"}, "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-73982f9bee635349", "name": "FastAPI DELETE `delete_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:391", "shortDescription": {"text": "FastAPI DELETE `delete_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:391"}, "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-b6295b1ed84e42cd", "name": "FastAPI PATCH `set_extension_default` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:410", "shortDescription": {"text": "FastAPI PATCH `set_extension_default` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:410"}, "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-3a8797658a8b63f5", "name": "FastAPI POST `sync_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:432", "shortDescription": {"text": "FastAPI POST `sync_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:432"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-407c0432520dd418", "name": "FastAPI DELETE `unlink_system_from_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:579", "shortDescription": {"text": "FastAPI DELETE `unlink_system_from_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:579"}, "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-6c275a36b7efb44c", "name": "FastAPI POST `link_extension_to_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:610", "shortDescription": {"text": "FastAPI POST `link_extension_to_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:610"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8d7938eb158ee19", "name": "FastAPI DELETE `unlink_extension_from_project_route` without auth dependency \u2014 python/src/server/api_routes/extensions_a", "shortDescription": {"text": "FastAPI DELETE `unlink_extension_from_project_route` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:631"}, "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-6f1340cc7d7d06a5", "name": "FastAPI POST `install_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:652", "shortDescription": {"text": "FastAPI POST `install_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:652"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbf1d49e895a00f9", "name": "FastAPI POST `remove_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:692", "shortDescription": {"text": "FastAPI POST `remove_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:692"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc87b17e62638cad", "name": "FastAPI PUT `save_project_override` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:732", "shortDescription": {"text": "FastAPI PUT `save_project_override` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:732"}, "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-2c2269fd5fee1ba8", "name": "FastAPI POST `create_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:96", "shortDescription": {"text": "FastAPI POST `create_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:96"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b62eceb37a19a272", "name": "FastAPI PUT `update_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:187", "shortDescription": {"text": "FastAPI PUT `update_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:187"}, "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-2592383ef21f62c9", "name": "FastAPI DELETE `delete_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:247", "shortDescription": {"text": "FastAPI DELETE `delete_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:247"}, "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-a81e0f4a432f84b7", "name": "FastAPI POST `initialize_credentials_endpoint` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:26", "shortDescription": {"text": "FastAPI POST `initialize_credentials_endpoint` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:267"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8cab08b964ba764", "name": "FastAPI POST `check_credential_status` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:347", "shortDescription": {"text": "FastAPI POST `check_credential_status` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:347"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-019c9b46b7bf18de", "name": "FastAPI PUT `update_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:454", "shortDescription": {"text": "FastAPI PUT `update_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:454"}, "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-81bbfcde47158a7a", "name": "FastAPI DELETE `delete_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:479", "shortDescription": {"text": "FastAPI DELETE `delete_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:479"}, "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-b76ace235d24abe5", "name": "FastAPI POST `refresh_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:777", "shortDescription": {"text": "FastAPI POST `refresh_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:777"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce6bbe46c3b9e63b", "name": "FastAPI POST `crawl_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:895", "shortDescription": {"text": "FastAPI POST `crawl_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:895"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cde51e48c174f29a", "name": "FastAPI POST `upload_document` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1269", "shortDescription": {"text": "FastAPI POST `upload_document` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1269"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0382eb85d69593be", "name": "FastAPI POST `ingest_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1350", "shortDescription": {"text": "FastAPI POST `ingest_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1350"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b10b130939b17cf0", "name": "FastAPI POST `sync_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1431", "shortDescription": {"text": "FastAPI POST `sync_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1431"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0538b9a0af0a5a7", "name": "FastAPI POST `append_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1614", "shortDescription": {"text": "FastAPI POST `append_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1614"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d07cd49395248ce", "name": "FastAPI POST `search_knowledge_items` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1848", "shortDescription": {"text": "FastAPI POST `search_knowledge_items` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1848"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-138d9a72aefd1eec", "name": "FastAPI POST `perform_rag_query` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1935", "shortDescription": {"text": "FastAPI POST `perform_rag_query` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1935"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-127f2b726d0d568a", "name": "FastAPI POST `search_code_examples` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1974", "shortDescription": {"text": "FastAPI POST `search_code_examples` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1974"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b779a508121dd343", "name": "FastAPI POST `search_code_examples_simple` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2012", "shortDescription": {"text": "FastAPI POST `search_code_examples_simple` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2012"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6136fe73d37102b", "name": "FastAPI DELETE `delete_source` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2037", "shortDescription": {"text": "FastAPI DELETE `delete_source` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2037"}, "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-62e4f31da4ecf4e3", "name": "FastAPI POST `stop_crawl_task` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2114", "shortDescription": {"text": "FastAPI POST `stop_crawl_task` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2114"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5c083534dbf0193", "name": "FastAPI POST `create_github_issue` without auth dependency \u2014 python/src/server/api_routes/bug_report_api.py:194", "shortDescription": {"text": "FastAPI POST `create_github_issue` without auth dependency \u2014 python/src/server/api_routes/bug_report_api.py:194"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-080f223774ec36fc", "name": "FastAPI POST `execute_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:17", "shortDescription": {"text": "FastAPI POST `execute_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:17"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d10408dedb7f82e", "name": "FastAPI PUT `mark_accessed` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:59", "shortDescription": {"text": "FastAPI PUT `mark_accessed` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:59"}, "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-1f98e0994e0c657e", "name": "FastAPI PUT `update_status` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:67", "shortDescription": {"text": "FastAPI PUT `update_status` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:67"}, "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-01c7b9c57c6a4df8", "name": "FastAPI DELETE `delete_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:77", "shortDescription": {"text": "FastAPI DELETE `delete_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:77"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cd56b7b844b9404", "name": "FastAPI POST `create_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:74", "shortDescription": {"text": "FastAPI POST `create_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.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-a4ace62c55bfea52", "name": "FastAPI PATCH `update_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:121", "shortDescription": {"text": "FastAPI PATCH `update_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:121"}, "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-67a148b182922669", "name": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:139", "shortDescription": {"text": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:139"}, "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-ab115102db02db81", "name": "FastAPI POST `save_message` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:154", "shortDescription": {"text": "FastAPI POST `save_message` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:154"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ac45fd4194419f5", "name": "FastAPI PATCH `update_profile` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:228", "shortDescription": {"text": "FastAPI PATCH `update_profile` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:228"}, "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-52551a2dd78725a6", "name": "FastAPI POST `clear_version_cache` without auth dependency \u2014 python/src/server/api_routes/version_api.py:108", "shortDescription": {"text": "FastAPI POST `clear_version_cache` without auth dependency \u2014 python/src/server/api_routes/version_api.py:108"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb295e46efc215be", "name": "Dangling fetch: POST /api/providers/validate (cortex-ui/src/components/settings/OllamaConfigurationPanel.tsx:114)", "shortDescription": {"text": "Dangling fetch: POST /api/providers/validate (cortex-ui/src/components/settings/OllamaConfigurationPanel.tsx:114)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/OllamaConfigurationPanel.tsx:114` calls `POST /api/providers/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/providers/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36a547c655b05701", "name": "Dangling fetch: GET /api/ollama/instances/health?instance_urls=${encodeURIComponent(normalizedUrl)} (cortex-ui/src/compo", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/instances/health?instance_urls=${encodeURIComponent(normalizedUrl)} (cortex-ui/src/components/settings/RAGSettings.tsx:367)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/RAGSettings.tsx:367` calls `GET /api/ollama/instances/health?instance_urls=${encodeURIComponent(normalizedUrl)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/instances/health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b80bf91c97d16b2", "name": "Dangling fetch: GET /api/providers/${provider}/status (cortex-ui/src/components/settings/RAGSettings.tsx:477)", "shortDescription": {"text": "Dangling fetch: GET /api/providers/${provider}/status (cortex-ui/src/components/settings/RAGSettings.tsx:477)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/RAGSettings.tsx:477` calls `GET /api/providers/${provider}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/providers/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba8bc983e098fdea", "name": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/RAGSettings.tsx:784)", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/RAGSettings.tsx:784)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/RAGSettings.tsx:784` calls `GET /api/ollama/models?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-daa1ad70be28a84c", "name": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/OllamaModelSelectionModal", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525` calls `GET /api/ollama/models?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb34eeee9901032c", "name": "Dangling fetch: GET /api/ollama/models/stored (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:698)", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/models/stored (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:698)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:698` calls `GET /api/ollama/models/stored` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/models/stored`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e904adb06be9ca31", "name": "Dangling fetch: GET /api/ollama/models?${instanceUrlParams}${fetchDetailsParam} (cortex-ui/src/components/settings/Ollam", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/models?${instanceUrlParams}${fetchDetailsParam} (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:743)"}, "fullDescription": {"text": "`cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:743` calls `GET /api/ollama/models?${instanceUrlParams}${fetchDetailsParam}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-717621bed63fdfe9", "name": "Dangling fetch: GET /api/system/version (cortex-ui/src/services/bugReportService.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /api/system/version (cortex-ui/src/services/bugReportService.ts:82)"}, "fullDescription": {"text": "`cortex-ui/src/services/bugReportService.ts:82` calls `GET /api/system/version` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/system/version`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9b59929eacb5921", "name": "Dangling fetch: GET /api/mcp/health (cortex-ui/src/services/bugReportService.ts:118)", "shortDescription": {"text": "Dangling fetch: GET /api/mcp/health (cortex-ui/src/services/bugReportService.ts:118)"}, "fullDescription": {"text": "`cortex-ui/src/services/bugReportService.ts:118` calls `GET /api/mcp/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mcp/health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbb1a47f2ec5a3b3", "name": "Dangling fetch: GET /api/agents/health (cortex-ui/src/services/bugReportService.ts:119)", "shortDescription": {"text": "Dangling fetch: GET /api/agents/health (cortex-ui/src/services/bugReportService.ts:119)"}, "fullDescription": {"text": "`cortex-ui/src/services/bugReportService.ts:119` calls `GET /api/agents/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-279e297336ff4fcc", "name": "Dangling fetch: GET /agents/health (cortex-ui/src/features/chat/services/chatService.ts:184)", "shortDescription": {"text": "Dangling fetch: GET /agents/health (cortex-ui/src/features/chat/services/chatService.ts:184)"}, "fullDescription": {"text": "`cortex-ui/src/features/chat/services/chatService.ts:184` calls `GET /agents/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agents/health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7157dfa53a5b604", "name": "Unused endpoint: POST /agents/run", "shortDescription": {"text": "Unused endpoint: POST /agents/run"}, "fullDescription": {"text": "`python/src/agents/server.py` declares `POST /agents/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-5343b4acd83d23bb", "name": "Unused endpoint: GET /agents/list", "shortDescription": {"text": "Unused endpoint: GET /agents/list"}, "fullDescription": {"text": "`python/src/agents/server.py` declares `GET /agents/list` 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-2cc7dcaa726db4e9", "name": "Unused endpoint: POST /agents/{agent_type}/stream", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_type}/stream"}, "fullDescription": {"text": "`python/src/agents/server.py` declares `POST /agents/{agent_type}/stream` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`python/src/server/main.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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`python/src/server/main.py` declares `GET /api/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6f48e60c30777ab", "name": "Unused endpoint: GET /config", "shortDescription": {"text": "Unused endpoint: GET /config"}, "fullDescription": {"text": "`python/src/server/api_routes/mcp_api.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-0729b84d4e27d0b9", "name": "Unused endpoint: GET /clients", "shortDescription": {"text": "Unused endpoint: GET /clients"}, "fullDescription": {"text": "`python/src/server/api_routes/mcp_api.py` declares `GET /clients` 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-b15d518d538de57d", "name": "Unused endpoint: GET /sessions", "shortDescription": {"text": "Unused endpoint: GET /sessions"}, "fullDescription": {"text": "`python/src/server/api_routes/mcp_api.py` declares `GET /sessions` 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-2ab9bf5db6820af4", "name": "Unused endpoint: GET /models", "shortDescription": {"text": "Unused endpoint: GET /models"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `GET /models` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7c2c0c529027a8f", "name": "Unused endpoint: GET /instances/health", "shortDescription": {"text": "Unused endpoint: GET /instances/health"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `GET /instances/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34c0472a1f1fafe5", "name": "Unused endpoint: POST /validate", "shortDescription": {"text": "Unused endpoint: POST /validate"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `POST /validate` 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-59643982321f0cff", "name": "Unused endpoint: POST /embedding/route", "shortDescription": {"text": "Unused endpoint: POST /embedding/route"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `POST /embedding/route` 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-f9a684a2a51dce02", "name": "Unused endpoint: GET /embedding/routes", "shortDescription": {"text": "Unused endpoint: GET /embedding/routes"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `GET /embedding/routes` 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-1461946ab835599d", "name": "Unused endpoint: DELETE /cache", "shortDescription": {"text": "Unused endpoint: DELETE /cache"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `DELETE /cache` 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-92af2c0f7c2f9b84", "name": "Unused endpoint: POST /models/discover-and-store", "shortDescription": {"text": "Unused endpoint: POST /models/discover-and-store"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `POST /models/discover-and-store` 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-e200dc9d2a582d4d", "name": "Unused endpoint: GET /models/stored", "shortDescription": {"text": "Unused endpoint: GET /models/stored"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `GET /models/stored` 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-f907aabef2892682", "name": "Unused endpoint: POST /models/discover-with-details", "shortDescription": {"text": "Unused endpoint: POST /models/discover-with-details"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `POST /models/discover-with-details` 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-b8ae44ddf3a1e19c", "name": "Unused endpoint: POST /models/test-capabilities", "shortDescription": {"text": "Unused endpoint: POST /models/test-capabilities"}, "fullDescription": {"text": "`python/src/server/api_routes/ollama_api.py` declares `POST /models/test-capabilities` 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-c1e1ee09590b0a49", "name": "Unused endpoint: GET /projects", "shortDescription": {"text": "Unused endpoint: GET /projects"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects` 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-58666816ba500374", "name": "Unused endpoint: POST /projects", "shortDescription": {"text": "Unused endpoint: POST /projects"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `POST /projects` 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-1d74fdd4985b3390", "name": "Unused endpoint: GET /projects/health", "shortDescription": {"text": "Unused endpoint: GET /projects/health"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-928e4bae3c6c33a6", "name": "Unused endpoint: GET /projects/task-counts", "shortDescription": {"text": "Unused endpoint: GET /projects/task-counts"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/task-counts` 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-8276e9a42f5cb13a", "name": "Unused endpoint: GET /projects/{project_id}", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_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-40f12fcf8e9461fb", "name": "Unused endpoint: PUT /projects/{project_id}", "shortDescription": {"text": "Unused endpoint: PUT /projects/{project_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `PUT /projects/{project_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-6053ce9a037345d2", "name": "Unused endpoint: GET /projects/{project_id}/children", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/children"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/children` 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-757ec6dc0d84b69c", "name": "Unused endpoint: DELETE /projects/{project_id}", "shortDescription": {"text": "Unused endpoint: DELETE /projects/{project_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `DELETE /projects/{project_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-d46582c91c1411f3", "name": "Unused endpoint: GET /projects/{project_id}/features", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/features"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/features` 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-3fba460f71b5f01f", "name": "Unused endpoint: GET /projects/{project_id}/stats", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/stats"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c17e6174cdb7888", "name": "Unused endpoint: GET /projects/{project_id}/tasks", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/tasks"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b3eb3012ac06c04", "name": "Unused endpoint: POST /tasks", "shortDescription": {"text": "Unused endpoint: POST /tasks"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `POST /tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd0e06afbaab19b3", "name": "Unused endpoint: GET /tasks", "shortDescription": {"text": "Unused endpoint: GET /tasks"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e30433c1fac6e869", "name": "Unused endpoint: GET /tasks/{task_id}", "shortDescription": {"text": "Unused endpoint: GET /tasks/{task_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /tasks/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06138fdfa02bf80e", "name": "Unused endpoint: PUT /tasks/{task_id}", "shortDescription": {"text": "Unused endpoint: PUT /tasks/{task_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `PUT /tasks/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4605b7aabca6a640", "name": "Unused endpoint: DELETE /tasks/{task_id}", "shortDescription": {"text": "Unused endpoint: DELETE /tasks/{task_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `DELETE /tasks/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-98cf84582cbab755", "name": "Unused endpoint: PUT /mcp/tasks/{task_id}/status", "shortDescription": {"text": "Unused endpoint: PUT /mcp/tasks/{task_id}/status"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `PUT /mcp/tasks/{task_id}/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d07ed12ac9b179ad", "name": "Unused endpoint: GET /projects/{project_id}/docs", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/docs"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/docs` 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-495496c0ae2906f3", "name": "Unused endpoint: POST /projects/{project_id}/docs", "shortDescription": {"text": "Unused endpoint: POST /projects/{project_id}/docs"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `POST /projects/{project_id}/docs` 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-0610a773aa456ff0", "name": "Unused endpoint: GET /projects/{project_id}/docs/{doc_id}", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/docs/{doc_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/docs/{doc_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-fde576e8cb20ce52", "name": "Unused endpoint: PUT /projects/{project_id}/docs/{doc_id}", "shortDescription": {"text": "Unused endpoint: PUT /projects/{project_id}/docs/{doc_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `PUT /projects/{project_id}/docs/{doc_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-871f82f6cb23ab26", "name": "Unused endpoint: DELETE /projects/{project_id}/docs/{doc_id}", "shortDescription": {"text": "Unused endpoint: DELETE /projects/{project_id}/docs/{doc_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `DELETE /projects/{project_id}/docs/{doc_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-8eb50214d1d1e5a3", "name": "Unused endpoint: GET /projects/{project_id}/versions", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/versions"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/versions` 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-4428cb06bff0d072", "name": "Unused endpoint: POST /projects/{project_id}/versions", "shortDescription": {"text": "Unused endpoint: POST /projects/{project_id}/versions"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `POST /projects/{project_id}/versions` 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-6f2537f4ff95938c", "name": "Unused endpoint: GET /projects/{project_id}/versions/{field_name}/{version_number}", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/versions/{field_name}/{version_number}"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/versions/{field_name}/{version_number}` 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-eacd1a0ed74558a4", "name": "Unused endpoint: POST /projects/{project_id}/versions/{field_name}/{version_number}/restore", "shortDescription": {"text": "Unused endpoint: POST /projects/{project_id}/versions/{field_name}/{version_number}/restore"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `POST /projects/{project_id}/versions/{field_name}/{version_number}/restore` 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-a4f35f7d4dfc645b", "name": "Unused endpoint: GET /projects/{project_id}/knowledge-sources", "shortDescription": {"text": "Unused endpoint: GET /projects/{project_id}/knowledge-sources"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `GET /projects/{project_id}/knowledge-sources` 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-f01525b3cea5e814", "name": "Unused endpoint: PUT /projects/{project_id}/systems/{system_id}/git-status", "shortDescription": {"text": "Unused endpoint: PUT /projects/{project_id}/systems/{system_id}/git-status"}, "fullDescription": {"text": "`python/src/server/api_routes/projects_api.py` declares `PUT /projects/{project_id}/systems/{system_id}/git-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0518558dda792269", "name": "Unused endpoint: GET /approvals", "shortDescription": {"text": "Unused endpoint: GET /approvals"}, "fullDescription": {"text": "`python/src/server/api_routes/workflow_approval_api.py` declares `GET /approvals` 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-0a39229a0ad70788", "name": "Unused endpoint: GET /approvals/{approval_id}", "shortDescription": {"text": "Unused endpoint: GET /approvals/{approval_id}"}, "fullDescription": {"text": "`python/src/server/api_routes/workflow_approval_api.py` declares `GET /approvals/{approval_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-5a1daac062190eab", "name": "Unused endpoint: POST /approvals/{approval_id}/resolve", "shortDescription": {"text": "Unused endpoint: POST /approvals/{approval_id}/resolve"}, "fullDescription": {"text": "`python/src/server/api_routes/workflow_approval_api.py` declares `POST /approvals/{approval_id}/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-3d76e8ae340e1eec", "name": "Unused endpoint: GET /suites", "shortDescription": {"text": "Unused endpoint: GET /suites"}, "fullDescription": {"text": "`python/src/server/api_routes/auto_research_api.py` declares `GET /suites` 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/21637"}, "properties": {"repository": "trezero/cortex", "repoUrl": "https://github.com/trezero/cortex", "branch": "main"}, "results": [{"ruleId": "scanner-b7d8d7428b7e9f65", "level": "note", "message": {"text": "Possibly dead Python function: execute_curl"}, "properties": {"repobilityId": "432995e8a5285bb0", "scanner": "scanner-primary", "fingerprint": "b7d8d7428b7e9f65", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-77d1d3a2ed3c12b5", "level": "note", "message": {"text": "Possibly dead Python function: run_collection"}, "properties": {"repobilityId": "5e13ac64cfc2557d", "scanner": "scanner-primary", "fingerprint": "77d1d3a2ed3c12b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:800"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4df3d2dc963ee321", "level": "note", "message": {"text": "Possibly dead Python function: update_api"}, "properties": {"repobilityId": "116ef74dd290c5c5", "scanner": "scanner-primary", "fingerprint": "4df3d2dc963ee321", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1061"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3e1dfca6f531b97", "level": "note", "message": {"text": "Possibly dead Python function: delete_api"}, "properties": {"repobilityId": "dfaeb4bfdea3d6c3", "scanner": "scanner-primary", "fingerprint": "d3e1dfca6f531b97", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1076"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3c57da59897e696", "level": "note", "message": {"text": "Possibly dead Python function: update_spec"}, "properties": {"repobilityId": "8631fe97b50a78e2", "scanner": "scanner-primary", "fingerprint": "c3c57da59897e696", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1224"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4b615f86763ce3e", "level": "note", "message": {"text": "Possibly dead Python function: delete_spec"}, "properties": {"repobilityId": "eceeb5d32f3316db", "scanner": "scanner-primary", "fingerprint": "b4b615f86763ce3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1249"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c60fdb7867b211e9", "level": "note", "message": {"text": "Possibly dead Python function: create_spec_file"}, "properties": {"repobilityId": "97a4159129ce26c4", "scanner": "scanner-primary", "fingerprint": "c60fdb7867b211e9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1266"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0e3c83c2bbaf927", "level": "note", "message": {"text": "Possibly dead Python function: update_spec_file"}, "properties": {"repobilityId": "e719720dfa47cb79", "scanner": "scanner-primary", "fingerprint": "e0e3c83c2bbaf927", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1298"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4a5e2cc0c27e43e", "level": "note", "message": {"text": "Possibly dead Python function: delete_spec_file"}, "properties": {"repobilityId": "1c29016033e504f8", "scanner": "scanner-primary", "fingerprint": "b4a5e2cc0c27e43e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1342"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-420af5ac37f7f5f4", "level": "note", "message": {"text": "Possibly dead Python function: list_collections_from_spec"}, "properties": {"repobilityId": "137ed3e296486144", "scanner": "scanner-primary", "fingerprint": "420af5ac37f7f5f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1410"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04cbfba9ab49ea3d", "level": "note", "message": {"text": "Possibly dead Python function: generate_spec_from_collection"}, "properties": {"repobilityId": "d8af4b1439e7cd2d", "scanner": "scanner-primary", "fingerprint": "04cbfba9ab49ea3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1428"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d16eac2eb6d48632", "level": "note", "message": {"text": "Possibly dead Python function: list_mocks"}, "properties": {"repobilityId": "d6db3088d1ee538f", "scanner": "scanner-primary", "fingerprint": "d16eac2eb6d48632", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1463"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb33c9219c4d4063", "level": "note", "message": {"text": "Possibly dead Python function: create_mock"}, "properties": {"repobilityId": "1bc7b9af2a3cf9a4", "scanner": "scanner-primary", "fingerprint": "cb33c9219c4d4063", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1497"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b531af7fd725d5ce", "level": "note", "message": {"text": "Possibly dead Python function: update_mock"}, "properties": {"repobilityId": "e9d852b56e0a9899", "scanner": "scanner-primary", "fingerprint": "b531af7fd725d5ce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1515"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5fe7a8bf05bd3b6b", "level": "note", "message": {"text": "Possibly dead Python function: delete_mock"}, "properties": {"repobilityId": "b48279c3d3c0fc81", "scanner": "scanner-primary", "fingerprint": "5fe7a8bf05bd3b6b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/scripts/postman_client.py:1530"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9354011ba0c50b7d", "level": "note", "message": {"text": "Possibly dead Python function: format_monitor"}, "properties": {"repobilityId": "7326ca49d7f3bae9", "scanner": "scanner-primary", "fingerprint": "9354011ba0c50b7d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/utils/formatters.py:181"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63a31983f80cfee9", "level": "note", "message": {"text": "Possibly dead Python function: format_monitor_runs_summary"}, "properties": {"repobilityId": "bead806784375aa8", "scanner": "scanner-primary", "fingerprint": "63a31983f80cfee9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/utils/formatters.py:271"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2658a5130c3f5dfd", "level": "note", "message": {"text": "Possibly dead Python function: example_1_enhanced_error_handling"}, "properties": {"repobilityId": "0602028d76880371", "scanner": "scanner-primary", "fingerprint": "2658a5130c3f5dfd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:31"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-67143c00e7dd9274", "level": "note", "message": {"text": "Possibly dead Python function: example_2_collection_version_control"}, "properties": {"repobilityId": "3aa5494c481e8c71", "scanner": "scanner-primary", "fingerprint": "67143c00e7dd9274", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:58"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ffc1a170680db35b", "level": "note", "message": {"text": "Possibly dead Python function: example_3_collection_duplication"}, "properties": {"repobilityId": "92127c820a939e84", "scanner": "scanner-primary", "fingerprint": "ffc1a170680db35b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:139"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8558567a01cabd5c", "level": "note", "message": {"text": "Possibly dead Python function: example_4_environment_secrets"}, "properties": {"repobilityId": "335174090494e587", "scanner": "scanner-primary", "fingerprint": "8558567a01cabd5c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:189"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-429cc0ce8ad99545", "level": "note", "message": {"text": "Possibly dead Python function: example_5_environment_updates"}, "properties": {"repobilityId": "3a65088469ff5f11", "scanner": "scanner-primary", "fingerprint": "429cc0ce8ad99545", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:241"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-911c16405d429a0c", "level": "note", "message": {"text": "Possibly dead Python function: example_6_environment_duplication"}, "properties": {"repobilityId": "bc7433f95dd5471b", "scanner": "scanner-primary", "fingerprint": "911c16405d429a0c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/examples/phase1_features.py:297"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3106a4054701f9c", "level": "note", "message": {"text": "Possibly dead Python function: add_tool"}, "properties": {"repobilityId": "07bc65106a4b92b8", "scanner": "scanner-primary", "fingerprint": "f3106a4054701f9c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/agents/base_agent.py:243"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1535f27c4a9e0901", "level": "note", "message": {"text": "Possibly dead Python function: add_system_prompt_function"}, "properties": {"repobilityId": "6d6f691850d59ee6", "scanner": "scanner-primary", "fingerprint": "1535f27c4a9e0901", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/agents/base_agent.py:253"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b95836a833827df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 check-env.js:73"}, "properties": {"repobilityId": "d98e49238da6b7f6", "scanner": "scanner-primary", "fingerprint": "7b95836a833827df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b28703a26fda4aed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/vite.config.ts:40"}, "properties": {"repobilityId": "b4f3ec99516bd3ec", "scanner": "scanner-primary", "fingerprint": "b28703a26fda4aed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe4674ad048000a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/tests/manual/test-knowledge-api.ts:22"}, "properties": {"repobilityId": "03115b16dc348979", "scanner": "scanner-primary", "fingerprint": "fe4674ad048000a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-377c9e23c26f1017", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/utils/onboarding.ts:32"}, "properties": {"repobilityId": "8b2a1b173d6159fe", "scanner": "scanner-primary", "fingerprint": "377c9e23c26f1017", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e350108a4086b055", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/FeaturesSection.tsx:92"}, "properties": {"repobilityId": "1d11aa1f6fb003a2", "scanner": "scanner-primary", "fingerprint": "e350108a4086b055", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa071f2b483f39d8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelDiscoveryModal.tsx:4"}, "properties": {"repobilityId": "5358f2acb7edefe0", "scanner": "scanner-primary", "fingerprint": "fa071f2b483f39d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b98f5df62c893922", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/DefaultExtensionsSection.tsx:28"}, "properties": {"repobilityId": "4b4ac581ead169d1", "scanner": "scanner-primary", "fingerprint": "b98f5df62c893922", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-85bc9673cee50681", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:312"}, "properties": {"repobilityId": "533193a96f00e0d9", "scanner": "scanner-primary", "fingerprint": "85bc9673cee50681", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b4cafe033bd6c4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/settings/APIKeysSection.tsx:297"}, "properties": {"repobilityId": "a246c48b7a324238", "scanner": "scanner-primary", "fingerprint": "7b4cafe033bd6c4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e05876df73bcfb2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/components/settings/IDEGlobalRules.tsx:247"}, "properties": {"repobilityId": "b9795e4080b07b14", "scanner": "scanner-primary", "fingerprint": "7e05876df73bcfb2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ea52fdbbbfb0e778", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:109"}, "properties": {"repobilityId": "a0a903c188f4d451", "scanner": "scanner-primary", "fingerprint": "ea52fdbbbfb0e778", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5780cef6d735846e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/components/ui/CoverageVisualization.tsx:190"}, "properties": {"repobilityId": "8d58fdac6ef2422b", "scanner": "scanner-primary", "fingerprint": "5780cef6d735846e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f0a3d1bcaf2c689", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/services/serverHealthService.ts:131"}, "properties": {"repobilityId": "a82f91cd121376ae", "scanner": "scanner-primary", "fingerprint": "9f0a3d1bcaf2c689", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46d539a61ddfb926", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/auto-research/components/AutoResearchPage.tsx:82"}, "properties": {"repobilityId": "363937e5393444c2", "scanner": "scanner-primary", "fingerprint": "46d539a61ddfb926", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc1d909fc733ecc1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/SidebarRepositoryCard.tsx:98"}, "properties": {"repobilityId": "c4fbc861aa536b5d", "scanner": "scanner-primary", "fingerprint": "bc1d909fc733ecc1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6f8cb7b7627b630", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/RepositoryCard.tsx:80"}, "properties": {"repobilityId": "1c6e9a7c931d243a", "scanner": "scanner-primary", "fingerprint": "e6f8cb7b7627b630", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16748933bdf06433", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/agent-work-orders/components/StepHistoryCard.tsx:49"}, "properties": {"repobilityId": "45b3842d833d6df1", "scanner": "scanner-primary", "fingerprint": "16748933bdf06433", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-850d906fab265ade", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/agent-work-orders/components/RealTimeStats.tsx:307"}, "properties": {"repobilityId": "921fb141af362621", "scanner": "scanner-primary", "fingerprint": "850d906fab265ade", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6826b5bfa6b642f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectGridCard.tsx:137"}, "properties": {"repobilityId": "f2c1e412e4f81e96", "scanner": "scanner-primary", "fingerprint": "6826b5bfa6b642f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bab6d16fe6c49c05", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ManageSubProjectsModal.tsx:91"}, "properties": {"repobilityId": "97bda4f21be167c6", "scanner": "scanner-primary", "fingerprint": "bab6d16fe6c49c05", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9db2109d5384dbcd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/ProjectTableRow.tsx:104"}, "properties": {"repobilityId": "5c5d5da02821cd7c", "scanner": "scanner-primary", "fingerprint": "9db2109d5384dbcd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6800bd04564ea0be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/components/SubProjectCard.tsx:49"}, "properties": {"repobilityId": "d47628f9c8b0f555", "scanner": "scanner-primary", "fingerprint": "6800bd04564ea0be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d74067ff1dccc597", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/SystemCard.tsx:25"}, "properties": {"repobilityId": "b0517feb37eb4e2a", "scanner": "scanner-primary", "fingerprint": "d74067ff1dccc597", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db9bf6fac0655eb2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/extensions/components/AddExtensionDialog.tsx:182"}, "properties": {"repobilityId": "79ad1225bf4e5678", "scanner": "scanner-primary", "fingerprint": "db9bf6fac0655eb2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4bf3842a3c6bd1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/views/ProjectsView.tsx:231"}, "properties": {"repobilityId": "0bcaa875ee3e7349", "scanner": "scanner-primary", "fingerprint": "a4bf3842a3c6bd1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db277c71a2856b75", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/projects/knowledge/components/ProjectSourceInspector.tsx:133"}, "properties": {"repobilityId": "88193b83fbba21d7", "scanner": "scanner-primary", "fingerprint": "db277c71a2856b75", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc0f6c754707afbd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/ui/primitives/combobox.tsx:203"}, "properties": {"repobilityId": "e07aff15ad88ea4c", "scanner": "scanner-primary", "fingerprint": "bc0f6c754707afbd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9334b0be6e949a07", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ToolUseCard.tsx:59"}, "properties": {"repobilityId": "fb1a514338cf1bc8", "scanner": "scanner-primary", "fingerprint": "9334b0be6e949a07", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c6fdd7f300a12dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ConversationContext.tsx:82"}, "properties": {"repobilityId": "69e1fdbcb0512b83", "scanner": "scanner-primary", "fingerprint": "0c6fdd7f300a12dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-69ddc66068277db7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/chat/components/ModelSelector.tsx:72"}, "properties": {"repobilityId": "ddd73e0b637c44bc", "scanner": "scanner-primary", "fingerprint": "69ddc66068277db7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10e93df2763bdc68", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/progress/components/CrawlingProgress.tsx:162"}, "properties": {"repobilityId": "367a20aa2fa53821", "scanner": "scanner-primary", "fingerprint": "10e93df2763bdc68", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ccf96ca82a856e4d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/SuggestedWorkflows.tsx:61"}, "properties": {"repobilityId": "d3984985e21aa3ac", "scanner": "scanner-primary", "fingerprint": "ccf96ca82a856e4d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-33dc372f3b378cd9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowsPage.tsx:230"}, "properties": {"repobilityId": "5e6a267d1073a4a7", "scanner": "scanner-primary", "fingerprint": "33dc372f3b378cd9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7e06c85fba9b293", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/ApprovalList.tsx:74"}, "properties": {"repobilityId": "3044938450bcffb3", "scanner": "scanner-primary", "fingerprint": "b7e06c85fba9b293", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a1e115159e939e4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/CommandEditor.tsx:179"}, "properties": {"repobilityId": "6fcf86f1fffb29cb", "scanner": "scanner-primary", "fingerprint": "a1e115159e939e4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aed9b5196a518be0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunCard.tsx:42"}, "properties": {"repobilityId": "10a76c22edbda239", "scanner": "scanner-primary", "fingerprint": "aed9b5196a518be0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42a84b8ceca799e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/WorkflowRunView.tsx:281"}, "properties": {"repobilityId": "6c826aff35e0543d", "scanner": "scanner-primary", "fingerprint": "42a84b8ceca799e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ccab22bfeb61c8d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/DependencySelect.tsx:42"}, "properties": {"repobilityId": "361f5df20a71eb88", "scanner": "scanner-primary", "fingerprint": "2ccab22bfeb61c8d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7834f06674e9399d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/workflows/components/editor/NodeList.tsx:47"}, "properties": {"repobilityId": "a901dffb6ef1dd63", "scanner": "scanner-primary", "fingerprint": "7834f06674e9399d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4df3f021ff8e0913", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/shared/SideNavigation.tsx:55"}, "properties": {"repobilityId": "3987a5bf50e71d3e", "scanner": "scanner-primary", "fingerprint": "4df3f021ff8e0913", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e0868e7aecaf061", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.tsx:235"}, "properties": {"repobilityId": "4bba9c74b80cb4dc", "scanner": "scanner-primary", "fingerprint": "5e0868e7aecaf061", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-27c527f35c11477a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/KnowledgeLayoutExample.tsx:252"}, "properties": {"repobilityId": "ece793273f637ff2", "scanner": "scanner-primary", "fingerprint": "27c527f35c11477a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99900971779faa5f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/DocumentBrowserExample.tsx:107"}, "properties": {"repobilityId": "9e702d344dbc5646", "scanner": "scanner-primary", "fingerprint": "99900971779faa5f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42c069bec50967e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/AgentWorkOrderLayoutExample.tsx:1015"}, "properties": {"repobilityId": "d5141be635042aba", "scanner": "scanner-primary", "fingerprint": "42c069bec50967e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-60ffa308229498fa", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/style-guide/layouts/components/RealTimeStatsExample.tsx:112"}, "properties": {"repobilityId": "f672abea129740b0", "scanner": "scanner-primary", "fingerprint": "60ffa308229498fa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ae87cbca1daec84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 cortex-ui/src/features/style-guide/layouts/components/StepHistoryCard.tsx:48"}, "properties": {"repobilityId": "45ac3fa96edae3eb", "scanner": "scanner-primary", "fingerprint": "5ae87cbca1daec84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb04d0897d266d6a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeTable.tsx:129"}, "properties": {"repobilityId": "72419094fc02bbf5", "scanner": "scanner-primary", "fingerprint": "cb04d0897d266d6a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-68e4762a14542845", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/TagInput.tsx:102"}, "properties": {"repobilityId": "bfadb36f6898665f", "scanner": "scanner-primary", "fingerprint": "68e4762a14542845", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2b4bd4c4dbcbfa6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/components/KnowledgeCard.tsx:201"}, "properties": {"repobilityId": "ba61b547b6744e04", "scanner": "scanner-primary", "fingerprint": "c2b4bd4c4dbcbfa6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c832e3030f6f3701", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 cortex-ui/src/features/knowledge/hooks/useKnowledgeQueries.ts:122"}, "properties": {"repobilityId": "3f0a3cc403a6906a", "scanner": "scanner-primary", "fingerprint": "c832e3030f6f3701", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8d5c446b50863035", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/InspectorHeader.tsx:86"}, "properties": {"repobilityId": "bf938b860d73696e", "scanner": "scanner-primary", "fingerprint": "8d5c446b50863035", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-115012025f11c45d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:100"}, "properties": {"repobilityId": "d7a51770cc031869", "scanner": "scanner-primary", "fingerprint": "115012025f11c45d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ff8d731f501a754a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:200"}, "properties": {"repobilityId": "5d5d15f9bc6d4f76", "scanner": "scanner-primary", "fingerprint": "ff8d731f501a754a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-73a495cc9cfdd0b6", "level": "warning", "message": {"text": "Privileged port 230 in use"}, "properties": {"repobilityId": "639a946838b13d37", "scanner": "scanner-primary", "fingerprint": "73a495cc9cfdd0b6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortexSetup.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80cf9ec0a4287ba6", "level": "warning", "message": {"text": "Privileged port 123 in use"}, "properties": {"repobilityId": "117e44ea15d0bedc", "scanner": "scanner-primary", "fingerprint": "80cf9ec0a4287ba6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/ISSUE_TEMPLATE/bug_report.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac5b1988ef52a757", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "ac5b1988ef52a757", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/ISSUE_TEMPLATE/bug_report.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ce33b9b4acae852", "level": "warning", "message": {"text": "Dockerfile runs as root: cortex-ui/Dockerfile"}, "properties": {"repobilityId": "ecf7ba73325fe4ad", "scanner": "scanner-primary", "fingerprint": "0ce33b9b4acae852", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-7ca36632d07aa0b9", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "085a83b0307a45a9", "scanner": "scanner-primary", "fingerprint": "7ca36632d07aa0b9", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-8e5c398912607768", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-memory/SKILL.md:162"}, "properties": {"repobilityId": "0e8d792a3c82eb68", "scanner": "scanner-primary", "fingerprint": "8e5c398912607768", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/claude-code/extensions/cortex-memory/SKILL.md"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-86f2eb55cda6f7ee", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in integrations/claude-code/extensions/cortex-link-project/SKILL.md:296"}, "properties": {"repobilityId": "5597f47c88a9b5b6", "scanner": "scanner-primary", "fingerprint": "86f2eb55cda6f7ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/claude-code/extensions/cortex-link-project/SKILL.md"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-e5e6d602a6ca4668", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in cortex-ui/vite.config.ts:74"}, "properties": {"repobilityId": "1177dcb556c05c4f", "scanner": "scanner-primary", "fingerprint": "e5e6d602a6ca4668", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/vite.config.ts"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-1e294951e0950ce2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in cortex-ui/vite.config.ts:6"}, "properties": {"repobilityId": "38ec821409b5fa72", "scanner": "scanner-primary", "fingerprint": "1e294951e0950ce2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/vite.config.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-77f9a35dadee1c19", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in cortex-ui/vite.config.ts:69"}, "properties": {"repobilityId": "f6fb9659c2ca57f1", "scanner": "scanner-primary", "fingerprint": "77f9a35dadee1c19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/vite.config.ts"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-abf3ad294c0c7cc1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/components/settings/IDEGlobalRules.tsx:247"}, "properties": {"repobilityId": "619cf867a00c9dda", "scanner": "scanner-primary", "fingerprint": "abf3ad294c0c7cc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/src/components/settings/IDEGlobalRules.tsx"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-72d5810ceb003c81", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx:200"}, "properties": {"repobilityId": "8def4d913f3d9cd1", "scanner": "scanner-primary", "fingerprint": "72d5810ceb003c81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-ui/src/features/knowledge/inspector/components/ContentViewer.tsx"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-ccb07423ec0ea791", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in python/src/server/main.py:200"}, "properties": {"repobilityId": "28b4a9491e931461", "scanner": "scanner-primary", "fingerprint": "ccb07423ec0ea791", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/main.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-2174ad1fe50df08b", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in python/src/server/services/postman/postman_client.py:127"}, "properties": {"repobilityId": "1b76337f69c7da68", "scanner": "scanner-primary", "fingerprint": "2174ad1fe50df08b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/services/postman/postman_client.py"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4f39ee857107df13", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a3c03147ef1f40b5", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d1b973fc5722bf04", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0dc55539758d3645", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-270bd34c57bdf1c9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "22add8aa74980551", "scanner": "scanner-primary", "fingerprint": "270bd34c57bdf1c9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-fix.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-270bd34c57bdf1c9", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "30748b132331b2f8", "scanner": "scanner-primary", "fingerprint": "270bd34c57bdf1c9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-fix.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-270bd34c57bdf1c9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "556eb65b17fab629", "scanner": "scanner-primary", "fingerprint": "270bd34c57bdf1c9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-fix.yml"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-d77ba4388dad75cb", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ca37a053b6f6ae0c", "scanner": "scanner-primary", "fingerprint": "d77ba4388dad75cb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-fix.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a2678aff39d780d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bf25990703e4f438", "scanner": "scanner-primary", "fingerprint": "8a2678aff39d780d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-review.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-8a2678aff39d780d", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ad1a222d7d4f5e6a", "scanner": "scanner-primary", "fingerprint": "8a2678aff39d780d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-review.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-8a2678aff39d780d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e221f1f800a22e4d", "scanner": "scanner-primary", "fingerprint": "8a2678aff39d780d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-review.yml"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-063997d8d14f8d5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b268301d4ba9d1b9", "scanner": "scanner-primary", "fingerprint": "063997d8d14f8d5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b15767decaf2d3d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e33a731ca6b3c0e1", "scanner": "scanner-primary", "fingerprint": "4b15767decaf2d3d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-notes.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-4b15767decaf2d3d", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "31b3da68edf1ddf9", "scanner": "scanner-primary", "fingerprint": "4b15767decaf2d3d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-notes.yml"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-4b15767decaf2d3d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d5707facd9b49bd5", "scanner": "scanner-primary", "fingerprint": "4b15767decaf2d3d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-notes.yml"}, "region": {"startLine": 267}}}]}, {"ruleId": "scanner-b9b706cff1088353", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b71f488ccb3f06a8", "scanner": "scanner-primary", "fingerprint": "b9b706cff1088353", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-notes.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ef7a1d5b6de8eae", "level": "note", "message": {"text": "Very large file: cortex-ui/src/components/settings/RAGSettings.tsx (2507 lines)"}, "properties": {"repobilityId": "219634a181f7ad61", "scanner": "scanner-primary", "fingerprint": "1ef7a1d5b6de8eae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-43bd745dfc126e06", "level": "note", "message": {"text": "Very large file: postmanSkill/scripts/postman_client.py (1542 lines)"}, "properties": {"repobilityId": "fb06115eb34d53d6", "scanner": "scanner-primary", "fingerprint": "43bd745dfc126e06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-178eb85587599899", "level": "note", "message": {"text": "Very large file: python/src/server/api_routes/ollama_api.py (1331 lines)"}, "properties": {"repobilityId": "337c96c2266bb070", "scanner": "scanner-primary", "fingerprint": "178eb85587599899", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3cfdbdb2235bc9e2", "level": "note", "message": {"text": "Very large file: python/src/server/api_routes/projects_api.py (1870 lines)"}, "properties": {"repobilityId": "ca6aa3dbce7aad3b", "scanner": "scanner-primary", "fingerprint": "3cfdbdb2235bc9e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb11550f219e069d", "level": "note", "message": {"text": "Very large file: python/src/server/api_routes/knowledge_api.py (2179 lines)"}, "properties": {"repobilityId": "808bc904b43493e9", "scanner": "scanner-primary", "fingerprint": "bb11550f219e069d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4aa93d7b1bc0b328", "level": "note", "message": {"text": "Very large file: python/src/server/services/crawling/crawling_service.py (1085 lines)"}, "properties": {"repobilityId": "f41d945a161f98ea", "scanner": "scanner-primary", "fingerprint": "4aa93d7b1bc0b328", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5ae50256f248e653", "level": "note", "message": {"text": "Very large file: python/src/server/services/crawling/code_extraction_service.py (1781 lines)"}, "properties": {"repobilityId": "1f0c7cde3fafeb2e", "scanner": "scanner-primary", "fingerprint": "5ae50256f248e653", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6238c50687589f1a", "level": "note", "message": {"text": "Very large file: python/src/server/services/ollama/model_discovery_service.py (1122 lines)"}, "properties": {"repobilityId": "9fc52c7a060aabd2", "scanner": "scanner-primary", "fingerprint": "6238c50687589f1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1e80b54be4ee1d6", "level": "note", "message": {"text": "Very large file: python/src/server/services/storage/code_storage_service.py (1410 lines)"}, "properties": {"repobilityId": "9b28f2a01e96bde1", "scanner": "scanner-primary", "fingerprint": "c1e80b54be4ee1d6", "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": "11e693ff9ab430fa", "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": "b7543be8907d480b", "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": "591babdb88f2226b", "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": "8307768285ddbbfb", "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": "db46e1199855eb3a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-cbb5857940ba0dc2", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: AGENTS.md"}, "properties": {"repobilityId": "e12c7213d5eadf3e", "scanner": "scanner-primary", "fingerprint": "cbb5857940ba0dc2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-cdc7583058aa1d52", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: integrations/claude-code/extensions/cortex-move-project/SKILL.md"}, "properties": {"repobilityId": "368cfdd8291e90a9", "scanner": "scanner-primary", "fingerprint": "cdc7583058aa1d52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/claude-code/extensions/cortex-move-project/SKILL.md"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-9f68fff6056a32f4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/.mcp.json"}, "properties": {"repobilityId": "22d438ed0eedd2ee", "scanner": "scanner-primary", "fingerprint": "9f68fff6056a32f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/claude-code/plugins/cortex-memory/.mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-124193c76303bd00", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: integrations/claude-code/plugins/cortex-memory/skills/smart-explore/SKILL.md"}, "properties": {"repobilityId": "68207b62590407a2", "scanner": "scanner-primary", "fingerprint": "124193c76303bd00", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/claude-code/plugins/cortex-memory/skills/smart-explore/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1ac769333c5e4a1", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: postmanSkill/SKILL.md"}, "properties": {"repobilityId": "3ab93bfa59d387e1", "scanner": "scanner-primary", "fingerprint": "c1ac769333c5e4a1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "postmanSkill/SKILL.md"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-bdfcea19fa37e23b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/create-prd.md"}, "properties": {"repobilityId": "745885ca919cf2ab", "scanner": "scanner-primary", "fingerprint": "bdfcea19fa37e23b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/create-prd.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4fd1a02ef972c4c4", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/commands/init-project.md"}, "properties": {"repobilityId": "aa57ac870f3ccdb1", "scanner": "scanner-primary", "fingerprint": "4fd1a02ef972c4c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/init-project.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-a4e501dd3e58820e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/commit.md"}, "properties": {"repobilityId": "79faa1702486f61d", "scanner": "scanner-primary", "fingerprint": "a4e501dd3e58820e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/commit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91eb906188e0f279", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/prp-any-agent/prp-any-cli-execute.md"}, "properties": {"repobilityId": "5a4c89c21643e8a7", "scanner": "scanner-primary", "fingerprint": "91eb906188e0f279", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/prp-any-agent/prp-any-cli-execute.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eebb140f50c84d65", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/validation/execution-report.md"}, "properties": {"repobilityId": "b23259da22b21875", "scanner": "scanner-primary", "fingerprint": "eebb140f50c84d65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/validation/execution-report.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-06ddd2566df9c74c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/validation/system-review.md"}, "properties": {"repobilityId": "2398297048341685", "scanner": "scanner-primary", "fingerprint": "06ddd2566df9c74c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/validation/system-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f13cb3120d999832", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/agents/library-researcher.md"}, "properties": {"repobilityId": "f800fd449e957251", "scanner": "scanner-primary", "fingerprint": "f13cb3120d999832", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/library-researcher.md"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-60f48ec33be09dd0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: cortex-example-workflow/CLAUDE.md"}, "properties": {"repobilityId": "481e0fd91361e9c0", "scanner": "scanner-primary", "fingerprint": "60f48ec33be09dd0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cortex-example-workflow/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a9f1b9a96e8a256", "level": "none", "message": {"text": "Commented-code block (8 lines) in cortex-ui/src/components/settings/RAGSettings.tsx:846"}, "properties": {"repobilityId": "3004318ab4657a09", "scanner": "scanner-primary", "fingerprint": "8a9f1b9a96e8a256", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5805542a78232b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/RAGSettings.tsx:784"}, "properties": {"repobilityId": "c74d73a57bd8a8db", "scanner": "scanner-primary", "fingerprint": "d5805542a78232b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-92cb9ff10af87e2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525"}, "properties": {"repobilityId": "2731984a7918017f", "scanner": "scanner-primary", "fingerprint": "92cb9ff10af87e2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2f05c2570a20103", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/bugReportService.ts:164"}, "properties": {"repobilityId": "15604392a87712af", "scanner": "scanner-primary", "fingerprint": "c2f05c2570a20103", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7da21a7645d550e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/credentialsService.ts:109"}, "properties": {"repobilityId": "a99c8fdc0abaf707", "scanner": "scanner-primary", "fingerprint": "7da21a7645d550e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3bb10c2b8747091a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/services/ollamaService.ts:202"}, "properties": {"repobilityId": "14b9a1670dfe8418", "scanner": "scanner-primary", "fingerprint": "3bb10c2b8747091a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c2ec58ecc3e96d1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/agent-work-orders/state/agentWorkOrdersStore.ts:67"}, "properties": {"repobilityId": "536906afef818986", "scanner": "scanner-primary", "fingerprint": "c2ec58ecc3e96d1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87bce0cd4fe4e3f7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 cortex-ui/src/features/projects/extensions/services/extensionService.ts:18"}, "properties": {"repobilityId": "51518de5c071b16d", "scanner": "scanner-primary", "fingerprint": "87bce0cd4fe4e3f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c00cb408bd338f98", "level": "none", "message": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/apiClient.ts:76"}, "properties": {"repobilityId": "7a5a9eccef06df08", "scanner": "scanner-primary", "fingerprint": "c00cb408bd338f98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-456fb90ce1bc398f", "level": "none", "message": {"text": "Commented-code block (5 lines) in cortex-ui/src/features/shared/api/tests/apiClient.test.ts:204"}, "properties": {"repobilityId": "ceb8720e6bc859c5", "scanner": "scanner-primary", "fingerprint": "456fb90ce1bc398f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d758713aa9c5659e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/scripts/manage_monitors.py:241"}, "properties": {"repobilityId": "043061d056a57714", "scanner": "scanner-primary", "fingerprint": "d758713aa9c5659e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7c8e0e944cc2725e", "level": "note", "message": {"text": "Legacy-named symbol `schema_v1` in postmanSkill/scripts/manage_pet_store_api.py:374"}, "properties": {"repobilityId": "b5c439282615544f", "scanner": "scanner-primary", "fingerprint": "7c8e0e944cc2725e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3c07b0d72a304554", "level": "note", "message": {"text": "Legacy-named symbol `requests_v1` in postmanSkill/scripts/manage_pet_store_v10.py:232"}, "properties": {"repobilityId": "ab18f0c449dfc833", "scanner": "scanner-primary", "fingerprint": "3c07b0d72a304554", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cf1a5c25bf461c64", "level": "note", "message": {"text": "Legacy-named symbol `nDeprecated` in postmanSkill/utils/exceptions.py:186"}, "properties": {"repobilityId": "ed5a676e38b981fb", "scanner": "scanner-primary", "fingerprint": "cf1a5c25bf461c64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c55384e564f3ae80", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 postmanSkill/utils/formatters.py:265"}, "properties": {"repobilityId": "23cfad23c908b472", "scanner": "scanner-primary", "fingerprint": "c55384e564f3ae80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1839195e1060629f", "level": "note", "message": {"text": "Legacy-named symbol `hash_old` in python/tests/server/api_routes/test_file_hash_incremental_sync.py:101"}, "properties": {"repobilityId": "703930082a7e732f", "scanner": "scanner-primary", "fingerprint": "1839195e1060629f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bec780b12c252429", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in python/tests/server/services/auto_research/test_auto_research_service.py:231"}, "properties": {"repobilityId": "a5d5f8473bb34507", "scanner": "scanner-primary", "fingerprint": "bec780b12c252429", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dec0f744949e2d0d", "level": "note", "message": {"text": "Legacy-named symbol `planning_prompt_v1` in python/tests/server/services/auto_research/test_auto_research_e2e.py:17"}, "properties": {"repobilityId": "20ccd359a9e80c2a", "scanner": "scanner-primary", "fingerprint": "dec0f744949e2d0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-015db7483c705525", "level": "none", "message": {"text": "Commented-code block (6 lines) in python/src/server/config/config.py:147"}, "properties": {"repobilityId": "dd70be8b8f49edc8", "scanner": "scanner-primary", "fingerprint": "015db7483c705525", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e971594c47a01d34", "level": "none", "message": {"text": "Commented-code block (5 lines) in python/src/server/api_routes/knowledge_api.py:51"}, "properties": {"repobilityId": "9acadf87c62139a2", "scanner": "scanner-primary", "fingerprint": "e971594c47a01d34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e07ed7c7658fe94", "level": "none", "message": {"text": "Commented-code block (6 lines) in python/src/server/services/credential_service.py:604"}, "properties": {"repobilityId": "245a4aed5ba9d7ff", "scanner": "scanner-primary", "fingerprint": "3e07ed7c7658fe94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c65a9f9901a38c6", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in python/src/server/services/auto_research_service.py:112"}, "properties": {"repobilityId": "263a451621e33e95", "scanner": "scanner-primary", "fingerprint": "3c65a9f9901a38c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-96d72a85a9fd79d0", "level": "note", "message": {"text": "Stub function `get_provider_name` (body is just `pass`/`return`) \u2014 python/src/server/services/embeddings/provider_error_adapters.py:16"}, "properties": {"repobilityId": "07493ea1513b4597", "scanner": "scanner-primary", "fingerprint": "96d72a85a9fd79d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-1f22f0e83d529743", "level": "none", "message": {"text": "Commented-code block (6 lines) in python/src/server/services/crawling/helpers/url_handler.py:313"}, "properties": {"repobilityId": "646d3ae7c3ea19bb", "scanner": "scanner-primary", "fingerprint": "1f22f0e83d529743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c0c3d75c93e81eb", "level": "none", "message": {"text": "Commented-code block (35 lines) in python/src/server/services/ollama/model_discovery_service.py:136"}, "properties": {"repobilityId": "a6e23780e311f4cb", "scanner": "scanner-primary", "fingerprint": "3c0c3d75c93e81eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69eb8b749acaeb23", "level": "note", "message": {"text": "Legacy-named symbol `nDeprecated` in python/src/server/services/postman/exceptions.py:186"}, "properties": {"repobilityId": "eb96aaed49a24355", "scanner": "scanner-primary", "fingerprint": "69eb8b749acaeb23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b8127d4429a098f5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 python/src/server/services/postman/formatters.py:257"}, "properties": {"repobilityId": "347a6d4c7a8cfa51", "scanner": "scanner-primary", "fingerprint": "b8127d4429a098f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a5417a5f0affce13", "level": "note", "message": {"text": "52 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "39c9352136098d82", "scanner": "scanner-primary", "fingerprint": "a5417a5f0affce13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "72d6191a75d02f57", "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": "4153dfe6ecd9539c", "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": "7e1dd38cc7ea7ae1", "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": "40ea70a0bbdd16fb", "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": "26a89a3a39ca46c4", "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": "ff5a251ecf930a9a", "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": "653aaefac35a345b", "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": "7fe62c97d83cb9cb", "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": "8880b5ba1ca98b1c", "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": "c6eca9f2195883a6", "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": "73cd0c59238e218d", "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": "5e27f8d8e118c650", "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": "5e5d87206c620425", "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": "6f809e2de5158e01", "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": "c2cce34fee0fa135", "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": "dd7af10aee8ea9c5", "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": "3dcd67310f746372", "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": "d9f05c423f99219a", "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": "b9807c70a4bc2509", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "4e8c7a74a1a7e265", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-1dc0fd3b11900eb5", "level": "warning", "message": {"text": "Frontend route `/projects/:projectId` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx"}, "properties": {"repobilityId": "359c922fd2aa1d6a", "scanner": "scanner-primary", "fingerprint": "1dc0fd3b11900eb5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-50c7d923c3514881", "level": "warning", "message": {"text": "Frontend route `/agent-work-orders/:id` has no Link/navigate to it \u2014 cortex-ui/src/App.tsx"}, "properties": {"repobilityId": "2a46269996597bad", "scanner": "scanner-primary", "fingerprint": "50c7d923c3514881", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6d2462b198041876", "level": "error", "message": {"text": "FastAPI POST `run_agent` without auth dependency \u2014 python/src/agents/server.py:164"}, "properties": {"repobilityId": "c0c0305f643f966f", "scanner": "scanner-primary", "fingerprint": "6d2462b198041876", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/agents/server.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-14c9cb257c3cbf60", "level": "error", "message": {"text": "FastAPI POST `stream_chat` without auth dependency \u2014 python/src/agents/server.py:217"}, "properties": {"repobilityId": "3620d424eb07db2c", "scanner": "scanner-primary", "fingerprint": "14c9cb257c3cbf60", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/agents/server.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-dd76f3d677a61d1d", "level": "error", "message": {"text": "FastAPI POST `stream_agent` without auth dependency \u2014 python/src/agents/server.py:342"}, "properties": {"repobilityId": "9fa4790eb4b8cfe2", "scanner": "scanner-primary", "fingerprint": "dd76f3d677a61d1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/agents/server.py"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-931f2dc109801ef4", "level": "error", "message": {"text": "FastAPI POST `validate_instance_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:207"}, "properties": {"repobilityId": "9a3f2299b07f0b0c", "scanner": "scanner-primary", "fingerprint": "931f2dc109801ef4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-8609da37b6eaa865", "level": "error", "message": {"text": "FastAPI POST `analyze_embedding_route_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:257"}, "properties": {"repobilityId": "a0f6e96c08c387c0", "scanner": "scanner-primary", "fingerprint": "8609da37b6eaa865", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-044f8c8d88063151", "level": "error", "message": {"text": "FastAPI DELETE `clear_ollama_cache_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:350"}, "properties": {"repobilityId": "6d8bcc2b4759a235", "scanner": "scanner-primary", "fingerprint": "044f8c8d88063151", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 350}}}]}, {"ruleId": "scanner-4668071dd6359a22", "level": "error", "message": {"text": "FastAPI POST `discover_and_store_models_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:411"}, "properties": {"repobilityId": "d00b127e570a04eb", "scanner": "scanner-primary", "fingerprint": "4668071dd6359a22", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 411}}}]}, {"ruleId": "scanner-0bbc0035f8610682", "level": "error", "message": {"text": "FastAPI POST `discover_models_with_real_details` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:957"}, "properties": {"repobilityId": "0fd608edd73b4e6e", "scanner": "scanner-primary", "fingerprint": "0bbc0035f8610682", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 957}}}]}, {"ruleId": "scanner-aeb4a7fbffe0c9c2", "level": "error", "message": {"text": "FastAPI POST `test_model_capabilities_endpoint` without auth dependency \u2014 python/src/server/api_routes/ollama_api.py:1231"}, "properties": {"repobilityId": "864c4835b70645a0", "scanner": "scanner-primary", "fingerprint": "aeb4a7fbffe0c9c2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/ollama_api.py"}, "region": {"startLine": 1231}}}]}, {"ruleId": "scanner-d5eb65eff1b41f10", "level": "error", "message": {"text": "FastAPI POST `create_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:391"}, "properties": {"repobilityId": "1b03bc2174068246", "scanner": "scanner-primary", "fingerprint": "d5eb65eff1b41f10", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 391}}}]}, {"ruleId": "scanner-d1e74737befc6bc2", "level": "error", "message": {"text": "FastAPI PUT `update_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:643"}, "properties": {"repobilityId": "f541eb63b65bc964", "scanner": "scanner-primary", "fingerprint": "d1e74737befc6bc2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-1d0942a87c814b2d", "level": "error", "message": {"text": "FastAPI DELETE `delete_project` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:814"}, "properties": {"repobilityId": "0185a407371b555b", "scanner": "scanner-primary", "fingerprint": "1d0942a87c814b2d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 814}}}]}, {"ruleId": "scanner-bd53cd1b5122d833", "level": "error", "message": {"text": "FastAPI POST `create_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1076"}, "properties": {"repobilityId": "3db925e7d88473e1", "scanner": "scanner-primary", "fingerprint": "bd53cd1b5122d833", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1076}}}]}, {"ruleId": "scanner-664c1696d559d425", "level": "error", "message": {"text": "FastAPI PUT `update_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1281"}, "properties": {"repobilityId": "9b37ddf4ec21203b", "scanner": "scanner-primary", "fingerprint": "664c1696d559d425", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1281}}}]}, {"ruleId": "scanner-c4eae2d615bc7219", "level": "error", "message": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1336"}, "properties": {"repobilityId": "4c48887b26bf348a", "scanner": "scanner-primary", "fingerprint": "c4eae2d615bc7219", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1336}}}]}, {"ruleId": "scanner-c868f3c5682ee0b6", "level": "error", "message": {"text": "FastAPI PUT `mcp_update_task_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1376"}, "properties": {"repobilityId": "483ef5d507c8d489", "scanner": "scanner-primary", "fingerprint": "c868f3c5682ee0b6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1376}}}]}, {"ruleId": "scanner-4c2542cd1b339a00", "level": "error", "message": {"text": "FastAPI POST `create_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1471"}, "properties": {"repobilityId": "425bb6dd67f53632", "scanner": "scanner-primary", "fingerprint": "4c2542cd1b339a00", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1471}}}]}, {"ruleId": "scanner-e3f02a124165e107", "level": "error", "message": {"text": "FastAPI PUT `update_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1554"}, "properties": {"repobilityId": "a8a8f629788e6a1e", "scanner": "scanner-primary", "fingerprint": "e3f02a124165e107", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1554}}}]}, {"ruleId": "scanner-bbd18a3b47e65b0e", "level": "error", "message": {"text": "FastAPI DELETE `delete_project_document` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1602"}, "properties": {"repobilityId": "cb9d73637b3ae057", "scanner": "scanner-primary", "fingerprint": "bbd18a3b47e65b0e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1602}}}]}, {"ruleId": "scanner-165440673b498878", "level": "error", "message": {"text": "FastAPI POST `create_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1680"}, "properties": {"repobilityId": "f34f03201796941f", "scanner": "scanner-primary", "fingerprint": "165440673b498878", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1680}}}]}, {"ruleId": "scanner-aa7575e94857e450", "level": "error", "message": {"text": "FastAPI POST `restore_project_version` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1770"}, "properties": {"repobilityId": "3c429a22ba537975", "scanner": "scanner-primary", "fingerprint": "aa7575e94857e450", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1770}}}]}, {"ruleId": "scanner-18a0afef00b4f44b", "level": "error", "message": {"text": "FastAPI PUT `update_git_status` without auth dependency \u2014 python/src/server/api_routes/projects_api.py:1858"}, "properties": {"repobilityId": "b06eb9120f670d2d", "scanner": "scanner-primary", "fingerprint": "18a0afef00b4f44b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/projects_api.py"}, "region": {"startLine": 1858}}}]}, {"ruleId": "scanner-7a41f1a7107f31b1", "level": "error", "message": {"text": "FastAPI POST `resolve_approval` without auth dependency \u2014 python/src/server/api_routes/workflow_approval_api.py:55"}, "properties": {"repobilityId": "bba9e849b5275792", "scanner": "scanner-primary", "fingerprint": "7a41f1a7107f31b1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_approval_api.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-d29a7d3e07dbc805", "level": "error", "message": {"text": "FastAPI POST `start_optimization` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:43"}, "properties": {"repobilityId": "10a9ad0b0168b7ad", "scanner": "scanner-primary", "fingerprint": "d29a7d3e07dbc805", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/auto_research_api.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-69d9f359f45f4ab1", "level": "error", "message": {"text": "FastAPI POST `apply_job_result` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:78"}, "properties": {"repobilityId": "73d14f981f2277e7", "scanner": "scanner-primary", "fingerprint": "69d9f359f45f4ab1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/auto_research_api.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-c3dc083e24a7ba3f", "level": "error", "message": {"text": "FastAPI POST `cancel_job` without auth dependency \u2014 python/src/server/api_routes/auto_research_api.py:89"}, "properties": {"repobilityId": "d446f66f1fdb8a54", "scanner": "scanner-primary", "fingerprint": "c3dc083e24a7ba3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/auto_research_api.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-fa58f6d10e465380", "level": "error", "message": {"text": "FastAPI DELETE `deregister_backend` without auth dependency \u2014 python/src/server/api_routes/workflow_backend_api.py:120"}, "properties": {"repobilityId": "9eebf6b36b896c9f", "scanner": "scanner-primary", "fingerprint": "fa58f6d10e465380", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_backend_api.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-7a6473e4c36966e0", "level": "error", "message": {"text": "FastAPI POST `create_collection` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:71"}, "properties": {"repobilityId": "4226980f9f2b4287", "scanner": "scanner-primary", "fingerprint": "7a6473e4c36966e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/postman_api.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-30899e245a66b967", "level": "error", "message": {"text": "FastAPI POST `upsert_request` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:89"}, "properties": {"repobilityId": "cec38a1b84e3b7e1", "scanner": "scanner-primary", "fingerprint": "30899e245a66b967", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/postman_api.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-be208e80829d1bad", "level": "error", "message": {"text": "FastAPI PUT `upsert_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:107"}, "properties": {"repobilityId": "3450423ecf8555dd", "scanner": "scanner-primary", "fingerprint": "be208e80829d1bad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/postman_api.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-a41d62bae19fc4af", "level": "error", "message": {"text": "FastAPI POST `sync_environment` without auth dependency \u2014 python/src/server/api_routes/postman_api.py:125"}, "properties": {"repobilityId": "1e89dd4473159800", "scanner": "scanner-primary", "fingerprint": "a41d62bae19fc4af", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/postman_api.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-fba9f043600a25c1", "level": "error", "message": {"text": "FastAPI POST `create_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:62"}, "properties": {"repobilityId": "6cbdbbbb8278e8aa", "scanner": "scanner-primary", "fingerprint": "fba9f043600a25c1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-d4e29c2ec30b8549", "level": "error", "message": {"text": "FastAPI PUT `update_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:98"}, "properties": {"repobilityId": "9e9abd8f4ce1dcba", "scanner": "scanner-primary", "fingerprint": "d4e29c2ec30b8549", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-1945730391b740be", "level": "error", "message": {"text": "FastAPI DELETE `delete_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:118"}, "properties": {"repobilityId": "19ddae584b7d07b6", "scanner": "scanner-primary", "fingerprint": "1945730391b740be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-eb0af50e6bb80da4", "level": "error", "message": {"text": "FastAPI POST `export_definition` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:133"}, "properties": {"repobilityId": "23b8dc9320db26b2", "scanner": "scanner-primary", "fingerprint": "eb0af50e6bb80da4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-d9f243110f491367", "level": "error", "message": {"text": "FastAPI POST `create_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:188"}, "properties": {"repobilityId": "b06bd434bcdeb579", "scanner": "scanner-primary", "fingerprint": "d9f243110f491367", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "scanner-5f929d6da46821ec", "level": "error", "message": {"text": "FastAPI PUT `update_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:209"}, "properties": {"repobilityId": "714749b36d119ecd", "scanner": "scanner-primary", "fingerprint": "5f929d6da46821ec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-3ba30d56cd361ac9", "level": "error", "message": {"text": "FastAPI DELETE `delete_command` without auth dependency \u2014 python/src/server/api_routes/workflow_definition_api.py:231"}, "properties": {"repobilityId": "b45eb82c67bfd943", "scanner": "scanner-primary", "fingerprint": "3ba30d56cd361ac9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_definition_api.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-43233e49b9c28131", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 python/src/server/api_routes/sessions_api.py:47"}, "properties": {"repobilityId": "7c8b83132f0f14c6", "scanner": "scanner-primary", "fingerprint": "43233e49b9c28131", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/sessions_api.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-1939292137d3b558", "level": "error", "message": {"text": "FastAPI POST `create_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:37"}, "properties": {"repobilityId": "025fc2eef6a5e044", "scanner": "scanner-primary", "fingerprint": "1939292137d3b558", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_api.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-5093e4c4623e6f2a", "level": "error", "message": {"text": "FastAPI POST `cancel_run` without auth dependency \u2014 python/src/server/api_routes/workflow_api.py:148"}, "properties": {"repobilityId": "10a523578a665328", "scanner": "scanner-primary", "fingerprint": "5093e4c4623e6f2a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/workflow_api.py"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-63c5d6e3bb2f2e1e", "level": "error", "message": {"text": "FastAPI PUT `upsert_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:15"}, "properties": {"repobilityId": "ef15bf1ab7633ea6", "scanner": "scanner-primary", "fingerprint": "63c5d6e3bb2f2e1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/leaveoff_api.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-5cf62609b2f48b62", "level": "error", "message": {"text": "FastAPI DELETE `delete_leaveoff` without auth dependency \u2014 python/src/server/api_routes/leaveoff_api.py:43"}, "properties": {"repobilityId": "3605114b8f7b210b", "scanner": "scanner-primary", "fingerprint": "5cf62609b2f48b62", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/leaveoff_api.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-3f2c380c1bbd4bea", "level": "error", "message": {"text": "FastAPI POST `accept_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:33"}, "properties": {"repobilityId": "7cac860fd999f2eb", "scanner": "scanner-primary", "fingerprint": "3f2c380c1bbd4bea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/pattern_discovery_api.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-80d3decee73b1107", "level": "error", "message": {"text": "FastAPI POST `dismiss_suggestion` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:52"}, "properties": {"repobilityId": "0997f2374b571944", "scanner": "scanner-primary", "fingerprint": "80d3decee73b1107", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/pattern_discovery_api.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-5a0c484001756c51", "level": "error", "message": {"text": "FastAPI POST `trigger_backfill` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:67"}, "properties": {"repobilityId": "4e15625ec77a5bc0", "scanner": "scanner-primary", "fingerprint": "5a0c484001756c51", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/pattern_discovery_api.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-662de8725f5f448d", "level": "error", "message": {"text": "FastAPI POST `run_pipeline` without auth dependency \u2014 python/src/server/api_routes/pattern_discovery_api.py:85"}, "properties": {"repobilityId": "f4c61cbefb38754f", "scanner": "scanner-primary", "fingerprint": "662de8725f5f448d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/pattern_discovery_api.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-c1b0790c9f2b1ce2", "level": "error", "message": {"text": "FastAPI POST `validate_extension_standalone` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:85"}, "properties": {"repobilityId": "200f0fd4dc8c9ce0", "scanner": "scanner-primary", "fingerprint": "c1b0790c9f2b1ce2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-63b9e70bd2b679be", "level": "error", "message": {"text": "FastAPI POST `create_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:140"}, "properties": {"repobilityId": "2035f4b6bb0fce20", "scanner": "scanner-primary", "fingerprint": "63b9e70bd2b679be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-9b9317c2ca37170d", "level": "error", "message": {"text": "FastAPI PUT `update_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:195"}, "properties": {"repobilityId": "38ccf061e2b57b89", "scanner": "scanner-primary", "fingerprint": "9b9317c2ca37170d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-aedc69a7bc329cf6", "level": "error", "message": {"text": "FastAPI DELETE `delete_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:239"}, "properties": {"repobilityId": "c8cad6d45d7ca9d6", "scanner": "scanner-primary", "fingerprint": "aedc69a7bc329cf6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 239}}}]}, {"ruleId": "scanner-f77e27954a173167", "level": "error", "message": {"text": "FastAPI POST `validate_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:262"}, "properties": {"repobilityId": "30d517420472123c", "scanner": "scanner-primary", "fingerprint": "f77e27954a173167", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-2c5e52a702dab2a2", "level": "error", "message": {"text": "FastAPI PUT `update_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:368"}, "properties": {"repobilityId": "74677dc66b744561", "scanner": "scanner-primary", "fingerprint": "2c5e52a702dab2a2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-73982f9bee635349", "level": "error", "message": {"text": "FastAPI DELETE `delete_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:391"}, "properties": {"repobilityId": "64ea48fbd3051184", "scanner": "scanner-primary", "fingerprint": "73982f9bee635349", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 391}}}]}, {"ruleId": "scanner-b6295b1ed84e42cd", "level": "error", "message": {"text": "FastAPI PATCH `set_extension_default` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:410"}, "properties": {"repobilityId": "6b31675b1e7153b0", "scanner": "scanner-primary", "fingerprint": "b6295b1ed84e42cd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 410}}}]}, {"ruleId": "scanner-3a8797658a8b63f5", "level": "error", "message": {"text": "FastAPI POST `sync_system` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:432"}, "properties": {"repobilityId": "d30fe3e21aec1678", "scanner": "scanner-primary", "fingerprint": "3a8797658a8b63f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 432}}}]}, {"ruleId": "scanner-407c0432520dd418", "level": "error", "message": {"text": "FastAPI DELETE `unlink_system_from_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:579"}, "properties": {"repobilityId": "7d7f5c185d81c228", "scanner": "scanner-primary", "fingerprint": "407c0432520dd418", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 579}}}]}, {"ruleId": "scanner-6c275a36b7efb44c", "level": "error", "message": {"text": "FastAPI POST `link_extension_to_project` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:610"}, "properties": {"repobilityId": "99c3d18a7726e1b2", "scanner": "scanner-primary", "fingerprint": "6c275a36b7efb44c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 610}}}]}, {"ruleId": "scanner-b8d7938eb158ee19", "level": "error", "message": {"text": "FastAPI DELETE `unlink_extension_from_project_route` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:631"}, "properties": {"repobilityId": "ecfc7357649ec702", "scanner": "scanner-primary", "fingerprint": "b8d7938eb158ee19", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 631}}}]}, {"ruleId": "scanner-6f1340cc7d7d06a5", "level": "error", "message": {"text": "FastAPI POST `install_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:652"}, "properties": {"repobilityId": "9211f555da9c68c5", "scanner": "scanner-primary", "fingerprint": "6f1340cc7d7d06a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 652}}}]}, {"ruleId": "scanner-cbf1d49e895a00f9", "level": "error", "message": {"text": "FastAPI POST `remove_extension` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:692"}, "properties": {"repobilityId": "c1dcf4aac8653f6c", "scanner": "scanner-primary", "fingerprint": "cbf1d49e895a00f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 692}}}]}, {"ruleId": "scanner-fc87b17e62638cad", "level": "error", "message": {"text": "FastAPI PUT `save_project_override` without auth dependency \u2014 python/src/server/api_routes/extensions_api.py:732"}, "properties": {"repobilityId": "513e41e1db68713f", "scanner": "scanner-primary", "fingerprint": "fc87b17e62638cad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/extensions_api.py"}, "region": {"startLine": 732}}}]}, {"ruleId": "scanner-2c2269fd5fee1ba8", "level": "error", "message": {"text": "FastAPI POST `create_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:96"}, "properties": {"repobilityId": "6500a0ed70279134", "scanner": "scanner-primary", "fingerprint": "2c2269fd5fee1ba8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/settings_api.py"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-b62eceb37a19a272", "level": "error", "message": {"text": "FastAPI PUT `update_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:187"}, "properties": {"repobilityId": "0bee3571234e3f40", "scanner": "scanner-primary", "fingerprint": "b62eceb37a19a272", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/settings_api.py"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-2592383ef21f62c9", "level": "error", "message": {"text": "FastAPI DELETE `delete_credential` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:247"}, "properties": {"repobilityId": "40ebe34fd2cec7ad", "scanner": "scanner-primary", "fingerprint": "2592383ef21f62c9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/settings_api.py"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-a81e0f4a432f84b7", "level": "error", "message": {"text": "FastAPI POST `initialize_credentials_endpoint` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:267"}, "properties": {"repobilityId": "053224620df3d91b", "scanner": "scanner-primary", "fingerprint": "a81e0f4a432f84b7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/settings_api.py"}, "region": {"startLine": 267}}}]}, {"ruleId": "scanner-c8cab08b964ba764", "level": "error", "message": {"text": "FastAPI POST `check_credential_status` without auth dependency \u2014 python/src/server/api_routes/settings_api.py:347"}, "properties": {"repobilityId": "e7391c9349a1a046", "scanner": "scanner-primary", "fingerprint": "c8cab08b964ba764", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/settings_api.py"}, "region": {"startLine": 347}}}]}, {"ruleId": "scanner-019c9b46b7bf18de", "level": "error", "message": {"text": "FastAPI PUT `update_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:454"}, "properties": {"repobilityId": "0b531c2ee8a1a05a", "scanner": "scanner-primary", "fingerprint": "019c9b46b7bf18de", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-81bbfcde47158a7a", "level": "error", "message": {"text": "FastAPI DELETE `delete_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:479"}, "properties": {"repobilityId": "98751980b5aae706", "scanner": "scanner-primary", "fingerprint": "81bbfcde47158a7a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 479}}}]}, {"ruleId": "scanner-b76ace235d24abe5", "level": "error", "message": {"text": "FastAPI POST `refresh_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:777"}, "properties": {"repobilityId": "c1bccd91b1fb9ca6", "scanner": "scanner-primary", "fingerprint": "b76ace235d24abe5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 777}}}]}, {"ruleId": "scanner-ce6bbe46c3b9e63b", "level": "error", "message": {"text": "FastAPI POST `crawl_knowledge_item` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:895"}, "properties": {"repobilityId": "4ae343881b0f6989", "scanner": "scanner-primary", "fingerprint": "ce6bbe46c3b9e63b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 895}}}]}, {"ruleId": "scanner-cde51e48c174f29a", "level": "error", "message": {"text": "FastAPI POST `upload_document` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1269"}, "properties": {"repobilityId": "6a2d73ffc02015db", "scanner": "scanner-primary", "fingerprint": "cde51e48c174f29a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1269}}}]}, {"ruleId": "scanner-0382eb85d69593be", "level": "error", "message": {"text": "FastAPI POST `ingest_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1350"}, "properties": {"repobilityId": "c587d9fabbebcab9", "scanner": "scanner-primary", "fingerprint": "0382eb85d69593be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1350}}}]}, {"ruleId": "scanner-b10b130939b17cf0", "level": "error", "message": {"text": "FastAPI POST `sync_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1431"}, "properties": {"repobilityId": "8b9a388aaeb603d9", "scanner": "scanner-primary", "fingerprint": "b10b130939b17cf0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1431}}}]}, {"ruleId": "scanner-a0538b9a0af0a5a7", "level": "error", "message": {"text": "FastAPI POST `append_inline_documents` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1614"}, "properties": {"repobilityId": "7f2d3496b5cf82fb", "scanner": "scanner-primary", "fingerprint": "a0538b9a0af0a5a7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1614}}}]}, {"ruleId": "scanner-6d07cd49395248ce", "level": "error", "message": {"text": "FastAPI POST `search_knowledge_items` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1848"}, "properties": {"repobilityId": "0cccf607ff6f28a7", "scanner": "scanner-primary", "fingerprint": "6d07cd49395248ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1848}}}]}, {"ruleId": "scanner-138d9a72aefd1eec", "level": "error", "message": {"text": "FastAPI POST `perform_rag_query` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1935"}, "properties": {"repobilityId": "0f00e78ddbf9be16", "scanner": "scanner-primary", "fingerprint": "138d9a72aefd1eec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1935}}}]}, {"ruleId": "scanner-127f2b726d0d568a", "level": "error", "message": {"text": "FastAPI POST `search_code_examples` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:1974"}, "properties": {"repobilityId": "bb12c74918fedcd1", "scanner": "scanner-primary", "fingerprint": "127f2b726d0d568a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 1974}}}]}, {"ruleId": "scanner-b779a508121dd343", "level": "error", "message": {"text": "FastAPI POST `search_code_examples_simple` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2012"}, "properties": {"repobilityId": "9da92df89cce9380", "scanner": "scanner-primary", "fingerprint": "b779a508121dd343", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 2012}}}]}, {"ruleId": "scanner-f6136fe73d37102b", "level": "error", "message": {"text": "FastAPI DELETE `delete_source` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2037"}, "properties": {"repobilityId": "aa960ff1e62ebc80", "scanner": "scanner-primary", "fingerprint": "f6136fe73d37102b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 2037}}}]}, {"ruleId": "scanner-62e4f31da4ecf4e3", "level": "error", "message": {"text": "FastAPI POST `stop_crawl_task` without auth dependency \u2014 python/src/server/api_routes/knowledge_api.py:2114"}, "properties": {"repobilityId": "28d3a13c9f384212", "scanner": "scanner-primary", "fingerprint": "62e4f31da4ecf4e3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/knowledge_api.py"}, "region": {"startLine": 2114}}}]}, {"ruleId": "scanner-c5c083534dbf0193", "level": "error", "message": {"text": "FastAPI POST `create_github_issue` without auth dependency \u2014 python/src/server/api_routes/bug_report_api.py:194"}, "properties": {"repobilityId": "ee4458a0d81ccea4", "scanner": "scanner-primary", "fingerprint": "c5c083534dbf0193", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/bug_report_api.py"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-080f223774ec36fc", "level": "error", "message": {"text": "FastAPI POST `execute_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:17"}, "properties": {"repobilityId": "598e7fbe379f3907", "scanner": "scanner-primary", "fingerprint": "080f223774ec36fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/materialization_api.py"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-5d10408dedb7f82e", "level": "error", "message": {"text": "FastAPI PUT `mark_accessed` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:59"}, "properties": {"repobilityId": "f0793157bbaa3725", "scanner": "scanner-primary", "fingerprint": "5d10408dedb7f82e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/materialization_api.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-1f98e0994e0c657e", "level": "error", "message": {"text": "FastAPI PUT `update_status` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:67"}, "properties": {"repobilityId": "d065de31a2425a62", "scanner": "scanner-primary", "fingerprint": "1f98e0994e0c657e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/materialization_api.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-01c7b9c57c6a4df8", "level": "error", "message": {"text": "FastAPI DELETE `delete_materialization` without auth dependency \u2014 python/src/server/api_routes/materialization_api.py:77"}, "properties": {"repobilityId": "92a5a05250beb573", "scanner": "scanner-primary", "fingerprint": "01c7b9c57c6a4df8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/materialization_api.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-8cd56b7b844b9404", "level": "error", "message": {"text": "FastAPI POST `create_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:74"}, "properties": {"repobilityId": "e09dde38fb25e019", "scanner": "scanner-primary", "fingerprint": "8cd56b7b844b9404", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/chat_api.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-a4ace62c55bfea52", "level": "error", "message": {"text": "FastAPI PATCH `update_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:121"}, "properties": {"repobilityId": "839f8f25f2c4101b", "scanner": "scanner-primary", "fingerprint": "a4ace62c55bfea52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/chat_api.py"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-67a148b182922669", "level": "error", "message": {"text": "FastAPI DELETE `delete_conversation` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:139"}, "properties": {"repobilityId": "f6b6e6553900e5d5", "scanner": "scanner-primary", "fingerprint": "67a148b182922669", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/chat_api.py"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-ab115102db02db81", "level": "error", "message": {"text": "FastAPI POST `save_message` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:154"}, "properties": {"repobilityId": "a28c5e68f2726a77", "scanner": "scanner-primary", "fingerprint": "ab115102db02db81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/chat_api.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-3ac45fd4194419f5", "level": "error", "message": {"text": "FastAPI PATCH `update_profile` without auth dependency \u2014 python/src/server/api_routes/chat_api.py:228"}, "properties": {"repobilityId": "2fd4ad1a11ffc6e2", "scanner": "scanner-primary", "fingerprint": "3ac45fd4194419f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/chat_api.py"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-52551a2dd78725a6", "level": "error", "message": {"text": "FastAPI POST `clear_version_cache` without auth dependency \u2014 python/src/server/api_routes/version_api.py:108"}, "properties": {"repobilityId": "249b436e484f941e", "scanner": "scanner-primary", "fingerprint": "52551a2dd78725a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "python/src/server/api_routes/version_api.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-bb295e46efc215be", "level": "error", "message": {"text": "Dangling fetch: POST /api/providers/validate (cortex-ui/src/components/settings/OllamaConfigurationPanel.tsx:114)"}, "properties": {"repobilityId": "cbc2ba3f08a12a50", "scanner": "scanner-primary", "fingerprint": "bb295e46efc215be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36a547c655b05701", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/instances/health?instance_urls=${encodeURIComponent(normalizedUrl)} (cortex-ui/src/components/settings/RAGSettings.tsx:367)"}, "properties": {"repobilityId": "a570b4a6bac5a418", "scanner": "scanner-primary", "fingerprint": "36a547c655b05701", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b80bf91c97d16b2", "level": "error", "message": {"text": "Dangling fetch: GET /api/providers/${provider}/status (cortex-ui/src/components/settings/RAGSettings.tsx:477)"}, "properties": {"repobilityId": "1582494000a6f354", "scanner": "scanner-primary", "fingerprint": "3b80bf91c97d16b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba8bc983e098fdea", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/RAGSettings.tsx:784)"}, "properties": {"repobilityId": "a0f57f050cf39f1c", "scanner": "scanner-primary", "fingerprint": "ba8bc983e098fdea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-daa1ad70be28a84c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/models?${params.toString()} (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:525)"}, "properties": {"repobilityId": "7bfb8ec5b36f4927", "scanner": "scanner-primary", "fingerprint": "daa1ad70be28a84c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb34eeee9901032c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/models/stored (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:698)"}, "properties": {"repobilityId": "b977b2a71d014b19", "scanner": "scanner-primary", "fingerprint": "bb34eeee9901032c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e904adb06be9ca31", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/models?${instanceUrlParams}${fetchDetailsParam} (cortex-ui/src/components/settings/OllamaModelSelectionModal.tsx:743)"}, "properties": {"repobilityId": "40a3262a51444afb", "scanner": "scanner-primary", "fingerprint": "e904adb06be9ca31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-717621bed63fdfe9", "level": "error", "message": {"text": "Dangling fetch: GET /api/system/version (cortex-ui/src/services/bugReportService.ts:82)"}, "properties": {"repobilityId": "3c801c0e03b376b0", "scanner": "scanner-primary", "fingerprint": "717621bed63fdfe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f9b59929eacb5921", "level": "error", "message": {"text": "Dangling fetch: GET /api/mcp/health (cortex-ui/src/services/bugReportService.ts:118)"}, "properties": {"repobilityId": "13a0f18f26654012", "scanner": "scanner-primary", "fingerprint": "f9b59929eacb5921", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dbb1a47f2ec5a3b3", "level": "error", "message": {"text": "Dangling fetch: GET /api/agents/health (cortex-ui/src/services/bugReportService.ts:119)"}, "properties": {"repobilityId": "0dfe402d372c0773", "scanner": "scanner-primary", "fingerprint": "dbb1a47f2ec5a3b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-279e297336ff4fcc", "level": "error", "message": {"text": "Dangling fetch: GET /agents/health (cortex-ui/src/features/chat/services/chatService.ts:184)"}, "properties": {"repobilityId": "b69ce43afa5ba6f4", "scanner": "scanner-primary", "fingerprint": "279e297336ff4fcc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7157dfa53a5b604", "level": "note", "message": {"text": "Unused endpoint: POST /agents/run"}, "properties": {"repobilityId": "a031e6ba83007fd7", "scanner": "scanner-primary", "fingerprint": "f7157dfa53a5b604", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5343b4acd83d23bb", "level": "note", "message": {"text": "Unused endpoint: GET /agents/list"}, "properties": {"repobilityId": "9357babb1d4a8ddf", "scanner": "scanner-primary", "fingerprint": "5343b4acd83d23bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2cc7dcaa726db4e9", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_type}/stream"}, "properties": {"repobilityId": "e7e2d938462c5167", "scanner": "scanner-primary", "fingerprint": "2cc7dcaa726db4e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "b35a79a28e71fb6d", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "58ee8fcef915ecaa", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6f48e60c30777ab", "level": "note", "message": {"text": "Unused endpoint: GET /config"}, "properties": {"repobilityId": "c74e1c4f542c1808", "scanner": "scanner-primary", "fingerprint": "a6f48e60c30777ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0729b84d4e27d0b9", "level": "note", "message": {"text": "Unused endpoint: GET /clients"}, "properties": {"repobilityId": "28ac01f75f47ab10", "scanner": "scanner-primary", "fingerprint": "0729b84d4e27d0b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b15d518d538de57d", "level": "note", "message": {"text": "Unused endpoint: GET /sessions"}, "properties": {"repobilityId": "8a5a92aa03823c64", "scanner": "scanner-primary", "fingerprint": "b15d518d538de57d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2ab9bf5db6820af4", "level": "note", "message": {"text": "Unused endpoint: GET /models"}, "properties": {"repobilityId": "ef008ddf0498a1f9", "scanner": "scanner-primary", "fingerprint": "2ab9bf5db6820af4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7c2c0c529027a8f", "level": "note", "message": {"text": "Unused endpoint: GET /instances/health"}, "properties": {"repobilityId": "589700fa92e66011", "scanner": "scanner-primary", "fingerprint": "c7c2c0c529027a8f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34c0472a1f1fafe5", "level": "note", "message": {"text": "Unused endpoint: POST /validate"}, "properties": {"repobilityId": "58db346507e2b5ac", "scanner": "scanner-primary", "fingerprint": "34c0472a1f1fafe5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59643982321f0cff", "level": "note", "message": {"text": "Unused endpoint: POST /embedding/route"}, "properties": {"repobilityId": "5f64f5430972f7ee", "scanner": "scanner-primary", "fingerprint": "59643982321f0cff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f9a684a2a51dce02", "level": "note", "message": {"text": "Unused endpoint: GET /embedding/routes"}, "properties": {"repobilityId": "d2570435f7a9e886", "scanner": "scanner-primary", "fingerprint": "f9a684a2a51dce02", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1461946ab835599d", "level": "note", "message": {"text": "Unused endpoint: DELETE /cache"}, "properties": {"repobilityId": "1a8c3c810085261e", "scanner": "scanner-primary", "fingerprint": "1461946ab835599d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92af2c0f7c2f9b84", "level": "note", "message": {"text": "Unused endpoint: POST /models/discover-and-store"}, "properties": {"repobilityId": "baf079e0d4c8d24c", "scanner": "scanner-primary", "fingerprint": "92af2c0f7c2f9b84", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e200dc9d2a582d4d", "level": "note", "message": {"text": "Unused endpoint: GET /models/stored"}, "properties": {"repobilityId": "45bd339597e609cf", "scanner": "scanner-primary", "fingerprint": "e200dc9d2a582d4d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f907aabef2892682", "level": "note", "message": {"text": "Unused endpoint: POST /models/discover-with-details"}, "properties": {"repobilityId": "18aaffdb3207d9df", "scanner": "scanner-primary", "fingerprint": "f907aabef2892682", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b8ae44ddf3a1e19c", "level": "note", "message": {"text": "Unused endpoint: POST /models/test-capabilities"}, "properties": {"repobilityId": "3496a85a0f97e938", "scanner": "scanner-primary", "fingerprint": "b8ae44ddf3a1e19c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c1e1ee09590b0a49", "level": "note", "message": {"text": "Unused endpoint: GET /projects"}, "properties": {"repobilityId": "39cf4d48248b84d3", "scanner": "scanner-primary", "fingerprint": "c1e1ee09590b0a49", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-58666816ba500374", "level": "note", "message": {"text": "Unused endpoint: POST /projects"}, "properties": {"repobilityId": "e3006c1101daae11", "scanner": "scanner-primary", "fingerprint": "58666816ba500374", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d74fdd4985b3390", "level": "note", "message": {"text": "Unused endpoint: GET /projects/health"}, "properties": {"repobilityId": "75391d410e23b6e3", "scanner": "scanner-primary", "fingerprint": "1d74fdd4985b3390", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-928e4bae3c6c33a6", "level": "note", "message": {"text": "Unused endpoint: GET /projects/task-counts"}, "properties": {"repobilityId": "c55a889a07319b59", "scanner": "scanner-primary", "fingerprint": "928e4bae3c6c33a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8276e9a42f5cb13a", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}"}, "properties": {"repobilityId": "fd60ce371176dec3", "scanner": "scanner-primary", "fingerprint": "8276e9a42f5cb13a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-40f12fcf8e9461fb", "level": "note", "message": {"text": "Unused endpoint: PUT /projects/{project_id}"}, "properties": {"repobilityId": "e2efa2236e13cae7", "scanner": "scanner-primary", "fingerprint": "40f12fcf8e9461fb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6053ce9a037345d2", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/children"}, "properties": {"repobilityId": "d5334393074294f4", "scanner": "scanner-primary", "fingerprint": "6053ce9a037345d2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-757ec6dc0d84b69c", "level": "note", "message": {"text": "Unused endpoint: DELETE /projects/{project_id}"}, "properties": {"repobilityId": "18388df467d5c277", "scanner": "scanner-primary", "fingerprint": "757ec6dc0d84b69c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d46582c91c1411f3", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/features"}, "properties": {"repobilityId": "8303305591d8b90d", "scanner": "scanner-primary", "fingerprint": "d46582c91c1411f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3fba460f71b5f01f", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/stats"}, "properties": {"repobilityId": "3170d4ad4d8c8ced", "scanner": "scanner-primary", "fingerprint": "3fba460f71b5f01f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c17e6174cdb7888", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/tasks"}, "properties": {"repobilityId": "4689f11c5a36dd10", "scanner": "scanner-primary", "fingerprint": "5c17e6174cdb7888", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8b3eb3012ac06c04", "level": "note", "message": {"text": "Unused endpoint: POST /tasks"}, "properties": {"repobilityId": "e489b50bd0bcf885", "scanner": "scanner-primary", "fingerprint": "8b3eb3012ac06c04", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd0e06afbaab19b3", "level": "note", "message": {"text": "Unused endpoint: GET /tasks"}, "properties": {"repobilityId": "9406c4b54e38a54f", "scanner": "scanner-primary", "fingerprint": "fd0e06afbaab19b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e30433c1fac6e869", "level": "note", "message": {"text": "Unused endpoint: GET /tasks/{task_id}"}, "properties": {"repobilityId": "a87db48b0d8a3698", "scanner": "scanner-primary", "fingerprint": "e30433c1fac6e869", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-06138fdfa02bf80e", "level": "note", "message": {"text": "Unused endpoint: PUT /tasks/{task_id}"}, "properties": {"repobilityId": "d188df67685dd628", "scanner": "scanner-primary", "fingerprint": "06138fdfa02bf80e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4605b7aabca6a640", "level": "note", "message": {"text": "Unused endpoint: DELETE /tasks/{task_id}"}, "properties": {"repobilityId": "d7e9b72f108b827e", "scanner": "scanner-primary", "fingerprint": "4605b7aabca6a640", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-98cf84582cbab755", "level": "note", "message": {"text": "Unused endpoint: PUT /mcp/tasks/{task_id}/status"}, "properties": {"repobilityId": "46708865c9dda3bd", "scanner": "scanner-primary", "fingerprint": "98cf84582cbab755", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d07ed12ac9b179ad", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/docs"}, "properties": {"repobilityId": "d3d808cb1c5120df", "scanner": "scanner-primary", "fingerprint": "d07ed12ac9b179ad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-495496c0ae2906f3", "level": "note", "message": {"text": "Unused endpoint: POST /projects/{project_id}/docs"}, "properties": {"repobilityId": "ec241172b454b65a", "scanner": "scanner-primary", "fingerprint": "495496c0ae2906f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0610a773aa456ff0", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/docs/{doc_id}"}, "properties": {"repobilityId": "a9b68521dc19395d", "scanner": "scanner-primary", "fingerprint": "0610a773aa456ff0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fde576e8cb20ce52", "level": "note", "message": {"text": "Unused endpoint: PUT /projects/{project_id}/docs/{doc_id}"}, "properties": {"repobilityId": "70edeed7a83e1f91", "scanner": "scanner-primary", "fingerprint": "fde576e8cb20ce52", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-871f82f6cb23ab26", "level": "note", "message": {"text": "Unused endpoint: DELETE /projects/{project_id}/docs/{doc_id}"}, "properties": {"repobilityId": "a2aebc5047b29425", "scanner": "scanner-primary", "fingerprint": "871f82f6cb23ab26", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8eb50214d1d1e5a3", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/versions"}, "properties": {"repobilityId": "e1b8f56faa637a49", "scanner": "scanner-primary", "fingerprint": "8eb50214d1d1e5a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4428cb06bff0d072", "level": "note", "message": {"text": "Unused endpoint: POST /projects/{project_id}/versions"}, "properties": {"repobilityId": "75101af722f7fa42", "scanner": "scanner-primary", "fingerprint": "4428cb06bff0d072", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f2537f4ff95938c", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/versions/{field_name}/{version_number}"}, "properties": {"repobilityId": "9f07c93612ee5da0", "scanner": "scanner-primary", "fingerprint": "6f2537f4ff95938c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eacd1a0ed74558a4", "level": "note", "message": {"text": "Unused endpoint: POST /projects/{project_id}/versions/{field_name}/{version_number}/restore"}, "properties": {"repobilityId": "dc58174e5c75a50d", "scanner": "scanner-primary", "fingerprint": "eacd1a0ed74558a4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a4f35f7d4dfc645b", "level": "note", "message": {"text": "Unused endpoint: GET /projects/{project_id}/knowledge-sources"}, "properties": {"repobilityId": "4e0c5afb5981bb73", "scanner": "scanner-primary", "fingerprint": "a4f35f7d4dfc645b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f01525b3cea5e814", "level": "note", "message": {"text": "Unused endpoint: PUT /projects/{project_id}/systems/{system_id}/git-status"}, "properties": {"repobilityId": "24cb024677f4c827", "scanner": "scanner-primary", "fingerprint": "f01525b3cea5e814", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0518558dda792269", "level": "note", "message": {"text": "Unused endpoint: GET /approvals"}, "properties": {"repobilityId": "7fa2a0067d24c08e", "scanner": "scanner-primary", "fingerprint": "0518558dda792269", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a39229a0ad70788", "level": "note", "message": {"text": "Unused endpoint: GET /approvals/{approval_id}"}, "properties": {"repobilityId": "0571b5dcdbe99af9", "scanner": "scanner-primary", "fingerprint": "0a39229a0ad70788", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5a1daac062190eab", "level": "note", "message": {"text": "Unused endpoint: POST /approvals/{approval_id}/resolve"}, "properties": {"repobilityId": "874607b011ffaaf3", "scanner": "scanner-primary", "fingerprint": "5a1daac062190eab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d76e8ae340e1eec", "level": "note", "message": {"text": "Unused endpoint: GET /suites"}, "properties": {"repobilityId": "1ab2692986332ba4", "scanner": "scanner-primary", "fingerprint": "3d76e8ae340e1eec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}