{"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-0ca57c78ba466a2c", "name": "Possibly dead Python function: classify_sentiment", "shortDescription": {"text": "Possibly dead Python function: classify_sentiment"}, "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-ae2cb4ea4ce630b2", "name": "Possibly dead Python function: delete_user_agent_sessions", "shortDescription": {"text": "Possibly dead Python function: delete_user_agent_sessions"}, "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-e224fb8aa181c18c", "name": "Possibly dead Python function: delete_single_agent_session", "shortDescription": {"text": "Possibly dead Python function: delete_single_agent_session"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f169347713825cf8", "name": "Possibly dead Python function: update_session_title", "shortDescription": {"text": "Possibly dead Python function: update_session_title"}, "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-8d9401b43f9bba72", "name": "Possibly dead Python function: delete_chat_session", "shortDescription": {"text": "Possibly dead Python function: delete_chat_session"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c9d14f12f3bda96", "name": "Possibly dead Python function: save_message_feedback", "shortDescription": {"text": "Possibly dead Python function: save_message_feedback"}, "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-3f5a546d59b00448", "name": "Possibly dead Python function: insert_like", "shortDescription": {"text": "Possibly dead Python function: insert_like"}, "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-6a5ffd465a3edc39", "name": "Possibly dead Python function: configure_sync_conn", "shortDescription": {"text": "Possibly dead Python function: configure_sync_conn"}, "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-2aca9a46ae88b750", "name": "Possibly dead Python function: configure_async_conn", "shortDescription": {"text": "Possibly dead Python function: configure_async_conn"}, "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-d57eb9c03a928562", "name": "Possibly dead Python function: configure_checkpoint_conn", "shortDescription": {"text": "Possibly dead Python function: configure_checkpoint_conn"}, "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-74dd0b668dd0a680", "name": "Possibly dead Python function: close_connection_pool", "shortDescription": {"text": "Possibly dead Python function: close_connection_pool"}, "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-43540d7bd23abbf7", "name": "Possibly dead Python function: aclose_connection_pool", "shortDescription": {"text": "Possibly dead Python function: aclose_connection_pool"}, "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-a8abbbd11ec4dbc8", "name": "Possibly dead Python function: humanize_plan_ingredients", "shortDescription": {"text": "Possibly dead Python function: humanize_plan_ingredients"}, "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-d602c7a518b7d13c", "name": "Possibly dead Python function: run_proactive_checks", "shortDescription": {"text": "Possibly dead Python function: run_proactive_checks"}, "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-07c921f2a45ac47b", "name": "Possibly dead Python function: check_and_trigger_jit_rolling_windows", "shortDescription": {"text": "Possibly dead Python function: check_and_trigger_jit_rolling_windows"}, "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-8c4b1481b44efbfb", "name": "Possibly dead Python function: invalidate_tier_cache", "shortDescription": {"text": "Possibly dead Python function: invalidate_tier_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-a2c23b181917aa9c", "name": "Possibly dead Python function: assert_valid_uuid", "shortDescription": {"text": "Possibly dead Python function: assert_valid_uuid"}, "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-98e59fc3a02f23cd", "name": "Possibly dead Python function: is_neon_auth_configured", "shortDescription": {"text": "Possibly dead Python function: is_neon_auth_configured"}, "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-595730c6b930f851", "name": "Possibly dead Python function: verify_neon_jwt", "shortDescription": {"text": "Possibly dead Python function: verify_neon_jwt"}, "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-363074e3242f4e75", "name": "Possibly dead Python function: summarize_and_prune", "shortDescription": {"text": "Possibly dead Python function: summarize_and_prune"}, "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-0357ec42332e9c7d", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "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-c06b970721f346fa", "name": "Possibly dead Python function: strip_ui_action_tags_for_persist", "shortDescription": {"text": "Possibly dead Python function: strip_ui_action_tags_for_persist"}, "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-c5c3dc85ec470fae", "name": "Possibly dead Python function: swap_meal", "shortDescription": {"text": "Possibly dead Python function: swap_meal"}, "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-0610214483c8aa81", "name": "Possibly dead Python function: route_tools", "shortDescription": {"text": "Possibly dead Python function: route_tools"}, "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-93fd3fd9f099795d", "name": "Possibly dead Python function: generate_chat_title_background", "shortDescription": {"text": "Possibly dead Python function: generate_chat_title_background"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-866549f4c6e7850f", "name": "Very large file: agent.py (3190 lines)", "shortDescription": {"text": "Very large file: agent.py (3190 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-89e37eb9ca9b507b", "name": "Very large file: db_plans.py (1536 lines)", "shortDescription": {"text": "Very large file: db_plans.py (1536 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-a865fcd4c6dbc084", "name": "Very large file: shopping_calculator.py (7867 lines)", "shortDescription": {"text": "Very large file: shopping_calculator.py (7867 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-43377de79a65014a", "name": "Very large file: tools.py (1867 lines)", "shortDescription": {"text": "Very large file: tools.py (1867 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-88dabe52cf759220", "name": "Very large file: constants.py (2625 lines)", "shortDescription": {"text": "Very large file: constants.py (2625 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-ff7741c770129540", "name": "Very large file: app.py (2512 lines)", "shortDescription": {"text": "Very large file: app.py (2512 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-9b8af34dec9973a4", "name": "Very large file: graph_orchestrator.py (16304 lines)", "shortDescription": {"text": "Very large file: graph_orchestrator.py (16304 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-818daf5ce8902f87", "name": "Very large file: ai_helpers.py (1041 lines)", "shortDescription": {"text": "Very large file: ai_helpers.py (1041 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-926068a90475da57", "name": "Very large file: db_profiles.py (1188 lines)", "shortDescription": {"text": "Very large file: db_profiles.py (1188 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-f0ad788ed408d9a1", "name": "Very large file: db_inventory.py (2693 lines)", "shortDescription": {"text": "Very large file: db_inventory.py (2693 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "1 test file(s) for 42 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d0501dd6688c007", "name": "81 TODO/FIXME markers", "shortDescription": {"text": "81 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "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 22 placeholder/mock markers across 6 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "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, ci, operator-readme. 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-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-f410c8e0e80fc1d2", "name": "Commented-code block (6 lines) in bg_executor.py:164", "shortDescription": {"text": "Commented-code block (6 lines) in bg_executor.py:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22fbb4539377f760", "name": "Commented-code block (7 lines) in sentiment_classifier.py:23", "shortDescription": {"text": "Commented-code block (7 lines) in sentiment_classifier.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b791cd0831e80aa", "name": "Commented-code block (7 lines) in utils_push.py:9", "shortDescription": {"text": "Commented-code block (7 lines) in utils_push.py:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac8954cfc55cba52", "name": "Network/subprocess call without timeout or try/except \u2014 utils_push.py:9", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 utils_push.py:9"}, "fullDescription": {"text": "`requests.post(...)` 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-a7c9791af475247c", "name": "Commented-code block (6 lines) in db_chat.py:21", "shortDescription": {"text": "Commented-code block (6 lines) in db_chat.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-126a82a0f6235232", "name": "Commented-code block (8 lines) in conftest.py:26", "shortDescription": {"text": "Commented-code block (8 lines) in conftest.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1c6dfcccd76b4fa", "name": "Commented-code block (6 lines) in db_core.py:27", "shortDescription": {"text": "Commented-code block (6 lines) in db_core.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90036346b01fc307", "name": "Commented-code block (8 lines) in humanize_ingredients.py:4", "shortDescription": {"text": "Commented-code block (8 lines) in humanize_ingredients.py:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b94a177b59f8d63c", "name": "Commented-code block (13 lines) in proactive_agent.py:34", "shortDescription": {"text": "Commented-code block (13 lines) in proactive_agent.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f03156815857492e", "name": "Commented-code block (8 lines) in db_facts.py:19", "shortDescription": {"text": "Commented-code block (8 lines) in db_facts.py:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-702fcabc67cbdf8b", "name": "Legacy-named symbol `model_copy` in llm_provider.py:304", "shortDescription": {"text": "Legacy-named symbol `model_copy` in llm_provider.py:304"}, "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-6fe2165bc321d191", "name": "Commented-code block (10 lines) in llm_provider.py:64", "shortDescription": {"text": "Commented-code block (10 lines) in llm_provider.py:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58f2a966485a3bbd", "name": "Commented-code block (5 lines) in memory_manager.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in memory_manager.py:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1949718592f15b37", "name": "Commented-code block (6 lines) in rate_limiter.py:67", "shortDescription": {"text": "Commented-code block (6 lines) in rate_limiter.py: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-113a248844a5b6f0", "name": "Commented-code block (7 lines) in knobs.py:166", "shortDescription": {"text": "Commented-code block (7 lines) in knobs.py:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7a210b3295bae55", "name": "Commented-code block (10 lines) in tools_medical.py:12", "shortDescription": {"text": "Commented-code block (10 lines) in tools_medical.py:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbcec2c80c9a5b0e", "name": "Legacy-named symbol `_fallback_copy` in agent.py:1655", "shortDescription": {"text": "Legacy-named symbol `_fallback_copy` in agent.py:1655"}, "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-19ff1c42af3f5748", "name": "Commented-code block (6 lines) in agent.py:28", "shortDescription": {"text": "Commented-code block (6 lines) in agent.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67648d2d445ee132", "name": "Commented-code block (6 lines) in services.py:24", "shortDescription": {"text": "Commented-code block (6 lines) in services.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f06c2a436598d764", "name": "Commented-code block (5 lines) in db_plans.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in db_plans.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1816b880ffd670c", "name": "Legacy-named symbol `days_old` in shopping_calculator.py:7639", "shortDescription": {"text": "Legacy-named symbol `days_old` in shopping_calculator.py:7639"}, "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-c655c9e16152b282", "name": "Commented-code block (5 lines) in shopping_calculator.py:14", "shortDescription": {"text": "Commented-code block (5 lines) in shopping_calculator.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-a8119022d2cd876e", "name": "Commented-code block (6 lines) in tools.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in tools.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9fa5f4c7fbd9b01", "name": "Legacy-named symbol `weeks_old` in constants.py:139", "shortDescription": {"text": "Legacy-named symbol `weeks_old` in constants.py:139"}, "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-ee0907f945d3a047", "name": "Commented-code block (5 lines) in constants.py:9", "shortDescription": {"text": "Commented-code block (5 lines) in constants.py:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec4198ae8357e756", "name": "Commented-code block (7 lines) in app.py:27", "shortDescription": {"text": "Commented-code block (7 lines) in app.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dc7c95e611f215a", "name": "Commented-code block (10 lines) in auth.py:16", "shortDescription": {"text": "Commented-code block (10 lines) in auth.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-689b13c6cd9a796e", "name": "Commented-code block (8 lines) in canonical_units.py:102", "shortDescription": {"text": "Commented-code block (8 lines) in canonical_units.py:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90f01aadd23ad54e", "name": "Legacy-named symbol `days_old` in graph_orchestrator.py:12518", "shortDescription": {"text": "Legacy-named symbol `days_old` in graph_orchestrator.py:12518"}, "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-faaaff3588105356", "name": "Commented-code block (5 lines) in graph_orchestrator.py:49", "shortDescription": {"text": "Commented-code block (5 lines) in graph_orchestrator.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-cfac50190396f1ec", "name": "Commented-code block (5 lines) in correlation.py:86", "shortDescription": {"text": "Commented-code block (5 lines) in correlation.py:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83402091ae7d0114", "name": "Commented-code block (5 lines) in ai_helpers.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in ai_helpers.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8833f9c8b120e15", "name": "Legacy-named symbol `snapshot_old` in db_profiles.py:464", "shortDescription": {"text": "Legacy-named symbol `snapshot_old` in db_profiles.py:464"}, "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-f8b4a7d088f160e0", "name": "Commented-code block (5 lines) in db_profiles.py:26", "shortDescription": {"text": "Commented-code block (5 lines) in db_profiles.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1690e765521f9dc4", "name": "Legacy-named symbol `record_meal_plan_audit_backup` in db_meal_plans_audit.py:23", "shortDescription": {"text": "Legacy-named symbol `record_meal_plan_audit_backup` in db_meal_plans_audit.py:23"}, "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-d7b3b2a1d5f02a09", "name": "Legacy-named symbol `days_old` in db_inventory.py:436", "shortDescription": {"text": "Legacy-named symbol `days_old` in db_inventory.py:436"}, "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-5574828f0396242e", "name": "Commented-code block (6 lines) in db_inventory.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in db_inventory.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96a21fa45e7677d1", "name": "Commented-code block (8 lines) in nutrition_calculator.py:292", "shortDescription": {"text": "Commented-code block (8 lines) in nutrition_calculator.py:292"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-512215ca80da09ff", "name": "Commented-code block (8 lines) in fact_extractor.py:40", "shortDescription": {"text": "Commented-code block (8 lines) in fact_extractor.py:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76e1497d944ec53f", "name": "Commented-code block (8 lines) in vision_agent.py:20", "shortDescription": {"text": "Commented-code block (8 lines) in vision_agent.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e979165e2e350465", "name": "Commented-code block (6 lines) in db.py:3", "shortDescription": {"text": "Commented-code block (6 lines) in db.py:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6e3e4ef574d3f86", "name": "173 env vars used in code but missing from .env.example", "shortDescription": {"text": "173 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CHUNK_ANCHOR_RECOVERY_MAX_ATTEMPTS`, `CHUNK_BG_ROLLING_REFILL_INTERVAL_HOURS`, `CHUNK_CHRONIC_DEFERRAL_CHECK_INTERVAL_MINUTES`, `CHUNK_CHRONIC_DEFERRAL_MIN_COUNT`, `CHUNK_CHRONIC_DEFERRAL_NOTIFY_COOLDOWN_HOURS`, `CHUNK_CHRONIC_DEFERRAL_WINDOW_HOURS`, `CHUNK_CRITICAL_LESSONS_IMMORTAL_HARD_CAP`, `CHUNK_CRITICAL_LESSONS_MAX` + 165 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndb_facts.py:delete_user_facts_by_metadata, db_facts.py:delete_user_fact\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-49c92a26c617b96e", "name": "FastAPI POST `api_webhook_process_pending_facts` without auth dependency \u2014 app.py:2315", "shortDescription": {"text": "FastAPI POST `api_webhook_process_pending_facts` without auth dependency \u2014 app.py:2315"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-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/25967"}, "properties": {"repository": "fuegoservicios-lab/MealfitRD-Backend", "repoUrl": "https://github.com/fuegoservicios-lab/MealfitRD-Backend", "branch": "main"}, "results": [{"ruleId": "scanner-0ca57c78ba466a2c", "level": "note", "message": {"text": "Possibly dead Python function: classify_sentiment"}, "properties": {"repobilityId": "177fd991851593cd", "scanner": "scanner-primary", "fingerprint": "0ca57c78ba466a2c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sentiment_classifier.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae2cb4ea4ce630b2", "level": "note", "message": {"text": "Possibly dead Python function: delete_user_agent_sessions"}, "properties": {"repobilityId": "059e322bbc8eae92", "scanner": "scanner-primary", "fingerprint": "ae2cb4ea4ce630b2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e224fb8aa181c18c", "level": "note", "message": {"text": "Possibly dead Python function: delete_single_agent_session"}, "properties": {"repobilityId": "98fe4dd36c3b850b", "scanner": "scanner-primary", "fingerprint": "e224fb8aa181c18c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f169347713825cf8", "level": "note", "message": {"text": "Possibly dead Python function: update_session_title"}, "properties": {"repobilityId": "5a9a74a41c76dd01", "scanner": "scanner-primary", "fingerprint": "f169347713825cf8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:53"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d9401b43f9bba72", "level": "note", "message": {"text": "Possibly dead Python function: delete_chat_session"}, "properties": {"repobilityId": "5c84caca695ad8ba", "scanner": "scanner-primary", "fingerprint": "8d9401b43f9bba72", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:379"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0c9d14f12f3bda96", "level": "note", "message": {"text": "Possibly dead Python function: save_message_feedback"}, "properties": {"repobilityId": "9363dad699240358", "scanner": "scanner-primary", "fingerprint": "0c9d14f12f3bda96", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:517"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f5a546d59b00448", "level": "note", "message": {"text": "Possibly dead Python function: insert_like"}, "properties": {"repobilityId": "07e75c3bb6e3b9ed", "scanner": "scanner-primary", "fingerprint": "3f5a546d59b00448", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_chat.py:797"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a5ffd465a3edc39", "level": "note", "message": {"text": "Possibly dead Python function: configure_sync_conn"}, "properties": {"repobilityId": "504f0447f2b13752", "scanner": "scanner-primary", "fingerprint": "6a5ffd465a3edc39", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_core.py:259"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2aca9a46ae88b750", "level": "note", "message": {"text": "Possibly dead Python function: configure_async_conn"}, "properties": {"repobilityId": "fc02f5eb3f6287c5", "scanner": "scanner-primary", "fingerprint": "2aca9a46ae88b750", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_core.py:276"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d57eb9c03a928562", "level": "note", "message": {"text": "Possibly dead Python function: configure_checkpoint_conn"}, "properties": {"repobilityId": "19d5e8995ceae7d6", "scanner": "scanner-primary", "fingerprint": "d57eb9c03a928562", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_core.py:289"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-74dd0b668dd0a680", "level": "note", "message": {"text": "Possibly dead Python function: close_connection_pool"}, "properties": {"repobilityId": "91bc2181cbf5bdba", "scanner": "scanner-primary", "fingerprint": "74dd0b668dd0a680", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_core.py:407"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-43540d7bd23abbf7", "level": "note", "message": {"text": "Possibly dead Python function: aclose_connection_pool"}, "properties": {"repobilityId": "40b3fe905d45a0ba", "scanner": "scanner-primary", "fingerprint": "43540d7bd23abbf7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "db_core.py:417"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a8abbbd11ec4dbc8", "level": "note", "message": {"text": "Possibly dead Python function: humanize_plan_ingredients"}, "properties": {"repobilityId": "e1695a32395ee348", "scanner": "scanner-primary", "fingerprint": "a8abbbd11ec4dbc8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "humanize_ingredients.py:213"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d602c7a518b7d13c", "level": "note", "message": {"text": "Possibly dead Python function: run_proactive_checks"}, "properties": {"repobilityId": "d86c49650d094210", "scanner": "scanner-primary", "fingerprint": "d602c7a518b7d13c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "proactive_agent.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07c921f2a45ac47b", "level": "note", "message": {"text": "Possibly dead Python function: check_and_trigger_jit_rolling_windows"}, "properties": {"repobilityId": "c4d5181a7ba369ca", "scanner": "scanner-primary", "fingerprint": "07c921f2a45ac47b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "proactive_agent.py:695"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c4b1481b44efbfb", "level": "note", "message": {"text": "Possibly dead Python function: invalidate_tier_cache"}, "properties": {"repobilityId": "4a43fb556ce78685", "scanner": "scanner-primary", "fingerprint": "8c4b1481b44efbfb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "llm_provider.py:152"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2c23b181917aa9c", "level": "note", "message": {"text": "Possibly dead Python function: assert_valid_uuid"}, "properties": {"repobilityId": "0270d6725ec16ea0", "scanner": "scanner-primary", "fingerprint": "a2c23b181917aa9c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "path_validators.py:49"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98e59fc3a02f23cd", "level": "note", "message": {"text": "Possibly dead Python function: is_neon_auth_configured"}, "properties": {"repobilityId": "2efa598d57a16e14", "scanner": "scanner-primary", "fingerprint": "98e59fc3a02f23cd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "neon_auth.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-595730c6b930f851", "level": "note", "message": {"text": "Possibly dead Python function: verify_neon_jwt"}, "properties": {"repobilityId": "b382f9c5b4154c62", "scanner": "scanner-primary", "fingerprint": "595730c6b930f851", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "neon_auth.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-363074e3242f4e75", "level": "note", "message": {"text": "Possibly dead Python function: summarize_and_prune"}, "properties": {"repobilityId": "95312cef65aff749", "scanner": "scanner-primary", "fingerprint": "363074e3242f4e75", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory_manager.py:402"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0357ec42332e9c7d", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "0357ec42332e9c7d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cache_manager.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c06b970721f346fa", "level": "note", "message": {"text": "Possibly dead Python function: strip_ui_action_tags_for_persist"}, "properties": {"repobilityId": "344eecbe9d2e60f4", "scanner": "scanner-primary", "fingerprint": "c06b970721f346fa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c5c3dc85ec470fae", "level": "note", "message": {"text": "Possibly dead Python function: swap_meal"}, "properties": {"repobilityId": "e3e12a7098a014d5", "scanner": "scanner-primary", "fingerprint": "c5c3dc85ec470fae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent.py:469"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0610214483c8aa81", "level": "note", "message": {"text": "Possibly dead Python function: route_tools"}, "properties": {"repobilityId": "602363859a40c01a", "scanner": "scanner-primary", "fingerprint": "0610214483c8aa81", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent.py:1984"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93fd3fd9f099795d", "level": "note", "message": {"text": "Possibly dead Python function: generate_chat_title_background"}, "properties": {"repobilityId": "3e8a21cc54bb1875", "scanner": "scanner-primary", "fingerprint": "93fd3fd9f099795d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent.py:2007"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-866549f4c6e7850f", "level": "note", "message": {"text": "Very large file: agent.py (3190 lines)"}, "properties": {"repobilityId": "e43b471060129228", "scanner": "scanner-primary", "fingerprint": "866549f4c6e7850f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89e37eb9ca9b507b", "level": "note", "message": {"text": "Very large file: db_plans.py (1536 lines)"}, "properties": {"repobilityId": "2017a9667b386299", "scanner": "scanner-primary", "fingerprint": "89e37eb9ca9b507b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a865fcd4c6dbc084", "level": "note", "message": {"text": "Very large file: shopping_calculator.py (7867 lines)"}, "properties": {"repobilityId": "d8324e79d6e03505", "scanner": "scanner-primary", "fingerprint": "a865fcd4c6dbc084", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-43377de79a65014a", "level": "note", "message": {"text": "Very large file: tools.py (1867 lines)"}, "properties": {"repobilityId": "bb9c56d954864a47", "scanner": "scanner-primary", "fingerprint": "43377de79a65014a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-88dabe52cf759220", "level": "note", "message": {"text": "Very large file: constants.py (2625 lines)"}, "properties": {"repobilityId": "cb68e43e968ac1ef", "scanner": "scanner-primary", "fingerprint": "88dabe52cf759220", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff7741c770129540", "level": "note", "message": {"text": "Very large file: app.py (2512 lines)"}, "properties": {"repobilityId": "5a74e6652f3a10d4", "scanner": "scanner-primary", "fingerprint": "ff7741c770129540", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9b8af34dec9973a4", "level": "note", "message": {"text": "Very large file: graph_orchestrator.py (16304 lines)"}, "properties": {"repobilityId": "aa920166fe8c3fe2", "scanner": "scanner-primary", "fingerprint": "9b8af34dec9973a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-818daf5ce8902f87", "level": "note", "message": {"text": "Very large file: ai_helpers.py (1041 lines)"}, "properties": {"repobilityId": "bd1915f0480a7fbc", "scanner": "scanner-primary", "fingerprint": "818daf5ce8902f87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-926068a90475da57", "level": "note", "message": {"text": "Very large file: db_profiles.py (1188 lines)"}, "properties": {"repobilityId": "f984d199b23f5292", "scanner": "scanner-primary", "fingerprint": "926068a90475da57", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f0ad788ed408d9a1", "level": "note", "message": {"text": "Very large file: db_inventory.py (2693 lines)"}, "properties": {"repobilityId": "ceb112523e59fbec", "scanner": "scanner-primary", "fingerprint": "f0ad788ed408d9a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-8d0501dd6688c007", "level": "note", "message": {"text": "81 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "8d0501dd6688c007", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "402538c2d1d5fe74", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "2d70e8c9e2a5200c", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "6ac58e0abcf8f33f", "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": "bd8ae67a70b4fb6d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "2aeb52cab68cd7c8", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "90a2534eb2fe92b6", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "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": 316}}}]}, {"ruleId": "scanner-f410c8e0e80fc1d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in bg_executor.py:164"}, "properties": {"repobilityId": "fd6caad5fd019d46", "scanner": "scanner-primary", "fingerprint": "f410c8e0e80fc1d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22fbb4539377f760", "level": "none", "message": {"text": "Commented-code block (7 lines) in sentiment_classifier.py:23"}, "properties": {"repobilityId": "e297e5d37b6e5858", "scanner": "scanner-primary", "fingerprint": "22fbb4539377f760", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b791cd0831e80aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in utils_push.py:9"}, "properties": {"repobilityId": "6d5bc4308a8393d8", "scanner": "scanner-primary", "fingerprint": "4b791cd0831e80aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac8954cfc55cba52", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 utils_push.py:9"}, "properties": {"repobilityId": "e0dc0ccab5b2a246", "scanner": "scanner-primary", "fingerprint": "ac8954cfc55cba52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7c9791af475247c", "level": "none", "message": {"text": "Commented-code block (6 lines) in db_chat.py:21"}, "properties": {"repobilityId": "c42035a5d33ca7cd", "scanner": "scanner-primary", "fingerprint": "a7c9791af475247c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-126a82a0f6235232", "level": "none", "message": {"text": "Commented-code block (8 lines) in conftest.py:26"}, "properties": {"repobilityId": "7f91289609ff3b91", "scanner": "scanner-primary", "fingerprint": "126a82a0f6235232", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1c6dfcccd76b4fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in db_core.py:27"}, "properties": {"repobilityId": "360e6303a8ca41a6", "scanner": "scanner-primary", "fingerprint": "f1c6dfcccd76b4fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90036346b01fc307", "level": "none", "message": {"text": "Commented-code block (8 lines) in humanize_ingredients.py:4"}, "properties": {"repobilityId": "cf7920638943ea7b", "scanner": "scanner-primary", "fingerprint": "90036346b01fc307", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b94a177b59f8d63c", "level": "none", "message": {"text": "Commented-code block (13 lines) in proactive_agent.py:34"}, "properties": {"repobilityId": "6569073270b4ccdb", "scanner": "scanner-primary", "fingerprint": "b94a177b59f8d63c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f03156815857492e", "level": "none", "message": {"text": "Commented-code block (8 lines) in db_facts.py:19"}, "properties": {"repobilityId": "f028efe12e040837", "scanner": "scanner-primary", "fingerprint": "f03156815857492e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-702fcabc67cbdf8b", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in llm_provider.py:304"}, "properties": {"repobilityId": "e3f041f96f6fdbb5", "scanner": "scanner-primary", "fingerprint": "702fcabc67cbdf8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6fe2165bc321d191", "level": "none", "message": {"text": "Commented-code block (10 lines) in llm_provider.py:64"}, "properties": {"repobilityId": "49846346da9e22f1", "scanner": "scanner-primary", "fingerprint": "6fe2165bc321d191", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58f2a966485a3bbd", "level": "none", "message": {"text": "Commented-code block (5 lines) in memory_manager.py:43"}, "properties": {"repobilityId": "a4829e8945e3e0ff", "scanner": "scanner-primary", "fingerprint": "58f2a966485a3bbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1949718592f15b37", "level": "none", "message": {"text": "Commented-code block (6 lines) in rate_limiter.py:67"}, "properties": {"repobilityId": "bf5a9b2e73ad81c3", "scanner": "scanner-primary", "fingerprint": "1949718592f15b37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-113a248844a5b6f0", "level": "none", "message": {"text": "Commented-code block (7 lines) in knobs.py:166"}, "properties": {"repobilityId": "bc762ef855f2c816", "scanner": "scanner-primary", "fingerprint": "113a248844a5b6f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7a210b3295bae55", "level": "none", "message": {"text": "Commented-code block (10 lines) in tools_medical.py:12"}, "properties": {"repobilityId": "ae9a160a4f85a627", "scanner": "scanner-primary", "fingerprint": "d7a210b3295bae55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbcec2c80c9a5b0e", "level": "note", "message": {"text": "Legacy-named symbol `_fallback_copy` in agent.py:1655"}, "properties": {"repobilityId": "d7c348abc53e473f", "scanner": "scanner-primary", "fingerprint": "fbcec2c80c9a5b0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-19ff1c42af3f5748", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent.py:28"}, "properties": {"repobilityId": "95ce92aefd0b3086", "scanner": "scanner-primary", "fingerprint": "19ff1c42af3f5748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67648d2d445ee132", "level": "none", "message": {"text": "Commented-code block (6 lines) in services.py:24"}, "properties": {"repobilityId": "de10d9da10d6866a", "scanner": "scanner-primary", "fingerprint": "67648d2d445ee132", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f06c2a436598d764", "level": "none", "message": {"text": "Commented-code block (5 lines) in db_plans.py:20"}, "properties": {"repobilityId": "b895b324de602502", "scanner": "scanner-primary", "fingerprint": "f06c2a436598d764", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1816b880ffd670c", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in shopping_calculator.py:7639"}, "properties": {"repobilityId": "da6b5bc8414c557a", "scanner": "scanner-primary", "fingerprint": "f1816b880ffd670c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c655c9e16152b282", "level": "none", "message": {"text": "Commented-code block (5 lines) in shopping_calculator.py:14"}, "properties": {"repobilityId": "9361308213fc7375", "scanner": "scanner-primary", "fingerprint": "c655c9e16152b282", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8119022d2cd876e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools.py:32"}, "properties": {"repobilityId": "70510ef19da869ec", "scanner": "scanner-primary", "fingerprint": "a8119022d2cd876e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9fa5f4c7fbd9b01", "level": "note", "message": {"text": "Legacy-named symbol `weeks_old` in constants.py:139"}, "properties": {"repobilityId": "1ddaf20cd4b86487", "scanner": "scanner-primary", "fingerprint": "a9fa5f4c7fbd9b01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ee0907f945d3a047", "level": "none", "message": {"text": "Commented-code block (5 lines) in constants.py:9"}, "properties": {"repobilityId": "33cdd51cdb93e2eb", "scanner": "scanner-primary", "fingerprint": "ee0907f945d3a047", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec4198ae8357e756", "level": "none", "message": {"text": "Commented-code block (7 lines) in app.py:27"}, "properties": {"repobilityId": "0a430a1d33c4012b", "scanner": "scanner-primary", "fingerprint": "ec4198ae8357e756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dc7c95e611f215a", "level": "none", "message": {"text": "Commented-code block (10 lines) in auth.py:16"}, "properties": {"repobilityId": "dcf4e868674bbb13", "scanner": "scanner-primary", "fingerprint": "4dc7c95e611f215a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-689b13c6cd9a796e", "level": "none", "message": {"text": "Commented-code block (8 lines) in canonical_units.py:102"}, "properties": {"repobilityId": "f9148b9b33b58586", "scanner": "scanner-primary", "fingerprint": "689b13c6cd9a796e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90f01aadd23ad54e", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in graph_orchestrator.py:12518"}, "properties": {"repobilityId": "902b6e57be549f0f", "scanner": "scanner-primary", "fingerprint": "90f01aadd23ad54e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-faaaff3588105356", "level": "none", "message": {"text": "Commented-code block (5 lines) in graph_orchestrator.py:49"}, "properties": {"repobilityId": "c683a8cba426b182", "scanner": "scanner-primary", "fingerprint": "faaaff3588105356", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfac50190396f1ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in correlation.py:86"}, "properties": {"repobilityId": "de2523ffc44a239c", "scanner": "scanner-primary", "fingerprint": "cfac50190396f1ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83402091ae7d0114", "level": "none", "message": {"text": "Commented-code block (5 lines) in ai_helpers.py:41"}, "properties": {"repobilityId": "6f2039f50df93f0b", "scanner": "scanner-primary", "fingerprint": "83402091ae7d0114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8833f9c8b120e15", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_old` in db_profiles.py:464"}, "properties": {"repobilityId": "7c80836c5bfe9f1f", "scanner": "scanner-primary", "fingerprint": "b8833f9c8b120e15", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f8b4a7d088f160e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in db_profiles.py:26"}, "properties": {"repobilityId": "f86c6b39ad4ac1ec", "scanner": "scanner-primary", "fingerprint": "f8b4a7d088f160e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1690e765521f9dc4", "level": "note", "message": {"text": "Legacy-named symbol `record_meal_plan_audit_backup` in db_meal_plans_audit.py:23"}, "properties": {"repobilityId": "b6dd98d005863280", "scanner": "scanner-primary", "fingerprint": "1690e765521f9dc4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7b3b2a1d5f02a09", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in db_inventory.py:436"}, "properties": {"repobilityId": "92c3e0bb141e5a3f", "scanner": "scanner-primary", "fingerprint": "d7b3b2a1d5f02a09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5574828f0396242e", "level": "none", "message": {"text": "Commented-code block (6 lines) in db_inventory.py:32"}, "properties": {"repobilityId": "10265b0e8e3b2399", "scanner": "scanner-primary", "fingerprint": "5574828f0396242e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96a21fa45e7677d1", "level": "none", "message": {"text": "Commented-code block (8 lines) in nutrition_calculator.py:292"}, "properties": {"repobilityId": "e67edd8181cfdcf8", "scanner": "scanner-primary", "fingerprint": "96a21fa45e7677d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-512215ca80da09ff", "level": "none", "message": {"text": "Commented-code block (8 lines) in fact_extractor.py:40"}, "properties": {"repobilityId": "5d245f635dca4c08", "scanner": "scanner-primary", "fingerprint": "512215ca80da09ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76e1497d944ec53f", "level": "none", "message": {"text": "Commented-code block (8 lines) in vision_agent.py:20"}, "properties": {"repobilityId": "ec44acebdea9c32f", "scanner": "scanner-primary", "fingerprint": "76e1497d944ec53f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e979165e2e350465", "level": "none", "message": {"text": "Commented-code block (6 lines) in db.py:3"}, "properties": {"repobilityId": "ac0554f96e9b6220", "scanner": "scanner-primary", "fingerprint": "e979165e2e350465", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6e3e4ef574d3f86", "level": "note", "message": {"text": "173 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "de17554fd99fb932", "scanner": "scanner-primary", "fingerprint": "d6e3e4ef574d3f86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f2528776faea7691", "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": "8ba463f24a9648e1", "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": "30343c6105d7773c", "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": "e0556f004945100f", "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": "c9cd7535a50dc29b", "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": "054bd81a3285d99e", "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": "0e19abf3f556adcf", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c92a26c617b96e", "level": "error", "message": {"text": "FastAPI POST `api_webhook_process_pending_facts` without auth dependency \u2014 app.py:2315"}, "properties": {"repobilityId": "70bac299d5561bfd", "scanner": "scanner-primary", "fingerprint": "49c92a26c617b96e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2315}}}]}]}]}