{"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-57de787eef01be3e", "name": "Possibly dead Python function: is_facade", "shortDescription": {"text": "Possibly dead Python function: is_facade"}, "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-39023e5e97904108", "name": "Possibly dead Python function: agg", "shortDescription": {"text": "Possibly dead Python function: agg"}, "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-4aa04d3f53a30ebf", "name": "Possibly dead Python function: key", "shortDescription": {"text": "Possibly dead Python function: key"}, "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-5c4c6a06543464d5", "name": "Possibly dead Python function: command_reset", "shortDescription": {"text": "Possibly dead Python function: command_reset"}, "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-45669d1455341361", "name": "Possibly dead Python function: command_search", "shortDescription": {"text": "Possibly dead Python function: command_search"}, "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-05e38270d2d5bee3", "name": "Possibly dead Python function: command_show", "shortDescription": {"text": "Possibly dead Python function: command_show"}, "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-9134ea2489e7c261", "name": "Possibly dead Python function: command_add", "shortDescription": {"text": "Possibly dead Python function: command_add"}, "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-31db09158aec0c5a", "name": "Possibly dead Python function: command_cart", "shortDescription": {"text": "Possibly dead Python function: command_cart"}, "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-8e731dd70d264ed7", "name": "Possibly dead Python function: command_prepare_checkout", "shortDescription": {"text": "Possibly dead Python function: command_prepare_checkout"}, "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-ee09a8cf47005925", "name": "Possibly dead Python function: lum", "shortDescription": {"text": "Possibly dead Python function: lum"}, "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-41e3b0138432336e", "name": "Possibly dead Python function: bytes_to_mb", "shortDescription": {"text": "Possibly dead Python function: bytes_to_mb"}, "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-bab88eac166c627d", "name": "Possibly dead Python function: cmd_filmstrip", "shortDescription": {"text": "Possibly dead Python function: cmd_filmstrip"}, "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-be8cd98450ce0df0", "name": "Possibly dead Python function: cmd_gif", "shortDescription": {"text": "Possibly dead Python function: cmd_gif"}, "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-baaf929352c4b9b1", "name": "Possibly dead Python function: cmd_diff", "shortDescription": {"text": "Possibly dead Python function: cmd_diff"}, "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-3990c54407518134", "name": "Possibly dead Python function: alive", "shortDescription": {"text": "Possibly dead Python function: alive"}, "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-ea30c6c920828093", "name": "Possibly dead Python function: send_keys", "shortDescription": {"text": "Possibly dead Python function: send_keys"}, "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-a571a5caf98a80c3", "name": "Possibly dead Python function: alive", "shortDescription": {"text": "Possibly dead Python function: alive"}, "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-d73c8fd61649a162", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-8ae9008e8b378c18", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-786a272f3c0f3bd3", "name": "insecure hash algorithm sha1 \u2014 ios/TestHarness/mock_gateway.py:104", "shortDescription": {"text": "insecure hash algorithm sha1 \u2014 ios/TestHarness/mock_gateway.py:104"}, "fullDescription": {"text": "Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead.\n\nRule: python.lang.security.insecure-hash-algorithms.insecure-hash-algorithm-sha1\nSeverity: WARNING\nOWASP: A03:2017 - Sensitive Data Exposure, A02:2021 - Cryptographic Failures, A04:2025 - Cryptographic Failures\nCWE: CWE-327: Use of a Broken or Risky Cryptographic Algorithm\nCategory: security\nContext: production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.75}}, {"id": "scanner-98532269f0564f6e", "name": "subprocess shell true \u2014 ios/TestHarness/ui_matrix.py:72", "shortDescription": {"text": "subprocess shell true \u2014 ios/TestHarness/ui_matrix.py:72"}, "fullDescription": {"text": "Found 'subprocess' function 'run' with 'shell=True'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use 'shell=False' instead.\n\nRule: python.lang.security.audit.subprocess-shell-true.subprocess-shell-true\nSeverity: ERROR\nOWASP: A01:2017 - Injection, A03:2021 - Injection, A05:2025 - Injection\nCWE: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')\nCategory: security\nContext: production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 0.7}}, {"id": "scanner-4b2a401b869576d6", "name": "dynamic urllib use detected \u2014 scripts/phone-server/testflight-setup.py:53", "shortDescription": {"text": "dynamic urllib use detected \u2014 scripts/phone-server/testflight-setup.py:53"}, "fullDescription": {"text": "Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.\n\nRule: python.lang.security.audit.dynamic-urllib-use-detected.dynamic-urllib-use-detected\nSeverity: WARNING\nOWASP: A01:2017 - Injection\nCWE: CWE-939: Improper Authorization in Handler for Custom URL Scheme\nCategory: security\nContext: production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.55}}, {"id": "scanner-55d821f05f02db07", "name": "dynamic urllib use detected \u2014 scripts/post_discord_release.py:75", "shortDescription": {"text": "dynamic urllib use detected \u2014 scripts/post_discord_release.py:75"}, "fullDescription": {"text": "Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.\n\nRule: python.lang.security.audit.dynamic-urllib-use-detected.dynamic-urllib-use-detected\nSeverity: WARNING\nOWASP: A01:2017 - Injection\nCWE: CWE-939: Improper Authorization in Handler for Custom URL Scheme\nCategory: security\nContext: production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.55}}, {"id": "scanner-c6bbeca4f4f7e56b", "name": "dynamic urllib use detected \u2014 scripts/test_openrelay_discovery_test.py:46", "shortDescription": {"text": "dynamic urllib use detected \u2014 scripts/test_openrelay_discovery_test.py:46"}, "fullDescription": {"text": "Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead.\n\nRule: python.lang.security.audit.dynamic-urllib-use-detected.dynamic-urllib-use-detected\nSeverity: WARNING\nOWASP: A01:2017 - Injection\nCWE: CWE-939: Improper Authorization in Handler for Custom URL Scheme\nCategory: security\nContext: non-production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.55}}, {"id": "scanner-c663de0f18b45fb6", "name": "CVE-2026-50185: cmov 0.5.3 \u2014 Cargo.lock", "shortDescription": {"text": "CVE-2026-50185: cmov 0.5.3 \u2014 Cargo.lock"}, "fullDescription": {"text": "RustCrypto CMOV provides conditional move CPU intrinsics which are gua ...\n\nRustCrypto CMOV provides conditional move CPU intrinsics which are guaranteed on major platforms to execute in constant-time and not be rewritten as branches by the compiler. From 0.1.1 until 0.5.4, the aarch64 implementations of Cmov and CmovEq in cmov/src/backends/aarch64.rs assume high bits are zero-extended when loading values smaller than a register, so set high bits such as [8..] in a Cmov selector or [16..] of self or other in the u16 and i16 CmovEq implementations can cause left.cmovz(&r\n\nPackage: cmov\nInstalled: 0.5.3\nFixed in: 0.5.4\nSeverity: MEDIUM\nFix: Upgrade cmov to 0.5.4"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7fd81f235952a13f", "name": "GHSA-rhfx-m35p-ff5j: lru 0.12.5 \u2014 Cargo.lock", "shortDescription": {"text": "GHSA-rhfx-m35p-ff5j: lru 0.12.5 \u2014 Cargo.lock"}, "fullDescription": {"text": "`IterMut` violates Stacked Borrows by invalidating internal pointer\n\nAffected versions of this crate contain a soundness issue in the `IterMut` iterator implementation. The `IterMut::next` and `IterMut::next_back` methods temporarily create an exclusive reference to the key when dereferencing the internal node pointer.\n\nThis invalidates the shared pointer held by the internal `HashMap`, violating Stacked Borrows rules.\n\nPackage: lru\nInstalled: 0.12.5\nFixed in: 0.16.3\nSeverity: LOW\nFix: Upgrade lru to 0.16.3"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84b7b224a9f6ecf6", "name": "GHSA-cq8v-f236-94qc: rand 0.8.5 \u2014 Cargo.lock", "shortDescription": {"text": "GHSA-cq8v-f236-94qc: rand 0.8.5 \u2014 Cargo.lock"}, "fullDescription": {"text": "Rand is unsound with a custom logger using rand::rng()\n\nIt has been reported (by @lopopolo) that the `rand` library is [unsound](https://rust-lang.github.io/unsafe-code-guidelines/glossary.html#soundness-of-code--of-a-library) (i.e. that safe code using the public API can cause Undefined Behaviour) when all the following conditions are met:\n\n- The `log` and `thread_rng` features are enabled\n- A [custom logger](https://docs.rs/log/latest/log/#implementing-a-logger) is defined\n- The custom logger accesses `rand::rng()` (previously `rand::thread_rng()`)\n\nPackage: rand\nInstalled: 0.8.5\nFixed in: 0.9.3, 0.10.1, 0.8.6\nSeverity: LOW\nFix: Upgrade rand to 0.9.3, 0.10.1, 0.8.6"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14f1502ee75e5df4", "name": "GHSA-3pv8-6f4r-ffg2: tar 0.4.45 \u2014 Cargo.lock", "shortDescription": {"text": "GHSA-3pv8-6f4r-ffg2: tar 0.4.45 \u2014 Cargo.lock"}, "fullDescription": {"text": "tar has a PAX header desynchronization issue\n\n### Summary\n\nWhen a tar stream contains multiple \"header\" entries prior to a file entry, tar-rs applies the PAX header (`x`) to the _next_ entry in the stream, regardless of type. For example, a stream of `x -> L -> file` (PAX, GNU longname, file) would result in `x`'s extensions being applied to `L` rather than to `file`.\n\n[Per POSIX pax](https://pubs.opengroup.org/onlinepubs/9799919799/utilities/pax.html), this is incorrect: a PAX header always applies to a file entry, not any intermediary ent\n\nPackage: tar\nInstalled: 0.4.45\nFixed in: 0.4.46\nSeverity: MEDIUM\nFix: Upgrade tar to 0.4.46"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb0e5579932614f7", "name": "CVE-2026-55093: tract-nnef 0.21.10 \u2014 Cargo.lock", "shortDescription": {"text": "CVE-2026-55093: tract-nnef 0.21.10 \u2014 Cargo.lock"}, "fullDescription": {"text": "tract-nnef: integer overflow in NNEF `.dat` tensor parser yields an out-of-bounds read on model load\n\n- **Component:** `tract-nnef` (`nnef/src/tensors.rs::read_tensor`) + `tract-data` (`data/src/tensor.rs`)\n- **Affected versions:** `< 0.21.16`, `0.22.0`\u2013`0.22.2`, `0.23.0`\u2013`0.23.1` \u2014 the dense `DatLoader` path was unguarded across all three release lines; patched in 0.21.16 / 0.22.2 / 0.23.1\n- **Class:** CWE-190 (integer overflow) \u2192 CWE-125 (out-of-bounds read)\n- **Trigger:** loading a crafted NNEF model archive (`*.nnef.tgz` / `*.nnef.tar` / dir) via the public `tract_nnef::nnef().model_for_path\n\nPackage: tract-nnef\nInstalled: 0.21.10\nFixed in: 0.23.1, 0.22.2, 0.21.16\nSeverity: MEDIUM\nFix: Upgrade tract-nnef to 0.23.1, 0.22.2, 0.21.16"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cdae60133f12288", "name": "CVE-2026-55832: tract-onnx 0.21.10 \u2014 Cargo.lock", "shortDescription": {"text": "CVE-2026-55832: tract-onnx 0.21.10 \u2014 Cargo.lock"}, "fullDescription": {"text": "tract: Arbitrary file read via unsanitized ONNX external_data `location` (path traversal) on model load in tract-onnx\n\n### Summary\n\n`tract` (the `tract-onnx` crate) resolves an ONNX tensor's external-data `location` by joining it onto the model directory **without any sanitization**. Because `location` comes from the (untrusted) `.onnx` file, a malicious model can make `tract` open and read an **arbitrary local file** at load time, with the file's contents flowing into the model's tensors / inference output (read-only file disclosure). This is the ONNX external-data path-traversal class that the reference `onnx`\n\nPackage: tract-onnx\nInstalled: 0.21.10\nFixed in: 0.21.17, 0.22.3, 0.23.2\nSeverity: MEDIUM\nFix: Upgrade tract-onnx to 0.21.17, 0.22.3, 0.23.2"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f42ebd1caa9af06", "name": "Secret leak: JWT token \u2014 crates/jcode-app-core/src/tool/discover.rs", "shortDescription": {"text": "Secret leak: JWT token \u2014 crates/jcode-app-core/src/tool/discover.rs"}, "fullDescription": {"text": "Trivy detected a possible secret in `crates/jcode-app-core/src/tool/discover.rs`.\n\nRule: jwt-token\nSeverity: MEDIUM\nMatch (redacted):             \"Use ***************************************************************\n\nAction: rotate the credential and remove it from the repo. Use a secrets manager or environment variables."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e899e7256216bf4", "name": "Insecure pattern 'local_storage_auth_token' in scripts/phone-server/wake-lambda.py:122", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/phone-server/wake-lambda.py:122"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f149af6c823fa75c", "name": "Insecure pattern 'cors_wildcard' in ios/TestHarness/mock_gateway.py:342", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in ios/TestHarness/mock_gateway.py:342"}, "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-f11c16fc48aa2c39", "name": "Insecure pattern 'subprocess_shell_true' in ios/TestHarness/ui_matrix.py:72", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in ios/TestHarness/ui_matrix.py:72"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09ddb641ba45ca08", "name": "Insecure pattern 'cors_wildcard' in crates/jcode-base/src/gateway.rs:328", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in crates/jcode-base/src/gateway.rs:328"}, "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-2f15051f8fa22c61", "name": "Possible secret in crates/jcode-base/src/message/tests.rs", "shortDescription": {"text": "Possible secret in crates/jcode-base/src/message/tests.rs"}, "fullDescription": {"text": "Detected 1 occurrence(s) matching generic_api_key. Rotate real credentials and move them to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 0.72}}, {"id": "scanner-3c05957cdf37eeff", "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-e2fb97fbd56d949f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/github-script@v7 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-6ac251038801468b", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "webfactory/ssh-agent@v0.9.0 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": "medium", "confidence": 1.0}}, {"id": "scanner-568f25844fb038f3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "vmactions/freebsd-vm@v1 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": "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": "webfactory/ssh-agent@v0.9.0 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": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "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-2104b54c3ec46f3b", "name": "Very large file: telemetry-worker/src/worker.js (1639 lines)", "shortDescription": {"text": "Very large file: telemetry-worker/src/worker.js (1639 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-3022e9ea86b65167", "name": "Very large file: scripts/analyze_runtime_memory_log.py (1306 lines)", "shortDescription": {"text": "Very large file: scripts/analyze_runtime_memory_log.py (1306 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-1022fec4bab728df", "name": "Very large file: crates/jcode-provider-core/src/lib.rs (1642 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-core/src/lib.rs (1642 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-658a3d70c37ca3be", "name": "Very large file: crates/jcode-provider-openai-runtime/src/lib.rs (1371 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/lib.rs (1371 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-2d690133ae88085e", "name": "Very large file: crates/jcode-provider-openai-runtime/src/openai_provider_impl.rs (1193 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/openai_provider_impl.rs (1193 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-383fa9da50deb906", "name": "Very large file: crates/jcode-provider-openai-runtime/src/openai_stream_runtime.rs (1649 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/openai_stream_runtime.rs (1649 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-1b82c23bbd556679", "name": "Very large file: crates/jcode-tui-render/src/swarm_gallery.rs (3044 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui-render/src/swarm_gallery.rs (3044 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-d06313710109a76e", "name": "Very large file: crates/jcode-provider-anthropic-runtime/src/lib.rs (2439 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-anthropic-runtime/src/lib.rs (2439 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-1bad88c876920cc0", "name": "Very large file: crates/jcode-provider-anthropic-runtime/src/anthropic_tests.rs (1853 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-anthropic-runtime/src/anthropic_tests.rs (1853 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-07e5cdee6c5b7085", "name": "Very large file: crates/jcode-base/src/compaction.rs (1790 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/compaction.rs (1790 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-a0777754b2b89b9c", "name": "Very large file: crates/jcode-base/src/background.rs (1465 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/background.rs (1465 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-874df6d81e5ebce9", "name": "Very large file: crates/jcode-base/src/skill.rs (1431 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/skill.rs (1431 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-fdb9d27b8689a398", "name": "Very large file: crates/jcode-base/src/memory_agent.rs (1901 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/memory_agent.rs (1901 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-d7a0bf88dcf0b316", "name": "Very large file: crates/jcode-base/src/live_tests.rs (3087 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/live_tests.rs (3087 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-c1fac3b5e3ac0ffd", "name": "Very large file: crates/jcode-base/src/sidecar.rs (1319 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/sidecar.rs (1319 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-0462574782ed97e7", "name": "Very large file: crates/jcode-base/src/memory.rs (2065 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/memory.rs (2065 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-cfdf633b20d1f146", "name": "Very large file: crates/jcode-base/src/import.rs (1495 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/import.rs (1495 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-12f766b0d8ea2bfc", "name": "Very large file: crates/jcode-base/src/session.rs (1621 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/session.rs (1621 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-796a96ac583e30aa", "name": "Very large file: crates/jcode-base/src/provider/catalog_routes.rs (1438 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/provider/catalog_routes.rs (1438 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-6c5e5e6a268671ab", "name": "Very large file: crates/jcode-base/src/provider/mod.rs (2742 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/provider/mod.rs (2742 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-af4efe1c15426a8d", "name": "Very large file: crates/jcode-base/src/provider/tests/model_resolution.rs (2281 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/provider/tests/model_resolution.rs (2281 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-61ce2fddbe32a6b7", "name": "Very large file: crates/jcode-base/src/auth/mod.rs (1466 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/auth/mod.rs (1466 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-bc15aa4b80ae703d", "name": "Very large file: crates/jcode-base/src/auth/oauth.rs (1519 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/auth/oauth.rs (1519 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-6187115cb0507637", "name": "Very large file: crates/jcode-base/src/auth/lifecycle.rs (2583 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/auth/lifecycle.rs (2583 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-ffb54fa0f9232218", "name": "Very large file: crates/jcode-base/src/session_tests/cases.rs (2363 lines)", "shortDescription": {"text": "Very large file: crates/jcode-base/src/session_tests/cases.rs (2363 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-31d2d751294b4705", "name": "Very large file: crates/jcode-import-core/src/lib.rs (1645 lines)", "shortDescription": {"text": "Very large file: crates/jcode-import-core/src/lib.rs (1645 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-bf47d7a9f268a62c", "name": "Very large file: crates/jcode-protocol/src/wire.rs (1439 lines)", "shortDescription": {"text": "Very large file: crates/jcode-protocol/src/wire.rs (1439 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-de628b292fdbe597", "name": "Very large file: crates/jcode-setup-hints/src/lib.rs (2589 lines)", "shortDescription": {"text": "Very large file: crates/jcode-setup-hints/src/lib.rs (2589 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-f7bd8220fcc11c32", "name": "Very large file: crates/jcode-provider-bedrock/src/lib.rs (1979 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-bedrock/src/lib.rs (1979 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-5718704c56fc5577", "name": "Very large file: crates/jcode-tui-mermaid/src/lib.rs (1496 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui-mermaid/src/lib.rs (1496 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-2a4a9c4c86316152", "name": "Very large file: crates/jcode-tui-mermaid/src/mermaid_cache_render.rs (1467 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui-mermaid/src/mermaid_cache_render.rs (1467 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-f724e0aa3ea89ea3", "name": "Very large file: crates/jcode-tui-mermaid/src/mermaid_viewport.rs (1953 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui-mermaid/src/mermaid_viewport.rs (1953 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-246cb65d6fe0b30f", "name": "Very large file: crates/jcode-provider-doctor/src/provider_e2e.rs (2713 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-doctor/src/provider_e2e.rs (2713 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-a7732491d08f0885", "name": "Very large file: crates/jcode-provider-doctor/src/lifecycle_driver.rs (1974 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-doctor/src/lifecycle_driver.rs (1974 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-d98b428daad4b29a", "name": "Very large file: crates/jcode-provider-doctor/src/live_provider_probes.rs (2029 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-doctor/src/live_provider_probes.rs (2029 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-a71dd38ad6a31809", "name": "Very large file: crates/jcode-config-types/src/lib.rs (1622 lines)", "shortDescription": {"text": "Very large file: crates/jcode-config-types/src/lib.rs (1622 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-f60ca2b8ef7a536a", "name": "Very large file: crates/jcode-desktop/src/desktop_benchmarks_scroll.rs (1822 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/desktop_benchmarks_scroll.rs (1822 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-36d868d6716be9ac", "name": "Very large file: crates/jcode-desktop/src/desktop_rich_text.rs (2069 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/desktop_rich_text.rs (2069 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-ac36498b080ff117", "name": "Very large file: crates/jcode-desktop/src/main.rs (2581 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/main.rs (2581 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-4142145281cc4a9e", "name": "Very large file: crates/jcode-desktop/src/workspace.rs (1612 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/workspace.rs (1612 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-2c9c85792f2cbf97", "name": "Very large file: crates/jcode-desktop/src/canvas.rs (2404 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/canvas.rs (2404 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-1ce324e9fd9c8980", "name": "Very large file: crates/jcode-desktop/src/single_session.rs (1872 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/single_session.rs (1872 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-7050a21481b5cecb", "name": "Very large file: crates/jcode-desktop/src/main_tests.rs (10621 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/main_tests.rs (10621 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-21b4212ea59bcd9a", "name": "Very large file: crates/jcode-desktop/src/single_session_render/inline_widget_chrome.rs (1554 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/inline_widget_chrome.rs (1554 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-e272a18a799c0fc8", "name": "Very large file: crates/jcode-desktop/src/single_session_render/handwriting.rs (3005 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/handwriting.rs (3005 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-2e90066274a9be8e", "name": "Very large file: crates/jcode-desktop/src/single_session_render/tests.rs (2220 lines)", "shortDescription": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/tests.rs (2220 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-8e555711ee03a395", "name": "Very large file: crates/jcode-provider-openrouter-runtime/src/lib.rs (2756 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-openrouter-runtime/src/lib.rs (2756 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-c173492198a12471", "name": "Very large file: crates/jcode-provider-openrouter-runtime/src/openrouter_tests.rs (2979 lines)", "shortDescription": {"text": "Very large file: crates/jcode-provider-openrouter-runtime/src/openrouter_tests.rs (2979 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-de806247c41d92bb", "name": "Very large file: crates/jcode-telemetry-core/src/lib.rs (2101 lines)", "shortDescription": {"text": "Very large file: crates/jcode-telemetry-core/src/lib.rs (2101 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-fafb3500a88cfc05", "name": "Very large file: crates/jcode-app-core/src/server.rs (2375 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server.rs (2375 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-b729e59bb5c68cad", "name": "Very large file: crates/jcode-app-core/src/update.rs (1745 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/update.rs (1745 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-0d8b5a09fa550939", "name": "Very large file: crates/jcode-app-core/src/agent/turn_streaming_mpsc.rs (1692 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/agent/turn_streaming_mpsc.rs (1692 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-faab3412131c0bc2", "name": "Very large file: crates/jcode-app-core/src/agent/turn_loops.rs (1183 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/agent/turn_loops.rs (1183 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-4c754853d341153a", "name": "Very large file: crates/jcode-app-core/src/server/provider_control.rs (1600 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/provider_control.rs (1600 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-834b4b33974bc399", "name": "Very large file: crates/jcode-app-core/src/server/comm_session.rs (1433 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/comm_session.rs (1433 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-d618b48eb37f0bae", "name": "Very large file: crates/jcode-app-core/src/server/client_session.rs (1586 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/client_session.rs (1586 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-c8d1909e2ea7c3a1", "name": "Very large file: crates/jcode-app-core/src/server/debug_server_state.rs (1257 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/debug_server_state.rs (1257 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-08132530be15347b", "name": "Very large file: crates/jcode-app-core/src/server/swarm.rs (3170 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/swarm.rs (3170 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-eedc27c7c270f89b", "name": "Very large file: crates/jcode-app-core/src/server/provider_control_tests.rs (1394 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/provider_control_tests.rs (1394 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-ea2d775408ce7edf", "name": "Very large file: crates/jcode-app-core/src/server/client_lifecycle.rs (3171 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/client_lifecycle.rs (3171 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-a88da00af6aa6323", "name": "Very large file: crates/jcode-app-core/src/server/comm_control.rs (2625 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/server/comm_control.rs (2625 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-4bb2bc84ebdb7abc", "name": "Very large file: crates/jcode-app-core/src/tool/session_search.rs (1892 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/tool/session_search.rs (1892 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-adef0d0c82bc5fc9", "name": "Very large file: crates/jcode-app-core/src/tool/communicate.rs (3345 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/tool/communicate.rs (3345 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-b46877168a85bc84", "name": "Very large file: crates/jcode-app-core/src/tool/communicate_tests.rs (1782 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/tool/communicate_tests.rs (1782 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-99f5e5da346cc072", "name": "Very large file: crates/jcode-app-core/src/tool/discover.rs (2127 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/tool/discover.rs (2127 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-144d8afb4c60befa", "name": "Very large file: crates/jcode-app-core/src/tool/selfdev/tests.rs (1469 lines)", "shortDescription": {"text": "Very large file: crates/jcode-app-core/src/tool/selfdev/tests.rs (1469 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-b4a22591ec70ddab", "name": "Very large file: crates/jcode-tui/src/tui/info_widget.rs (2188 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/info_widget.rs (2188 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-e58c73511dc386ce", "name": "Very large file: crates/jcode-tui/src/tui/session_picker.rs (2437 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker.rs (2437 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-99d4c7130999727b", "name": "Very large file: crates/jcode-tui/src/tui/ui_tools.rs (1656 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_tools.rs (1656 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-3c7b6f20dde1d695", "name": "Very large file: crates/jcode-tui/src/tui/ui_viewport.rs (1439 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_viewport.rs (1439 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-1cddcdae765cc79b", "name": "Very large file: crates/jcode-tui/src/tui/ui_prepare.rs (2550 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_prepare.rs (2550 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-a8d85d10eebae4cc", "name": "Very large file: crates/jcode-tui/src/tui/backend.rs (1799 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/backend.rs (1799 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-a05af5aeeec92f1d", "name": "Very large file: crates/jcode-tui/src/tui/ui.rs (3540 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui.rs (3540 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-8d04d3d84c8c043e", "name": "Very large file: crates/jcode-tui/src/tui/ui_header.rs (1694 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_header.rs (1694 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-df0d47cb5feb0d40", "name": "Very large file: crates/jcode-tui/src/tui/mod.rs (2148 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/mod.rs (2148 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-63a3c6b8c074d9f2", "name": "Very large file: crates/jcode-tui/src/tui/session_picker_tests.rs (2453 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker_tests.rs (2453 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-c2c014243bc626b9", "name": "Very large file: crates/jcode-tui/src/tui/ui_pinned.rs (2046 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_pinned.rs (2046 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-ad017c2339cc196b", "name": "Very large file: crates/jcode-tui/src/tui/ui_messages.rs (4167 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_messages.rs (4167 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-382ee0ae891f09b4", "name": "Very large file: crates/jcode-tui/src/tui/ui_input.rs (2992 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_input.rs (2992 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-1cad5a6dc26518e7", "name": "Very large file: crates/jcode-tui/src/tui/ui_inline_image.rs (1719 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_inline_image.rs (1719 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-d4f2d23e2e8e25bc", "name": "Very large file: crates/jcode-tui/src/tui/app.rs (2430 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app.rs (2430 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-7c65a815012719f5", "name": "Very large file: crates/jcode-tui/src/tui/info_widget_tests.rs (1814 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/info_widget_tests.rs (1814 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-557d05fcfff911af", "name": "Very large file: crates/jcode-tui/src/tui/ui_messages/tests.rs (2809 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/ui_messages/tests.rs (2809 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-1ae510f1d48be482", "name": "Very large file: crates/jcode-tui/src/tui/app/auth.rs (3391 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/auth.rs (3391 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-0e773169faf547c0", "name": "Very large file: crates/jcode-tui/src/tui/app/commands.rs (3488 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/commands.rs (3488 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-0c6879884d3f54e5", "name": "Very large file: crates/jcode-tui/src/tui/app/tui_state.rs (2373 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tui_state.rs (2373 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-49c26e3e43fc7dc1", "name": "Very large file: crates/jcode-tui/src/tui/app/auth_account_picker.rs (1220 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/auth_account_picker.rs (1220 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-8e9348320c80cf75", "name": "Very large file: crates/jcode-tui/src/tui/app/state_ui_input_helpers.rs (1934 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/state_ui_input_helpers.rs (1934 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-ebd18fbd9ee40a10", "name": "Very large file: crates/jcode-tui/src/tui/app/state_ui.rs (2208 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/state_ui.rs (2208 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-3d4ba979d86a024c", "name": "Very large file: crates/jcode-tui/src/tui/app/input.rs (3741 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/input.rs (3741 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-74e4177019b64eec", "name": "Very large file: crates/jcode-tui/src/tui/app/debug_cmds.rs (1121 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/debug_cmds.rs (1121 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-90e6de6bc696350c", "name": "Very large file: crates/jcode-tui/src/tui/app/model_context.rs (1956 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/model_context.rs (1956 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-8067463db736ef7a", "name": "Very large file: crates/jcode-tui/src/tui/app/helpers.rs (1571 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/helpers.rs (1571 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-2043ee9b7b5c4ade", "name": "Very large file: crates/jcode-tui/src/tui/app/debug_bench.rs (1281 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/debug_bench.rs (1281 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-4a057c2e21f73ce6", "name": "Very large file: crates/jcode-tui/src/tui/app/turn.rs (1480 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/turn.rs (1480 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-35ce53b6b9193a48", "name": "Very large file: crates/jcode-tui/src/tui/app/tui_lifecycle.rs (1277 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tui_lifecycle.rs (1277 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-d36be263b813fedd", "name": "Very large file: crates/jcode-tui/src/tui/app/inline_interactive.rs (3951 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/inline_interactive.rs (3951 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-bbd13b4942bce4fb", "name": "Very large file: crates/jcode-tui/src/tui/app/remote.rs (1936 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote.rs (1936 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-8a730fb6622b0aa9", "name": "Very large file: crates/jcode-tui/src/tui/app/onboarding_flow_control.rs (1604 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/onboarding_flow_control.rs (1604 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-a27dbfe3bdae208b", "name": "Very large file: crates/jcode-tui/src/tui/app/tests.rs (1743 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests.rs (1743 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-9229fbbc157c845c", "name": "Very large file: crates/jcode-tui/src/tui/app/navigation.rs (1835 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/navigation.rs (1835 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-36adcf893dedde21", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_04.rs (2379 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_04.rs (2379 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-342ceece42c99be4", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_flow.rs (1613 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_flow.rs (1613 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-e7688b31c931349f", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/swarm_plan_graph_inline.rs (1972 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/swarm_plan_graph_inline.rs (1972 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-7ea78a10f013d8a8", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_03.rs (1842 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_03.rs (1842 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-4f1bce408171db30", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/state_model_poke_03.rs (2762 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/state_model_poke_03.rs (2762 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-0facc3f0578291af", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_eval.rs (3302 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_eval.rs (3302 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-09de28806178c267", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_startup_input_02/part_01.rs (1792 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_startup_input_02/part_01.rs (1792 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-ed2f8caad9ed654c", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/commands_accounts_01/part_01.rs (1633 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/commands_accounts_01/part_01.rs (1633 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-507329fa6c6101c7", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_02/part_01.rs (1415 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_02/part_01.rs (1415 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-ed00fa54b35bfe37", "name": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_01/part_01.rs (1930 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_01/part_01.rs (1930 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-f342d549ccf2de4b", "name": "Very large file: crates/jcode-tui/src/tui/app/remote/key_handling.rs (2591 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote/key_handling.rs (2591 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-e6bfca78f93d3e7a", "name": "Very large file: crates/jcode-tui/src/tui/app/remote/server_events.rs (2810 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote/server_events.rs (2810 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-f85fd9182fb4eb5e", "name": "Very large file: crates/jcode-tui/src/tui/session_picker/loading_tests.rs (1268 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker/loading_tests.rs (1268 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-b1e9e66a0d1e7745", "name": "Very large file: crates/jcode-tui/src/tui/session_picker/loading.rs (2932 lines)", "shortDescription": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker/loading.rs (2932 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-4776fc0618c24875", "name": "Very large file: src/cli/commands.rs (3300 lines)", "shortDescription": {"text": "Very large file: src/cli/commands.rs (3300 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-7f27d46aab4e924a", "name": "Very large file: src/cli/provider_init.rs (1823 lines)", "shortDescription": {"text": "Very large file: src/cli/provider_init.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-aa454451406082f4", "name": "Very large file: src/cli/login.rs (1401 lines)", "shortDescription": {"text": "Very large file: src/cli/login.rs (1401 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-9ac3790e6531e65e", "name": "644 TODO/FIXME markers", "shortDescription": {"text": "644 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d0986055d62a679a", "name": "Node manifest has dependencies but no lockfile: telemetry-worker/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: telemetry-worker/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "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 762 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 453 placeholder/mock markers across 107 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-116bcb121d643cdb", "name": "Legacy-named symbol `command_copy` in telemetry-worker/src/worker.js:1500", "shortDescription": {"text": "Legacy-named symbol `command_copy` in telemetry-worker/src/worker.js:1500"}, "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-94b7bc80748dd43f", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/run_terminal_bench_campaign.py:21", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/run_terminal_bench_campaign.py:21"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-df5f88812faae52b", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/profile_spawn.py:580", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/profile_spawn.py:580"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-b38a4d00823e2e32", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/benchmark_swarm.py:109", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/benchmark_swarm.py:109"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-36b3189fd7eacede", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_memory_cli.py:69", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_memory_cli.py:69"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-02fdbd72e2d11bd4", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/oauth_helper.py:39", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/oauth_helper.py:39"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-d2fe30b0bfa73325", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/compare_token_usage.py:79", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/compare_token_usage.py:79"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-e8d7b6fc05c19ab8", "name": "Legacy-named symbol `candidate_copy` in scripts/desktop_gallery_golden.py:133", "shortDescription": {"text": "Legacy-named symbol `candidate_copy` in scripts/desktop_gallery_golden.py:133"}, "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-51a93a0e29cbf762", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup.py:101", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup.py:101"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-cd25dddb02539abd", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/openrelay_discovery_test_server.py:125", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/openrelay_discovery_test_server.py:125"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab7c174ae05f26fe", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup_visible_ready.py:81", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup_visible_ready.py:81"}, "fullDescription": {"text": "`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-c47a7083fd73f963", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/compile_isolation_report.py:44", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/compile_isolation_report.py:44"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-f5a471d6dc43982f", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_dependency_boundaries.py:55", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_dependency_boundaries.py:55"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-65c2ac0e746efa07", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/phone-server/jcode-pair-service.py:14", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/phone-server/jcode-pair-service.py:14"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d609c58396fdae3e", "name": "Network/subprocess call without timeout or try/except \u2014 ios/TestHarness/ui_matrix.py:72", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 ios/TestHarness/ui_matrix.py:72"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.85}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same substantial AST body hash:\nscripts/check_panic_budget.py:39:is_test_rust_file, scripts/check_swallowed_error_budget.py:46:is_test_rust_file, scripts/check_test_size_budget.py:31:is_test_rust_file\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same substantial AST body hash:\nscripts/check_panic_budget.py:79:production_lines, scripts/check_swallowed_error_budget.py:80:production_lines\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c9f9459df883cbe9", "name": "Vulnerable dependency anyhow 1.0.100: RUSTSEC-2026-0190", "shortDescription": {"text": "Vulnerable dependency anyhow 1.0.100: RUSTSEC-2026-0190"}, "fullDescription": {"text": "OSV.dev reports `anyhow` at version `1.0.100` (resolved in `Cargo.lock`) is affected by RUSTSEC-2026-0190.\n\nUnsoundness in `Error::downcast_mut()`\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2026-0190\nFix: upgrade `anyhow` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ca2501f8285c2bf", "name": "Vulnerable dependency rand 0.8.5: GHSA-cq8v-f236-94qc", "shortDescription": {"text": "Vulnerable dependency rand 0.8.5: GHSA-cq8v-f236-94qc"}, "fullDescription": {"text": "OSV.dev reports `rand` at version `0.8.5` (resolved in `Cargo.lock`) is affected by GHSA-cq8v-f236-94qc.\n\nRand is unsound with a custom logger using rand::rng()\n\nAliases: GHSA-cq8v-f236-94qc, RUSTSEC-2026-0097\nAdvisory: https://osv.dev/vulnerability/GHSA-cq8v-f236-94qc\nFix: upgrade `rand` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b09fc0b1133482fc", "name": "Vulnerable dependency tar 0.4.45: GHSA-3pv8-6f4r-ffg2", "shortDescription": {"text": "Vulnerable dependency tar 0.4.45: GHSA-3pv8-6f4r-ffg2"}, "fullDescription": {"text": "OSV.dev reports `tar` at version `0.4.45` (resolved in `Cargo.lock`) is affected by GHSA-3pv8-6f4r-ffg2.\n\ntar has a PAX header desynchronization issue\n\nAdvisory: https://osv.dev/vulnerability/GHSA-3pv8-6f4r-ffg2\nFix: upgrade `tar` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-62d1b5e39bf485f2", "name": "Vulnerable dependency tract-onnx 0.21.10: GHSA-h668-6x6g-f8r5", "shortDescription": {"text": "Vulnerable dependency tract-onnx 0.21.10: GHSA-h668-6x6g-f8r5"}, "fullDescription": {"text": "OSV.dev reports `tract-onnx` at version `0.21.10` (resolved in `Cargo.lock`) is affected by GHSA-h668-6x6g-f8r5 (aka CVE-2026-55832).\n\ntract: Arbitrary file read via unsanitized ONNX external_data `location` (path traversal) on model load in tract-onnx\n\nAliases: CVE-2026-55832\nAdvisory: https://osv.dev/vulnerability/GHSA-h668-6x6g-f8r5\nFix: upgrade `tract-onnx` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a07ef77e19b8986b", "name": "Vulnerable dependency wrangler 4: GHSA-36p8-mvp6-cv38", "shortDescription": {"text": "Vulnerable dependency wrangler 4: GHSA-36p8-mvp6-cv38"}, "fullDescription": {"text": "OSV.dev reports `wrangler` at version `4` (declared in `telemetry-worker/package.json`) is affected by GHSA-36p8-mvp6-cv38 (aka CVE-2026-0933).\nNote: `4` is the declared floor of a range \u2014 the installed version may be newer.\n\nWrangler affected by OS Command Injection in `wrangler pages deploy`\n\nAliases: CVE-2026-0933\nAdvisory: https://osv.dev/vulnerability/GHSA-36p8-mvp6-cv38\nFix: upgrade `wrangler` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "high", "confidence": 0.7}}, {"id": "scanner-32dd2dfbfe628289", "name": "Vulnerable dependency bincode 1.3.3: RUSTSEC-2025-0141", "shortDescription": {"text": "Vulnerable dependency bincode 1.3.3: RUSTSEC-2025-0141"}, "fullDescription": {"text": "OSV.dev reports `bincode` at version `1.3.3` (resolved in `Cargo.lock`) is affected by RUSTSEC-2025-0141.\nNote: `bincode` is a transitive dependency \u2014 pulled in by another package, not declared directly in a manifest.\n\nBincode is unmaintained\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2025-0141\nFix: upgrade `bincode` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-41f3c11e0777104b", "name": "Vulnerable dependency cmov 0.5.3: GHSA-3rjw-m598-pq24", "shortDescription": {"text": "Vulnerable dependency cmov 0.5.3: GHSA-3rjw-m598-pq24"}, "fullDescription": {"text": "OSV.dev reports `cmov` at version `0.5.3` (resolved in `Cargo.lock`) is affected by GHSA-3rjw-m598-pq24 (aka CVE-2026-50185).\nNote: `cmov` is a transitive dependency \u2014 pulled in by another package, not declared directly in a manifest.\n\nCmov/CmovEq on aarch64 can produce wrong results if high-bits of registers are set\n\nAliases: CVE-2026-50185\nAdvisory: https://osv.dev/vulnerability/GHSA-3rjw-m598-pq24\nFix: upgrade `cmov` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-aec01f013b0051ca", "name": "Vulnerable dependency lru 0.12.5: GHSA-rhfx-m35p-ff5j", "shortDescription": {"text": "Vulnerable dependency lru 0.12.5: GHSA-rhfx-m35p-ff5j"}, "fullDescription": {"text": "OSV.dev reports `lru` at version `0.12.5` (resolved in `Cargo.lock`) is affected by GHSA-rhfx-m35p-ff5j.\nNote: `lru` is a transitive dependency \u2014 pulled in by another package, not declared directly in a manifest.\n\n`IterMut` violates Stacked Borrows by invalidating internal pointer\n\nAliases: GHSA-rhfx-m35p-ff5j, RUSTSEC-2026-0002\nAdvisory: https://osv.dev/vulnerability/GHSA-rhfx-m35p-ff5j\nFix: upgrade `lru` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-1e9b4f4e73e28680", "name": "Vulnerable dependency memmap2 0.8.0: RUSTSEC-2026-0186", "shortDescription": {"text": "Vulnerable dependency memmap2 0.8.0: RUSTSEC-2026-0186"}, "fullDescription": {"text": "OSV.dev reports `memmap2` at version `0.8.0` (resolved in `Cargo.lock`) is affected by RUSTSEC-2026-0186.\nNote: `memmap2` is a transitive dependency \u2014 pulled in by another package, not declared directly in a manifest.\n\nUnchecked pointer offset in crate `memmap2`\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2026-0186\nFix: upgrade `memmap2` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-eefe7ebf1594c6ea", "name": "Vulnerable dependency memmap2 0.9.9: RUSTSEC-2026-0186", "shortDescription": {"text": "Vulnerable dependency memmap2 0.9.9: RUSTSEC-2026-0186"}, "fullDescription": {"text": "OSV.dev reports `memmap2` at version `0.9.9` (resolved in `Cargo.lock`) is affected by RUSTSEC-2026-0186.\nNote: `memmap2` is a transitive dependency \u2014 pulled in by another package, not declared directly in a manifest.\n\nUnchecked pointer offset in crate `memmap2`\n\nAdvisory: https://osv.dev/vulnerability/RUSTSEC-2026-0186\nFix: upgrade `memmap2` past the affected range per the advisory."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-ccc531824e146c35", "name": "Dependency dirs is a major version behind", "shortDescription": {"text": "Dependency dirs is a major version behind"}, "fullDescription": {"text": "`dirs` is pinned at `5` in `Cargo.toml` while the latest release on the cargo registry is `6.0.0` \u2014 1 major version(s) behind. Old majors stop receiving security backports and accumulate known CVEs. Review the upstream changelog / migration guide and upgrade `dirs` to `6.0.0`."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.9}}, {"id": "scanner-c3ad455e8877adb5", "name": "Dependency imap declares a version newer than the registry latest", "shortDescription": {"text": "Dependency imap declares a version newer than the registry latest"}, "fullDescription": {"text": "`imap` is declared at `3.0.0-alpha.15` in `crates/jcode-notify-email/Cargo.toml`, but the latest release currently visible on the cargo registry is `2.4.1`. The declared major version is 1 major version(s) ahead of the registry. This often indicates a typo, a private fork assumption, or an AI-hallucinated package version that will break reproducible installs."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "severity": "low", "confidence": 0.4}}]}}, "automationDetails": {"id": "repobility/30766"}, "properties": {"repository": "1jehuang/jcode", "repoUrl": "https://github.com/1jehuang/jcode", "branch": "main"}, "results": [{"ruleId": "scanner-57de787eef01be3e", "level": "note", "message": {"text": "Possibly dead Python function: is_facade"}, "properties": {"repobilityId": "ec7a8c15a154b46f", "scanner": "scanner-primary", "fingerprint": "57de787eef01be3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/analyze_root_crate.py:199"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-39023e5e97904108", "level": "note", "message": {"text": "Possibly dead Python function: agg"}, "properties": {"repobilityId": "3738f93b1a34b952", "scanner": "scanner-primary", "fingerprint": "39023e5e97904108", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_spawn.py:496"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4aa04d3f53a30ebf", "level": "note", "message": {"text": "Possibly dead Python function: key"}, "properties": {"repobilityId": "82ad9f64418e6fec", "scanner": "scanner-primary", "fingerprint": "4aa04d3f53a30ebf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/desktop_perf_report.py:98"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c4c6a06543464d5", "level": "note", "message": {"text": "Possibly dead Python function: command_reset"}, "properties": {"repobilityId": "2a56cf00195e9cf5", "scanner": "scanner-primary", "fingerprint": "5c4c6a06543464d5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-45669d1455341361", "level": "note", "message": {"text": "Possibly dead Python function: command_search"}, "properties": {"repobilityId": "67aa9e14a683249f", "scanner": "scanner-primary", "fingerprint": "45669d1455341361", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:90"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05e38270d2d5bee3", "level": "note", "message": {"text": "Possibly dead Python function: command_show"}, "properties": {"repobilityId": "2b87c3571ce66fac", "scanner": "scanner-primary", "fingerprint": "05e38270d2d5bee3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9134ea2489e7c261", "level": "note", "message": {"text": "Possibly dead Python function: command_add"}, "properties": {"repobilityId": "ddaf04021388b791", "scanner": "scanner-primary", "fingerprint": "9134ea2489e7c261", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31db09158aec0c5a", "level": "note", "message": {"text": "Possibly dead Python function: command_cart"}, "properties": {"repobilityId": "638a8c4b20c9e4f6", "scanner": "scanner-primary", "fingerprint": "31db09158aec0c5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e731dd70d264ed7", "level": "note", "message": {"text": "Possibly dead Python function: command_prepare_checkout"}, "properties": {"repobilityId": "9998026da00ef9d8", "scanner": "scanner-primary", "fingerprint": "8e731dd70d264ed7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/demo_shop.py:189"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee09a8cf47005925", "level": "note", "message": {"text": "Possibly dead Python function: lum"}, "properties": {"repobilityId": "5d9c1cd63e9de129", "scanner": "scanner-primary", "fingerprint": "ee09a8cf47005925", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verify_light_theme.py:110"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41e3b0138432336e", "level": "note", "message": {"text": "Possibly dead Python function: bytes_to_mb"}, "properties": {"repobilityId": "3e1d9213af165d04", "scanner": "scanner-primary", "fingerprint": "41e3b0138432336e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/analyze_runtime_memory_log.py:349"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bab88eac166c627d", "level": "note", "message": {"text": "Possibly dead Python function: cmd_filmstrip"}, "properties": {"repobilityId": "039100d50eaa214e", "scanner": "scanner-primary", "fingerprint": "bab88eac166c627d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/desktop_visual_report.py:82"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be8cd98450ce0df0", "level": "note", "message": {"text": "Possibly dead Python function: cmd_gif"}, "properties": {"repobilityId": "56d9a296fa2abec5", "scanner": "scanner-primary", "fingerprint": "be8cd98450ce0df0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/desktop_visual_report.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-baaf929352c4b9b1", "level": "note", "message": {"text": "Possibly dead Python function: cmd_diff"}, "properties": {"repobilityId": "113843338462d178", "scanner": "scanner-primary", "fingerprint": "baaf929352c4b9b1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/desktop_visual_report.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3990c54407518134", "level": "note", "message": {"text": "Possibly dead Python function: alive"}, "properties": {"repobilityId": "07408bccf9bd16a9", "scanner": "scanner-primary", "fingerprint": "3990c54407518134", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/repro_live_duplicate.py:198"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea30c6c920828093", "level": "note", "message": {"text": "Possibly dead Python function: send_keys"}, "properties": {"repobilityId": "2bef41129fee1f27", "scanner": "scanner-primary", "fingerprint": "ea30c6c920828093", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/repro_live_duplicate.py:201"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a571a5caf98a80c3", "level": "note", "message": {"text": "Possibly dead Python function: alive"}, "properties": {"repobilityId": "07408bccf9bd16a9", "scanner": "scanner-primary", "fingerprint": "a571a5caf98a80c3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/repro_expand_edit_shortcut.py:228"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d73c8fd61649a162", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "d73c8fd61649a162", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phone-server/jcode-pair-service.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ae9008e8b378c18", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "8ae9008e8b378c18", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phone-server/jcode-pair-service.py:26"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-786a272f3c0f3bd3", "level": "warning", "message": {"text": "insecure hash algorithm sha1 \u2014 ios/TestHarness/mock_gateway.py:104"}, "properties": {"repobilityId": "5750a0220484e964", "scanner": "scanner-primary", "fingerprint": "786a272f3c0f3bd3", "layer": "security", "severity": "medium", "confidence": 0.75, "tags": ["semgrep", "security", "python"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ios/TestHarness/mock_gateway.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-98532269f0564f6e", "level": "error", "message": {"text": "subprocess shell true \u2014 ios/TestHarness/ui_matrix.py:72"}, "properties": {"repobilityId": "429bd209fc3f2f13", "scanner": "scanner-primary", "fingerprint": "98532269f0564f6e", "layer": "security", "severity": "high", "confidence": 0.7, "tags": ["semgrep", "security", "python"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ios/TestHarness/ui_matrix.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-4b2a401b869576d6", "level": "warning", "message": {"text": "dynamic urllib use detected \u2014 scripts/phone-server/testflight-setup.py:53"}, "properties": {"repobilityId": "1dbadfc8786ede15", "scanner": "scanner-primary", "fingerprint": "4b2a401b869576d6", "layer": "security", "severity": "medium", "confidence": 0.55, "tags": ["semgrep", "security", "python"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phone-server/testflight-setup.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-55d821f05f02db07", "level": "warning", "message": {"text": "dynamic urllib use detected \u2014 scripts/post_discord_release.py:75"}, "properties": {"repobilityId": "36bcb12c64e98a59", "scanner": "scanner-primary", "fingerprint": "55d821f05f02db07", "layer": "security", "severity": "medium", "confidence": 0.55, "tags": ["semgrep", "security", "python"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/post_discord_release.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-c6bbeca4f4f7e56b", "level": "warning", "message": {"text": "dynamic urllib use detected \u2014 scripts/test_openrelay_discovery_test.py:46"}, "properties": {"repobilityId": "7e2c95d737877495", "scanner": "scanner-primary", "fingerprint": "c6bbeca4f4f7e56b", "layer": "security", "severity": "medium", "confidence": 0.55, "tags": ["semgrep", "security", "python", "non-production-context"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test_openrelay_discovery_test.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-c663de0f18b45fb6", "level": "warning", "message": {"text": "CVE-2026-50185: cmov 0.5.3 \u2014 Cargo.lock"}, "properties": {"repobilityId": "ea8e5bc4443e43f6", "scanner": "scanner-primary", "fingerprint": "c663de0f18b45fb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["trivy", "vuln", "CVE-2026-50185"]}}, {"ruleId": "scanner-7fd81f235952a13f", "level": "note", "message": {"text": "GHSA-rhfx-m35p-ff5j: lru 0.12.5 \u2014 Cargo.lock"}, "properties": {"repobilityId": "133a6d9cbc5b40d0", "scanner": "scanner-primary", "fingerprint": "7fd81f235952a13f", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["trivy", "vuln", "GHSA-rhfx-m35p-ff5j"]}}, {"ruleId": "scanner-84b7b224a9f6ecf6", "level": "note", "message": {"text": "GHSA-cq8v-f236-94qc: rand 0.8.5 \u2014 Cargo.lock"}, "properties": {"repobilityId": "327289a7bfee0a2a", "scanner": "scanner-primary", "fingerprint": "84b7b224a9f6ecf6", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["trivy", "vuln", "GHSA-cq8v-f236-94qc"]}}, {"ruleId": "scanner-14f1502ee75e5df4", "level": "warning", "message": {"text": "GHSA-3pv8-6f4r-ffg2: tar 0.4.45 \u2014 Cargo.lock"}, "properties": {"repobilityId": "d4d9c7b5f48ac1de", "scanner": "scanner-primary", "fingerprint": "14f1502ee75e5df4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["trivy", "vuln", "GHSA-3pv8-6f4r-ffg2"]}}, {"ruleId": "scanner-cb0e5579932614f7", "level": "warning", "message": {"text": "CVE-2026-55093: tract-nnef 0.21.10 \u2014 Cargo.lock"}, "properties": {"repobilityId": "ee97731217bc2acf", "scanner": "scanner-primary", "fingerprint": "cb0e5579932614f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["trivy", "vuln", "CVE-2026-55093"]}}, {"ruleId": "scanner-2cdae60133f12288", "level": "warning", "message": {"text": "CVE-2026-55832: tract-onnx 0.21.10 \u2014 Cargo.lock"}, "properties": {"repobilityId": "216afe6a5e03382d", "scanner": "scanner-primary", "fingerprint": "2cdae60133f12288", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["trivy", "vuln", "CVE-2026-55832"]}}, {"ruleId": "scanner-6f42ebd1caa9af06", "level": "warning", "message": {"text": "Secret leak: JWT token \u2014 crates/jcode-app-core/src/tool/discover.rs"}, "properties": {"repobilityId": "dd4f23eb3e96a07a", "scanner": "scanner-primary", "fingerprint": "6f42ebd1caa9af06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["trivy", "secret"]}}, {"ruleId": "scanner-9e899e7256216bf4", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/phone-server/wake-lambda.py:122"}, "properties": {"repobilityId": "3af4e762e1979e7c", "scanner": "scanner-primary", "fingerprint": "9e899e7256216bf4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/phone-server/wake-lambda.py"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-f149af6c823fa75c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in ios/TestHarness/mock_gateway.py:342"}, "properties": {"repobilityId": "9fa8b5965c58935c", "scanner": "scanner-primary", "fingerprint": "f149af6c823fa75c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ios/TestHarness/mock_gateway.py"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-f11c16fc48aa2c39", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in ios/TestHarness/ui_matrix.py:72"}, "properties": {"repobilityId": "4cd6360b845cfb1c", "scanner": "scanner-primary", "fingerprint": "f11c16fc48aa2c39", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ios/TestHarness/ui_matrix.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-09ddb641ba45ca08", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in crates/jcode-base/src/gateway.rs:328"}, "properties": {"repobilityId": "fee78a4c44de5310", "scanner": "scanner-primary", "fingerprint": "09ddb641ba45ca08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/jcode-base/src/gateway.rs"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-2f15051f8fa22c61", "level": "error", "message": {"text": "Possible secret in crates/jcode-base/src/message/tests.rs"}, "properties": {"repobilityId": "b3ff174e4ee6777e", "scanner": "scanner-primary", "fingerprint": "2f15051f8fa22c61", "layer": "security", "severity": "high", "confidence": 0.72, "tags": ["secrets", "generic_api_key"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/jcode-base/src/message/tests.rs"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-3c05957cdf37eeff", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "71aa9fcec319d474", "scanner": "scanner-primary", "fingerprint": "3c05957cdf37eeff", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/windows-smoke.yml"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-e2fb97fbd56d949f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "38e8b3622a9f9465", "scanner": "scanner-primary", "fingerprint": "e2fb97fbd56d949f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/require-issue.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-6ac251038801468b", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "66f846109fa9eac0", "scanner": "scanner-primary", "fingerprint": "6ac251038801468b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/discord-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "34e77a8763d383e1", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-568f25844fb038f3", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ad35ddcc8791f50", "scanner": "scanner-primary", "fingerprint": "568f25844fb038f3", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/freebsd-smoke.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2c7a64c092fea4f2", "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": 94}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2104b54c3ec46f3b", "level": "note", "message": {"text": "Very large file: telemetry-worker/src/worker.js (1639 lines)"}, "properties": {"repobilityId": "f224de0d42f7ed26", "scanner": "scanner-primary", "fingerprint": "2104b54c3ec46f3b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3022e9ea86b65167", "level": "note", "message": {"text": "Very large file: scripts/analyze_runtime_memory_log.py (1306 lines)"}, "properties": {"repobilityId": "305e916d83847e34", "scanner": "scanner-primary", "fingerprint": "3022e9ea86b65167", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1022fec4bab728df", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-core/src/lib.rs (1642 lines)"}, "properties": {"repobilityId": "e33e816fd70cd579", "scanner": "scanner-primary", "fingerprint": "1022fec4bab728df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-658a3d70c37ca3be", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/lib.rs (1371 lines)"}, "properties": {"repobilityId": "2897d571b990bdd5", "scanner": "scanner-primary", "fingerprint": "658a3d70c37ca3be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d690133ae88085e", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/openai_provider_impl.rs (1193 lines)"}, "properties": {"repobilityId": "a2f8df886fd58b90", "scanner": "scanner-primary", "fingerprint": "2d690133ae88085e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-383fa9da50deb906", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-openai-runtime/src/openai_stream_runtime.rs (1649 lines)"}, "properties": {"repobilityId": "fc6dbec632eb5499", "scanner": "scanner-primary", "fingerprint": "383fa9da50deb906", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1b82c23bbd556679", "level": "note", "message": {"text": "Very large file: crates/jcode-tui-render/src/swarm_gallery.rs (3044 lines)"}, "properties": {"repobilityId": "d74c36f496fcd1dd", "scanner": "scanner-primary", "fingerprint": "1b82c23bbd556679", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d06313710109a76e", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-anthropic-runtime/src/lib.rs (2439 lines)"}, "properties": {"repobilityId": "79b055e2b55a8411", "scanner": "scanner-primary", "fingerprint": "d06313710109a76e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1bad88c876920cc0", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-anthropic-runtime/src/anthropic_tests.rs (1853 lines)"}, "properties": {"repobilityId": "2c601d34d10584e0", "scanner": "scanner-primary", "fingerprint": "1bad88c876920cc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-07e5cdee6c5b7085", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/compaction.rs (1790 lines)"}, "properties": {"repobilityId": "1a11180462dab56e", "scanner": "scanner-primary", "fingerprint": "07e5cdee6c5b7085", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0777754b2b89b9c", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/background.rs (1465 lines)"}, "properties": {"repobilityId": "2767013babe0928b", "scanner": "scanner-primary", "fingerprint": "a0777754b2b89b9c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-874df6d81e5ebce9", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/skill.rs (1431 lines)"}, "properties": {"repobilityId": "511bea89a7d2b243", "scanner": "scanner-primary", "fingerprint": "874df6d81e5ebce9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fdb9d27b8689a398", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/memory_agent.rs (1901 lines)"}, "properties": {"repobilityId": "be316fd3955b46cb", "scanner": "scanner-primary", "fingerprint": "fdb9d27b8689a398", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d7a0bf88dcf0b316", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/live_tests.rs (3087 lines)"}, "properties": {"repobilityId": "2e68796b871f3675", "scanner": "scanner-primary", "fingerprint": "d7a0bf88dcf0b316", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1fac3b5e3ac0ffd", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/sidecar.rs (1319 lines)"}, "properties": {"repobilityId": "f0571ed633138ffd", "scanner": "scanner-primary", "fingerprint": "c1fac3b5e3ac0ffd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0462574782ed97e7", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/memory.rs (2065 lines)"}, "properties": {"repobilityId": "be12ee6ddea54d01", "scanner": "scanner-primary", "fingerprint": "0462574782ed97e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cfdf633b20d1f146", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/import.rs (1495 lines)"}, "properties": {"repobilityId": "c7af065fbbaf6d86", "scanner": "scanner-primary", "fingerprint": "cfdf633b20d1f146", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-12f766b0d8ea2bfc", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/session.rs (1621 lines)"}, "properties": {"repobilityId": "b62b077f7dbbdf0e", "scanner": "scanner-primary", "fingerprint": "12f766b0d8ea2bfc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-796a96ac583e30aa", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/provider/catalog_routes.rs (1438 lines)"}, "properties": {"repobilityId": "f9d85bec9c6b508a", "scanner": "scanner-primary", "fingerprint": "796a96ac583e30aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c5e5e6a268671ab", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/provider/mod.rs (2742 lines)"}, "properties": {"repobilityId": "ccaa62d4b66d8dbd", "scanner": "scanner-primary", "fingerprint": "6c5e5e6a268671ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-af4efe1c15426a8d", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/provider/tests/model_resolution.rs (2281 lines)"}, "properties": {"repobilityId": "63f0f824120dd66d", "scanner": "scanner-primary", "fingerprint": "af4efe1c15426a8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61ce2fddbe32a6b7", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/auth/mod.rs (1466 lines)"}, "properties": {"repobilityId": "790199a73c42df8b", "scanner": "scanner-primary", "fingerprint": "61ce2fddbe32a6b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc15aa4b80ae703d", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/auth/oauth.rs (1519 lines)"}, "properties": {"repobilityId": "a8e5c78848cdac23", "scanner": "scanner-primary", "fingerprint": "bc15aa4b80ae703d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6187115cb0507637", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/auth/lifecycle.rs (2583 lines)"}, "properties": {"repobilityId": "f2569c511108db5c", "scanner": "scanner-primary", "fingerprint": "6187115cb0507637", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ffb54fa0f9232218", "level": "note", "message": {"text": "Very large file: crates/jcode-base/src/session_tests/cases.rs (2363 lines)"}, "properties": {"repobilityId": "0c302016e2d8daae", "scanner": "scanner-primary", "fingerprint": "ffb54fa0f9232218", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-31d2d751294b4705", "level": "note", "message": {"text": "Very large file: crates/jcode-import-core/src/lib.rs (1645 lines)"}, "properties": {"repobilityId": "aad8c2da573c4dac", "scanner": "scanner-primary", "fingerprint": "31d2d751294b4705", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bf47d7a9f268a62c", "level": "note", "message": {"text": "Very large file: crates/jcode-protocol/src/wire.rs (1439 lines)"}, "properties": {"repobilityId": "67af0cb8b53aa983", "scanner": "scanner-primary", "fingerprint": "bf47d7a9f268a62c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de628b292fdbe597", "level": "note", "message": {"text": "Very large file: crates/jcode-setup-hints/src/lib.rs (2589 lines)"}, "properties": {"repobilityId": "97b7692a67791e6e", "scanner": "scanner-primary", "fingerprint": "de628b292fdbe597", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f7bd8220fcc11c32", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-bedrock/src/lib.rs (1979 lines)"}, "properties": {"repobilityId": "5cc2f218e3dd263a", "scanner": "scanner-primary", "fingerprint": "f7bd8220fcc11c32", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5718704c56fc5577", "level": "note", "message": {"text": "Very large file: crates/jcode-tui-mermaid/src/lib.rs (1496 lines)"}, "properties": {"repobilityId": "58cdf229598489af", "scanner": "scanner-primary", "fingerprint": "5718704c56fc5577", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2a4a9c4c86316152", "level": "note", "message": {"text": "Very large file: crates/jcode-tui-mermaid/src/mermaid_cache_render.rs (1467 lines)"}, "properties": {"repobilityId": "d11723ffc9b6b542", "scanner": "scanner-primary", "fingerprint": "2a4a9c4c86316152", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f724e0aa3ea89ea3", "level": "note", "message": {"text": "Very large file: crates/jcode-tui-mermaid/src/mermaid_viewport.rs (1953 lines)"}, "properties": {"repobilityId": "817e7d6b6bb32c2c", "scanner": "scanner-primary", "fingerprint": "f724e0aa3ea89ea3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-246cb65d6fe0b30f", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-doctor/src/provider_e2e.rs (2713 lines)"}, "properties": {"repobilityId": "f7ab0639107bd625", "scanner": "scanner-primary", "fingerprint": "246cb65d6fe0b30f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a7732491d08f0885", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-doctor/src/lifecycle_driver.rs (1974 lines)"}, "properties": {"repobilityId": "63ca4ce206035b7d", "scanner": "scanner-primary", "fingerprint": "a7732491d08f0885", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d98b428daad4b29a", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-doctor/src/live_provider_probes.rs (2029 lines)"}, "properties": {"repobilityId": "5a91e48dadfd20c1", "scanner": "scanner-primary", "fingerprint": "d98b428daad4b29a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a71dd38ad6a31809", "level": "note", "message": {"text": "Very large file: crates/jcode-config-types/src/lib.rs (1622 lines)"}, "properties": {"repobilityId": "1bcf9684a5fb3f2c", "scanner": "scanner-primary", "fingerprint": "a71dd38ad6a31809", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f60ca2b8ef7a536a", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/desktop_benchmarks_scroll.rs (1822 lines)"}, "properties": {"repobilityId": "191eefaffa77a349", "scanner": "scanner-primary", "fingerprint": "f60ca2b8ef7a536a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-36d868d6716be9ac", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/desktop_rich_text.rs (2069 lines)"}, "properties": {"repobilityId": "8c8678e76e41735d", "scanner": "scanner-primary", "fingerprint": "36d868d6716be9ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ac36498b080ff117", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/main.rs (2581 lines)"}, "properties": {"repobilityId": "0e70f29ae43ae3db", "scanner": "scanner-primary", "fingerprint": "ac36498b080ff117", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4142145281cc4a9e", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/workspace.rs (1612 lines)"}, "properties": {"repobilityId": "e30994677584f73f", "scanner": "scanner-primary", "fingerprint": "4142145281cc4a9e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2c9c85792f2cbf97", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/canvas.rs (2404 lines)"}, "properties": {"repobilityId": "f924e242cf17c802", "scanner": "scanner-primary", "fingerprint": "2c9c85792f2cbf97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ce324e9fd9c8980", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/single_session.rs (1872 lines)"}, "properties": {"repobilityId": "5b472e25244d3148", "scanner": "scanner-primary", "fingerprint": "1ce324e9fd9c8980", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7050a21481b5cecb", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/main_tests.rs (10621 lines)"}, "properties": {"repobilityId": "32a76c253f4a4853", "scanner": "scanner-primary", "fingerprint": "7050a21481b5cecb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-21b4212ea59bcd9a", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/inline_widget_chrome.rs (1554 lines)"}, "properties": {"repobilityId": "44a775b3baa6b41c", "scanner": "scanner-primary", "fingerprint": "21b4212ea59bcd9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e272a18a799c0fc8", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/handwriting.rs (3005 lines)"}, "properties": {"repobilityId": "206329b49cd11b90", "scanner": "scanner-primary", "fingerprint": "e272a18a799c0fc8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e90066274a9be8e", "level": "note", "message": {"text": "Very large file: crates/jcode-desktop/src/single_session_render/tests.rs (2220 lines)"}, "properties": {"repobilityId": "a190559fd2f54f25", "scanner": "scanner-primary", "fingerprint": "2e90066274a9be8e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8e555711ee03a395", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-openrouter-runtime/src/lib.rs (2756 lines)"}, "properties": {"repobilityId": "34e1e0311f5e3b3d", "scanner": "scanner-primary", "fingerprint": "8e555711ee03a395", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c173492198a12471", "level": "note", "message": {"text": "Very large file: crates/jcode-provider-openrouter-runtime/src/openrouter_tests.rs (2979 lines)"}, "properties": {"repobilityId": "2a97b8317d1d03ee", "scanner": "scanner-primary", "fingerprint": "c173492198a12471", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de806247c41d92bb", "level": "note", "message": {"text": "Very large file: crates/jcode-telemetry-core/src/lib.rs (2101 lines)"}, "properties": {"repobilityId": "7fafa483475962b3", "scanner": "scanner-primary", "fingerprint": "de806247c41d92bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fafb3500a88cfc05", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server.rs (2375 lines)"}, "properties": {"repobilityId": "28ce3ed9700bdc8f", "scanner": "scanner-primary", "fingerprint": "fafb3500a88cfc05", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b729e59bb5c68cad", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/update.rs (1745 lines)"}, "properties": {"repobilityId": "61c73be168db3f64", "scanner": "scanner-primary", "fingerprint": "b729e59bb5c68cad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d8b5a09fa550939", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/agent/turn_streaming_mpsc.rs (1692 lines)"}, "properties": {"repobilityId": "bac285a5e3f04b0c", "scanner": "scanner-primary", "fingerprint": "0d8b5a09fa550939", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-faab3412131c0bc2", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/agent/turn_loops.rs (1183 lines)"}, "properties": {"repobilityId": "ab029eac34001a9a", "scanner": "scanner-primary", "fingerprint": "faab3412131c0bc2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4c754853d341153a", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/provider_control.rs (1600 lines)"}, "properties": {"repobilityId": "46fc7c380bda0a9c", "scanner": "scanner-primary", "fingerprint": "4c754853d341153a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-834b4b33974bc399", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/comm_session.rs (1433 lines)"}, "properties": {"repobilityId": "9bc9849d4fd7f7b8", "scanner": "scanner-primary", "fingerprint": "834b4b33974bc399", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d618b48eb37f0bae", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/client_session.rs (1586 lines)"}, "properties": {"repobilityId": "aca04fce786686f6", "scanner": "scanner-primary", "fingerprint": "d618b48eb37f0bae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8d1909e2ea7c3a1", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/debug_server_state.rs (1257 lines)"}, "properties": {"repobilityId": "4020fa21f553f101", "scanner": "scanner-primary", "fingerprint": "c8d1909e2ea7c3a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-08132530be15347b", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/swarm.rs (3170 lines)"}, "properties": {"repobilityId": "0fa502ea1d4167ef", "scanner": "scanner-primary", "fingerprint": "08132530be15347b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eedc27c7c270f89b", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/provider_control_tests.rs (1394 lines)"}, "properties": {"repobilityId": "a9d606b1a16a14e7", "scanner": "scanner-primary", "fingerprint": "eedc27c7c270f89b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea2d775408ce7edf", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/client_lifecycle.rs (3171 lines)"}, "properties": {"repobilityId": "32e194136e82f95f", "scanner": "scanner-primary", "fingerprint": "ea2d775408ce7edf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a88da00af6aa6323", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/server/comm_control.rs (2625 lines)"}, "properties": {"repobilityId": "3779fa4e322a2307", "scanner": "scanner-primary", "fingerprint": "a88da00af6aa6323", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4bb2bc84ebdb7abc", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/tool/session_search.rs (1892 lines)"}, "properties": {"repobilityId": "b75bb1004eebf711", "scanner": "scanner-primary", "fingerprint": "4bb2bc84ebdb7abc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-adef0d0c82bc5fc9", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/tool/communicate.rs (3345 lines)"}, "properties": {"repobilityId": "d51e726d06858a4d", "scanner": "scanner-primary", "fingerprint": "adef0d0c82bc5fc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b46877168a85bc84", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/tool/communicate_tests.rs (1782 lines)"}, "properties": {"repobilityId": "115f6c646bb55fe4", "scanner": "scanner-primary", "fingerprint": "b46877168a85bc84", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99f5e5da346cc072", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/tool/discover.rs (2127 lines)"}, "properties": {"repobilityId": "738cf716d806b615", "scanner": "scanner-primary", "fingerprint": "99f5e5da346cc072", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-144d8afb4c60befa", "level": "note", "message": {"text": "Very large file: crates/jcode-app-core/src/tool/selfdev/tests.rs (1469 lines)"}, "properties": {"repobilityId": "28a3de8d1cc6726f", "scanner": "scanner-primary", "fingerprint": "144d8afb4c60befa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b4a22591ec70ddab", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/info_widget.rs (2188 lines)"}, "properties": {"repobilityId": "8fd91a6b6b3b0433", "scanner": "scanner-primary", "fingerprint": "b4a22591ec70ddab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e58c73511dc386ce", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker.rs (2437 lines)"}, "properties": {"repobilityId": "035e2e2840b61519", "scanner": "scanner-primary", "fingerprint": "e58c73511dc386ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99d4c7130999727b", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_tools.rs (1656 lines)"}, "properties": {"repobilityId": "f8f8b1d016a56143", "scanner": "scanner-primary", "fingerprint": "99d4c7130999727b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3c7b6f20dde1d695", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_viewport.rs (1439 lines)"}, "properties": {"repobilityId": "7c3e48139402b93f", "scanner": "scanner-primary", "fingerprint": "3c7b6f20dde1d695", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1cddcdae765cc79b", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_prepare.rs (2550 lines)"}, "properties": {"repobilityId": "d1a219abfe086841", "scanner": "scanner-primary", "fingerprint": "1cddcdae765cc79b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a8d85d10eebae4cc", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/backend.rs (1799 lines)"}, "properties": {"repobilityId": "58afcac655bde8ca", "scanner": "scanner-primary", "fingerprint": "a8d85d10eebae4cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a05af5aeeec92f1d", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui.rs (3540 lines)"}, "properties": {"repobilityId": "fb2b1256444c7864", "scanner": "scanner-primary", "fingerprint": "a05af5aeeec92f1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8d04d3d84c8c043e", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_header.rs (1694 lines)"}, "properties": {"repobilityId": "850f5797ebc7105d", "scanner": "scanner-primary", "fingerprint": "8d04d3d84c8c043e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-df0d47cb5feb0d40", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/mod.rs (2148 lines)"}, "properties": {"repobilityId": "c86f70abe9ac3702", "scanner": "scanner-primary", "fingerprint": "df0d47cb5feb0d40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-63a3c6b8c074d9f2", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker_tests.rs (2453 lines)"}, "properties": {"repobilityId": "71dce5a0fa8407d4", "scanner": "scanner-primary", "fingerprint": "63a3c6b8c074d9f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c2c014243bc626b9", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_pinned.rs (2046 lines)"}, "properties": {"repobilityId": "efd083491718c026", "scanner": "scanner-primary", "fingerprint": "c2c014243bc626b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ad017c2339cc196b", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_messages.rs (4167 lines)"}, "properties": {"repobilityId": "e5b1a0730d2506c2", "scanner": "scanner-primary", "fingerprint": "ad017c2339cc196b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-382ee0ae891f09b4", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_input.rs (2992 lines)"}, "properties": {"repobilityId": "dd8e7e66076d78e2", "scanner": "scanner-primary", "fingerprint": "382ee0ae891f09b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1cad5a6dc26518e7", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_inline_image.rs (1719 lines)"}, "properties": {"repobilityId": "695ddb82cec4ce36", "scanner": "scanner-primary", "fingerprint": "1cad5a6dc26518e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4f2d23e2e8e25bc", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app.rs (2430 lines)"}, "properties": {"repobilityId": "8ed5c00d623ad6a5", "scanner": "scanner-primary", "fingerprint": "d4f2d23e2e8e25bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c65a815012719f5", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/info_widget_tests.rs (1814 lines)"}, "properties": {"repobilityId": "6baeda479a25fe66", "scanner": "scanner-primary", "fingerprint": "7c65a815012719f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-557d05fcfff911af", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/ui_messages/tests.rs (2809 lines)"}, "properties": {"repobilityId": "b67d77430bd18940", "scanner": "scanner-primary", "fingerprint": "557d05fcfff911af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ae510f1d48be482", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/auth.rs (3391 lines)"}, "properties": {"repobilityId": "302d376dacdee5c5", "scanner": "scanner-primary", "fingerprint": "1ae510f1d48be482", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0e773169faf547c0", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/commands.rs (3488 lines)"}, "properties": {"repobilityId": "53cd8770a5868e44", "scanner": "scanner-primary", "fingerprint": "0e773169faf547c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0c6879884d3f54e5", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tui_state.rs (2373 lines)"}, "properties": {"repobilityId": "0de34dd1ca200101", "scanner": "scanner-primary", "fingerprint": "0c6879884d3f54e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49c26e3e43fc7dc1", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/auth_account_picker.rs (1220 lines)"}, "properties": {"repobilityId": "f6a82386ebb5b385", "scanner": "scanner-primary", "fingerprint": "49c26e3e43fc7dc1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8e9348320c80cf75", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/state_ui_input_helpers.rs (1934 lines)"}, "properties": {"repobilityId": "5f0d51ad08750d65", "scanner": "scanner-primary", "fingerprint": "8e9348320c80cf75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ebd18fbd9ee40a10", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/state_ui.rs (2208 lines)"}, "properties": {"repobilityId": "bc38e6f8250e4d07", "scanner": "scanner-primary", "fingerprint": "ebd18fbd9ee40a10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3d4ba979d86a024c", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/input.rs (3741 lines)"}, "properties": {"repobilityId": "9f5da16b24922022", "scanner": "scanner-primary", "fingerprint": "3d4ba979d86a024c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-74e4177019b64eec", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/debug_cmds.rs (1121 lines)"}, "properties": {"repobilityId": "57ca64d5e7266b94", "scanner": "scanner-primary", "fingerprint": "74e4177019b64eec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-90e6de6bc696350c", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/model_context.rs (1956 lines)"}, "properties": {"repobilityId": "f2de61f9bd7b4608", "scanner": "scanner-primary", "fingerprint": "90e6de6bc696350c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8067463db736ef7a", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/helpers.rs (1571 lines)"}, "properties": {"repobilityId": "d8a5bbe9fc5d2535", "scanner": "scanner-primary", "fingerprint": "8067463db736ef7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2043ee9b7b5c4ade", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/debug_bench.rs (1281 lines)"}, "properties": {"repobilityId": "49f77be5212b3be3", "scanner": "scanner-primary", "fingerprint": "2043ee9b7b5c4ade", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a057c2e21f73ce6", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/turn.rs (1480 lines)"}, "properties": {"repobilityId": "e07976fad896ee1e", "scanner": "scanner-primary", "fingerprint": "4a057c2e21f73ce6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-35ce53b6b9193a48", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tui_lifecycle.rs (1277 lines)"}, "properties": {"repobilityId": "f858661c45774564", "scanner": "scanner-primary", "fingerprint": "35ce53b6b9193a48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d36be263b813fedd", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/inline_interactive.rs (3951 lines)"}, "properties": {"repobilityId": "24e9ceed53e43d88", "scanner": "scanner-primary", "fingerprint": "d36be263b813fedd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bbd13b4942bce4fb", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote.rs (1936 lines)"}, "properties": {"repobilityId": "32b646680c5c2399", "scanner": "scanner-primary", "fingerprint": "bbd13b4942bce4fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8a730fb6622b0aa9", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/onboarding_flow_control.rs (1604 lines)"}, "properties": {"repobilityId": "841a6aabd86155be", "scanner": "scanner-primary", "fingerprint": "8a730fb6622b0aa9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a27dbfe3bdae208b", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests.rs (1743 lines)"}, "properties": {"repobilityId": "79362d4c4f87b163", "scanner": "scanner-primary", "fingerprint": "a27dbfe3bdae208b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9229fbbc157c845c", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/navigation.rs (1835 lines)"}, "properties": {"repobilityId": "0e2065fa58f0c972", "scanner": "scanner-primary", "fingerprint": "9229fbbc157c845c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-36adcf893dedde21", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_04.rs (2379 lines)"}, "properties": {"repobilityId": "2328cb480aaf0184", "scanner": "scanner-primary", "fingerprint": "36adcf893dedde21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-342ceece42c99be4", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_flow.rs (1613 lines)"}, "properties": {"repobilityId": "f3e47e940f70491c", "scanner": "scanner-primary", "fingerprint": "342ceece42c99be4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7688b31c931349f", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/swarm_plan_graph_inline.rs (1972 lines)"}, "properties": {"repobilityId": "9eaebe5b1571d60e", "scanner": "scanner-primary", "fingerprint": "e7688b31c931349f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7ea78a10f013d8a8", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_03.rs (1842 lines)"}, "properties": {"repobilityId": "3d00d76d3c114dd1", "scanner": "scanner-primary", "fingerprint": "7ea78a10f013d8a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f1bce408171db30", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/state_model_poke_03.rs (2762 lines)"}, "properties": {"repobilityId": "6f57cea21be7b82f", "scanner": "scanner-primary", "fingerprint": "4f1bce408171db30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0facc3f0578291af", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/onboarding_eval.rs (3302 lines)"}, "properties": {"repobilityId": "d517e5d6c542d873", "scanner": "scanner-primary", "fingerprint": "0facc3f0578291af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-09de28806178c267", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_startup_input_02/part_01.rs (1792 lines)"}, "properties": {"repobilityId": "4b2b445bb2de1bde", "scanner": "scanner-primary", "fingerprint": "09de28806178c267", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed2f8caad9ed654c", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/commands_accounts_01/part_01.rs (1633 lines)"}, "properties": {"repobilityId": "847a2e68bc0c2782", "scanner": "scanner-primary", "fingerprint": "ed2f8caad9ed654c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-507329fa6c6101c7", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/scroll_copy_02/part_01.rs (1415 lines)"}, "properties": {"repobilityId": "6bb539cb92cbe632", "scanner": "scanner-primary", "fingerprint": "507329fa6c6101c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed00fa54b35bfe37", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/tests/remote_events_reload_01/part_01.rs (1930 lines)"}, "properties": {"repobilityId": "f347801844e8c060", "scanner": "scanner-primary", "fingerprint": "ed00fa54b35bfe37", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f342d549ccf2de4b", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote/key_handling.rs (2591 lines)"}, "properties": {"repobilityId": "28962d12cb765964", "scanner": "scanner-primary", "fingerprint": "f342d549ccf2de4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e6bfca78f93d3e7a", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/app/remote/server_events.rs (2810 lines)"}, "properties": {"repobilityId": "527151317433ff74", "scanner": "scanner-primary", "fingerprint": "e6bfca78f93d3e7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f85fd9182fb4eb5e", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker/loading_tests.rs (1268 lines)"}, "properties": {"repobilityId": "61db7fd7262bae98", "scanner": "scanner-primary", "fingerprint": "f85fd9182fb4eb5e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1e9e66a0d1e7745", "level": "note", "message": {"text": "Very large file: crates/jcode-tui/src/tui/session_picker/loading.rs (2932 lines)"}, "properties": {"repobilityId": "0877e6819d569c33", "scanner": "scanner-primary", "fingerprint": "b1e9e66a0d1e7745", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4776fc0618c24875", "level": "note", "message": {"text": "Very large file: src/cli/commands.rs (3300 lines)"}, "properties": {"repobilityId": "bfa8a713d4ce552a", "scanner": "scanner-primary", "fingerprint": "4776fc0618c24875", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f27d46aab4e924a", "level": "note", "message": {"text": "Very large file: src/cli/provider_init.rs (1823 lines)"}, "properties": {"repobilityId": "195c3f4c8086aab3", "scanner": "scanner-primary", "fingerprint": "7f27d46aab4e924a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aa454451406082f4", "level": "note", "message": {"text": "Very large file: src/cli/login.rs (1401 lines)"}, "properties": {"repobilityId": "c8ccc42b3a4d7740", "scanner": "scanner-primary", "fingerprint": "aa454451406082f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ac3790e6531e65e", "level": "note", "message": {"text": "644 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "9ac3790e6531e65e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-d0986055d62a679a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: telemetry-worker/package.json"}, "properties": {"repobilityId": "38b45f187c550d13", "scanner": "scanner-primary", "fingerprint": "d0986055d62a679a", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "telemetry-worker/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "82601fefb5b62d87", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "cbd7050d6df5b8b5", "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": "3c97f6d9cb30d3a7", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c32a631b87aba1c7", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-116bcb121d643cdb", "level": "note", "message": {"text": "Legacy-named symbol `command_copy` in telemetry-worker/src/worker.js:1500"}, "properties": {"repobilityId": "577dfe9303e717a7", "scanner": "scanner-primary", "fingerprint": "116bcb121d643cdb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-94b7bc80748dd43f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/run_terminal_bench_campaign.py:21"}, "properties": {"repobilityId": "c82dafb88f640246", "scanner": "scanner-primary", "fingerprint": "94b7bc80748dd43f", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run_terminal_bench_campaign.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-df5f88812faae52b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/profile_spawn.py:580"}, "properties": {"repobilityId": "9940f74d7bed7e46", "scanner": "scanner-primary", "fingerprint": "df5f88812faae52b", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_spawn.py"}, "region": {"startLine": 580}}}]}, {"ruleId": "scanner-b38a4d00823e2e32", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/benchmark_swarm.py:109"}, "properties": {"repobilityId": "57c6e4c73db8c820", "scanner": "scanner-primary", "fingerprint": "b38a4d00823e2e32", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark_swarm.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-36b3189fd7eacede", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_memory_cli.py:69"}, "properties": {"repobilityId": "f585d670662ab58d", "scanner": "scanner-primary", "fingerprint": "36b3189fd7eacede", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bench_memory_cli.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-02fdbd72e2d11bd4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/oauth_helper.py:39"}, "properties": {"repobilityId": "072035c5a5b45cee", "scanner": "scanner-primary", "fingerprint": "02fdbd72e2d11bd4", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/oauth_helper.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-d2fe30b0bfa73325", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/compare_token_usage.py:79"}, "properties": {"repobilityId": "fed5bcf2f7409b00", "scanner": "scanner-primary", "fingerprint": "d2fe30b0bfa73325", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/compare_token_usage.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-e8d7b6fc05c19ab8", "level": "note", "message": {"text": "Legacy-named symbol `candidate_copy` in scripts/desktop_gallery_golden.py:133"}, "properties": {"repobilityId": "9e9fc4e0da567ade", "scanner": "scanner-primary", "fingerprint": "e8d7b6fc05c19ab8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-51a93a0e29cbf762", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup.py:101"}, "properties": {"repobilityId": "e169766c42651844", "scanner": "scanner-primary", "fingerprint": "51a93a0e29cbf762", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bench_startup.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-cd25dddb02539abd", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/openrelay_discovery_test_server.py:125"}, "properties": {"repobilityId": "8b33fc55dcd19223", "scanner": "scanner-primary", "fingerprint": "cd25dddb02539abd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-ab7c174ae05f26fe", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/bench_startup_visible_ready.py:81"}, "properties": {"repobilityId": "22b8b80a60101b68", "scanner": "scanner-primary", "fingerprint": "ab7c174ae05f26fe", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bench_startup_visible_ready.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-c47a7083fd73f963", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/compile_isolation_report.py:44"}, "properties": {"repobilityId": "b27a492d527c5516", "scanner": "scanner-primary", "fingerprint": "c47a7083fd73f963", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/compile_isolation_report.py"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-f5a471d6dc43982f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_dependency_boundaries.py:55"}, "properties": {"repobilityId": "f64792c207698e0a", "scanner": "scanner-primary", "fingerprint": "f5a471d6dc43982f", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check_dependency_boundaries.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-65c2ac0e746efa07", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 scripts/phone-server/jcode-pair-service.py:14"}, "properties": {"repobilityId": "cd258994a57aa739", "scanner": "scanner-primary", "fingerprint": "65c2ac0e746efa07", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-d609c58396fdae3e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 ios/TestHarness/ui_matrix.py:72"}, "properties": {"repobilityId": "3f089153fd76c82b", "scanner": "scanner-primary", "fingerprint": "d609c58396fdae3e", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ios/TestHarness/ui_matrix.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a9e16f1acb4091e0", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d578166959464680", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c9f9459df883cbe9", "level": "warning", "message": {"text": "Vulnerable dependency anyhow 1.0.100: RUSTSEC-2026-0190"}, "properties": {"repobilityId": "aa0bcc428b4f1e68", "scanner": "scanner-primary", "fingerprint": "c9f9459df883cbe9", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "RUSTSEC-2026-0190"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ca2501f8285c2bf", "level": "warning", "message": {"text": "Vulnerable dependency rand 0.8.5: GHSA-cq8v-f236-94qc"}, "properties": {"repobilityId": "ba2e00fa76b72ddf", "scanner": "scanner-primary", "fingerprint": "6ca2501f8285c2bf", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-cq8v-f236-94qc"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b09fc0b1133482fc", "level": "warning", "message": {"text": "Vulnerable dependency tar 0.4.45: GHSA-3pv8-6f4r-ffg2"}, "properties": {"repobilityId": "7f508ff5725663f2", "scanner": "scanner-primary", "fingerprint": "b09fc0b1133482fc", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-3pv8-6f4r-ffg2"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/jcode-app-core/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62d1b5e39bf485f2", "level": "warning", "message": {"text": "Vulnerable dependency tract-onnx 0.21.10: GHSA-h668-6x6g-f8r5"}, "properties": {"repobilityId": "a283acc637687faa", "scanner": "scanner-primary", "fingerprint": "62d1b5e39bf485f2", "layer": "dependencies", "severity": "medium", "confidence": 1.0, "tags": ["dependency", "sca", "osv", "GHSA-h668-6x6g-f8r5"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/jcode-embedding/Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a07ef77e19b8986b", "level": "error", "message": {"text": "Vulnerable dependency wrangler 4: GHSA-36p8-mvp6-cv38"}, "properties": {"repobilityId": "2713825780f293d1", "scanner": "scanner-primary", "fingerprint": "a07ef77e19b8986b", "layer": "dependencies", "severity": "high", "confidence": 0.7, "tags": ["dependency", "sca", "osv", "GHSA-36p8-mvp6-cv38", "dev-dependency"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "telemetry-worker/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-32dd2dfbfe628289", "level": "warning", "message": {"text": "Vulnerable dependency bincode 1.3.3: RUSTSEC-2025-0141"}, "properties": {"repobilityId": "868d7151a94663d2", "scanner": "scanner-primary", "fingerprint": "32dd2dfbfe628289", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "RUSTSEC-2025-0141", "transitive"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41f3c11e0777104b", "level": "warning", "message": {"text": "Vulnerable dependency cmov 0.5.3: GHSA-3rjw-m598-pq24"}, "properties": {"repobilityId": "77c443cdf893e449", "scanner": "scanner-primary", "fingerprint": "41f3c11e0777104b", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-3rjw-m598-pq24", "transitive"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aec01f013b0051ca", "level": "warning", "message": {"text": "Vulnerable dependency lru 0.12.5: GHSA-rhfx-m35p-ff5j"}, "properties": {"repobilityId": "0510b44ff3d6180e", "scanner": "scanner-primary", "fingerprint": "aec01f013b0051ca", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "GHSA-rhfx-m35p-ff5j", "transitive"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e9b4f4e73e28680", "level": "warning", "message": {"text": "Vulnerable dependency memmap2 0.8.0: RUSTSEC-2026-0186"}, "properties": {"repobilityId": "e4d1fd5e76b0d072", "scanner": "scanner-primary", "fingerprint": "1e9b4f4e73e28680", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "RUSTSEC-2026-0186", "transitive"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eefe7ebf1594c6ea", "level": "warning", "message": {"text": "Vulnerable dependency memmap2 0.9.9: RUSTSEC-2026-0186"}, "properties": {"repobilityId": "c012e5031976afaf", "scanner": "scanner-primary", "fingerprint": "eefe7ebf1594c6ea", "layer": "dependencies", "severity": "medium", "confidence": 0.9, "tags": ["dependency", "sca", "osv", "RUSTSEC-2026-0186", "transitive"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.lock"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ccc531824e146c35", "level": "note", "message": {"text": "Dependency dirs is a major version behind"}, "properties": {"repobilityId": "b57c4f6af92a95d4", "scanner": "scanner-primary", "fingerprint": "ccc531824e146c35", "layer": "dependencies", "severity": "low", "confidence": 0.9, "tags": ["dependency", "freshness", "outdated"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Cargo.toml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3ad455e8877adb5", "level": "note", "message": {"text": "Dependency imap declares a version newer than the registry latest"}, "properties": {"repobilityId": "05c1ab08461e53a7", "scanner": "scanner-primary", "fingerprint": "c3ad455e8877adb5", "layer": "dependencies", "severity": "low", "confidence": 0.4, "tags": ["dependency", "freshness", "future-version", "ai-generated-signal"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/jcode-notify-email/Cargo.toml"}, "region": {"startLine": 1}}}]}]}]}