{"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-d432b9e7a17be2e5", "name": "Possibly dead Python function: recall_block", "shortDescription": {"text": "Possibly dead Python function: recall_block"}, "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-c7e24e1ba74e3283", "name": "Possibly dead Python function: clear_cache", "shortDescription": {"text": "Possibly dead Python function: clear_cache"}, "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-b7665fd76f2e3f2e", "name": "Possibly dead Python function: distill_pure", "shortDescription": {"text": "Possibly dead Python function: distill_pure"}, "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-c641733e43ccf74d", "name": "Possibly dead Python function: run_skill", "shortDescription": {"text": "Possibly dead Python function: run_skill"}, "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-012d4c16078e2e89", "name": "Possibly dead Python function: run_skill", "shortDescription": {"text": "Possibly dead Python function: run_skill"}, "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-f882d79c3e187b1f", "name": "Possibly dead Python function: extract_parent_id", "shortDescription": {"text": "Possibly dead Python function: extract_parent_id"}, "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-01d533b45ad2930c", "name": "Possibly dead Python function: route_after_load", "shortDescription": {"text": "Possibly dead Python function: route_after_load"}, "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-9a93072bf7ddf090", "name": "Possibly dead Python function: route_after_submit", "shortDescription": {"text": "Possibly dead Python function: route_after_submit"}, "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-a3e76d69e29486cc", "name": "Possibly dead Python function: route_after_evaluate", "shortDescription": {"text": "Possibly dead Python function: route_after_evaluate"}, "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-aafc57d776038335", "name": "Possibly dead Python function: route_after_plan", "shortDescription": {"text": "Possibly dead Python function: route_after_plan"}, "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-49606fc06110a5cc", "name": "Possibly dead Python function: route_after_load", "shortDescription": {"text": "Possibly dead Python function: route_after_load"}, "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-1022d565782d03a6", "name": "Possibly dead Python function: route_after_submit", "shortDescription": {"text": "Possibly dead Python function: route_after_submit"}, "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-8638d8aafb9c4d0e", "name": "Stray `console.log` in TS/JS \u2014 apps/wiki/tests/mock-server.ts:484", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/wiki/tests/mock-server.ts:484"}, "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-41b9143cd637e1a8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/wiki/src/app/knowledge/sources/page.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/wiki/src/app/knowledge/sources/page.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4c717b609182f3c", "name": "Very large file: apps/wiki/src/lib/api-types.ts (2419 lines)", "shortDescription": {"text": "Very large file: apps/wiki/src/lib/api-types.ts (2419 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-d47eb8b82e7493f5", "name": "Very large file: apps/pipeline/src/mesh_pipeline/coordinator.py (1677 lines)", "shortDescription": {"text": "Very large file: apps/pipeline/src/mesh_pipeline/coordinator.py (1677 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-5b0944a02dcacc20", "name": "Very large file: apps/cli/src/mesh_cli/main.py (1642 lines)", "shortDescription": {"text": "Very large file: apps/cli/src/mesh_cli/main.py (1642 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 31 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 12 placeholder/mock markers across 8 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: 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-9a94c971917abd67", "name": "Commented-code block (8 lines) in packages/mesh-llm/src/mesh_llm/prompts.py:707", "shortDescription": {"text": "Commented-code block (8 lines) in packages/mesh-llm/src/mesh_llm/prompts.py:707"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-632d188ebfdf3de8", "name": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/research_qa.py:180", "shortDescription": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/research_qa.py:180"}, "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-776c1e505436fcc7", "name": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/skeptic.py:162", "shortDescription": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/skeptic.py:162"}, "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-bb5c947908d37a53", "name": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/personalizer.py:162", "shortDescription": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/personalizer.py:162"}, "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-f568ba50e0396d2a", "name": "Commented-code block (5 lines) in packages/mesh-agents/src/mesh_agents/connector.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mesh-agents/src/mesh_agents/connector.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b8fccb8af2660ed", "name": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/episodic.py:121", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/episodic.py:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03759303eeb33639", "name": "Commented-code block (6 lines) in packages/mesh-db/src/mesh_db/search.py:57", "shortDescription": {"text": "Commented-code block (6 lines) in packages/mesh-db/src/mesh_db/search.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-152c3baa20436d5b", "name": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/beliefs.py:14", "shortDescription": {"text": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/beliefs.py:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-675610d89e47b8a1", "name": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/claim.py:49", "shortDescription": {"text": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/claim.py:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc6debebc45c4c71", "name": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/connector.py:162", "shortDescription": {"text": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/connector.py:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5a621103aa296a6", "name": "Legacy-named symbol `test_default_env_wins_over_legacy` in tests/test_llm_factory.py:70", "shortDescription": {"text": "Legacy-named symbol `test_default_env_wins_over_legacy` in tests/test_llm_factory.py:70"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ee0c34dcd21f619", "name": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/belief_consolidation.py:171", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/belief_consolidation.py:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-feb2b6b97f8cdb8b", "name": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/coordinator.py:376", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/coordinator.py:376"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09f262ee35f83b36", "name": "58 env vars used in code but missing from .env.example", "shortDescription": {"text": "58 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `API_BASE`, `API_CORS_ORIGINS`, `API_HOST`, `API_PORT`, `API_TIMEOUT`, `CI`, `INTERNAL_API_URL`, `MESH_ASK_AGENT_URLS` + 50 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-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npackages/mesh-llm/src/mesh_llm/anthropic_client.py:complete, packages/mesh-llm/src/mesh_llm/anthropic_client.py:complete, packages/mesh-llm/src/mesh_llm/anthropic_client.py:complete, packages/mesh-llm/src/mesh_llm/client.py:complete\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npackages/mesh-llm/src/mesh_llm/routing.py:complete_with_latency, packages/mesh-llm/src/mesh_llm/routing.py:complete_with_usage\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npackages/mesh-a2a/src/mesh_a2a/client.py:submit_task, packages/mesh-a2a/src/mesh_a2a/client.py:call_skill_blocking, packages/mesh-a2a/src/mesh_a2a/client.py:call_skill\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-3a242864f2283010", "name": "FastAPI PATCH `patch_schedule` without auth dependency \u2014 apps/api/src/mesh_api/routers/schedules.py:39", "shortDescription": {"text": "FastAPI PATCH `patch_schedule` without auth dependency \u2014 apps/api/src/mesh_api/routers/schedules.py:39"}, "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-eecb3aadb83794e0", "name": "FastAPI POST `trigger_pipeline` without auth dependency \u2014 apps/api/src/mesh_api/routers/pipelines.py:21", "shortDescription": {"text": "FastAPI POST `trigger_pipeline` without auth dependency \u2014 apps/api/src/mesh_api/routers/pipelines.py:21"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79981cf4deb6be24", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 apps/api/src/mesh_api/routers/ask.py:54", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 apps/api/src/mesh_api/routers/ask.py:54"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24617"}, "properties": {"repository": "bklassen3434/agent-mesh", "repoUrl": "https://github.com/bklassen3434/agent-mesh", "branch": "main"}, "results": [{"ruleId": "scanner-d432b9e7a17be2e5", "level": "note", "message": {"text": "Possibly dead Python function: recall_block"}, "properties": {"repobilityId": "3afd07c7fedac707", "scanner": "scanner-primary", "fingerprint": "d432b9e7a17be2e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-agents/src/mesh_agents/memory.py:82"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7e24e1ba74e3283", "level": "note", "message": {"text": "Possibly dead Python function: clear_cache"}, "properties": {"repobilityId": "089acf3efecdf10a", "scanner": "scanner-primary", "fingerprint": "c7e24e1ba74e3283", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-agents/src/mesh_agents/profiles.py:48"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7665fd76f2e3f2e", "level": "note", "message": {"text": "Possibly dead Python function: distill_pure"}, "properties": {"repobilityId": "907f30921e7a0f60", "scanner": "scanner-primary", "fingerprint": "b7665fd76f2e3f2e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-agents/src/mesh_agents/consolidator.py:159"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c641733e43ccf74d", "level": "note", "message": {"text": "Possibly dead Python function: run_skill"}, "properties": {"repobilityId": "e6923b344c73ca9a", "scanner": "scanner-primary", "fingerprint": "c641733e43ccf74d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-agents/src/mesh_agents/sota_tracker.py:221"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-012d4c16078e2e89", "level": "note", "message": {"text": "Possibly dead Python function: run_skill"}, "properties": {"repobilityId": "e6923b344c73ca9a", "scanner": "scanner-primary", "fingerprint": "012d4c16078e2e89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-agents/src/mesh_agents/entity_tracker.py:179"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f882d79c3e187b1f", "level": "note", "message": {"text": "Possibly dead Python function: extract_parent_id"}, "properties": {"repobilityId": "738c6e57f2bd6413", "scanner": "scanner-primary", "fingerprint": "f882d79c3e187b1f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/mesh-a2a/src/mesh_a2a/tracing.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01d533b45ad2930c", "level": "note", "message": {"text": "Possibly dead Python function: route_after_load"}, "properties": {"repobilityId": "016659a93cfae374", "scanner": "scanner-primary", "fingerprint": "01d533b45ad2930c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/skeptic_sweep.py:505"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a93072bf7ddf090", "level": "note", "message": {"text": "Possibly dead Python function: route_after_submit"}, "properties": {"repobilityId": "2a026744de164632", "scanner": "scanner-primary", "fingerprint": "9a93072bf7ddf090", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/skeptic_sweep.py:602"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3e76d69e29486cc", "level": "note", "message": {"text": "Possibly dead Python function: route_after_evaluate"}, "properties": {"repobilityId": "b9c41a5ea731e90a", "scanner": "scanner-primary", "fingerprint": "a3e76d69e29486cc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/skeptic_sweep.py:686"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aafc57d776038335", "level": "note", "message": {"text": "Possibly dead Python function: route_after_plan"}, "properties": {"repobilityId": "cffe3f9fe6236479", "scanner": "scanner-primary", "fingerprint": "aafc57d776038335", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/discovery.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-49606fc06110a5cc", "level": "note", "message": {"text": "Possibly dead Python function: route_after_load"}, "properties": {"repobilityId": "016659a93cfae374", "scanner": "scanner-primary", "fingerprint": "49606fc06110a5cc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/consolidation.py:263"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1022d565782d03a6", "level": "note", "message": {"text": "Possibly dead Python function: route_after_submit"}, "properties": {"repobilityId": "2a026744de164632", "scanner": "scanner-primary", "fingerprint": "1022d565782d03a6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pipeline/src/mesh_pipeline/consolidation.py:327"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8638d8aafb9c4d0e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/wiki/tests/mock-server.ts:484"}, "properties": {"repobilityId": "ad738079b08d7a9e", "scanner": "scanner-primary", "fingerprint": "8638d8aafb9c4d0e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41b9143cd637e1a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/wiki/src/app/knowledge/sources/page.tsx:73"}, "properties": {"repobilityId": "5f18a3ebdcc48043", "scanner": "scanner-primary", "fingerprint": "41b9143cd637e1a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "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": 15}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "46bca0fa0c5a1433", "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": 20}}}]}, {"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": 40}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "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": 65}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "46bca0fa0c5a1433", "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": 70}}}]}, {"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": 133}}}]}, {"ruleId": "scanner-d4c717b609182f3c", "level": "note", "message": {"text": "Very large file: apps/wiki/src/lib/api-types.ts (2419 lines)"}, "properties": {"repobilityId": "726c4aceb572a33a", "scanner": "scanner-primary", "fingerprint": "d4c717b609182f3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d47eb8b82e7493f5", "level": "note", "message": {"text": "Very large file: apps/pipeline/src/mesh_pipeline/coordinator.py (1677 lines)"}, "properties": {"repobilityId": "f7a404e0f52c0317", "scanner": "scanner-primary", "fingerprint": "d47eb8b82e7493f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5b0944a02dcacc20", "level": "note", "message": {"text": "Very large file: apps/cli/src/mesh_cli/main.py (1642 lines)"}, "properties": {"repobilityId": "7846cdffb7894b87", "scanner": "scanner-primary", "fingerprint": "5b0944a02dcacc20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "4a8ff7799165e1c4", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8f327592216e75c1", "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": "de87159925f31705", "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": "243734e9c7f26f6c", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "3a925045c854a952", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a94c971917abd67", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/mesh-llm/src/mesh_llm/prompts.py:707"}, "properties": {"repobilityId": "f20ebc1772e58bad", "scanner": "scanner-primary", "fingerprint": "9a94c971917abd67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-632d188ebfdf3de8", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/research_qa.py:180"}, "properties": {"repobilityId": "e3d04b554b73ca58", "scanner": "scanner-primary", "fingerprint": "632d188ebfdf3de8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-776c1e505436fcc7", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/skeptic.py:162"}, "properties": {"repobilityId": "cb091017c365ca3b", "scanner": "scanner-primary", "fingerprint": "776c1e505436fcc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bb5c947908d37a53", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in packages/mesh-agents/src/mesh_agents/personalizer.py:162"}, "properties": {"repobilityId": "3aa80bfd20bef81f", "scanner": "scanner-primary", "fingerprint": "bb5c947908d37a53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f568ba50e0396d2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mesh-agents/src/mesh_agents/connector.py:42"}, "properties": {"repobilityId": "a0ec5778a5d4d295", "scanner": "scanner-primary", "fingerprint": "f568ba50e0396d2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b8fccb8af2660ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/episodic.py:121"}, "properties": {"repobilityId": "d95ea4061c34a8cb", "scanner": "scanner-primary", "fingerprint": "7b8fccb8af2660ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03759303eeb33639", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/mesh-db/src/mesh_db/search.py:57"}, "properties": {"repobilityId": "9bf12914ceb62386", "scanner": "scanner-primary", "fingerprint": "03759303eeb33639", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-152c3baa20436d5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/mesh-db/src/mesh_db/beliefs.py:14"}, "properties": {"repobilityId": "93c4d304be3ae49d", "scanner": "scanner-primary", "fingerprint": "152c3baa20436d5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-675610d89e47b8a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/claim.py:49"}, "properties": {"repobilityId": "2fb5eb89e227d9ed", "scanner": "scanner-primary", "fingerprint": "675610d89e47b8a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc6debebc45c4c71", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/mesh-models/src/mesh_models/connector.py:162"}, "properties": {"repobilityId": "55e6b0b94ccc25ce", "scanner": "scanner-primary", "fingerprint": "fc6debebc45c4c71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5a621103aa296a6", "level": "note", "message": {"text": "Legacy-named symbol `test_default_env_wins_over_legacy` in tests/test_llm_factory.py:70"}, "properties": {"repobilityId": "89e656c5642b0bf5", "scanner": "scanner-primary", "fingerprint": "f5a621103aa296a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1ee0c34dcd21f619", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/belief_consolidation.py:171"}, "properties": {"repobilityId": "b356ddeee1b892aa", "scanner": "scanner-primary", "fingerprint": "1ee0c34dcd21f619", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-feb2b6b97f8cdb8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pipeline/src/mesh_pipeline/coordinator.py:376"}, "properties": {"repobilityId": "b9e1b9f70ca7c4c8", "scanner": "scanner-primary", "fingerprint": "feb2b6b97f8cdb8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09f262ee35f83b36", "level": "note", "message": {"text": "58 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "929a1590d71ca96e", "scanner": "scanner-primary", "fingerprint": "09f262ee35f83b36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "b629f827a998008b", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "e7ce07e339b11912", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d2198b90d9c77752", "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": "b5b2650b49e1c044", "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": "9e4be1b2e7197f02", "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": "76063723bf32427c", "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": "1f93e867444603d9", "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": "f0a9c23bc36613b9", "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": "4f405a41b94f37e7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "4dfc11b9497ef086", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5a0507ce78d05fb3", "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": "83753512fc5b3bbc", "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": "1ff67f8e7154fd8b", "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": "51f7b06a1540d53d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-3a242864f2283010", "level": "error", "message": {"text": "FastAPI PATCH `patch_schedule` without auth dependency \u2014 apps/api/src/mesh_api/routers/schedules.py:39"}, "properties": {"repobilityId": "e61e03c54f6ba6af", "scanner": "scanner-primary", "fingerprint": "3a242864f2283010", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/mesh_api/routers/schedules.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-eecb3aadb83794e0", "level": "error", "message": {"text": "FastAPI POST `trigger_pipeline` without auth dependency \u2014 apps/api/src/mesh_api/routers/pipelines.py:21"}, "properties": {"repobilityId": "e748347628b750fd", "scanner": "scanner-primary", "fingerprint": "eecb3aadb83794e0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/mesh_api/routers/pipelines.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-79981cf4deb6be24", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 apps/api/src/mesh_api/routers/ask.py:54"}, "properties": {"repobilityId": "a4bbd78120cd3148", "scanner": "scanner-primary", "fingerprint": "79981cf4deb6be24", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/src/mesh_api/routers/ask.py"}, "region": {"startLine": 54}}}]}]}]}