Repository navigation
Conversation
wakemeup0
changed the base branch from
main
to
fix/smoke-csharp-s122-statement-lines-20261015
October 15, 2026 16:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Repair C# S6610 for direct ordinary single-BMP-character strings. Recover the two exact original Humanizer Farsi/Romanian findings and match the independently measured direct-literal boundary contract.
The ordinary string-literal predicate counted UTF-8 source bytes, so one direct non-ASCII BMP character did not have the three-byte quoted length of an ASCII literal. Counting quoted text in UTF-16 code units admits exactly one direct BMP code unit while preserving supplementary-character, multiple-character, escape/raw/verbatim and argument-count behavior.
Change type and scope
Bug fix limited to the ordinary literal predicate in
crates/hoonarqube-csharp/src/rules/declaration_contracts/single_char_overloads.rs, additive unit tests there, and new durable CLI regressionscrates/hoonarqube-cli/tests/csharp_s6610_unicode_literals.rs. Required dependency is PR941 signed headcf245965bb1f456b08aec234f4472c5b2e8f7b75. Preserve existing callee/literal/one-argument/error filters, method-name ranges and messages. Shared helpers, quickfixes, profiles, catalogs, dependencies and exporters are unchanged.Related issues
Direct user request to fix and publish findings from the multi-agent real-project SonarQube smoke campaign. Registered package
csharp-s6610-unicode-literals; no GitHub issue was created for this bounded original discrepancy, so no issue-closing claim is made.Verification
Independent source and frozen-evidence review approved this exact signed head without actionable findings. The review verified signed source inventories, unchanged committed regression bytes, executed behavioral red/green evidence, complete ordered report comparisons and fresh CLI witnesses. Independent review receipt SHA256:
1e84d41a9284773815b5311fac3ccef3e5e7e3d8b868ca7353275ad923ff378b. All 21 exact-head hosted checks and dependency-base restoration remain publication gates.854a5c13bfd6ec38c62854e07be42a2608e4eb4dhas byte-identical production to the admitted base. Genuine behavioral red executed nine focused units (3 passed, 6 failed) and four CLI tests (1 passed, 3 failed). Both JSON and Sonar execute before boundary assertions. Final source retains those exact signed regression bytes.s6610_original_farsi_direct_literalsands6610_original_romanian_direct_literals; both methods are exercised. Additional direct CJK/standalone combining-mark cases map tos6610_three_byte_bmp_direct_literalsands6610_standalone_combining_mark_direct_literals.s6610_all_42_literal_and_guard_boundaries_lfands6610_all_42_literal_and_guard_boundaries_unicode_crlf, plus matching CLIcsharp_s6610_cli_all_42_boundaries_lfandcsharp_s6610_cli_all_42_boundaries_unicode_crlf, cover all 84 measured case instances. Exact native scalar and Generic UTF16 method ranges, messages, ordered findings and complete-document hashes are asserted. Empty/multiple/supplementary/combining sequences, char literals and comparison overloads retain measured guard behavior.csharp_s6610_cli_complete_cache_transition_and_restorationexercises complete clean/change/repeat/restore output in both formats.csharp_s6610_cli_preserves_malformed_and_invalid_utf8_diagnosticsverifies exit2, incomplete status, warning diagnostics, no S6610 and unchanged input bytes.cargo test --locked --jobs 1 -p hoonarqube-csharp --all-targets --all-features -- --test-threads=2: 1,890 passed. Dedicated new CLI target: 4 passed. Existing 94 affected CLI tests across 13 targets pass, preserving all 74 prior S122 syntax/callable cases and earlier mapped regressions.-D warnings, repository fmt/base diff checks, locked CLI compiler-artifact binding and pinned signed released 0.3.1 implicit-default Docker dogfood pass. Dogfood emits zerorust:S3776. Final immutable binary SHA25689edbd8570e218e2bf9a91cc44e61b054fe27932b6bb10db5377aa098959ae9eis bound to signed clean head68e941e42d4edaf3426fe3f897061253de10d53a.Exact issue-to-test mapping:
/Users/wakemeup/.codex/artifacts/hoonarqube-repairs-20261013/csharp-s6610-unicode-literals/acceptance-to-tests.json. Raw executions, signed source snapshots, original/reference bindings and final qualification are retained under/Users/wakemeup/.codex/artifacts/hoonarqube-repairs-20261013/csharp-s6610-unicode-literals. The first signed tests-only attempt's strict-lint failure (raw delimiters and intentional non-NFC fixture), subsequent format check, expected red exits and artifact preparation errors are explicitly preserved. Hosted checks await root publication.The PR initially targeted
mainto obtain all 21 successful checks from the repository’s GitHub default CodeQL setup. The intended dependency base is now restored tofix/smoke-csharp-s122-statement-lines-20261015. Publication verifies the unchanged signed head, full body and exact-head hosted check rollup against that base.Compatibility and risks
Original source is Humanizer commit
3ebc38de585fc641a04b0e78ed69468453b0f8a1, scoped to 193 indexed files from the successful SonarQube Community 26.9.0.129388 scan with C# plugin 10.33.0.1635. Original S6610 count increases 9→11 and total issues 2319→2321; descriptors stay 86. Retained 920 controls remain 6410 total/S6610=2/descriptors452.Supplemental boundaries were actually executed using the installed
SonarAnalyzer.CSharp.Rules.UseCharOverloadOfStringMethodsanalyzer, assembly SHA256461b82be21a9e8f57c1312ff877f8276789eeec5e64678344e961a0a3edfd957. One harness compile and two analyzer calls succeeded with zero compilation errors; both retained CS1701 reference warnings remain disclosed. This supplemental evidence is an installed-analyzer witness, not a fresh full-server scan. Actual 84 cases yield 44 reference diagnostics with exact messages/ranges, Warning severity and empty additional locations.The predicate counts UTF16 units, preserving negative supplementary-character cases that scalar counting would wrongly admit. Existing quickfix safety remains unchanged, including its refusal to rewrite these non-ASCII literals.
Limitations
The installed oracle also reports 12 escaped/raw/verbatim positives per variant (24 total). Their current native silence remains an explicit coverage gap and is preserved by this bounded repair. No escape decoding, raw/verbatim expansion or global/full-rule/all-project parity is claimed. C# semantic-context absence remains truthfully represented.
PR941 is the required dependency. Root owns independent review, publication, all 21 hosted checks and intended dependency-base restoration with exact head/body/signature/check readback. This package authorizes no merge, tag or release.