{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D25","name":"ADR Conformance","shortDescription":{"text":"ADR Conformance"},"helpUri":"https://codehealth.canine.dev/dimensions/D25"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31","relationships":[{"target":{"id":"CWE-1032","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-16","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1032","CWE-732","CWE-16"]}},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37","relationships":[{"target":{"id":"CWE-1059","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1059"]}},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"(anonymous) (cyclomatic 20): (anonymous) has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"docker/openclaw-smoke/server.mjs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e9777cbf89ba98465ebd5556ec5a9fddc9e6de0c8a9d81dee42540db720bdd9"}},{"ruleId":"D1","level":"warning","message":{"text":"parseStdoutLine (cyclomatic 16): parseStdoutLine has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/adapters/hermes/ui-parser.cjs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"096b5b4022a274f37777b4f2970c7e492ff2de0efb6877d451835bd83eac5144"}},{"ruleId":"D1","level":"warning","message":{"text":"parseStdoutLine (cyclomatic 16): parseStdoutLine has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/adapters/hermes/gateway-ui-parser.cjs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b094f7c3c0e99d482c3df13497a219562fd2daec4321ba7fa48ff3ac459a458"}},{"ruleId":"D2","level":"warning","message":{"text":"(anonymous) (cognitive 27): (anonymous) has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"docker/openclaw-smoke/server.mjs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f8470d04648257fc57d76220920f4fe4d3fb15cbfb33edfb99ad7c1b14dd212"}},{"ruleId":"D2","level":"warning","message":{"text":"parseStdoutLine (cognitive 20): parseStdoutLine has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/adapters/hermes/gateway-ui-parser.cjs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"e106b75a3089265212f930c81e58d90991917109f137d36a41592ea3d36e8123"}},{"ruleId":"D2","level":"warning","message":{"text":"parseStdoutLine (cognitive 19): parseStdoutLine has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/adapters/hermes/ui-parser.cjs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"e915f35b5bfc23dbe30efc1b9dd9b8fd0ed052b3e865af316a051f985b067359"}},{"ruleId":"D8","level":"error","message":{"text":"No automated tests: No automated tests \u2014 the solution has no test code. Untested code is the largest single risk to changing it safely."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3132564c6310e5d01a231f252a02d5d2f5a542c0a8fa29a14c89693f1e3df871"}},{"ruleId":"D9","level":"note","message":{"text":"No tests found: No test projects found in the repository."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c9bf64cbb5a4ae13d6bcd01fa3bc8d2879d860c73bc67f176ee3c2cecb8adce3"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/heartbeat.ts: server/src/services/heartbeat.ts changed 131 times in last 90 days, max complexity 469. 58 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/heartbeat.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c90a26a8c49b16ab339da31a1fd135c24456fae1bbedb51e079dace54722515d"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/routes/issues.ts: server/src/routes/issues.ts changed 90 times in last 90 days, max complexity 277. 26 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/issues.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9bd001148c9699dda58173b8e9470952157622ca81c397290a600d747443704"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: ui/src/pages/IssueDetail.tsx: ui/src/pages/IssueDetail.tsx changed 63 times in last 90 days, max complexity 243. 12 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"ui/src/pages/IssueDetail.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"580b01089102774e026aee432c94337fab7d7c76f25fe4d40e403502df90d3f1"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/company-skills.ts: server/src/services/company-skills.ts changed 18 times in last 90 days, max complexity 609. 2 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/company-skills.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8317821fb7ca9fed0d57186af4b4257f5db46c197721ce2d76459af9df3b4838"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/company-portability.ts: server/src/services/company-portability.ts changed 12 times in last 90 days, max complexity 726. 2 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/company-portability.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0de2e5b6c1fb73622b828cf98ccfb41d085be92e741eb3205d4dcc5bd07b601"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/routes/agents.ts: server/src/routes/agents.ts changed 41 times in last 90 days, max complexity 149. 13 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/agents.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf8d7dc0579fe98953f61ea3dbcc1b76faae5bd3e6ab36c14aa87aa782e84978"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/authorization.ts: server/src/services/authorization.ts changed 19 times in last 90 days, max complexity 302. 4 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/authorization.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e729a66c78f8d7d615483685e7f0612ea5978a834056397cc5656b9ad113752e"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/issues.ts: server/src/services/issues.ts changed 70 times in last 90 days, max complexity 80. 31 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/issues.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45a30737cf8502cf7985fb7ff87c3fe282cde0d93a62292b0d1e7130ce5e17bf"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: ui/src/components/AgentConfigForm.tsx: ui/src/components/AgentConfigForm.tsx changed 26 times in last 90 days, max complexity 195. 10 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"ui/src/components/AgentConfigForm.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"637458205f06760852302f3992d308890cba1647e25daa72b82d094c5e1dad16"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: server/src/services/recovery/service.ts: server/src/services/recovery/service.ts changed 36 times in last 90 days, max complexity 120. 21 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/recovery/service.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac30d9b357183a8724e9b5eaa707f27c621601e0ba907f5c653ef567258a04dc"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/logs/2026-05-24-cli-api-parity-e2e-log.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"012986473cface013bb2d841e0a74f8f59cc88effa6131549020912856c72241"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-16-module-system.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"efee9fb8e6115dde098a70637d409323ce72b16c39625f7284b307345a9ee011"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-18-agent-authentication-implementation.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"39b925009bc61b428a18f731c347c3e8b5729c1b4600ac1b81b7959c1f0426ac"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-18-agent-authentication.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d8e7dc2b42ba0cae694d303aadc6ae0ed3ee6a051d312957f85d8a3e5336b67"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-19-agent-mgmt-followup-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b561e62c3f0d3914fdcb4a2f1a23d15d6fe5cd92d9b64b36d9cef75999674ca"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-19-ceo-agent-creation-and-hiring.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"afd74255ce8384c4ee8b90cd85bb58613f4754254cde0a4ef55ce7d695101c9a"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-20-issue-run-orchestration-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef2e71de0b2d5ef72ec03b9cc8356054f780c18b4bfc3f5c8c07d5d7b9d785ae"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-20-storage-system-implementation.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"236a4c4f26c56612323b761cc7ce87873ef3c9ba1b3fd2e61bfa38ded76d171f"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-21-humans-and-permissions-implementation.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c42dfb98807b45bbfe9d3297d93f3e381f747983fe1e2904d1a1d6efe32880e"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-21-humans-and-permissions.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c394e42c15379af24ce7c4f09d494644783197cb8d9a0e9462283acde113d8fb"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-23-cursor-cloud-adapter.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd7730f1a3e86c96219a641fe753a735379c7ead9f9b95ab1cab8caec6deab13"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-02-23-deployment-auth-mode-consolidation.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba13ca4ca2128bcc678521b05397ec74045c22f3925b84173f77eab5808b524b"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-10-workspace-strategy-and-git-worktrees.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c4d8dca1d65dca8ea5b9f4003f4a7f92b511343fd20cf63047adbc1a42c58a5"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-11-agent-chat-ui-and-issue-backed-conversations.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d6e4e198420c865879528f29a8306f9ccfccc70df316575d4aa5e5cd48cb389"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-TOKEN-OPTIMIZATION-PLAN.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"42fc7443399e69688167ba42e5bf10e8dd9f42f2bcef51c771023eafcd709836"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-agent-evals-framework.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"935d1bc9b134d24381a0191de5c27b973971f8f4d04da47afcdde91e5abb9226"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-company-import-export-v2.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d6fd0cffe43d6d5b86b1d728d86e70dbe58eb4f370dac3d5f84725c2f88e65e"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-features.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f971f05907b7bd4f91b64565e2f891e16d233268e60044f6eba02c1058227bf2"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-paperclip-skill-tightening-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88b7045238e13836727298ffbb295f549dd23835eb6539aeb3b9ed663ad9a770"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-plugin-kitchen-sink-example.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fbf9e11f5f10cd91bb74602a798b49e3a396a3b55cef2c46dda07d9933a27c7"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-13-workspace-product-model-and-work-product.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c247eab96de5d8c010ef6666af3e7a425c518e9c3336a153325df0f4c84d9426"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-14-adapter-skill-sync-rollout.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d9a13215f39d40bf76a4a5b680e50768698e6846539951249fae786286f41e5"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-14-billing-ledger-and-reporting.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"89011471e7c7b082f132e1bd53efcb3e1321f82494d481abe39857d0bac4f717"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-14-budget-policies-and-enforcement.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"875a5faa9d39bd28c08c41d5b6b592d15aa3df56c96ac5ef8d8898f431b3e19c"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-14-skills-ui-product-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb2a9dc799cbe3b576f64b6dd536c546a37b07faca52f617384802574f4d6e26"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-17-docker-release-browser-e2e.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9a4ecc298039c5d942f4a3b1f3771a3ca2ec8014ac404106327f975d24ac8b3"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-17-memory-service-surface-api.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3ddda2025514539292af6b7da2323b385794517caaf660bf3dbd5c8e2b7eac7"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-03-17-release-automation-and-versioning.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6c91a07a877ec33cb1967202ea042523738b2518632279567281143f45b7d56"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-06-smart-model-routing.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7098aed897fa31b13d019b1c0fea7edc4876fb365c1b115d633535ad4fc6b1b9"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-06-subissue-creation-on-issue-detail.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"be72ee368a6684aff8bfd24fa689c80155e01c7263607f1606210dcafd30e10c"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-07-issue-detail-speed-and-optimistic-inventory.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8660c88ea390e40c633cf1f121cd19ac9a044aace6dbc37fb31429d18222e9ee"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-07-pi-hooks-survey.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c443519023e338e587eb932d6af7e38ad560739865aa2550c70842f25dbba46"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-08-agent-browser-process-cleanup-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"48a8f3a011535be1a9eed311b8d1f680a15488386b8badc8353d6ff2af726f2a"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-08-agent-os-follow-up-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"40619094d6be4ec4db3189d75f7ee71d25b6023df7cc1852026931b86c2009a8"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-08-agent-os-technical-report.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8b3144ac5769762d419b2ecf49c9f33fe572164cb106f0d750c0d3c27031613"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-12-vscode-task-interoperability-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcb479284c54e364d3d86d993f7cbf2285e9a9ebe191ed3be86e67e193c0b84a"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-24-external-object-reference-backfill.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"524c63b4704eed226bf1e0fbc1a13b5bdf6dc45ff06af6c6b27ca7b4a8aafb2e"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-04-26-plugin-secret-ref-company-scope.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2492eda0cedb2f6de69744de418ca6357fcc69af7a151100a2f6252024d1d362"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-05-scaled-kanban-board-design.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2b6b8f31f37f2a3eb60619510563d5512cf0d13b3cc170f2f2f3fdb476fbce8"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-05-scaled-kanban-board.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e47f69a22875bc365dd0768e00d76041b021cce7b90050230eef7fd88497326"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-06-llm-wiki-paperclip-asset-security-gate.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc8bb8db65d439b9bb7a40dd66ce67af50d62f3bbdb1f08ffb876d8ff7f80f1b"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-23-cli-api-parity.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dc88608197645c4da2a0941e9fbc01b1f10cd5933eb65b06af2ec79f42e10e2"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-26-skills-cli-catalog-contract.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ae8c7a16f41d2aa85d897ee321adb41909358f5448a691e57c54bf1d7252323"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-06-05-agent-access-mcp-runtime-slots-adr.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"068d1afa4158d11199a91ddcfa4e2eb5be2eea74f86555be7d50181778ab5379"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"docs/plans/2026-03-13-issue-documents-plan.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d54f98774cc32ccb0d1d7ddd54a02901234b2576ccc1b00f03e865a6a94bd977"}},{"ruleId":"D20","level":"note","message":{"text":"ADR lacks an enforcement field: Add an \u0060enforcement:\u0060 frontmatter field or a plain \u0060Enforcement:\u0060 header line (prose/test/analyzer/not-applicable) to make the rung explicit \u2014 the other ADRs in this repo already declare one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"report/2026-03-13-08-46-token-optimization-implementation.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"257631d0f24d5afcff780ff316c21b66c260739d2d96c10c36164c28d4cc297d"}},{"ruleId":"D25","level":"error","message":{"text":"ADR not followed: LLM Wiki Paperclip Asset And Work-Product Security Gate: The decision forbids any content indexing of paperclip assets/work products, but the summary shows no types that block fetching /api/assets/:id/content or embed binary/blob content into source bundles. (doc/plans/2026-05-06-llm-wiki-paperclip-asset-security-gate.md)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"doc/plans/2026-05-06-llm-wiki-paperclip-asset-security-gate.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d4ed0a6b4bf8dd00b76ea3a86850b9406af0c9ed93c7e631e04d9cf0e5532f4"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ec6834f78becdca36fbd288644c2ec96d15da51b784343de9d961a8a97983c20"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b98ca585a4d4793953c3e6ff6b38d43a105b2a5223dc09c2534c913f23b56703"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9b96aa30923d0e93e57a8113adaf1a831c239f0ebbd04b97cb5534ebfaed859d"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b0dca3a44a784f52c4aa9781121b28223890036bdca0ed7ea375a15c750a388e"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b98ca585a4d4793953c3e6ff6b38d43a105b2a5223dc09c2534c913f23b56703"}},{"ruleId":"D28","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d5b8f11381d61a58459ffc7c595fd52d09c03c711894a63a9578043d2338412b"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d5b8f11381d61a58459ffc7c595fd52d09c03c711894a63a9578043d2338412b"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dc1ee81137c8a08a4c4830f179cadeb5466dc274e34936ae227c61f4ec993279"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dc1ee81137c8a08a4c4830f179cadeb5466dc274e34936ae227c61f4ec993279"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dc1ee81137c8a08a4c4830f179cadeb5466dc274e34936ae227c61f4ec993279"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dc1ee81137c8a08a4c4830f179cadeb5466dc274e34936ae227c61f4ec993279"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7c5aef8c36eb1c844de0199525b0a8120a1791b8ec2fe043e32bd80dafc16548"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a4f92ec0c941dfe5c75dfcedcdeaef756984273596af791c6b97e6174b7b4c26"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a4f92ec0c941dfe5c75dfcedcdeaef756984273596af791c6b97e6174b7b4c26"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a4f92ec0c941dfe5c75dfcedcdeaef756984273596af791c6b97e6174b7b4c26"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a4f92ec0c941dfe5c75dfcedcdeaef756984273596af791c6b97e6174b7b4c26"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3ed93a2995ee2f6ac2e3b70756bc2376c5d26e6317fb5ca5361dc6f503eb1bdf"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D31","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fe2d688610b51e0a5a02c7c5dd1724a4986e40f2689fb84510e2ec0164c27d6a"}},{"ruleId":"D31","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c082822226bcf028c060657edf66df109a8a1faf4bf7d70bfcabf6c1e2769faa"}},{"ruleId":"D31","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b537081af084348dc6a89e2a2908ce8d7e51959f728f1028ef91ba6f304f6801"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1f51a163f26d94ce6b6f473117dde579d091c8cbf9e59810475c94d9fc921120"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"bdb3d97b7b9eaa1c72ae821323b11b97f628e62333d4809bfbab036394522f50"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d1a25a911d4161ad1b4ed19461451b08300d3d05ef555040f23a895c6c64f2b5"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7dbc945fb05c612c67e2ffe4a92fdffb7321f383b92aba9f3a7f7ff55767f952"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e2fbf7cc092ba050eefb7de4ae1081a6a40ad176907049de07be5001aa344d95"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8650c1cd76f09cc9b3184cf95bcf474736dacdfbf6dbb0f4f2fd8b9b93f56a58"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"cea75b3468d489e02c4bcc2492f0c216872b7ed582aebe2965d282b97d01d568"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"99acc260a7db8112bc39c8897869b3a300eac27a1d70ff694c763c5dba839d42"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"674c6be04f27f9a34c9e8543244b2e7cfaf085d5f7b113768b92cc6d153697e5"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"32a5ccc5ff91c9b88d72814e208153e5ab33cfb089186258601407aa21e9904a"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"dfffaecebbfaec3414a3ef7c2663f3f0effd12551cef2d4a976920b9f01cab31"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c98b2039cc23567d4104850cb4d80bd33ee4c5fbf5a75881742721316c97f509"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"69d1711a334b433045b2c5037a7956ed7540965a8742e6b26214cc0f75588be1"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: issue-thread-interactions.ts \u2194 issue-thread-interactions.ts: \u0060server/src/services/issue-thread-interactions.ts\u0060 (context services) and \u0060ui/src/lib/issue-thread-interactions.ts\u0060 (context ui) live in DIFFERENT modules yet change together 70% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/issue-thread-interactions.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"277b38dd67266184b42457eefd02ac5a10e65fa54ebb48d50660893cf0493252"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: issues.ts \u2194 goals.ts: \u0060server/src/routes/issues.ts\u0060 (context routes) and \u0060server/src/services/goals.ts\u0060 (context services) live in DIFFERENT modules yet change together 60% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/issues.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"301c8c902a45c461146a7f449a2695baf167bd7bc430ce0544e575493a74f2c4"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: issues.ts \u2194 issue-goal-fallback.ts: \u0060server/src/routes/issues.ts\u0060 (context routes) and \u0060server/src/services/issue-goal-fallback.ts\u0060 (context services) live in DIFFERENT modules yet change together 60% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/issues.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"27c3efceac0f83b01d1987258a8bb97e719750606677ef95bbb0754b2ef45974"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: routines.ts \u2194 RoutineRunVariablesDialog.tsx: \u0060server/src/services/routines.ts\u0060 (context services) and \u0060ui/src/components/RoutineRunVariablesDialog.tsx\u0060 (context ui) live in DIFFERENT modules yet change together 58% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/services/routines.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b262cfea8277262537241f0c5cf954f26e19a7feb4dcd62e39ca105b9d85f90"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: index.ts \u2194 RoutineRunVariablesDialog.tsx: \u0060packages/shared/src/index.ts\u0060 (context shared) and \u0060ui/src/components/RoutineRunVariablesDialog.tsx\u0060 (context ui) live in DIFFERENT modules yet change together 58% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/shared/src/index.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce3174029deab48f5f878d991fdae3656c5fd87dd1fe2ed521194ba1d2fa1d03"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: auth.ts \u2194 express.d.ts: \u0060server/src/middleware/auth.ts\u0060 (context middleware) and \u0060server/src/types/express.d.ts\u0060 (context types) live in DIFFERENT modules yet change together 57% of the time (8 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/middleware/auth.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d44a9a538a6b2a22c1280afaa03fd8bbe57f44f2531c77c775e0cd8397024de"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: routines.ts \u2194 routines.ts: \u0060server/src/routes/routines.ts\u0060 (context routes) and \u0060server/src/services/routines.ts\u0060 (context services) live in DIFFERENT modules yet change together 56% of the time (14 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/routines.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c6f33ceb5a76b2ca5fbb60bb0b255eb86f0676dc13aa15f04e82f565ad1a7da"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: issues.ts \u2194 feedback.ts: \u0060server/src/routes/issues.ts\u0060 (context routes) and \u0060server/src/services/feedback.ts\u0060 (context services) live in DIFFERENT modules yet change together 55% of the time (6 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"server/src/routes/issues.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc5537fb04396f744c6613971df03883e5d87c9755bb9c50c1d8aa69669e9ef4"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: index.ts \u2194 attention.ts: \u0060packages/shared/src/types/index.ts\u0060 (context shared) and \u0060server/src/services/attention.ts\u0060 (context services) live in DIFFERENT modules yet change together 54% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/shared/src/types/index.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"045f916cd6ce1c6dc8031324aea277b6021b87c116a7ef1a5bdbbca41c31f9d7"}},{"ruleId":"D35","level":"error","message":{"text":"Boundary-crossing change coupling: index.ts \u2194 attention.ts: \u0060packages/shared/src/index.ts\u0060 (context shared) and \u0060server/src/services/attention.ts\u0060 (context services) live in DIFFERENT modules yet change together 54% of the time (7 shared commits) \u2014 the bounded-context boundary may be in the wrong place, or one context is leaking into the other. This is the behavioural boundary violation a static scan can\u0027t see."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"packages/shared/src/index.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"abc104b273a5e4d2df5ea52e997dae7af3021729400cd658b08bb799f786ca1c"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5120d845442010f7dfd94c99fb556274be164d3231b26821d8813e86f4ebdfe2"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1ea21a556d2f9e056d4390b01348cb707a0fbf5a2499cda95722d2deb3dd9438"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fa8a50cc2990545a11be13f15f41f7c998dcb206b6a1b56c45e1dc91b0efdd44"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ce4dcbdaa8dcf1da3c704fe90814a9b231ec896e9a8462ccba9f49c2f993499a"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6277b5922eec1bdcb829fca42aed62d5bd523d9de1770d068e3207ae2972b13c"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e6a235dbf2c328b3a2daf16e496331a0eb05cd9b986dc778a02b1c66141cc491"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d16254ec6ff6df273c628825485429b81b93e18f404b1429a6588f76b4e9973a"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8414ba423ddcc2425e701eb2686d3d787621991cbbaca06c647d709ce89b4790"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a983f2cfe91cfc60002c03634709aa45fc3e9264a4589700c90bf320ede66311"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b9f9e735a893fe3dfedddec89e295f3eee750d9ce1fbf0ac12eefd91e7a4accb"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"533e69534ac0e728198ce6febae590b59a8453394278924317272bc1a493c8a7"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e9e4aea8db11e44e76b8c6eb7df32d5b647e8d574c0b8e519cb7ba71811eef36"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5ab5f7955dfd21f87a287361d2dcf619a9aa0613187bdc0af5171358eaeb005e"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9529389ff2749403c8877af29484a5ad50fd8200863f832407c34ecb09b496e0"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c8b15d77d3fec8b70ecba15e6e95c1ffbcf20a2ec963f520731245fd248d6128"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"33d1e39a4482b94319b5dbe48235c5dfe475be831b4b5aee6e9c892329770d6d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f0397226276d8838292a59cf8fb151ac62a6e27d1dcf206bdaf23a2a0728b219"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0a490db6969450c1f213200080182b477c04938f60c39526ccb11955deb1f879"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4d7f2f1033aee8d742e6c38aae21b58f5ca3e33024b616dc4e97390fe4c22a32"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ec115cbe9484773d35536139782627a0af6c6ed4a623786dcde82ae85614c5bd"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e5dba1f79ef7d1bb620d33a24dd6e6fc099e27b26bdde6ac0135879e0291648f"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7364ed9f48ed4099ceeeef54fce6ba94479ea56839d16fde11e94434dea7d75e"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c452084db15c90ee9438ff8f56d18fae7ccb0ab081d41ea16b3dcd30c18d38c6"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9749c7dd351045770b1913495d1de9bb4804049af1481d263c8cd94423b5d338"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a68cb125c2f84a14a20d7cb34e3530b9fffeaced06bcea55db66a018e4c98eaa"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8cc5b3a5f805b3d808bde3ceab3c2e12cb6992b22ccacd502f764a3860949cd6"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d270b1244e768bfa8126e4b66959b263b8e66715d26d0c4d0b733d5db929d142"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"28afd2ba5a0975671fa9dec17773eaaffca92c799ea9e73117d57a865a286079"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1943382f18d87e61a273a6fdec694142d87cf0560448aad6a1e43deb086447ae"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5258f24e028fa5ccd514ff095c9e01d68f58a0ef3b3707f88dbc0adc2767088d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2c3a1ee2317e852e0e88eb79b9561807ae66acd6d1df38889c89a04da96f86b1"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"cfda82df29f971db816fbd92388ae8816197f7b8bf621e1aac1ac29ac8925c7a"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"84f32f0a10b3886b8a88085b72f34c4606d7935562c1f195e1979fcd4ce68235"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b38fb863e75ed3e00d2110870895d6e7fc284989eeffd7711ed8eac840be3da8"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a85b6bdfbc09f37682bac7f46a6435cd8577ef41244bc8ad674afed2eae520af"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7936711ab0ca9bbd295f7fee6d0691f7b977b130dcb54eeb7ee6ba76ea17402f"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5baeb3a0bd91e07dee3663a3263a547cf8b1cfe83caf9a827ebc62e320f0300e"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"bf2cc5fb4262059d18b06059b1f4a89335554f4b9b37c98cc1546fb42f9b7bc8"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d7bba30323211f63438634e596162773346546a2507472b24c0f4e63d9246843"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2fdb726553d995c48d9f16fbce4139ef42fc07498ab6d18689e7c5bf3f242fc0"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"388f88dc64edca37e7345110bfab4969700a1145d568a542b08e17bdce47bba7"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b4ecf6f4b982df20e3f894947824cb161854a6cde57a90be9982df1611dd603c"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9923f8987a8ca5182c018c197f2f8f834fefaa3c86889422dc1c869625bebc81"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"74b50cc9978a36dbcbc6d5ee04c8af8e4ac878b10a4c980f43b767757ab7d529"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e957947ff33b41f9a0e02779210b8b763f81cc4c672828e5f84ea3dc5b9be4f3"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6a392633647932b213c66fa3d02327f610a390b44af09514022c57e772cc2510"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"bc7e66149986f8f50986e386d5933a7f64f8a24fb606466f65cbc5f73fa1311b"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"904cb5d8a1d5db57dd22a9365f24c3a981eca0c904c935e69cb0bf835141c47d"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f50f7eadcf5fa9f355a1ea87f529577937f97e3aa50863af781b24a674636671"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e54b54d89affa8c8d981439af29f4f5ecb7164655a1151d905be36fec16bdcdc"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1032","guid":"5f21e517-68aa-a650-9a25-5771ef024637","name":"OWASP Top Ten \u2014 Security Misconfiguration category","shortDescription":{"text":"OWASP Top Ten \u2014 Security Misconfiguration category"},"helpUri":"https://cwe.mitre.org/data/definitions/1032.html"},{"id":"CWE-1059","guid":"a2381a08-60f6-9554-a8b8-f3018cfaaca5","name":"Insufficient Technical Documentation","shortDescription":{"text":"Insufficient Technical Documentation"},"helpUri":"https://cwe.mitre.org/data/definitions/1059.html"},{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-16","guid":"659db3ea-affc-8453-8add-c1218fbfcb92","name":"Configuration","shortDescription":{"text":"Configuration"},"helpUri":"https://cwe.mitre.org/data/definitions/16.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-353","guid":"09d7e902-d4ee-f05d-ae6c-0a1554d0c18f","name":"CWE-353","shortDescription":{"text":"CWE-353"},"helpUri":"https://cwe.mitre.org/data/definitions/353.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-732","guid":"1da27e8f-b330-7650-ab63-bd61953eae5d","name":"Incorrect Permission Assignment for Critical Resource","shortDescription":{"text":"Incorrect Permission Assignment for Critical Resource"},"helpUri":"https://cwe.mitre.org/data/definitions/732.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-829","guid":"13c33925-97fb-5a5e-b40c-56d328b8a4d7","name":"CWE-829","shortDescription":{"text":"CWE-829"},"helpUri":"https://cwe.mitre.org/data/definitions/829.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":125,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}