{"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-ede4e9551dfcfbf5", "name": "Possibly dead Python function: not_found_page", "shortDescription": {"text": "Possibly dead Python function: not_found_page"}, "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-43c61ffbc7b5b3f5", "name": "Possibly dead Python function: index", "shortDescription": {"text": "Possibly dead Python function: index"}, "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-487f85b160da6782", "name": "Possibly dead Python function: create_session_route", "shortDescription": {"text": "Possibly dead Python function: create_session_route"}, "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-a5d2dd8da7b88fd2", "name": "Possibly dead Python function: resume_session_route", "shortDescription": {"text": "Possibly dead Python function: resume_session_route"}, "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-e0e83dc2605b9730", "name": "Possibly dead Python function: clear_logs", "shortDescription": {"text": "Possibly dead Python function: clear_logs"}, "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-b75538a3eba9119f", "name": "Possibly dead Python function: copy_session_id", "shortDescription": {"text": "Possibly dead Python function: copy_session_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-02b166f008f6fa1b", "name": "Possibly dead Python function: start_new_session", "shortDescription": {"text": "Possibly dead Python function: start_new_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-cce643c1f6362a3d", "name": "Possibly dead Python function: update_resume_session_input", "shortDescription": {"text": "Possibly dead Python function: update_resume_session_input"}, "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-8a88876e3033ef1a", "name": "Possibly dead Python function: resume_session", "shortDescription": {"text": "Possibly dead Python function: resume_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-4c8d0a28586f7b2c", "name": "Possibly dead Python function: save_code_draft", "shortDescription": {"text": "Possibly dead Python function: save_code_draft"}, "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-786a898107c57578", "name": "Possibly dead Python function: update_code", "shortDescription": {"text": "Possibly dead Python function: update_code"}, "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-c015345e3d46837b", "name": "Possibly dead Python function: update_contract_name", "shortDescription": {"text": "Possibly dead Python function: update_contract_name"}, "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-9c4d970d7f378ed2", "name": "Possibly dead Python function: update_kwargs", "shortDescription": {"text": "Possibly dead Python function: update_kwargs"}, "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-df5c67ee35fd177d", "name": "Possibly dead Python function: change_selected_contract", "shortDescription": {"text": "Possibly dead Python function: change_selected_contract"}, "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-9414fda3deb2737f", "name": "Possibly dead Python function: change_selected_function", "shortDescription": {"text": "Possibly dead Python function: change_selected_function"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b4427d630de5957", "name": "Possibly dead Python function: refresh_functions", "shortDescription": {"text": "Possibly dead Python function: refresh_functions"}, "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-21d0e9dddb9e826a", "name": "Possibly dead Python function: change_loaded_contract", "shortDescription": {"text": "Possibly dead Python function: change_loaded_contract"}, "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-7b07a9328603bc29", "name": "Possibly dead Python function: refresh_loaded_contract", "shortDescription": {"text": "Possibly dead Python function: refresh_loaded_contract"}, "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-f87c6e9cc1790539", "name": "Possibly dead Python function: set_show_system_contracts", "shortDescription": {"text": "Possibly dead Python function: set_show_system_contracts"}, "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-8ecf8cda48ccb0de", "name": "Possibly dead Python function: toggle_show_system_contracts", "shortDescription": {"text": "Possibly dead Python function: toggle_show_system_contracts"}, "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-10d6a306f6f51ea7", "name": "Possibly dead Python function: handle_fullscreen_keydown", "shortDescription": {"text": "Possibly dead Python function: handle_fullscreen_keydown"}, "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-7c34f4dc2233555f", "name": "Possibly dead Python function: confirm_clear_state", "shortDescription": {"text": "Possibly dead Python function: confirm_clear_state"}, "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-d885ca0fe6c81f8e", "name": "Possibly dead Python function: export_state", "shortDescription": {"text": "Possibly dead Python function: export_state"}, "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-3eb11f8167247e95", "name": "Possibly dead Python function: remove_selected_contract", "shortDescription": {"text": "Possibly dead Python function: remove_selected_contract"}, "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-e84c1b11b1e99bf2", "name": "Possibly dead Python function: refresh_environment", "shortDescription": {"text": "Possibly dead Python function: refresh_environment"}, "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-1e80ab131fab5709", "name": "Possibly dead Python function: deploy_contract", "shortDescription": {"text": "Possibly dead Python function: deploy_contract"}, "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-045afbb797f4453f", "name": "Possibly dead Python function: set_show_internal_state", "shortDescription": {"text": "Possibly dead Python function: set_show_internal_state"}, "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-26f5083f5239e78c", "name": "Possibly dead Python function: toggle_show_internal_state", "shortDescription": {"text": "Possibly dead Python function: toggle_show_internal_state"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5b09dab12a4e2c0", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 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-d17df76e1e57b4c0", "name": "Very large file: playground/playground.py (1802 lines)", "shortDescription": {"text": "Very large file: playground/playground.py (1802 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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nplayground/state.py:refresh_contracts, playground/state.py:refresh_functions, playground/state.py:refresh_loaded_contract, playground/state.py:refresh_state\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:\nplayground/services/worker.py:stop, playground/services/worker.py:stop\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22985"}, "properties": {"repository": "xian-technology/xian-playground-web", "repoUrl": "https://github.com/xian-technology/xian-playground-web", "branch": "main"}, "results": [{"ruleId": "scanner-ede4e9551dfcfbf5", "level": "note", "message": {"text": "Possibly dead Python function: not_found_page"}, "properties": {"repobilityId": "5935d850503420dc", "scanner": "scanner-primary", "fingerprint": "ede4e9551dfcfbf5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/playground.py:1543"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-43c61ffbc7b5b3f5", "level": "note", "message": {"text": "Possibly dead Python function: index"}, "properties": {"repobilityId": "eff2f78781c8145b", "scanner": "scanner-primary", "fingerprint": "43c61ffbc7b5b3f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/playground.py:1671"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-487f85b160da6782", "level": "note", "message": {"text": "Possibly dead Python function: create_session_route"}, "properties": {"repobilityId": "96921969fdc7aee7", "scanner": "scanner-primary", "fingerprint": "487f85b160da6782", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/playground.py:1782"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5d2dd8da7b88fd2", "level": "note", "message": {"text": "Possibly dead Python function: resume_session_route"}, "properties": {"repobilityId": "f6e8259e12f9ec19", "scanner": "scanner-primary", "fingerprint": "a5d2dd8da7b88fd2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/playground.py:1789"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0e83dc2605b9730", "level": "note", "message": {"text": "Possibly dead Python function: clear_logs"}, "properties": {"repobilityId": "e30cf91a5e44d055", "scanner": "scanner-primary", "fingerprint": "e0e83dc2605b9730", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:317"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b75538a3eba9119f", "level": "note", "message": {"text": "Possibly dead Python function: copy_session_id"}, "properties": {"repobilityId": "8cab99fa8628250b", "scanner": "scanner-primary", "fingerprint": "b75538a3eba9119f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:354"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02b166f008f6fa1b", "level": "note", "message": {"text": "Possibly dead Python function: start_new_session"}, "properties": {"repobilityId": "a8e09a04d7fdf8a6", "scanner": "scanner-primary", "fingerprint": "02b166f008f6fa1b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:367"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cce643c1f6362a3d", "level": "note", "message": {"text": "Possibly dead Python function: update_resume_session_input"}, "properties": {"repobilityId": "787002fd6cc86977", "scanner": "scanner-primary", "fingerprint": "cce643c1f6362a3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:370"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a88876e3033ef1a", "level": "note", "message": {"text": "Possibly dead Python function: resume_session"}, "properties": {"repobilityId": "7c8998aca18ded01", "scanner": "scanner-primary", "fingerprint": "8a88876e3033ef1a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:373"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4c8d0a28586f7b2c", "level": "note", "message": {"text": "Possibly dead Python function: save_code_draft"}, "properties": {"repobilityId": "17a016d45db5ff0d", "scanner": "scanner-primary", "fingerprint": "4c8d0a28586f7b2c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:387"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-786a898107c57578", "level": "note", "message": {"text": "Possibly dead Python function: update_code"}, "properties": {"repobilityId": "60f1c6a551e6ce4d", "scanner": "scanner-primary", "fingerprint": "786a898107c57578", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:394"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c015345e3d46837b", "level": "note", "message": {"text": "Possibly dead Python function: update_contract_name"}, "properties": {"repobilityId": "4b0654430acedf0f", "scanner": "scanner-primary", "fingerprint": "c015345e3d46837b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:399"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c4d970d7f378ed2", "level": "note", "message": {"text": "Possibly dead Python function: update_kwargs"}, "properties": {"repobilityId": "92a8c828f4c955e3", "scanner": "scanner-primary", "fingerprint": "9c4d970d7f378ed2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:402"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df5c67ee35fd177d", "level": "note", "message": {"text": "Possibly dead Python function: change_selected_contract"}, "properties": {"repobilityId": "380d12708232f4bf", "scanner": "scanner-primary", "fingerprint": "df5c67ee35fd177d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:405"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9414fda3deb2737f", "level": "note", "message": {"text": "Possibly dead Python function: change_selected_function"}, "properties": {"repobilityId": "4f00c53ab782b3ab", "scanner": "scanner-primary", "fingerprint": "9414fda3deb2737f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:412"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b4427d630de5957", "level": "note", "message": {"text": "Possibly dead Python function: refresh_functions"}, "properties": {"repobilityId": "2385b83165476594", "scanner": "scanner-primary", "fingerprint": "2b4427d630de5957", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:465"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-21d0e9dddb9e826a", "level": "note", "message": {"text": "Possibly dead Python function: change_loaded_contract"}, "properties": {"repobilityId": "439cc7b541d346fb", "scanner": "scanner-primary", "fingerprint": "21d0e9dddb9e826a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:498"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b07a9328603bc29", "level": "note", "message": {"text": "Possibly dead Python function: refresh_loaded_contract"}, "properties": {"repobilityId": "9baee0ea768818b4", "scanner": "scanner-primary", "fingerprint": "7b07a9328603bc29", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:502"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f87c6e9cc1790539", "level": "note", "message": {"text": "Possibly dead Python function: set_show_system_contracts"}, "properties": {"repobilityId": "31c070c671a775e2", "scanner": "scanner-primary", "fingerprint": "f87c6e9cc1790539", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:529"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ecf8cda48ccb0de", "level": "note", "message": {"text": "Possibly dead Python function: toggle_show_system_contracts"}, "properties": {"repobilityId": "67789de190028515", "scanner": "scanner-primary", "fingerprint": "8ecf8cda48ccb0de", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:535"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10d6a306f6f51ea7", "level": "note", "message": {"text": "Possibly dead Python function: handle_fullscreen_keydown"}, "properties": {"repobilityId": "fb3a822843094d8c", "scanner": "scanner-primary", "fingerprint": "10d6a306f6f51ea7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:547"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7c34f4dc2233555f", "level": "note", "message": {"text": "Possibly dead Python function: confirm_clear_state"}, "properties": {"repobilityId": "0eae1d00932d7188", "scanner": "scanner-primary", "fingerprint": "7c34f4dc2233555f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:568"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d885ca0fe6c81f8e", "level": "note", "message": {"text": "Possibly dead Python function: export_state"}, "properties": {"repobilityId": "e40914c33a6a995b", "scanner": "scanner-primary", "fingerprint": "d885ca0fe6c81f8e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:617"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3eb11f8167247e95", "level": "note", "message": {"text": "Possibly dead Python function: remove_selected_contract"}, "properties": {"repobilityId": "e95f93ff3993ae35", "scanner": "scanner-primary", "fingerprint": "3eb11f8167247e95", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:683"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e84c1b11b1e99bf2", "level": "note", "message": {"text": "Possibly dead Python function: refresh_environment"}, "properties": {"repobilityId": "9e6b3932691314a2", "scanner": "scanner-primary", "fingerprint": "e84c1b11b1e99bf2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:745"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e80ab131fab5709", "level": "note", "message": {"text": "Possibly dead Python function: deploy_contract"}, "properties": {"repobilityId": "8e8b9be577efda81", "scanner": "scanner-primary", "fingerprint": "1e80ab131fab5709", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:759"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-045afbb797f4453f", "level": "note", "message": {"text": "Possibly dead Python function: set_show_internal_state"}, "properties": {"repobilityId": "d391f47c083d18d0", "scanner": "scanner-primary", "fingerprint": "045afbb797f4453f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:793"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26f5083f5239e78c", "level": "note", "message": {"text": "Possibly dead Python function: toggle_show_internal_state"}, "properties": {"repobilityId": "eb96e73c94ea53ea", "scanner": "scanner-primary", "fingerprint": "26f5083f5239e78c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "playground/state.py:799"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0f16a0487cea03fc", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0f16a0487cea03fc", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0f16a0487cea03fc", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0f16a0487cea03fc", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "969dd03ce9ee9f08", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5f46a375168aa9a3", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-e5b09dab12a4e2c0", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b9ab1b7eb106dac9", "scanner": "scanner-primary", "fingerprint": "e5b09dab12a4e2c0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/validate.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-d17df76e1e57b4c0", "level": "note", "message": {"text": "Very large file: playground/playground.py (1802 lines)"}, "properties": {"repobilityId": "585e2ac36c6f9f96", "scanner": "scanner-primary", "fingerprint": "d17df76e1e57b4c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "6ee43b9e9245954a", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "26b67ff871e528fd", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "3fc584bcd26ede02", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "7393411b3bd8e58a", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "cb7e6476860d9c3d", "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": "225c40da49a94b82", "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": "258937d24829fb21", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}