{"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": "CFG006", "name": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.", "shortDescription": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "fullDescription": {"text": "Add a .gitignore appropriate for your language/framework."}, "properties": {"scanner": "repobility-threat-engine", "category": "practices", "severity": "medium", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "CORE_LARGE_FILES", "name": "Average file size is 1082 lines (recommend <300)", "shortDescription": {"text": "Average file size is 1082 lines (recommend <300)"}, "fullDescription": {"text": "Refactor large files by extracting related functions into separate modules. Target files with 300+ lines first. Use the Single Responsibility Principle \u2014 each module should have one clear purpose."}, "properties": {"scanner": "repobility-core", "category": "quality", "severity": "medium", "confidence": null, "cwe": "", "owasp": ""}}, {"id": "CORE_NO_README", "name": "No README file found", "shortDescription": {"text": "No README file found"}, "fullDescription": {"text": "Create a README.md with: project name and description, installation instructions, usage examples, configuration options, and contribution guidelines."}, "properties": {"scanner": "repobility-core", "category": "documentation", "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": "MINED050", "name": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO ", "shortDescription": {"text": "[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment."}, "fullDescription": {"text": "Review and fix per the pattern semantics. See CWE-1188 /  for context."}, "properties": {"scanner": "repobility-threat-engine", "category": "quality", "severity": "info", "confidence": 1.0, "cwe": "", "owasp": ""}}, {"id": "MINED115", "name": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run t", "shortDescription": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) in"}, "fullDescription": {"text": "Replace with: `uses: actions/checkout@<40-char-sha>  # v6` and let Dependabot bump it on a scheduled cadence."}, "properties": {"scanner": "repobility-supply-chain", "category": "dependency", "severity": "high", "confidence": 0.9, "cwe": "", "owasp": ""}}, {"id": "MINED108", "name": "[MINED108] `self.size` used but never assigned in __init__: Method `get_summary` of class `ImSpanSynth` reads `self.size", "shortDescription": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `get_summary` of class `ImSpanSynth` reads `self.size`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time t"}, "fullDescription": {"text": "Initialize `self.size = <default>` in __init__, or add a class-level default."}, "properties": {"scanner": "repobility-ast-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": "CORE_NO_TESTS", "name": "No test files found", "shortDescription": {"text": "No test files found"}, "fullDescription": {"text": "Add a test directory (tests/ or __tests__/) with unit tests for core functionality. Use pytest (Python), Jest (JS/TS), or go test (Go). Start with tests for critical business logic and security-sensitive functions."}, "properties": {"scanner": "repobility-core", "category": "testing", "severity": "high", "confidence": null, "cwe": "", "owasp": ""}}]}}, "automationDetails": {"id": "repobility/820"}, "properties": {"repository": "ocornut/imgui", "repoUrl": "https://github.com/ocornut/imgui", "branch": "master"}, "results": [{"ruleId": "CFG006", "level": "warning", "message": {"text": "[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts."}, "properties": {"repobilityId": 72298, "scanner": "repobility-threat-engine", "fingerprint": "c65fc71ce58c37a0e07837c0fe294108b731c43ef16027a2f0971c757bbe9a16", "category": "practices", "severity": "medium", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "No .gitignore file found in repository root", "evidence": {"reason": "No .gitignore file found in repository root", "rule_id": "CFG006", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "repo|practices|cfg006"}}}, {"ruleId": "CORE_LARGE_FILES", "level": "warning", "message": {"text": "Average file size is 1082 lines (recommend <300)"}, "properties": {"repobilityId": 72295, "scanner": "repobility-core", "fingerprint": "88ec945b892297e93fcd20fb09a6afd6371b603476274eb171c3d79ce11aef21", "category": "quality", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_LARGE_FILES", "scanner": "repobility-core", "correlation_key": "fp|88ec945b892297e93fcd20fb09a6afd6371b603476274eb171c3d79ce11aef21"}}}, {"ruleId": "CORE_NO_README", "level": "warning", "message": {"text": "No README file found"}, "properties": {"repobilityId": 72294, "scanner": "repobility-core", "fingerprint": "b55c73163757fe6b2364bb829fcd26e87b9d9e7b367dd2a3307a814b02b29cbd", "category": "documentation", "severity": "medium", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_README", "scanner": "repobility-core", "correlation_key": "repo|documentation|core_no_readme"}}}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72307, "scanner": "repobility-ai-code-hygiene", "fingerprint": "2517c332410e3244aa1bf7a33454168f79b58aff2e7334375bf97f46f8a72856", "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": "imstb_rectpack.h", "duplicate_line": 286, "correlation_key": "fp|2517c332410e3244aa1bf7a33454168f79b58aff2e7334375bf97f46f8a72856"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "imstb_textedit.h"}, "region": {"startLine": 781}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72306, "scanner": "repobility-ai-code-hygiene", "fingerprint": "c577f4852411dc9a4031d2437d0691271bc1a9513254998c1826a343c06b6513", "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": "backends/imgui_impl_dx12.cpp", "duplicate_line": 70, "correlation_key": "fp|c577f4852411dc9a4031d2437d0691271bc1a9513254998c1826a343c06b6513"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_wgpu.cpp"}, "region": {"startLine": 272}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72305, "scanner": "repobility-ai-code-hygiene", "fingerprint": "6b508de78c34c0f098dbc7fe5f70ef418b9539d478626ee7819c4b2bcd1738b7", "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": "backends/imgui_impl_sdlgpu3.cpp", "duplicate_line": 156, "correlation_key": "fp|6b508de78c34c0f098dbc7fe5f70ef418b9539d478626ee7819c4b2bcd1738b7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_sdlrenderer3.cpp"}, "region": {"startLine": 89}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72304, "scanner": "repobility-ai-code-hygiene", "fingerprint": "77e73e12abc6c207aa76a6a13b08e6b2e1c7f9384f67a24cc0b2cc6e5ef0b9b6", "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": "backends/imgui_impl_sdlrenderer2.cpp", "duplicate_line": 51, "correlation_key": "fp|77e73e12abc6c207aa76a6a13b08e6b2e1c7f9384f67a24cc0b2cc6e5ef0b9b6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_sdlrenderer3.cpp"}, "region": {"startLine": 74}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72303, "scanner": "repobility-ai-code-hygiene", "fingerprint": "bede9e8f21a8609d2a2826d2e688b4fd61cf7712d624d8b16a4c007d84548296", "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": "backends/imgui_impl_sdlgpu3.cpp", "duplicate_line": 156, "correlation_key": "fp|bede9e8f21a8609d2a2826d2e688b4fd61cf7712d624d8b16a4c007d84548296"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_sdlrenderer2.cpp"}, "region": {"startLine": 66}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72302, "scanner": "repobility-ai-code-hygiene", "fingerprint": "9e4e0a6919828cf7ec4740f4f4a886764bddc149f36fd1201007a4bda8d909c1", "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": "backends/imgui_impl_sdl2.cpp", "duplicate_line": 55, "correlation_key": "fp|9e4e0a6919828cf7ec4740f4f4a886764bddc149f36fd1201007a4bda8d909c1"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_sdl3.cpp"}, "region": {"startLine": 106}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72301, "scanner": "repobility-ai-code-hygiene", "fingerprint": "10b891f796fc8968f6c7c799592268d536573610e382f58cebf66ff088fe1e77", "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": "backends/imgui_impl_opengl2.cpp", "duplicate_line": 122, "correlation_key": "fp|10b891f796fc8968f6c7c799592268d536573610e382f58cebf66ff088fe1e77"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_opengl3.cpp"}, "region": {"startLine": 266}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72300, "scanner": "repobility-ai-code-hygiene", "fingerprint": "fd6ff8c610f9c862e8c8062a262d1ad948bcd83882bc8cdfb99a15242e06d664", "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": "backends/imgui_impl_dx10.cpp", "duplicate_line": 293, "correlation_key": "fp|fd6ff8c610f9c862e8c8062a262d1ad948bcd83882bc8cdfb99a15242e06d664"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_dx12.cpp"}, "region": {"startLine": 485}}}]}, {"ruleId": "AIC003", "level": "note", "message": {"text": "Duplicated implementation block across source files"}, "properties": {"repobilityId": 72299, "scanner": "repobility-ai-code-hygiene", "fingerprint": "3d858d53f34de2330a7076180427959c7b4177c931c90dec9c8dfad57fa3a44b", "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": "backends/imgui_impl_dx10.cpp", "duplicate_line": 47, "correlation_key": "fp|3d858d53f34de2330a7076180427959c7b4177c931c90dec9c8dfad57fa3a44b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backends/imgui_impl_dx11.cpp"}, "region": {"startLine": 49}}}]}, {"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": 72297, "scanner": "repobility-threat-engine", "fingerprint": "a3404398b47524af25df4a64a6cbcace3a478b7577aa70a78409920f36ea21bb", "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|a3404398b47524af25df4a64a6cbcace3a478b7577aa70a78409920f36ea21bb"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72340, "scanner": "repobility-supply-chain", "fingerprint": "d25d5329eecf64ad82943bfa12fe83a57ccc7f6e04e5d73ccb0f7918b7ac897b", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|d25d5329eecf64ad82943bfa12fe83a57ccc7f6e04e5d73ccb0f7918b7ac897b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 731}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72339, "scanner": "repobility-supply-chain", "fingerprint": "d5f4948ed060cae52bd84152314dc27660b88051e267aa9d3a84c285506edca8", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|d5f4948ed060cae52bd84152314dc27660b88051e267aa9d3a84c285506edca8"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 728}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72338, "scanner": "repobility-supply-chain", "fingerprint": "2f5e456b72fe26f013a3e5950dc54a5af104e50e6aeeb6e867e4ef9976800ce6", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|2f5e456b72fe26f013a3e5950dc54a5af104e50e6aeeb6e867e4ef9976800ce6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 676}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72337, "scanner": "repobility-supply-chain", "fingerprint": "6a88d64836aa53c644427d3c581aeb870bcccde59ae8b0601e587659eace76dc", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|6a88d64836aa53c644427d3c581aeb870bcccde59ae8b0601e587659eace76dc"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 673}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72336, "scanner": "repobility-supply-chain", "fingerprint": "095056e3aee0412f9730447cc42b4409c6016668f1fe3f82a8b5a1b6614fdb53", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|095056e3aee0412f9730447cc42b4409c6016668f1fe3f82a8b5a1b6614fdb53"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 654}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72335, "scanner": "repobility-supply-chain", "fingerprint": "86e90a8bea3d3cc866b7a52ab9337abc783550bcbc01770c2cc0c7deb5a4ab76", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|86e90a8bea3d3cc866b7a52ab9337abc783550bcbc01770c2cc0c7deb5a4ab76"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 611}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72334, "scanner": "repobility-supply-chain", "fingerprint": "cdd28c2bf3c6a6c467679c41f6f74168f4671d0eb3deda54286d176ad19a4a66", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|cdd28c2bf3c6a6c467679c41f6f74168f4671d0eb3deda54286d176ad19a4a66"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 599}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72333, "scanner": "repobility-supply-chain", "fingerprint": "3e30a620019a1d76ec8777ac74569d13ed2a5895256ebbcfcb3c750f9d6bd77f", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|3e30a620019a1d76ec8777ac74569d13ed2a5895256ebbcfcb3c750f9d6bd77f"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 517}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72332, "scanner": "repobility-supply-chain", "fingerprint": "1eedb584aa58818ae506c8a02fc12e8c991d3a56a15e40e7cd50ee90b03bf2ea", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|1eedb584aa58818ae506c8a02fc12e8c991d3a56a15e40e7cd50ee90b03bf2ea"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 277}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72331, "scanner": "repobility-supply-chain", "fingerprint": "4193db710b4632f861d78cea535f904bac08280a51b504cbbae42521e4c55363", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|4193db710b4632f861d78cea535f904bac08280a51b504cbbae42521e4c55363"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "MINED115", "level": "error", "message": {"text": "[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate."}, "properties": {"repobilityId": 72330, "scanner": "repobility-supply-chain", "fingerprint": "e9f7c76143923d30904ee8889ec83897cfe7a774204166dbacf0dd541cc0bf62", "category": "dependency", "severity": "high", "confidence": 0.9, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"mined": true, "mining": {"slug": "gha-mutable-ref", "owasp": "A08:2021", "cwe_ids": ["CWE-829"], "languages": ["yaml"], "observations_count": 0}, "scanner": "repobility-supply-chain", "correlation_key": "fp|e9f7c76143923d30904ee8889ec83897cfe7a774204166dbacf0dd541cc0bf62"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/static-analysis.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `get_summary` of class `ImSpanSynth` reads `self.size`, 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": 72329, "scanner": "repobility-ast-engine", "fingerprint": "1c093d18e0f4357b4c2712d198cf43b777f9be94b9a6e07b9203a203b62c2df5", "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|1c093d18e0f4357b4c2712d198cf43b777f9be94b9a6e07b9203a203b62c2df5"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 73}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.valobj` used but never assigned in __init__: Method `update` of class `ImSpanSynth` reads `self.valobj`, 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": 72328, "scanner": "repobility-ast-engine", "fingerprint": "529b82856d9920f6d8197cb209baa02355c895e93cb16089bf0850706d49f3e6", "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|529b82856d9920f6d8197cb209baa02355c895e93cb16089bf0850706d49f3e6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 63}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.valobj` used but never assigned in __init__: Method `update` of class `ImSpanSynth` reads `self.valobj`, 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": 72327, "scanner": "repobility-ast-engine", "fingerprint": "472296b9aba67b320747c2cde6bb35dd1e2caac2d80764465429a7c6498dd738", "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|472296b9aba67b320747c2cde6bb35dd1e2caac2d80764465429a7c6498dd738"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `update` of class `ImSpanSynth` reads `self.size`, 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": 72326, "scanner": "repobility-ast-engine", "fingerprint": "d08e2654088aea95eb612a094d3b10abeec4d09cd687db5b501df77ed1877d0c", "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|d08e2654088aea95eb612a094d3b10abeec4d09cd687db5b501df77ed1877d0c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.bind_to` used but never assigned in __init__: Method `update` of class `ImSpanSynth` reads `self.bind_to`, 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": 72325, "scanner": "repobility-ast-engine", "fingerprint": "95fe6b8090e51210987f5b72abf2eb4980c3e75f4b21c75737955a75004876d2", "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|95fe6b8090e51210987f5b72abf2eb4980c3e75f4b21c75737955a75004876d2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `update` of class `ImSpanSynth` reads `self.size`, 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": 72324, "scanner": "repobility-ast-engine", "fingerprint": "426b5bfb6a8f5a26dc904a29c16e40974b2bf2b8af0f8c6d806e242e20ae844d", "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|426b5bfb6a8f5a26dc904a29c16e40974b2bf2b8af0f8c6d806e242e20ae844d"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 68}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.capacity` used but never assigned in __init__: Method `get_summary` of class `ImVectorSynth` reads `self.capacity`, 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": 72323, "scanner": "repobility-ast-engine", "fingerprint": "6ce0fe309bf190de1ff9c4d3073278bfc93ab15ffa5fc7150852f8fc154437e0", "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|6ce0fe309bf190de1ff9c4d3073278bfc93ab15ffa5fc7150852f8fc154437e0"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `get_summary` of class `ImVectorSynth` reads `self.size`, 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": 72322, "scanner": "repobility-ast-engine", "fingerprint": "7999efa3ec2bbf5f0bf42bbbfe440f1ebc7602c6a28016eae1ed67422d3d1a21", "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|7999efa3ec2bbf5f0bf42bbbfe440f1ebc7602c6a28016eae1ed67422d3d1a21"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 58}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.valobj` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.valobj`, 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": 72321, "scanner": "repobility-ast-engine", "fingerprint": "670b5df4322717ea6fd8e4df3b910fd8bd080809238019fc4eb2e8e252403f06", "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|670b5df4322717ea6fd8e4df3b910fd8bd080809238019fc4eb2e8e252403f06"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.valobj` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.valobj`, 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": 72320, "scanner": "repobility-ast-engine", "fingerprint": "c0ffd6a367f844f7472db63168688c5553dd25652f926d24276054b70d88da93", "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|c0ffd6a367f844f7472db63168688c5553dd25652f926d24276054b70d88da93"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.valobj` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.valobj`, 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": 72319, "scanner": "repobility-ast-engine", "fingerprint": "2b7a60dfab6e76a2c50803e84468ba2aeae504ddc370adea2d4b83886f73ba70", "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|2b7a60dfab6e76a2c50803e84468ba2aeae504ddc370adea2d4b83886f73ba70"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.size`, 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": 72318, "scanner": "repobility-ast-engine", "fingerprint": "52430cc682ee2c392801234b9a6330a895d7020720610861f7007e89e5fc3f8b", "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|52430cc682ee2c392801234b9a6330a895d7020720610861f7007e89e5fc3f8b"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.bind_to` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.bind_to`, 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": 72317, "scanner": "repobility-ast-engine", "fingerprint": "34ce57205229a5fe0197bf302e87d4bfa2b1eb8075c7dd088737644bd1074650", "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|34ce57205229a5fe0197bf302e87d4bfa2b1eb8075c7dd088737644bd1074650"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.capacity` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.capacity`, 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": 72316, "scanner": "repobility-ast-engine", "fingerprint": "46f671890be6c09a21eef388baf6f0be2732dfbe1009d4cabd6ea36f27b11da9", "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|46f671890be6c09a21eef388baf6f0be2732dfbe1009d4cabd6ea36f27b11da9"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.size` used but never assigned in __init__: Method `update` of class `ImVectorSynth` reads `self.size`, 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": 72315, "scanner": "repobility-ast-engine", "fingerprint": "4de66e9e837869565fe96d66e9eb400da5d27a24d29bb0d6ff833d10e516f1d7", "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|4de66e9e837869565fe96d66e9eb400da5d27a24d29bb0d6ff833d10e516f1d7"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `get_value` of class `ArraySynthBase` reads `self.array`, 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": 72314, "scanner": "repobility-ast-engine", "fingerprint": "815412ffd46f74b1b6d0c11d1dc89dec8d65a116b02d1aa86a3f2ec58c3c7e7a", "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|815412ffd46f74b1b6d0c11d1dc89dec8d65a116b02d1aa86a3f2ec58c3c7e7a"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `has_children` of class `ArraySynthBase` reads `self.array`, 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": 72313, "scanner": "repobility-ast-engine", "fingerprint": "9887ef70fb23b5b3b5467cfda2ae9165f900ae7b08edf94cedee8e176fd55716", "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|9887ef70fb23b5b3b5467cfda2ae9165f900ae7b08edf94cedee8e176fd55716"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `get_child_at_index` of class `ArraySynthBase` reads `self.array`, 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": 72312, "scanner": "repobility-ast-engine", "fingerprint": "ac8184b127cff1b098f3da8ba53a9bef17419caf05023da458e1938ff1843ba2", "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|ac8184b127cff1b098f3da8ba53a9bef17419caf05023da458e1938ff1843ba2"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `get_child_index` of class `ArraySynthBase` reads `self.array`, 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": 72311, "scanner": "repobility-ast-engine", "fingerprint": "89ac129afe0d4339e47c8f3954a553df08e9932ff138f548fdf0cea35bea8bf6", "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|89ac129afe0d4339e47c8f3954a553df08e9932ff138f548fdf0cea35bea8bf6"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `num_children` of class `ArraySynthBase` reads `self.array`, 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": 72310, "scanner": "repobility-ast-engine", "fingerprint": "5e64b165ff553eec83693442a59d5a569fd76cf688463baca2e2b383a42a5193", "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|5e64b165ff553eec83693442a59d5a569fd76cf688463baca2e2b383a42a5193"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `update` of class `ArraySynthBase` reads `self.array`, 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": 72309, "scanner": "repobility-ast-engine", "fingerprint": "eeb950db82f9e437c5d5edbb7911f885464aecf6d15557d2e91cf17e3e7e7e49", "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|eeb950db82f9e437c5d5edbb7911f885464aecf6d15557d2e91cf17e3e7e7e49"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "MINED108", "level": "error", "message": {"text": "[MINED108] `self.array` used but never assigned in __init__: Method `bind_to` of class `ArraySynthBase` reads `self.array`, 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": 72308, "scanner": "repobility-ast-engine", "fingerprint": "d92ca090971cc76816d841eb3efac12366fe8f3380e4323581dd59f29a17ee3c", "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|d92ca090971cc76816d841eb3efac12366fe8f3380e4323581dd59f29a17ee3c"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 28}}}]}, {"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": 72296, "scanner": "repobility-threat-engine", "fingerprint": "34ea9d4af328ef0781bd9deb960040bb62287f1134dc06d9e0428ff8101f1992", "category": "quality", "severity": "high", "confidence": 1.0, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Pattern matched with no mitigating context found", "evidence": {"match": "synth.update()", "reason": "Pattern matched with no mitigating context found", "rule_id": "SEC128", "scanner": "repobility-threat-engine", "confidence": 1.0, "correlation_key": "fp|34ea9d4af328ef0781bd9deb960040bb62287f1134dc06d9e0428ff8101f1992"}}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "misc/debuggers/imgui_lldb.py"}, "region": {"startLine": 167}}}]}, {"ruleId": "CORE_NO_TESTS", "level": "error", "message": {"text": "No test files found"}, "properties": {"repobilityId": 72293, "scanner": "repobility-core", "fingerprint": "0200e9918bc2a7bf9c116d0907e50ac3df640c758b93852cf1890ec6e14d870d", "category": "testing", "severity": "high", "confidence": null, "triageState": "open", "verdict": "", "isResolved": false, "reason": "", "evidence": {"rule_id": "CORE_NO_TESTS", "scanner": "repobility-core", "correlation_key": "repo|testing|core_no_tests"}}}]}]}