{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-0cc6a1191ac02dd9", "name": "Possibly dead Python function: intersol_name", "shortDescription": {"text": "Possibly dead Python function: intersol_name"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96693e77982e6756", "name": "Possibly dead Python function: monday_url", "shortDescription": {"text": "Possibly dead Python function: monday_url"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f15e7304397e0229", "name": "Stray `console.log` in TS/JS \u2014 test-intersol-sync.js:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-intersol-sync.js:76"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65e437d31dd6b7de", "name": "Stray `console.log` in TS/JS \u2014 worker-yaron.js:142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker-yaron.js:142"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c10c305e5543e7aa", "name": "Stray `console.log` in TS/JS \u2014 worker-yaron.SANITIZED.js:254", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 worker-yaron.SANITIZED.js:254"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02bebccee4948b05", "name": "Insecure pattern 'direct_innerhtml_assignment' in subitem-setup.html:305", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in subitem-setup.html:305"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92a16b144855722b", "name": "Possible secret in worker-yaron.SANITIZED.js", "shortDescription": {"text": "Possible secret in worker-yaron.SANITIZED.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-7c5cd95a6858aca0", "name": "Insecure pattern 'cors_wildcard' in worker-yaron.SANITIZED.js:262", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in worker-yaron.SANITIZED.js:262"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1760071f6faf5d36", "name": "Insecure pattern 'direct_innerhtml_assignment' in index-yaron.html:4394", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index-yaron.html:4394"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14856303d8c656a0", "name": "Very large file: worker-yaron.js (3006 lines)", "shortDescription": {"text": "Very large file: worker-yaron.js (3006 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f1577b82cb63c7d", "name": "Very large file: worker-yaron.SANITIZED.js (3962 lines)", "shortDescription": {"text": "Very large file: worker-yaron.SANITIZED.js (3962 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 29 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4378f93974863f62", "name": "Commented-code block (8 lines) in test-intersol-sync.js:192", "shortDescription": {"text": "Commented-code block (8 lines) in test-intersol-sync.js:192"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-001fa0873bae0bca", "name": "Legacy-named symbol `intersol_media_sync_state_v2` in worker-yaron.js:177", "shortDescription": {"text": "Legacy-named symbol `intersol_media_sync_state_v2` in worker-yaron.js:177"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf5ad02694833083", "name": "Commented-code block (7 lines) in worker-yaron.js:95", "shortDescription": {"text": "Commented-code block (7 lines) in worker-yaron.js:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28029d792c429723", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.js:294", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.js:294"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20d417da0b24e97b", "name": "Legacy-named symbol `items_yaron_v2` in worker-yaron.SANITIZED.js:301", "shortDescription": {"text": "Legacy-named symbol `items_yaron_v2` in worker-yaron.SANITIZED.js:301"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbcbb9503ff8d157", "name": "Commented-code block (5 lines) in worker-yaron.SANITIZED.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in worker-yaron.SANITIZED.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30fab7ada2456b16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.SANITIZED.js:260", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.SANITIZED.js:260"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/28123"}, "properties": {"repository": "nadavsemo-a11y/yaron-dashboard", "repoUrl": "https://github.com/nadavsemo-a11y/yaron-dashboard", "branch": "main"}, "results": [{"ruleId": "scanner-0cc6a1191ac02dd9", "level": "note", "message": {"text": "Possibly dead Python function: intersol_name"}, "properties": {"repobilityId": "45f3f6ea69e498a9", "scanner": "scanner-primary", "fingerprint": "0cc6a1191ac02dd9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_build_review.py:124"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-96693e77982e6756", "level": "note", "message": {"text": "Possibly dead Python function: monday_url"}, "properties": {"repobilityId": "0d16183d8ba4c0cf", "scanner": "scanner-primary", "fingerprint": "96693e77982e6756", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_build_review.py:257"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-f15e7304397e0229", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-intersol-sync.js:76"}, "properties": {"repobilityId": "4c61428b3eef5c0a", "scanner": "scanner-primary", "fingerprint": "f15e7304397e0229", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65e437d31dd6b7de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker-yaron.js:142"}, "properties": {"repobilityId": "393c25d93c071c5f", "scanner": "scanner-primary", "fingerprint": "65e437d31dd6b7de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c10c305e5543e7aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 worker-yaron.SANITIZED.js:254"}, "properties": {"repobilityId": "92aa24b9ad8d6e15", "scanner": "scanner-primary", "fingerprint": "c10c305e5543e7aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02bebccee4948b05", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in subitem-setup.html:305"}, "properties": {"repobilityId": "cc5819a440b98959", "scanner": "scanner-primary", "fingerprint": "02bebccee4948b05", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "subitem-setup.html"}, "region": {"startLine": 305}}}]}, {"ruleId": "scanner-92a16b144855722b", "level": "error", "message": {"text": "Possible secret in worker-yaron.SANITIZED.js"}, "properties": {"repobilityId": "c11e750aa086e229", "scanner": "scanner-primary", "fingerprint": "92a16b144855722b", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker-yaron.SANITIZED.js"}, "region": {"startLine": 2565}}}]}, {"ruleId": "scanner-7c5cd95a6858aca0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in worker-yaron.SANITIZED.js:262"}, "properties": {"repobilityId": "bf274edec8f426e4", "scanner": "scanner-primary", "fingerprint": "7c5cd95a6858aca0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker-yaron.SANITIZED.js"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-1760071f6faf5d36", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index-yaron.html:4394"}, "properties": {"repobilityId": "2f2c5f465cdb170d", "scanner": "scanner-primary", "fingerprint": "1760071f6faf5d36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index-yaron.html"}, "region": {"startLine": 4394}}}]}, {"ruleId": "scanner-14856303d8c656a0", "level": "note", "message": {"text": "Very large file: worker-yaron.js (3006 lines)"}, "properties": {"repobilityId": "60a3fff2cd22ea58", "scanner": "scanner-primary", "fingerprint": "14856303d8c656a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f1577b82cb63c7d", "level": "note", "message": {"text": "Very large file: worker-yaron.SANITIZED.js (3962 lines)"}, "properties": {"repobilityId": "91249554704e1052", "scanner": "scanner-primary", "fingerprint": "2f1577b82cb63c7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "92452396e0ba86a0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "5ce100d594e8e5b1", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "fd44ebc0384498d5", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "27c8e7f7f9527aaf", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "a7a4b98f7b95e8ed", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-4378f93974863f62", "level": "none", "message": {"text": "Commented-code block (8 lines) in test-intersol-sync.js:192"}, "properties": {"repobilityId": "9d2b606c6911a4f0", "scanner": "scanner-primary", "fingerprint": "4378f93974863f62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-001fa0873bae0bca", "level": "note", "message": {"text": "Legacy-named symbol `intersol_media_sync_state_v2` in worker-yaron.js:177"}, "properties": {"repobilityId": "5a6f78f1111f776f", "scanner": "scanner-primary", "fingerprint": "001fa0873bae0bca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf5ad02694833083", "level": "none", "message": {"text": "Commented-code block (7 lines) in worker-yaron.js:95"}, "properties": {"repobilityId": "f3f478e462cf1fc2", "scanner": "scanner-primary", "fingerprint": "bf5ad02694833083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28029d792c429723", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.js:294"}, "properties": {"repobilityId": "a411fafea37ff1eb", "scanner": "scanner-primary", "fingerprint": "28029d792c429723", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-20d417da0b24e97b", "level": "note", "message": {"text": "Legacy-named symbol `items_yaron_v2` in worker-yaron.SANITIZED.js:301"}, "properties": {"repobilityId": "0d40a52a2e9cdec9", "scanner": "scanner-primary", "fingerprint": "20d417da0b24e97b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bbcbb9503ff8d157", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker-yaron.SANITIZED.js:32"}, "properties": {"repobilityId": "180e4b8e020e5054", "scanner": "scanner-primary", "fingerprint": "bbcbb9503ff8d157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30fab7ada2456b16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker-yaron.SANITIZED.js:260"}, "properties": {"repobilityId": "a94c9de24a35e750", "scanner": "scanner-primary", "fingerprint": "30fab7ada2456b16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}