{"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": "MINED111", "name": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or ", "shortDescription": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "fullDescription": {"text": "Either narrow the exception type, log the exception with `logger.exception(...)`, or re-raise after handling."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC007", "name": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.", "shortDescription": {"text": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code."}, "fullDescription": {"text": "Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data."}, "properties": {"scanner": "repobility-threat-engine", "category": "deserialization", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "ERR001", "name": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG ", "shortDescription": {"text": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level."}, "fullDescription": {"text": "Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types."}, "properties": {"scanner": "repobility-threat-engine", "category": "error_handling", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "COMP001", "name": "[COMP001] High cognitive complexity: Function `calibrate` has cognitive complexity 16 (SonarSource scale). Cognitive com", "shortDescription": {"text": "[COMP001] High cognitive complexity: Function `calibrate` has cognitive complexity 16 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all"}, "fullDescription": {"text": "Extract nested branches into named helper functions; flatten early-return / guard clauses; replace long if/elif chains with dispatch dicts or polymorphism. SonarQube's threshold for 'should refactor' is 15 \u2014 yours is 16."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "medium", "confidence": 0.95, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_CI", "name": "No CI/CD configuration found", "shortDescription": {"text": "No CI/CD configuration found"}, "fullDescription": {"text": "Add a CI/CD pipeline: create .github/workflows/ci.yml for GitHub Actions with steps to lint, test, and build on every push and pull request."}, "properties": {"scanner": "repobility-core", "category": "practices", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "AIC003", "name": "Duplicated implementation block across source files", "shortDescription": {"text": "Duplicated implementation block across source files"}, "fullDescription": {"text": "Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used."}, "properties": {"scanner": "repobility-ai-code-hygiene", "category": "quality", "severity": "low", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_LICENSE", "name": "No LICENSE file", "shortDescription": {"text": "No LICENSE file"}, "fullDescription": {"text": "Add a LICENSE file to your repository. Use choosealicense.com to pick the right license (MIT for permissive, Apache 2.0 for patent protection, GPL for copyleft)."}, "properties": {"scanner": "repobility-core", "category": "documentation", "severity": "low", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "SEC114", "name": "[SEC114] path.join / Path() on user-controlled segment without containment check (and 1 more): Same pattern found in 1 a", "shortDescription": {"text": "[SEC114] path.join / Path() on user-controlled segment without containment check (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "After joining, re-check containment: `if !strings.HasPrefix(filepath.Clean(joined), filepath.Clean(baseDir)+string(os.PathSeparator)) { error }`. In Node: `path.resolve(base, x); if (!resolved.startsWith(base + path.sep)) throw`."}, "properties": {"scanner": "repobility-threat-engine", "category": "path_traversal", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "SEC013", "name": "[SEC013] Path Traversal \u2014 User Input in File Path (and 1 more): Same pattern found in 1 additional files. Review if need", "shortDescription": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "Use os.path.realpath() and verify the path starts with your expected base directory. Use secure_filename() for uploads."}, "properties": {"scanner": "repobility-threat-engine", "category": "path_traversal", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED050", "name": "[MINED050] Stub Only Function (and 4 more): Same pattern found in 4 additional files. Review if needed.", "shortDescription": {"text": "[MINED050] Stub Only Function (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED001", "name": "[MINED001] Bare Except Pass (and 1 more): Same pattern found in 1 additional files. Review if needed.", "shortDescription": {"text": "[MINED001] Bare Except Pass (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-755 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 0.2, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "[MINED108] `self._aruco_sub` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` ", "shortDescription": {"text": "[MINED108] `self._aruco_sub` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._aruco_sub`, but no assignment to it exists in __init__ (and no class-level fallback). This raises Attribute"}, "fullDescription": {"text": "Initialize `self._aruco_sub = <default>` in __init__, or add a class-level default."}, "properties": {"scanner": "repobility-ast-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED006", "name": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working.", "shortDescription": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-705 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC128", "name": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns", "shortDescription": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, ra"}, "fullDescription": {"text": "Add `await` before each async call, or chain with `.then`. If you intentionally want fire-and-forget, prefix with `void` (TS) or assign to `_` (Python with `asyncio.create_task`) to make the intent explicit and survive lint."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "high", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED030", "name": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__.", "shortDescription": {"text": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-502 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "SEC081", "name": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary co", "shortDescription": {"text": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary code on untrusted input. Ported from dlint DUO103 / DUO120 (BSD-3)."}, "fullDescription": {"text": "Use json, msgpack, or protobuf for untrusted data. If pickle is required, sign the payload with HMAC."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "critical", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "scanner-506be2b95088f5d3", "name": "git log failed \u2014 history analysis incomplete", "shortDescription": {"text": "git log failed \u2014 history analysis incomplete"}, "fullDescription": {"text": "fatal: not a git repository (or any parent up to mount point /data)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "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-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}}]}}, "automationDetails": {"id": "repobility/1630"}, "properties": {"repository": "2026-yarr-robotics/ros2-depth-point-cloude", "repoUrl": "https://github.com/2026-yarr-robotics/ros2-depth-point-cloude", "branch": "main"}, "results": [{"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 163629, "scanner": "repobility-ast-engine", "fingerprint": "19f412b86c7aa51e63fa338b4bafe0d25e2ff5c6540b6919800920c17791adfd", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|19f412b86c7aa51e63fa338b4bafe0d25e2ff5c6540b6919800920c17791adfd"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/point_cloud_node.py"}, "region": {"startLine": 1177}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 163628, "scanner": "repobility-ast-engine", "fingerprint": "37aac9927461d76119bc241d7d741c072d71a8f0205de0a0d9e194a02bbe10ef", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|37aac9927461d76119bc241d7d741c072d71a8f0205de0a0d9e194a02bbe10ef"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_control.py"}, "region": {"startLine": 57}}}]}, {"ruleId": "MINED111", "level": "warning", "message": {"text": "[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose."}, "properties": {"repobilityId": 163627, "scanner": "repobility-ast-engine", "fingerprint": "ee900571567bb514422394999da43388ba6be97fc6311f90e7bc01973a520082", "category": "quality", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "bare-except-without-pass", "owasp": null, "cwe_ids": [], "languages": ["python"], "observations_count": 21610}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ee900571567bb514422394999da43388ba6be97fc6311f90e7bc01973a520082"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/digital_twin_panel.py"}, "region": {"startLine": 500}}}]}, {"ruleId": "SEC007", "level": "warning", "message": {"text": "[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code."}, "properties": {"repobilityId": 163598, "scanner": "repobility-threat-engine", "fingerprint": "9ef8d23b4c10584e077dbfad490d5c870354c094200109dad7651776aaad5f07", "category": "deserialization", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "pickle.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC007", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|deserialization|token|217|sec007"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/seq_io.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "ERR001", "level": "warning", "message": {"text": "[ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level."}, "properties": {"repobilityId": 163587, "scanner": "repobility-threat-engine", "fingerprint": "0cc556fb2bf14f320e724bb859144a0cf7b50da6bb2ef88d8d7ad456348bcf4b", "category": "error_handling", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "except Exception:\n            pass", "reason": "Pattern matched with no mitigating context found", "rule_id": "ERR001", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|0cc556fb2bf14f320e724bb859144a0cf7b50da6bb2ef88d8d7ad456348bcf4b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_control.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "COMP001", "level": "warning", "message": {"text": "[COMP001] High cognitive complexity: Function `calibrate` has cognitive complexity 16 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: continue=2, for=1, if=7, nested_bonus=6."}, "properties": {"repobilityId": 163577, "scanner": "repobility-threat-engine", "fingerprint": "42587b04cbc3d2cd4ee8bca921632bfcfdc7f4afcd2ad20fb73123f4c2ac925a", "category": "quality", "severity": "medium", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 16 (severity threshold for medium: 15+).", "evidence": {"scanner": "repobility-threat-engine", "function": "calibrate", "breakdown": {"if": 7, "for": 1, "continue": 2, "nested_bonus": 6}, "complexity": 16, "correlation_key": "fp|42587b04cbc3d2cd4ee8bca921632bfcfdc7f4afcd2ad20fb73123f4c2ac925a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/calibration.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "CORE_NO_CI", "level": "warning", "message": {"text": "No CI/CD configuration found"}, "properties": {"repobilityId": 163571, "scanner": "repobility-core", "fingerprint": "ca5da3551af97272c4f099fc472740148135a15816b81b90bd862e8f91ec66ce", "category": "practices", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_CI", "scanner": "repobility-core", "correlation_key": "repo|practices|core_no_ci"}}}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 163601, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9baf34808b49b02cea1d95840145ddfe617d096325652bef514a9e39ac453e94", "category": "quality", "severity": "low", "confidence": 0.86, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "A normalized source-code window appears in two different non-test files.", "evidence": {"lines": 12, "rule_id": "AIC003", "scanner": "repobility-ai-code-hygiene", "references": ["https://jscpd.dev/"], "duplicate_file": "src/depth_digital_twin/launch/digital_twin_fusion.launch.py", "duplicate_line": 249, "correlation_key": "fp|9baf34808b49b02cea1d95840145ddfe617d096325652bef514a9e39ac453e94"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/launch/digital_twin_sequence.launch.py"}, "region": {"startLine": 232}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `calibrate_camera_from_chessboard` has cognitive complexity 10 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: continue=1, for=1, if=5, nested_bonus=3."}, "properties": {"repobilityId": 163576, "scanner": "repobility-threat-engine", "fingerprint": "13ecbb5676abb29e63acc07799d8fd674015fcdf968d1334824f8fb878e42c79", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 10 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "calibrate_camera_from_chessboard", "breakdown": {"if": 5, "for": 1, "continue": 1, "nested_bonus": 3}, "complexity": 10, "correlation_key": "fp|13ecbb5676abb29e63acc07799d8fd674015fcdf968d1334824f8fb878e42c79"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sample/Calibration_Tutorial/handeye_calibration.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "COMP001", "level": "note", "message": {"text": "[COMP001] High cognitive complexity: Function `calibrate_camera_from_chessboard` has cognitive complexity 10 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand \u2014 nested branches, boolean chains, and recursion all weigh in. Breakdown: continue=1, for=1, if=5, nested_bonus=3."}, "properties": {"repobilityId": 163575, "scanner": "repobility-threat-engine", "fingerprint": "a7faaaea470f29b50e80a5b550bb73cc753968ed03fa120ddc6a592276677a8e", "category": "quality", "severity": "low", "confidence": 0.95, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "AST-derived cognitive complexity score = 10 (severity threshold for low: 8+).", "evidence": {"scanner": "repobility-threat-engine", "function": "calibrate_camera_from_chessboard", "breakdown": {"if": 5, "for": 1, "continue": 1, "nested_bonus": 3}, "complexity": 10, "correlation_key": "fp|a7faaaea470f29b50e80a5b550bb73cc753968ed03fa120ddc6a592276677a8e"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sample/Calibration_Tutorial/eye2hand_calibration.py"}, "region": {"startLine": 64}}}]}, {"ruleId": "CORE_NO_LICENSE", "level": "note", "message": {"text": "No LICENSE file"}, "properties": {"repobilityId": 163570, "scanner": "repobility-core", "fingerprint": "9314e9238cd99885865b92490d1aaa96ca62b1390c9377878d5f3d99227e1c3c", "category": "documentation", "severity": "low", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_LICENSE", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_license"}}}, {"ruleId": "SEC114", "level": "none", "message": {"text": "[SEC114] path.join / Path() on user-controlled segment without containment check (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 163595, "scanner": "repobility-threat-engine", "fingerprint": "d05fdfd303acef4bf522377f189862ed32d19e441b16e020faac46615cd2aacc", "category": "path_traversal", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC114", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|d05fdfd303acef4bf522377f189862ed32d19e441b16e020faac46615cd2aacc"}}}, {"ruleId": "SEC013", "level": "none", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 163591, "scanner": "repobility-threat-engine", "fingerprint": "75f22750f5eefefb3a3ce8f933bc32c82dff4c8e9ca3ec94aeac313553cfbd0d", "category": "path_traversal", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.2, "correlation_key": "fp|75f22750f5eefefb3a3ce8f933bc32c82dff4c8e9ca3ec94aeac313553cfbd0d"}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function (and 4 more): Same pattern found in 4 additional files. Review if needed."}, "properties": {"repobilityId": 163586, "scanner": "repobility-threat-engine", "fingerprint": "a28cbeac28128be054c3f8e1a83589ca9ebddaa29ed78b582b0c2183d021e21c", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 4 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|a28cbeac28128be054c3f8e1a83589ca9ebddaa29ed78b582b0c2183d021e21c", "aggregated_count": 4}}}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 163585, "scanner": "repobility-threat-engine", "fingerprint": "ede757df64da61494d3da46f45755d832d676f4c5a2628ffbf7841adc284b782", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|ede757df64da61494d3da46f45755d832d676f4c5a2628ffbf7841adc284b782"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/legacy/depth_digital_twin/aruco_handeye.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 163584, "scanner": "repobility-threat-engine", "fingerprint": "6c4059ebbd7aa4c72eb42f2202f04d43d6f5df8a3fd316c706a29abf7ec65299", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|6c4059ebbd7aa4c72eb42f2202f04d43d6f5df8a3fd316c706a29abf7ec65299"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_control.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "MINED050", "level": "none", "message": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "properties": {"repobilityId": 163583, "scanner": "repobility-threat-engine", "fingerprint": "7899668b17b9e98f391ed94c431429da884b72351824751a553edc24b252abc7", "category": "quality", "severity": "info", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "stub-only-function", "owasp": null, "cwe_ids": ["CWE-1188"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.348017+00:00", "triaged_in_corpus": 12, "observations_count": 633513, "ai_coder_pattern_id": 2}, "scanner": "repobility-threat-engine", "correlation_key": "fp|7899668b17b9e98f391ed94c431429da884b72351824751a553edc24b252abc7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/detection_node.py"}, "region": {"startLine": 86}}}]}, {"ruleId": "MINED001", "level": "none", "message": {"text": "[MINED001] Bare Except Pass (and 1 more): Same pattern found in 1 additional files. Review if needed."}, "properties": {"repobilityId": 163582, "scanner": "repobility-threat-engine", "fingerprint": "3ed4a11ec48650075e843160edf55362aa121897a652d0286a1dc826dd94d954", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 1 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "aggregated": true, "correlation_key": "fp|3ed4a11ec48650075e843160edf55362aa121897a652d0286a1dc826dd94d954", "aggregated_count": 1}}}, {"ruleId": "COMP001", "level": "none", "message": {"text": "[COMP001] High cognitive complexity (and 11 more): Same pattern found in 11 additional files. Review if needed."}, "properties": {"repobilityId": 163578, "scanner": "repobility-threat-engine", "fingerprint": "8d1502acd42cce6119d839e48acbcfd7f61fd37700295976e1fa3a0ac15210ab", "category": "quality", "severity": "info", "confidence": 0.2, "triageState": "false_positive", "verdict": "likely_fp", "isResolved": true, "reason": "Deduplicated summary only: 11 additional occurrences found. The top occurrences remain visible as actionable findings.", "evidence": {"scanner": "repobility-threat-engine", "function": "calibrate_camera_from_chessboard", "breakdown": {"if": 5, "for": 1, "continue": 1, "nested_bonus": 3}, "aggregated": true, "complexity": 10, "correlation_key": "fp|8d1502acd42cce6119d839e48acbcfd7f61fd37700295976e1fa3a0ac15210ab", "aggregated_count": 11}}}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._aruco_sub` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._aruco_sub`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163626, "scanner": "repobility-ast-engine", "fingerprint": "56333dede30256a4143c4dd63d47b1d6e9e99d9076ed90ecf0156a1b49905a29", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|56333dede30256a4143c4dd63d47b1d6e9e99d9076ed90ecf0156a1b49905a29"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 289}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.marker_length` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.marker_length`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163625, "scanner": "repobility-ast-engine", "fingerprint": "ac50c02e9edb8eb73f3c93234d34c9bf38e01961860e3bc2cc6cf5458417d36c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|ac50c02e9edb8eb73f3c93234d34c9bf38e01961860e3bc2cc6cf5458417d36c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 268}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._use_param_offset` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._use_param_offset`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163624, "scanner": "repobility-ast-engine", "fingerprint": "cc0db028226ab6a1aa30aeb57771dfa50afbd86d519460a6bffd4b08ebe44f3a", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|cc0db028226ab6a1aa30aeb57771dfa50afbd86d519460a6bffd4b08ebe44f3a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 288}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._use_param_offset` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._use_param_offset`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163623, "scanner": "repobility-ast-engine", "fingerprint": "559f5c9e149673018a8fd7f2ac3494959b7e5a9dc4e57e998f91ca5dc9992a9a", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|559f5c9e149673018a8fd7f2ac3494959b7e5a9dc4e57e998f91ca5dc9992a9a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 285}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_start` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_start`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163622, "scanner": "repobility-ast-engine", "fingerprint": "f5cec603345f27c43c36e9f19b8ebf4da541688f4ab1d6b18e489c7e89f566e3", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|f5cec603345f27c43c36e9f19b8ebf4da541688f4ab1d6b18e489c7e89f566e3"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.handeye_link6_samples` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.handeye_link6_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163621, "scanner": "repobility-ast-engine", "fingerprint": "6214a7e173b99551580f208debb39a7fbd652b2af5d37458866c7e2d347283c5", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|6214a7e173b99551580f208debb39a7fbd652b2af5d37458866c7e2d347283c5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 279}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_samples` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163620, "scanner": "repobility-ast-engine", "fingerprint": "90dc70b3a0a2d38a37d63837f855830310b34d8c133aa81d7fc91c757d932dc0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|90dc70b3a0a2d38a37d63837f855830310b34d8c133aa81d7fc91c757d932dc0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 276}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.obj_pts` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.obj_pts`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163619, "scanner": "repobility-ast-engine", "fingerprint": "45f379e99567ca4309faf50941102e9acf090de71920d936054694573effd590", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|45f379e99567ca4309faf50941102e9acf090de71920d936054694573effd590"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 269}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_detector` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_detector`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163618, "scanner": "repobility-ast-engine", "fingerprint": "e57f12f283ab2a8bb4ec3466b1cce662ef8caf766a0bac3526bbbfa13723f461", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|e57f12f283ab2a8bb4ec3466b1cce662ef8caf766a0bac3526bbbfa13723f461"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 265}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._aruco_offset` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._aruco_offset`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163617, "scanner": "repobility-ast-engine", "fingerprint": "64995d5650eb1ab70e3ddd948c4fdb2cd45e2e6ab8218768d3adefc2197a8271", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|64995d5650eb1ab70e3ddd948c4fdb2cd45e2e6ab8218768d3adefc2197a8271"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 250}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._aruco_R_m2b` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self._aruco_R_m2b`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163616, "scanner": "repobility-ast-engine", "fingerprint": "c20a3fff7fbbe4bd55fd070216fea48c9dff9bdb7bf043bb6b9b6578d9c8c4c2", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c20a3fff7fbbe4bd55fd070216fea48c9dff9bdb7bf043bb6b9b6578d9c8c4c2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 249}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.T_marker_base` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.T_marker_base`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163615, "scanner": "repobility-ast-engine", "fingerprint": "e77a8b9ce0fcec7bec3fd698b98e88aa3057220bd8b3c9df6bbff2961988016d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|e77a8b9ce0fcec7bec3fd698b98e88aa3057220bd8b3c9df6bbff2961988016d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 243}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_fallback` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_fallback`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163614, "scanner": "repobility-ast-engine", "fingerprint": "35d2bedff0179e4e9a6f3062f1ae25a4be7cbff112219f83c04412eb475760b7", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|35d2bedff0179e4e9a6f3062f1ae25a4be7cbff112219f83c04412eb475760b7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 222}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_timeout_s` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_timeout_s`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163613, "scanner": "repobility-ast-engine", "fingerprint": "be0c5d24743b721ab42c1d8053af422906818262bea7333b5d93093e456dae65", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|be0c5d24743b721ab42c1d8053af422906818262bea7333b5d93093e456dae65"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 220}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_reproj_max` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_reproj_max`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163612, "scanner": "repobility-ast-engine", "fingerprint": "8580322b2c49062602dfce11a17c0fe64429827f5eafdac096a106452b314de5", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|8580322b2c49062602dfce11a17c0fe64429827f5eafdac096a106452b314de5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_samples_req` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.aruco_samples_req`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163611, "scanner": "repobility-ast-engine", "fingerprint": "44049931e7cae545a3749a8cf22e0daf5a01fde70d6124f06baacb41951e2792", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|44049931e7cae545a3749a8cf22e0daf5a01fde70d6124f06baacb41951e2792"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 216}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.marker_length` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.marker_length`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163610, "scanner": "repobility-ast-engine", "fingerprint": "c2aa9a1d3210b89145c97a9029a71b54ba033ba39a05ca6d008cf9514477fd39", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|c2aa9a1d3210b89145c97a9029a71b54ba033ba39a05ca6d008cf9514477fd39"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 215}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.marker_id` used but never assigned in __init__: Method `_setup_aruco_mode` of class `WorldOriginNode` reads `self.marker_id`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163609, "scanner": "repobility-ast-engine", "fingerprint": "dd9b81eef253449109f7c2bffa70c8d4834dd332f2706da657bcd8ee2e3d7b5b", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|dd9b81eef253449109f7c2bffa70c8d4834dd332f2706da657bcd8ee2e3d7b5b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 213}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.R_samples` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self.R_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163608, "scanner": "repobility-ast-engine", "fingerprint": "b3779c993263a0e098829cc821dce217bcb2846eb3d1de14299a7bd1248afd26", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|b3779c993263a0e098829cc821dce217bcb2846eb3d1de14299a7bd1248afd26"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.origin_samples` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self.origin_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163607, "scanner": "repobility-ast-engine", "fingerprint": "09a2966c06734cf2b9f22531e9dab7ab2e8e9e240568715d6473c3356b0f1e50", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|09a2966c06734cf2b9f22531e9dab7ab2e8e9e240568715d6473c3356b0f1e50"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 202}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._aruco_sub` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self._aruco_sub`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163606, "scanner": "repobility-ast-engine", "fingerprint": "12419b18fbeea432f2ba786fd6a19eae5ff9b75e801dab59a15d9511a8f92442", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|12419b18fbeea432f2ba786fd6a19eae5ff9b75e801dab59a15d9511a8f92442"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 192}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self._aruco_sub` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self._aruco_sub`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163605, "scanner": "repobility-ast-engine", "fingerprint": "175d7ded8bdb2b808bfe062777abbe8496be07b1678747fbb056a5851defcb4b", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|175d7ded8bdb2b808bfe062777abbe8496be07b1678747fbb056a5851defcb4b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_start` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self.aruco_start`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163604, "scanner": "repobility-ast-engine", "fingerprint": "edac149d50a08b907e8879e094e56291c4464da162e7a9e5ad9e1c33ff0a0c76", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|edac149d50a08b907e8879e094e56291c4464da162e7a9e5ad9e1c33ff0a0c76"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 191}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.handeye_link6_samples` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self.handeye_link6_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163603, "scanner": "repobility-ast-engine", "fingerprint": "87c4c747751b17d125f596d1cd9273ea885f0bbb091425a94cbd3dc291f67abe", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|87c4c747751b17d125f596d1cd9273ea885f0bbb091425a94cbd3dc291f67abe"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 190}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.aruco_samples` used but never assigned in __init__: Method `_handle_redetect` of class `WorldOriginNode` reads `self.aruco_samples`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance."}, "properties": {"repobilityId": 163602, "scanner": "repobility-ast-engine", "fingerprint": "99f66e32e612cfb12676dc9e1630c9c589432b65cdd295543759efccaaa5a3a0", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "self-attr-never-set", "owasp": null, "cwe_ids": ["CWE-476"], "languages": ["python"], "observations_count": 25998}, "scanner": "repobility-ast-engine", "correlation_key": "fp|99f66e32e612cfb12676dc9e1630c9c589432b65cdd295543759efccaaa5a3a0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_node.py"}, "region": {"startLine": 189}}}]}, {"ruleId": "MINED006", "level": "error", "message": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "properties": {"repobilityId": 163597, "scanner": "repobility-threat-engine", "fingerprint": "ded797f5b8f1bf7186084327aefd749936ae6742a23a06d5c3c6ba70d4cdd058", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "correlation_key": "fp|ded797f5b8f1bf7186084327aefd749936ae6742a23a06d5c3c6ba70d4cdd058"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/sequence_player_node.py"}, "region": {"startLine": 288}}}]}, {"ruleId": "MINED006", "level": "error", "message": {"text": "[MINED006] Overcatch Baseexception: except BaseException: ... \u2014 prevents Ctrl+C and SystemExit from working."}, "properties": {"repobilityId": 163596, "scanner": "repobility-threat-engine", "fingerprint": "703e9dc8e5636a4cd2eb20591a80a79ba12d9253c3c9c5eee31824f8901f3b59", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "overcatch-baseexception", "owasp": null, "cwe_ids": ["CWE-705"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347911+00:00", "triaged_in_corpus": 15, "observations_count": 230624, "ai_coder_pattern_id": 8}, "scanner": "repobility-threat-engine", "correlation_key": "fp|703e9dc8e5636a4cd2eb20591a80a79ba12d9253c3c9c5eee31824f8901f3b59"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/handeye_tf_node.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "SEC114", "level": "error", "message": {"text": "[SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../etc/passwd` resolves cleanly."}, "properties": {"repobilityId": 163594, "scanner": "repobility-threat-engine", "fingerprint": "5dff5906a40e145c5284e106038b157645dfbf3953b01a8f79e0feb3e0936d0f", "category": "path_traversal", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "path.join(pkg, 'config', 'recode_params", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC114", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|path_traversal|token|31|sec114"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/launch/playback.launch.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "SEC114", "level": "error", "message": {"text": "[SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../etc/passwd` resolves cleanly."}, "properties": {"repobilityId": 163593, "scanner": "repobility-threat-engine", "fingerprint": "add51879175aa536bb03341373cc25b4197a150fb1d2a1f41b19e30ff4688a4b", "category": "path_traversal", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "path.join(cfg_dir, 'params", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC114", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|path_traversal|token|39|sec114"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/launch/hand_fusion_add.launch.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "SEC114", "level": "error", "message": {"text": "[SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../etc/passwd` resolves cleanly."}, "properties": {"repobilityId": 163592, "scanner": "repobility-threat-engine", "fingerprint": "56890fe33346279bd8d2ce556e6b9bda5c2caf6747c5e47d77cf4dcec960ff27", "category": "path_traversal", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "path.join(cfg_dir, 'params", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC114", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "code|path_traversal|token|52|sec114"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/launch/digital_twin.launch.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 163590, "scanner": "repobility-threat-engine", "fingerprint": "3564262f1a306333ff353a27009f64e422e0b59a9fb5ea163c799b0653319c45", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "os.path.join(pkg, 'config', 'recode_params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|31|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/launch/playback.launch.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 163589, "scanner": "repobility-threat-engine", "fingerprint": "f7ecac5aec3e230f930d7c50b8a1df59a17616c6506b4b4d9635865844380996", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "os.path.join(cfg_dir, 'params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|39|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/launch/hand_fusion_add.launch.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "SEC013", "level": "error", "message": {"text": "[SEC013] Path Traversal \u2014 User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files."}, "properties": {"repobilityId": 163588, "scanner": "repobility-threat-engine", "fingerprint": "93fdf32e54620d45f7a6070829008276b0332a460e38d8e0090d400bae82f545", "category": "path_traversal", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "likely", "isResolved": false, "reason": "User-controlled input detected in file path construction", "evidence": {"match": "os.path.join(cfg_dir, 'params", "reason": "User-controlled input detected in file path construction", "rule_id": "SEC013", "scanner": "repobility-threat-engine", "confidence": 0.8, "correlation_key": "code|path_traversal|token|52|sec013"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/launch/digital_twin.launch.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 163581, "scanner": "repobility-threat-engine", "fingerprint": "a5594e85107e3236c772fd04f4df9bb3aab6ff0f365846a84e0bc02bcd0a2cf4", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|a5594e85107e3236c772fd04f4df9bb3aab6ff0f365846a84e0bc02bcd0a2cf4"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/handeye_tf_node.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 163580, "scanner": "repobility-threat-engine", "fingerprint": "cfda87ac9fdfbcebb1620debe866bde9ea7f82d628ff85429e934303687c2c7c", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|cfda87ac9fdfbcebb1620debe866bde9ea7f82d628ff85429e934303687c2c7c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/world_origin_control.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED001", "level": "error", "message": {"text": "[MINED001] Bare Except Pass: except: pass or except Exception: pass \u2014 silently swallows everything including KeyboardInterrupt and bugs."}, "properties": {"repobilityId": 163579, "scanner": "repobility-threat-engine", "fingerprint": "efdac99e087f6b5c6949b6e5f77d63678ba6c014f21577a54c1b3680322243b6", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "bare-except-pass", "owasp": null, "cwe_ids": ["CWE-755"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347744+00:00", "triaged_in_corpus": 15, "observations_count": 1550824, "ai_coder_pattern_id": 6}, "scanner": "repobility-threat-engine", "correlation_key": "fp|efdac99e087f6b5c6949b6e5f77d63678ba6c014f21577a54c1b3680322243b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/depth_digital_twin/detection_node.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 163574, "scanner": "repobility-threat-engine", "fingerprint": "1ec844541abfcb47f2f8e71ea94bb5f751f25e4e9fc20afabfa6e9703135817d", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "np.save(args.output, T)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|1ec844541abfcb47f2f8e71ea94bb5f751f25e4e9fc20afabfa6e9703135817d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/depth_digital_twin/legacy/depth_digital_twin/aruco_handeye.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 163573, "scanner": "repobility-threat-engine", "fingerprint": "5567376bc52db6831e7413903522ff56b1c993cc7d69d4fda4f46ef87258eade", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "np.save(\"T_gripper2camera.npy\", T_gripper2cam)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|5567376bc52db6831e7413903522ff56b1c993cc7d69d4fda4f46ef87258eade"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sample/Calibration_Tutorial/handeye_calibration.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "SEC128", "level": "error", "message": {"text": "[SEC128] Async function without await \u2014 fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work completes \u2014 DB writes lost, emails not sent, race conditions. This is one of the top-3 errors AI coders make: they understand async-shape but drop the await keyword when chaining multiple ops. Surfaces as flaky tests or silently dropped data in production."}, "properties": {"repobilityId": 163572, "scanner": "repobility-threat-engine", "fingerprint": "1e055001b002fbf74f86f97d8e83bc6e66d47c8e05ee707c7a8c21251c875893", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "np.save(\"T_cam2base.npy\", T_cam2base)", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|1e055001b002fbf74f86f97d8e83bc6e66d47c8e05ee707c7a8c21251c875893"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sample/Calibration_Tutorial/eye2hand_calibration.py"}, "region": {"startLine": 283}}}]}, {"ruleId": "MINED030", "level": "error", "message": {"text": "[MINED030] Python Pickle Loads: pickle.loads() can execute arbitrary code via __reduce__."}, "properties": {"repobilityId": 163600, "scanner": "repobility-threat-engine", "fingerprint": "d598fc40612f82fcef645c9108c1d64592f015964a283dcdeda9d749ee5dbc80", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"mined": true, "mining": {"slug": "python-pickle-loads", "owasp": null, "cwe_ids": ["CWE-502"], "languages": ["python"], "precision": 1.0, "promoted_at": "2026-05-18T14:01:32.347968+00:00", "triaged_in_corpus": 20, "observations_count": 6314, "ai_coder_pattern_id": 119}, "scanner": "repobility-threat-engine", "correlation_key": "fp|d598fc40612f82fcef645c9108c1d64592f015964a283dcdeda9d749ee5dbc80"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/seq_io.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "SEC081", "level": "error", "message": {"text": "[SEC081] Python: pickle.loads / marshal.loads on untrusted data: pickle.load(s) and marshal.load(s) execute arbitrary code on untrusted input. Ported from dlint DUO103 / DUO120 (BSD-3)."}, "properties": {"repobilityId": 163599, "scanner": "repobility-threat-engine", "fingerprint": "d1333d8cdde1131a1aa81c05e319021453332d885d44f4938ac73201ae5b814b", "category": "quality", "severity": "critical", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "pickle.load(", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC081", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|d1333d8cdde1131a1aa81c05e319021453332d885d44f4938ac73201ae5b814b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/recode_sequence/recode_sequence/seq_io.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-506be2b95088f5d3", "level": "none", "message": {"text": "git log failed \u2014 history analysis incomplete"}, "properties": {"repobilityId": "b424308a11bb9b22", "scanner": "scanner-primary", "fingerprint": "506be2b95088f5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["git", "tooling"]}}, {"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-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"]}}]}]}