{"$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":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"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":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D11","name":"Test Reliability","shortDescription":{"text":"Test Reliability"},"helpUri":"https://codehealth.canine.dev/dimensions/D11"},{"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"},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"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":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"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":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"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"},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29"},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30"},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31"},{"id":"D32","name":"Data Compliance (PII/GDPR)","shortDescription":{"text":"Data Compliance (PII/GDPR)"},"helpUri":"https://codehealth.canine.dev/dimensions/D32"},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33"},{"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"},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37"},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"RegexCharsetExtractor.ParseEscapeOutsideClass (cyclomatic 19): RegexCharsetExtractor.ParseEscapeOutsideClass has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a1ccd9f0ae2e1b50d77e52783bd35c16499a3309d092f03fe3064de40bf4ec7"}},{"ruleId":"D2","level":"warning","message":{"text":"RegexCharsetExtractor.ExtractCharacters (cognitive 21): RegexCharsetExtractor.ExtractCharacters has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"66501e0e37c7ed152bde6d317a3300eb88e6935e32eebd784b46e17d85512901"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Ultra-Fast-Biscuit: Ultra-Fast-Biscuit: abstractness 0.14, instability 0.00, distance 0.86 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b71339d5e50880f555086670e27dbc8e0a4a1850e7bf35137b5b7fca8beeb65"}},{"ruleId":"D7","level":"note","message":{"text":"No checkable ADRs to assess: No architecture decision records were found and the project graph is acyclic, so architectural integrity could not be assessed. Add ADRs (with \u0060enforcement: analyzer|test\u0060) to make the architecture\u0027s rules checkable."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9bfa095522c5f2e53a7c1c0405fd8830d318409a6fb74f4288bab05aaf716e52"}},{"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":"D11","level":"note","message":{"text":"Test reliability not included: No test projects found, so reliability couldn\u0027t be assessed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5321d5780c69918c88568cbf4cd5aa9147be611382bbba8e39f99b50cd7b16f8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: BenchmarkDotNet: BenchmarkDotNet 0.14.0 \u2192 0.15.8 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b533f74e585b27f6190e5a78c6a71e91925e7c42d1f8bf7f99698b4b7ae2a04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: SharpCompress: SharpCompress 0.39.0 \u2192 0.49.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d6f3502b8610f23c81b1898b6dd64f3dfc2aea55dce0bab4124f83b56acbdef2"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: SharpCompress: SharpCompress 0.39.0 \u2014 Moderate severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"67ffc44807df412bd06f9998ed2d4c12b87eec6d062859be9d1e996c0f7998b2"}},{"ruleId":"D14","level":"note","message":{"text":"Licenses scanned: 2 packages scanned; 1 distinct SPDX licenses."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1d29d66daec20840f6831f63c1b66b87c40390635ef3e9f728002964c77e88d4"}},{"ruleId":"D15","level":"warning","message":{"text":"git history depth insufficient: git history depth insufficient \u2014 install a full clone for reliable trend signal."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ab15c4a7c72fcad940ff795282e210fd7f3769431dab6bffd8ce9ee8f7ee13f1"}},{"ruleId":"D16","level":"note","message":{"text":"early-stage repository \u2014 too few commits for a meaningful bus factor: early-stage repository \u2014 too few commits for a meaningful bus factor (2 author(s) across 6 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e8d570c4e83e9b65ed5f1d010668cddb51cf53cd3437e419f993f4df0cbedc42"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // \\xXX -\u003E Hex escape \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"1af6a73f3e00beed0d5ed878b205f2ea17eb3bbc33904fe7280f5c41cee51400"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 13 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"246c1605f5e27fd3da2aafd5aa47d4abe9daf7cf42555d915088f0218b8d93ce"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"91e71e9db8f9f0a2f56ac75463a45f9e0c876e65c459fc7f25e661812f0669e2"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 10 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"91e71e9db8f9f0a2f56ac75463a45f9e0c876e65c459fc7f25e661812f0669e2"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"91e71e9db8f9f0a2f56ac75463a45f9e0c876e65c459fc7f25e661812f0669e2"}},{"ruleId":"D18","level":"note","message":{"text":"Ultra-Fast-Biscuit (Production): 20 .cs files, 1949 LoC (1009 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Ultra-Fast-Biscuit.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b6d2bdf13de4610c8ee31ed9b56bec6a21c0ca61b61c5ff367fbe156aca9d82"}},{"ruleId":"D19","level":"note","message":{"text":"The README is extremely brief (34 words) and contains grammatical errors (\u0027This application help you\u0027 should be \u0027helps\u0027). It lacks critical information such as installation instructions, usage examples, and configuration details.: Expand the README to include sections for Installation, Usage, Configuration, and Contributing. Fix grammatical errors and provide concrete examples of how to use the tool."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"README.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae72f9bdc743746cb51c082e2db8b935b26ff5c689a157290fd2dd052c9b19a0"}},{"ruleId":"D19","level":"note","message":{"text":"XML-doc coverage: Ultra-Fast-Biscuit: Ultra-Fast-Biscuit: 76 % XML-doc coverage (65/85)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Ultra-Fast-Biscuit.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"da9da02d8395cac5a6ead6ae1ea117d8ff73ed03dbb2368d7e142459b72a59c2"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found at common paths; consider documenting architectural decisions in Docs/ADL/ or similar."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D22","level":"note","message":{"text":"No exposed public API: No intentionally-exposed types (IsPackable or .Contracts) to evaluate."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2712d35e1d1ba8e91a90125d29842b77d4ca65e0eeaa52476c739f7165820a6f"}},{"ruleId":"D23","level":"note","message":{"text":"The codebase is small and single-project, indicating a single bounded context where declaring boundaries would be unnecessary.: The codebase is small and single-project, indicating a single bounded context where declaring boundaries would be unnecessary. Declare architecture.contexts (\u22652) in config to assess cross-boundary type coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c498688c0f701f31bd694f87c4305e47124bc70f8181dada988e8d61e669a1c5"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// BitArray to store valid characters (covers all UTF-16 chars)\u0022 \u2014 Remove comment; variable name \u0060validChars\u0060 or \u0060validCharacters\u0060 would be sufficient."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Skip quantifier syntax {n,m}\u0022 \u2014 Remove comment; code logic for skipping should be self-explanatory or named \u0060isQuantifier\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Handle character classes like [a-z], [0-9], etc.\u0022 \u2014 Remove comment; use a method name like \u0060ParseCharacterClass\u0060 or \u0060IsCharacterClass\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Handle escape sequences outside character classes (e.g., \\d, \\w, etc.)\u0022 \u2014 Remove comment; rely on method name \u0060ParseEscapeOutsideClass\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Skip regex meta-characters and comma\u0022 \u2014 Remove comment; use \u0060if (IsMetaCharacter(c))\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Literal character\u0022 \u2014 Remove comment; variable name \u0060literalChar\u0060 is enough."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Build the result string from the charset (only append valid chars)\u0022 \u2014 Remove comment; code \u0060result.Append(c)\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Handle character ranges (e.g., [a-z])\u0022 \u2014 Remove comment; logic for ranges should be encapsulated in \u0060ParseRange\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Handle escapes inside character class\u0022 \u2014 Remove comment; method name \u0060ParseEscapeInClass\u0060 suffices."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Literal in class\u0022 \u2014 Remove comment; variable \u0060literal\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022\\w -\u003E a-z, A-Z, 0-9, _\u0022 \u2014 Remove comment; this is standard regex knowledge, or can be in a constant map."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022\\s -\u003E whitespace\u0022 \u2014 Remove comment; \u0060IsWhitespace\u0060 check is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022\\uXXXX -\u003E Unicode escape\u0022 \u2014 Remove comment; variable \u0060unicodeValue\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022\\xXX -\u003E Hex escape\u0022 \u2014 Remove comment; variable \u0060hexValue\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// include comma as meta-character\u0022 \u2014 Remove comment; \u0060IsMetaCharacter\u0060 should handle this logic."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/RegexCharsetExtractor.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c7856c5728d942f1f867656340f295fdbd8deb533f417e02e59900b15a55de"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Store current cursor position\u0022 \u2014 Remove comment; \u0060Console.GetCursorPosition()\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Move to target line\u0022 \u2014 Remove comment; \u0060Console.SetCursorPosition\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Overwrite with spaces\u0022 \u2014 Remove comment; \u0060Write(\u0027 \u0027)\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Restore cursor position\u0022 \u2014 Remove comment; \u0060Console.SetCursorPosition\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// string password = string.Empty;\u0022 \u2014 Remove comment; it\u0027s a variable declaration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// ConsoleKeyInfo info;\u0022 \u2014 Remove comment; it\u0027s a variable declaration."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// info = Console.ReadKey(intercept: true);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (info.Key == ConsoleKey.Backspace \u0026\u0026 password.Length \u003E 0)\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// password = password[..^1];\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Console.Write(\u0022\\b \\b\u0022);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// else if (!char.IsControl(info.KeyChar))\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// password \u002B= info.KeyChar;\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Console.Write(\u0022*\u0022);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// } while (info.Key != ConsoleKey.Enter);\u0022 \u2014 Remove comment; it\u0027s a loop condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// return password;\u0022 \u2014 Remove comment; it\u0027s a return statement."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// checks if there\u0027s at least one character in the password string and the Command is \u0060backspace\u0060\u0022 \u2014 Remove comment; the \u0060if\u0060 condition is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if yes, it removes the last character using this range syntax\u0022 \u2014 Remove comment; the code \u0060password[..^1]\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Then it visually removes the last \u0060*\u0060 character from the console using \u0060\\b \\b\u0060\u0022 \u2014 Remove comment; the code \u0060Console.Write(\u0022\\b \\b\u0022)\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// from the end of the string up to, but not including, the last character\u0022 \u2014 Remove comment; it explains the range syntax which is self-explanatory."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// tolerance \u003C= 0 will not cause problems since .0 and .5 are safe for floating-point comparison\u0022 \u2014 Keep if it explains a non-obvious behavior, but consider moving to a code comment on the tolerance check."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// tolerance \u003C= 0 will not cause problems since .0 and .5 are safe for floating-point comparison\u0022 \u2014 Duplicate comment; remove one."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// private void AddHandler(Type type, Delegate originalHandler, Func\u003CIEvent, Task\u003E func)\u0022 \u2014 Remove comment; it\u0027s a method signature."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var wrapper = new HandlerWrapper(originalHandler, func);\u0022 \u2014 Remove comment; it\u0027s an object creation."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// lock (_lock)\u0022 \u2014 Remove comment; it\u0027s a lock statement."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (!_subscribers.TryGetValue(type, out var list))\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// list = new List\u003CHandlerWrapper\u003E();\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// _subscribers[type] = list;\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// list.Add(wrapper);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Cleanup dead first\u0022 \u2014 Remove comment; code logic should be clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Copy for thread-safe execution\u0022 \u2014 Remove comment; \u0060ToList()\u0060 or similar copy is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Log handler invoke error immediately (optional)\u0022 \u2014 Remove comment; logging is standard."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Wait for all handlers to complete, but catch exceptions\u0022 \u2014 Remove comment; \u0060Task.WhenAll\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":217}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Aggregate exceptions and log or rethrow as needed\u0022 \u2014 Remove comment; exception handling is standard."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Optional: rethrow or swallow\u0022 \u2014 Remove comment; code is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/EventBus.cs"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"267588079ea2d17b246287193ef84119d0fce5f1a0cac053b44febe0e0d492fd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Collect and validate user inputs\u0022 \u2014 Remove comment; method name \u0060CollectUserInputsAsync\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var loggingService = new LoggingService(eventBus, ctsToken); // Register logger\u0022 \u2014 Remove comment; it\u0027s an object creation."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// loggingService.Stop();\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Collect archive path with validation\u0022 \u2014 Remove comment; method name \u0060CollectUserInputsAsync\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Collect regex pattern with validation\u0022 \u2014 Remove comment; method name is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Collect length constraints with validation\u0022 \u2014 Remove comment; method name is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Check if file exists\u0022 \u2014 Remove comment; \u0060File.Exists\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Check for supported extensions\u0022 \u2014 Remove comment; code is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Attempt to create a Regex object to validate the pattern\u0022 \u2014 Remove comment; \u0060new Regex()\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Read minimum length\u0022 \u2014 Remove comment; code is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Read maximum length\u0022 \u2014 Remove comment; code is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Validate that minLength \u003C= maxLength\u0022 \u2014 Remove comment; \u0060if (min \u003E max)\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Program.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d032064d32c1a9207eb71004854ba29a7b60308539be6adb9b1dd4297c0a7c"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Stop if password already found\u0022 \u2014 Remove comment; \u0060return\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/BruteForceService.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5f3fd14ac0b472fb8490575e3d6f94ed9ee7d96623ffdf273a93af19eeeb416"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Log success\u0022 \u2014 Remove comment; \u0060LogSuccess\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/BruteForceService.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5f3fd14ac0b472fb8490575e3d6f94ed9ee7d96623ffdf273a93af19eeeb416"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Cancel further processing\u0022 \u2014 Remove comment; \u0060Cancel\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/BruteForceService.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5f3fd14ac0b472fb8490575e3d6f94ed9ee7d96623ffdf273a93af19eeeb416"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Log extraction errors\u0022 \u2014 Remove comment; \u0060LogError\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/BruteForceService.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5f3fd14ac0b472fb8490575e3d6f94ed9ee7d96623ffdf273a93af19eeeb416"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Console.SetCursorPosition(0, Console.CursorTop);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/ConsoleRendererService.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"db8a0e69c4c17063be9910c7f79682fd8ec9009f6d5361ee977e47b2810abbdd"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Subscribe to log events\u0022 \u2014 Remove comment; \u0060eventBus.Subscribe\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/LoggingService.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"d61b03fca17f57b9d93290478fb6d8916647f55f1f4add59ee235292a698f630"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Start async logging task\u0022 \u2014 Remove comment; \u0060_logProcessingTask.Start()\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/LoggingService.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"d61b03fca17f57b9d93290478fb6d8916647f55f1f4add59ee235292a698f630"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Reduce CPU usage\u0022 \u2014 Remove comment; \u0060Task.Delay\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/LoggingService.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"d61b03fca17f57b9d93290478fb6d8916647f55f1f4add59ee235292a698f630"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Use the geometric series sum formula to compute the total\u0022 \u2014 Remove comment; formula is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Stop if cancelled\u0022 \u2014 Remove comment; \u0060IsCancellationRequested\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Notify completion\u0022 \u2014 Remove comment; \u0060Publish\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Allow the calling thread to process other tasks\u0022 \u2014 Remove comment; \u0060await\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":212}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// Check for cancellation periodically\u0022 \u2014 Remove comment; \u0060IsCancellationRequested\u0060 is clear."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// public async Task GeneratePasswordsAsync(string charSet = Charset)\u0022 \u2014 Remove comment; it\u0027s a method signature."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var tasks = new List\u003CTask\u003E();\u0022 \u2014 Remove comment; it\u0027s an object creation."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// foreach (var password in BruteForce(charSet, _minLength, _maxLength))\u0022 \u2014 Remove comment; it\u0027s a loop."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (_cancellationToken.IsCancellationRequested) break; // Stop if cancelled\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// _ = _eventBus.Publish(new PossiblePasswordAttempted(password));\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (Regex.IsMatch(password, _pattern))\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// tasks.Add(_eventBus.Publish(new PasswordAttempted(password, _cancellationToken)));\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":231}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// while (tasks.Count \u003E 0 \u0026\u0026 !token.IsCancellationRequested)\u0022 \u2014 Remove comment; it\u0027s a \u0060while\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var finished = await Task.WhenAny(tasks);\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// tasks.Remove(finished);\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// await Task.Yield();\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// await Task.WhenAll(tasks).ContinueWith(async _ =\u003E\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (_cancellationToken.IsCancellationRequested) return;\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// await _eventBus.Publish(new PasswordGenerationCompleted());\u0022 \u2014 Remove comment; it\u0027s a method call."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// private static IEnumerable\u003Cstring\u003E BruteForce(string chars, int minLength, int maxLength)\u0022 \u2014 Remove comment; it\u0027s a method signature."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// for (int length = minLength; length \u003C= maxLength; length\u002B\u002B)\u0022 \u2014 Remove comment; it\u0027s a \u0060for\u0060 loop."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// foreach (var password in GenerateCombinations(chars, length))\u0022 \u2014 Remove comment; it\u0027s a \u0060foreach\u0060 loop."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// yield return password;\u0022 \u2014 Remove comment; it\u0027s a yield return."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Common/Util.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d2dd81a5f89d8b0057319b30a61273aadccb20fdc55414df293b6b9edadd13"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// private static IEnumerable\u003Cstring\u003E GenerateCombinations(string chars, int length)\u0022 \u2014 Remove comment; it\u0027s a method signature."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var indices = new int[length];\u0022 \u2014 Remove comment; it\u0027s an object creation."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// var buffer = new char[length];\u0022 \u2014 Remove comment; it\u0027s an object creation."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// while (true)\u0022 \u2014 Remove comment; it\u0027s a \u0060while\u0060 loop."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// for (var i = 0; i \u003C length; i\u002B\u002B)\u0022 \u2014 Remove comment; it\u0027s a \u0060for\u0060 loop."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// buffer[i] = chars[indices[i]];\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// yield return new string(buffer);\u0022 \u2014 Remove comment; it\u0027s a yield return."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// int pos = length - 1;\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// while (pos \u003E= 0 \u0026\u0026 indices[pos] == chars.Length - 1)\u0022 \u2014 Remove comment; it\u0027s a \u0060while\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// indices[pos--] = 0;\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// if (pos \u003C 0) break;\u0022 \u2014 Remove comment; it\u0027s an \u0060if\u0060 condition."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":280}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022// indices[pos]\u002B\u002B;\u0022 \u2014 Remove comment; it\u0027s an assignment."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"Ultra-Fast-Biscuit/Services/PasswordService.cs"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"0486d0e64a91cda2e16f6611f7865bfc0a6c86d419c5336a3da5cc556c396e6f"}},{"ruleId":"D25","level":"note","message":{"text":"no ADRs to check: No ADRs found, so conformance can\u0027t be assessed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5f96235c58be08aaae505ba823e9095f206fbc6a447f646e346ee9bd81a5f481"}},{"ruleId":"D30","level":"note","message":{"text":"Not applicable: the solution did not restore on the analyzer\u0027s .NET SDK (an SDK/target-framework/restore mismatch, common for an older codebase), so there was no restored dependency graph to scan for NuGet CVEs \u2014 excluded rather than scored; re-run on an SDK that can restore this solution"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"34ff807233366ca1607a49113cb8f9a094878853712c06642d2146b82741378f"}},{"ruleId":"D31","level":"note","message":{"text":"Not applicable: No Infrastructure-as-Code or container manifests found (Dockerfile, Terraform, Kubernetes/Helm, CloudFormation); nothing to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2e57fca60a46af1c36cbca9e46b2039488d0488a6eab73ad6bc057cd95ef2432"}},{"ruleId":"D32","level":"note","message":{"text":"Not applicable: No PII/GDPR-handling patterns detected (p/gdpr ruleset) \u2014 no data-compliance surface to assess."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"df51e593e9b0b9805626d04fe36a3d12c504b5d7d5da30dc59b5b0f134b5753b"}},{"ruleId":"D33","level":"note","message":{"text":"Not applicable: No JS/npm manifest or lockfile found outside bin/obj (package.json, package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb); no JS dependencies to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f46a134eeb447d8c90511e3106af3dac20b26868f5143d77eadbb96ed8f220c6"}},{"ruleId":"D34","level":"note","message":{"text":"early-stage repository \u2014 too little history to judge knowledge freshness: early-stage repository \u2014 too little history to judge knowledge freshness (6 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"58b42e8ad1f5e125e8a2d365554e56d01e64a556b28e0c9985ff169722b7c54a"}},{"ruleId":"D35","level":"warning","message":{"text":"git history depth insufficient: git history depth insufficient \u2014 a full clone gives reliable change-coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c3898c82d557f2616b569b6ad2fc4553f15857ea932e622df9e26ca46b21274a"}},{"ruleId":"D36","level":"note","message":{"text":"Not applicable: No CI/build pipeline found (.github/workflows, .gitlab-ci.yml, azure-pipelines.yml, Jenkinsfile, .circleci); there is no build to attest provenance for."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"383f97e2d2c3d8c6d4adffc68d228db0928a3a8f5c3df1214c0f646687d2dbe9"}},{"ruleId":"D37","level":"note","message":{"text":"Not applicable: No vulnerability-disclosure policy file found (SECURITY.md, .github/SECURITY.md, docs/SECURITY.md, .well-known/security.txt). A coordinated-disclosure policy may live off-repo, so this is not evidenced rather than failed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e748a9b8b3d154964dfb621b8675d34a302dda266d0196c5d83eb8ba4071d61c"}},{"ruleId":"D38","level":"note","message":{"text":"Not applicable: No JS/npm lockfile found outside bin/obj (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb); nothing for OSV to scan."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6ff7301b610918095afd57ac1c89dabddab1d8fdb34c0f0d687159a5a0df0b8e"}}],"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":0,"secretScannerRunsExcluded":0}}}]}