{"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-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-448d8837178ae57a", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ff4c10f299d96a79", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d632a0578826ff23", "name": "Very large file: crates/agents/src/detect.rs (1405 lines)", "shortDescription": {"text": "Very large file: crates/agents/src/detect.rs (1405 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-45e4cd33a477c2c3", "name": "Very large file: crates/gh-provider/src/client.rs (3474 lines)", "shortDescription": {"text": "Very large file: crates/gh-provider/src/client.rs (3474 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-18602d4f942613df", "name": "Very large file: crates/gh-provider/src/graphql.rs (3608 lines)", "shortDescription": {"text": "Very large file: crates/gh-provider/src/graphql.rs (3608 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-79f766c07e00cd15", "name": "Very large file: crates/ipc/src/lib.rs (1320 lines)", "shortDescription": {"text": "Very large file: crates/ipc/src/lib.rs (1320 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-d701f6a09cef6116", "name": "Very large file: crates/server/tests/polling.rs (3692 lines)", "shortDescription": {"text": "Very large file: crates/server/tests/polling.rs (3692 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-39bec052bcbeed3c", "name": "Very large file: crates/server/tests/spawn_handler.rs (1823 lines)", "shortDescription": {"text": "Very large file: crates/server/tests/spawn_handler.rs (1823 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-10602e200ac8c16b", "name": "Very large file: crates/server/src/chat.rs (1732 lines)", "shortDescription": {"text": "Very large file: crates/server/src/chat.rs (1732 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-f2bc491dd8ea7763", "name": "Very large file: crates/server/src/lib.rs (1359 lines)", "shortDescription": {"text": "Very large file: crates/server/src/lib.rs (1359 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-9f63ee8d141538d4", "name": "Very large file: crates/server/src/spawn_handler.rs (4393 lines)", "shortDescription": {"text": "Very large file: crates/server/src/spawn_handler.rs (4393 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-446d36851e70ac88", "name": "Very large file: crates/server/src/polling/handlers.rs (2190 lines)", "shortDescription": {"text": "Very large file: crates/server/src/polling/handlers.rs (2190 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-643fdbe69512931b", "name": "Very large file: crates/server/src/polling/mod.rs (4507 lines)", "shortDescription": {"text": "Very large file: crates/server/src/polling/mod.rs (4507 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-c76d383efbd6c07a", "name": "Very large file: crates/tui/tests/terminal_stack.rs (1447 lines)", "shortDescription": {"text": "Very large file: crates/tui/tests/terminal_stack.rs (1447 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-3409c60eb94ddc30", "name": "Very large file: crates/tui/tests/sidebar.rs (1960 lines)", "shortDescription": {"text": "Very large file: crates/tui/tests/sidebar.rs (1960 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-28ed7ed1f904f550", "name": "Very large file: crates/tui/tests/model_orchestrator.rs (1527 lines)", "shortDescription": {"text": "Very large file: crates/tui/tests/model_orchestrator.rs (1527 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-3eed8028ceaddd60", "name": "Very large file: crates/tui/src/setup_flow.rs (2021 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/setup_flow.rs (2021 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-13833ccd0116d1d6", "name": "Very large file: crates/tui/src/components/terminal_stack.rs (3756 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/components/terminal_stack.rs (3756 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-c8b4177e81567862", "name": "Very large file: crates/tui/src/components/workspace_row.rs (1287 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/components/workspace_row.rs (1287 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-e7682b42b3ddeaa5", "name": "Very large file: crates/tui/src/components/right_pane/mod.rs (1871 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/components/right_pane/mod.rs (1871 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-ff95d615eb8032e8", "name": "Very large file: crates/tui/src/components/sidebar/tests.rs (1535 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/components/sidebar/tests.rs (1535 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-9ab31332f078f428", "name": "Very large file: crates/tui/src/components/sidebar/mod.rs (1644 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/components/sidebar/mod.rs (1644 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-0381a709eefe817a", "name": "Very large file: crates/tui/src/realm/model/tests.rs (2530 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/realm/model/tests.rs (2530 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-2718e2048bcc5e5c", "name": "Very large file: crates/tui/src/realm/model/mod.rs (2104 lines)", "shortDescription": {"text": "Very large file: crates/tui/src/realm/model/mod.rs (2104 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-88c2359c8079b493", "name": "Very large file: crates/core/src/workspace.rs (1915 lines)", "shortDescription": {"text": "Very large file: crates/core/src/workspace.rs (1915 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-d0447044d4c671bf", "name": "Very large file: crates/config/src/lib.rs (1256 lines)", "shortDescription": {"text": "Very large file: crates/config/src/lib.rs (1256 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-34be73fb8694b117", "name": "Very large file: crates/libghostty-vt-sys/src/bindings.rs (2813 lines)", "shortDescription": {"text": "Very large file: crates/libghostty-vt-sys/src/bindings.rs (2813 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-57c16a4d7caf5410", "name": "Very large file: crates/tui-core/src/action.rs (1424 lines)", "shortDescription": {"text": "Very large file: crates/tui-core/src/action.rs (1424 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "33 tests / 176 src (ratio 0.19)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 112 placeholder/mock markers across 36 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5788d4db5f1c9178", "name": "Commented-code block (13 lines) in crates/agents/tests/fixtures/generate.py:136", "shortDescription": {"text": "Commented-code block (13 lines) in crates/agents/tests/fixtures/generate.py:136"}, "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}}]}}, "automationDetails": {"id": "repobility/24239"}, "properties": {"repository": "AntoineToussaint/lazybox", "repoUrl": "https://github.com/AntoineToussaint/lazybox", "branch": "main"}, "results": [{"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-448d8837178ae57a", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "13af6451e15656fc", "scanner": "scanner-primary", "fingerprint": "448d8837178ae57a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5f030f33859806a7", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-ff4c10f299d96a79", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "00878765eb41a539", "scanner": "scanner-primary", "fingerprint": "ff4c10f299d96a79", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/demo.yml"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-ff4c10f299d96a79", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "00878765eb41a539", "scanner": "scanner-primary", "fingerprint": "ff4c10f299d96a79", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/demo.yml"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-d632a0578826ff23", "level": "note", "message": {"text": "Very large file: crates/agents/src/detect.rs (1405 lines)"}, "properties": {"repobilityId": "5287e4b8e4024290", "scanner": "scanner-primary", "fingerprint": "d632a0578826ff23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-45e4cd33a477c2c3", "level": "note", "message": {"text": "Very large file: crates/gh-provider/src/client.rs (3474 lines)"}, "properties": {"repobilityId": "f44759a98fc67519", "scanner": "scanner-primary", "fingerprint": "45e4cd33a477c2c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18602d4f942613df", "level": "note", "message": {"text": "Very large file: crates/gh-provider/src/graphql.rs (3608 lines)"}, "properties": {"repobilityId": "4b2247bad0252153", "scanner": "scanner-primary", "fingerprint": "18602d4f942613df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-79f766c07e00cd15", "level": "note", "message": {"text": "Very large file: crates/ipc/src/lib.rs (1320 lines)"}, "properties": {"repobilityId": "fe0402a415e5da33", "scanner": "scanner-primary", "fingerprint": "79f766c07e00cd15", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d701f6a09cef6116", "level": "note", "message": {"text": "Very large file: crates/server/tests/polling.rs (3692 lines)"}, "properties": {"repobilityId": "2198a63f76b39683", "scanner": "scanner-primary", "fingerprint": "d701f6a09cef6116", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39bec052bcbeed3c", "level": "note", "message": {"text": "Very large file: crates/server/tests/spawn_handler.rs (1823 lines)"}, "properties": {"repobilityId": "fdf239f4cf9bd468", "scanner": "scanner-primary", "fingerprint": "39bec052bcbeed3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-10602e200ac8c16b", "level": "note", "message": {"text": "Very large file: crates/server/src/chat.rs (1732 lines)"}, "properties": {"repobilityId": "5499d3337cda06f8", "scanner": "scanner-primary", "fingerprint": "10602e200ac8c16b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2bc491dd8ea7763", "level": "note", "message": {"text": "Very large file: crates/server/src/lib.rs (1359 lines)"}, "properties": {"repobilityId": "ea2a79946dc92a5d", "scanner": "scanner-primary", "fingerprint": "f2bc491dd8ea7763", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9f63ee8d141538d4", "level": "note", "message": {"text": "Very large file: crates/server/src/spawn_handler.rs (4393 lines)"}, "properties": {"repobilityId": "c153ad466e3830c0", "scanner": "scanner-primary", "fingerprint": "9f63ee8d141538d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-446d36851e70ac88", "level": "note", "message": {"text": "Very large file: crates/server/src/polling/handlers.rs (2190 lines)"}, "properties": {"repobilityId": "5f10b7b88d979209", "scanner": "scanner-primary", "fingerprint": "446d36851e70ac88", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-643fdbe69512931b", "level": "note", "message": {"text": "Very large file: crates/server/src/polling/mod.rs (4507 lines)"}, "properties": {"repobilityId": "3cae43d873e596de", "scanner": "scanner-primary", "fingerprint": "643fdbe69512931b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c76d383efbd6c07a", "level": "note", "message": {"text": "Very large file: crates/tui/tests/terminal_stack.rs (1447 lines)"}, "properties": {"repobilityId": "a0c643d3f42f814f", "scanner": "scanner-primary", "fingerprint": "c76d383efbd6c07a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3409c60eb94ddc30", "level": "note", "message": {"text": "Very large file: crates/tui/tests/sidebar.rs (1960 lines)"}, "properties": {"repobilityId": "c85ff50faa0626ed", "scanner": "scanner-primary", "fingerprint": "3409c60eb94ddc30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-28ed7ed1f904f550", "level": "note", "message": {"text": "Very large file: crates/tui/tests/model_orchestrator.rs (1527 lines)"}, "properties": {"repobilityId": "fcd0f900e46d332c", "scanner": "scanner-primary", "fingerprint": "28ed7ed1f904f550", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3eed8028ceaddd60", "level": "note", "message": {"text": "Very large file: crates/tui/src/setup_flow.rs (2021 lines)"}, "properties": {"repobilityId": "d4292b75360ed33f", "scanner": "scanner-primary", "fingerprint": "3eed8028ceaddd60", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13833ccd0116d1d6", "level": "note", "message": {"text": "Very large file: crates/tui/src/components/terminal_stack.rs (3756 lines)"}, "properties": {"repobilityId": "1f04480cca5cbc7c", "scanner": "scanner-primary", "fingerprint": "13833ccd0116d1d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8b4177e81567862", "level": "note", "message": {"text": "Very large file: crates/tui/src/components/workspace_row.rs (1287 lines)"}, "properties": {"repobilityId": "e106cfb95895d249", "scanner": "scanner-primary", "fingerprint": "c8b4177e81567862", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7682b42b3ddeaa5", "level": "note", "message": {"text": "Very large file: crates/tui/src/components/right_pane/mod.rs (1871 lines)"}, "properties": {"repobilityId": "921989d18d4e354c", "scanner": "scanner-primary", "fingerprint": "e7682b42b3ddeaa5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff95d615eb8032e8", "level": "note", "message": {"text": "Very large file: crates/tui/src/components/sidebar/tests.rs (1535 lines)"}, "properties": {"repobilityId": "90f68cf1f45f208b", "scanner": "scanner-primary", "fingerprint": "ff95d615eb8032e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ab31332f078f428", "level": "note", "message": {"text": "Very large file: crates/tui/src/components/sidebar/mod.rs (1644 lines)"}, "properties": {"repobilityId": "4f0da174f975dc3b", "scanner": "scanner-primary", "fingerprint": "9ab31332f078f428", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0381a709eefe817a", "level": "note", "message": {"text": "Very large file: crates/tui/src/realm/model/tests.rs (2530 lines)"}, "properties": {"repobilityId": "1d3f444cea87771b", "scanner": "scanner-primary", "fingerprint": "0381a709eefe817a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2718e2048bcc5e5c", "level": "note", "message": {"text": "Very large file: crates/tui/src/realm/model/mod.rs (2104 lines)"}, "properties": {"repobilityId": "15b675743d7ee078", "scanner": "scanner-primary", "fingerprint": "2718e2048bcc5e5c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-88c2359c8079b493", "level": "note", "message": {"text": "Very large file: crates/core/src/workspace.rs (1915 lines)"}, "properties": {"repobilityId": "2398e8ae9dd1bb05", "scanner": "scanner-primary", "fingerprint": "88c2359c8079b493", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d0447044d4c671bf", "level": "note", "message": {"text": "Very large file: crates/config/src/lib.rs (1256 lines)"}, "properties": {"repobilityId": "80ed0b51f87c78cb", "scanner": "scanner-primary", "fingerprint": "d0447044d4c671bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-34be73fb8694b117", "level": "note", "message": {"text": "Very large file: crates/libghostty-vt-sys/src/bindings.rs (2813 lines)"}, "properties": {"repobilityId": "54c798784f057d72", "scanner": "scanner-primary", "fingerprint": "34be73fb8694b117", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-57c16a4d7caf5410", "level": "note", "message": {"text": "Very large file: crates/tui-core/src/action.rs (1424 lines)"}, "properties": {"repobilityId": "0669beb83556cc1b", "scanner": "scanner-primary", "fingerprint": "57c16a4d7caf5410", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "9fb91d74f4edd440", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "5e1aa21f41415735", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-5788d4db5f1c9178", "level": "none", "message": {"text": "Commented-code block (13 lines) in crates/agents/tests/fixtures/generate.py:136"}, "properties": {"repobilityId": "5cdb6edf060b1f4d", "scanner": "scanner-primary", "fingerprint": "5788d4db5f1c9178", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}