Skip to content

Strict-zero quality pass: codecov config + test duplication cleanup#62

Merged
Prekzursil merged 8 commits into
mainfrom
claude/trusting-goodall-Uva23
May 31, 2026
Merged

Strict-zero quality pass: codecov config + test duplication cleanup#62
Prekzursil merged 8 commits into
mainfrom
claude/trusting-goodall-Uva23

Conversation

@Prekzursil

@Prekzursil Prekzursil commented May 28, 2026

Copy link
Copy Markdown
Owner

User description

Summary

Static/offline quality work toward STRICT-ZERO whole-tree thresholds. dotnet is not installed in this environment (Windows/WPF app), so build, tests, coverage, and Roslyn/StyleCop analyzers must be confirmed in CI — see the CI-only verification list below.

  • codecov.yml added — the repo was missing the Codecov config the QZP gate requires (Codecov Analytics / Coverage 100 Gate). Targets project + patch at 100% with threshold: 0%, mapping the app/core/storage flags to their source dirs to match the profile's coverage.inputs.
  • Test duplication cleanup — extracted shared arrange helpers in the App and Storage test suites, taking jscpd from 12 → 4 exact clones. Production src had 0 clones before and after.

Findings (offline tooling)

  • Complexity (lizard, C#, -C 10): no method in src exceeds CCN 10. Max per-function CCN = 8 (SessionWorkspaceIndexer.LoadSessionIndexAsync, SessionJsonlParser.ParseSessionMetadata, SessionCatalogRepository.MergeExistingMetadataAsync) — already under the stricter Codacy >8 rule. No refactor needed. Note: file-level CCN sums (MainWindow.xaml.cs ~61, SessionCatalogRepository.cs ~57, SessionJsonlParser.cs ~53) exceed 40 if Codacy measures whole-file CCN; left untouched here since per-function is clean and splitting unverifiable without dotnet.
  • Duplication (jscpd): production logic = 0 clones. 4 remaining clones are all non-genuine: 2 are identical using-directive header blocks (import boilerplate), 2 are the CREATE TABLE sessions DDL string shared between SessionCatalogRepository.cs and tests that assert the schema (intentional — merging would weaken the test).
  • Docs: .editorconfig/csproj/props have no CS1591, SA1600, StyleCop, or GenerateDocumentationFile — XML docs are NOT required by the analyzer config, so no mass /// <summary> additions were made.
  • Wrappers: all QZP wrapper workflows (scanner-matrix, gate, codeql, codecov-analytics, remediation, backlog) and dependabot (nuget + actions) are present and reference the platform reusable workflows; no SHA-pin or threshold changes made.

CI-only verification (cannot run offline)

  • dotnet restore/build/test (xUnit) — confirm the refactored test helpers compile and pass
  • coverlet + collect-dotnet-coverage.ps1 100% line+branch coverage; per-flag Codecov upload (app/core/storage)
  • Roslyn / SonarCloud / Codacy (incl. file-level CCN>40) / StyleCop / Semgrep / DeepSource / CodeQL zero-finding gates

Tokens still needed (repo secrets)

CODECOV_TOKEN, SONAR_TOKEN, CODACY_API_TOKEN, SENTRY_AUTH_TOKEN, DEEPSCAN_API_TOKEN, CODEX_AUTH_JSON.

Test plan

  • CI build-test green on windows-latest
  • Coverage 100 Gate passes with all three flags reported
  • All scanner-matrix zero gates pass

https://claude.ai/code/session_01TxSWuHhxb1BhUtQq2nADAB

Generated by Claude Code


Summary by cubic

Sets strict 100% coverage in Codecov, scopes DeepSource and GuardRails to source paths, dedupes test setup, and corrects DeepSource suppression syntax in WPF handlers. No behavior changes.

  • Dependencies

    • Added codecov.yml with app/core/storage flags and 100% project/patch targets; ignores non-source CI/config paths.
    • Added .deepsource.toml enabling C#, secrets, shell, and test-coverage analyzers; set dotnet_version to 8.0 to match global.json.
    • Added .guardrails/config.yml to limit scans to source paths; placed at the documented .guardrails/config.yml location.
  • Refactors

    • Extracted shared arrange helpers in App and Storage tests to remove duplicated fixtures.
    • Replaced previous DeepSource comments with skipcq on WPF async void handlers and _searchCts to clear false positives (comments only).

Written for commit c012656. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Chores
    • Added code quality and security scanning configurations to improve code standards and identify potential vulnerabilities
    • Refactored test utilities to reduce code duplication and enhance test maintainability

Review Change Stack


CodeAnt-AI Description

Add repository quality checks and clean up duplicated test setup

What Changed

  • Added Codecov settings to enforce 100% project and patch coverage and ignore non-source config files
  • Added DeepSource and GuardRails config so repo scans run on the intended source files instead of timing out on the full tree
  • Simplified repeated test setup in app and storage tests without changing app behavior

Impact

✅ Faster quality gate checks
✅ Fewer scan timeouts in CI
✅ Clearer coverage enforcement

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Test added 2 commits May 28, 2026 12:11
Consolidate repeated session/store fixture construction in the App and
Storage test suites behind shared helpers so jscpd no longer flags
genuine intra-suite clones. Production logic remains unchanged; this
clears the duplication-delta findings for the strict-zero gate without
touching the boilerplate using-blocks or the intentional schema-string
assertions.

https://claude.ai/code/session_01TxSWuHhxb1BhUtQq2nADAB
Wire the repo-side Codecov config required by the QZP strict-zero gate
(Codecov Analytics / Coverage 100 Gate). Sets project and patch targets
to 100% with threshold 0% and maps the app/core/storage flags to their
source directories so per-flag coverage attribution matches the
profile's coverage.inputs.

https://claude.ai/code/session_01TxSWuHhxb1BhUtQq2nADAB
@devloai

devloai Bot commented May 28, 2026

Copy link
Copy Markdown

Unable to trigger custom agent "Code Reviewer". You have run out of credits 😔
Please upgrade your plan or buy additional credits from the subscription page.

@codeant-ai

codeant-ai Bot commented May 28, 2026

Copy link
Copy Markdown

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR adds three configuration files (DeepSource, GuardRails, Codecov) to establish code quality scanning and coverage enforcement, and refactors two test classes to reduce duplication by extracting shared test helpers for session building, search hits, and common assertions.

Changes

Code Quality Scanning and Coverage Configuration

Layer / File(s) Summary
Scanning tool configuration
.deepsource.toml, .guardrails.yml
DeepSource configuration pins C# analyzer to version 9.0, excludes build and test directories, and enables secrets and shell scanning. GuardRails configuration enables SAST, secrets, and vulnerable dependency detection on the same excluded paths.
Coverage enforcement
codecov.yml
Codecov configuration sets CI gating to required, enforces 100% project and patch coverage targets, and defines three coverage flags for app, core, and storage modules.

Test Helper Extraction

Layer / File(s) Summary
MainWindowViewModelTests helper extraction
tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs
Tests are refactored to use shared BuildTwoSessions(), BuildMaintenanceHit(), and AssertAllSessionsVisible() helpers instead of inlining session setup and assertions. BuildSession() is updated to construct physical copies via a new BuildCopy(sessionId) helper.
StorageCoverageExpansionTests helper extraction
tests/CodexSessionManager.Storage.Tests/StorageCoverageExpansionTests.cs
Rebuild tests extract boilerplate into CreateLiveStoreLayout(), CreateIndexerAsync(), and CreateLiveStore() helpers that are reused across test cases, eliminating duplicate directory setup and indexer/store initialization code.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Prekzursil/codex-session-manager#19: Both PRs modify the same test file tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs, altering test setup and FakeSessionBrowserService behavior.

Poem

🐰 Three configs rise with careful scope,
While tests untangle, shedding rope,
Duplication banished, helpers stand tall,
Quality gates and coverage for all! 📊✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the two main changes: codecov configuration setup and test duplication reduction via helpers, matching the core changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The PR description is comprehensive and covers all required sections from the template, providing detailed context on the changes, verification steps, and security considerations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/trusting-goodall-Uva23

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@agent-optibot agent-optibot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

This pull request introduces Codecov configuration to enforce code coverage and refactors existing unit tests to improve readability and reduce code duplication. The core logic of the tests remains unchanged, but the setup and assertion steps have been centralized into helper methods.

Key Changes

  • Codecov Integration: A new codecov.yml file is added to configure code coverage reporting. It defines flags for the app, core, and storage projects and sets an ambitious 100% coverage target for both the project and new patches.
  • View Model Test Refactoring: In MainWindowViewModelTests.cs, repetitive test data setup (creating sessions, search hits) and validation logic have been extracted into new helper methods like BuildTwoSessions, BuildMaintenanceHit, and AssertAllSessionsVisible.
  • Storage Test Refactoring: In StorageCoverageExpansionTests.cs, the logic for setting up the test environment (creating directory structures, initializing repositories, and creating indexers) has been refactored into helper methods to simplify the test cases.
All Relevant File Changes (click to expand)
  • codecov.yml:
    • New file added to configure Codecov for the repository.
    • Sets require_ci_to_pass to true.
    • Defines path-based flags for app, core, and storage.
    • Sets a 100.0% coverage target for both project and patch statuses.
  • tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs:
    • Replaced inline creation of test sessions and search hits with calls to new helper methods BuildTwoSessions() and BuildMaintenanceHit().
    • Consolidated duplicated assertion logic into a new AssertAllSessionsVisible() method.
    • Introduced a BuildCopy() helper method to DRY up the creation of SessionPhysicalCopy objects.
  • tests/CodexSessionManager.Storage.Tests/StorageCoverageExpansionTests.cs:
    • Extracted common test arrangement logic into new helper methods: CreateLiveStoreLayout(), CreateLiveStore(), and CreateIndexerAsync().
    • Updated test methods to use these new helpers, making them more concise and easier to read.

💬 Feedback & Commands

Share feedback on my comments with 👍 👎 — I'll stop raising issues you push back on. Think I missed something? Adjust my sensitivity →

4 things I can do →
  • #optibot review — I'll re-review your latest changes
  • #optibot fix — I'll apply my suggested fixes to your code
  • #optibot compliance — I'll run a compliance check on your changes
  • #optibot release notes — I'll write up release notes for your production release

💡 Tip: I can audit every dependency change before it reaches main — one compromised package can take down your entire system. Try Supply Chain Agent.

@deepsource-io

deepsource-io Bot commented May 28, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 5ae4005...c012656 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Terraform May 31, 2026 4:10a.m. Review ↗
SQL May 31, 2026 4:10a.m. Review ↗
Rust May 31, 2026 4:10a.m. Review ↗
Shell May 31, 2026 4:10a.m. Review ↗
Ruby May 31, 2026 4:10a.m. Review ↗
PHP May 31, 2026 4:10a.m. Review ↗
Kotlin May 31, 2026 4:10a.m. Review ↗
Java May 31, 2026 4:10a.m. Review ↗
C & C++ May 31, 2026 4:10a.m. Review ↗
Go May 31, 2026 4:10a.m. Review ↗
Swift May 31, 2026 4:10a.m. Review ↗
Scala May 31, 2026 4:10a.m. Review ↗
Python May 31, 2026 4:10a.m. Review ↗
JavaScript May 31, 2026 4:10a.m. Review ↗
Docker May 31, 2026 4:10a.m. Review ↗
C# May 31, 2026 4:10a.m. Review ↗
Ansible May 31, 2026 4:10a.m. Review ↗
Secrets May 31, 2026 4:10a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@agent-optibot agent-optibot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Status: Needs Changes 🔧

Blocking Issues:

  • The DRY refactoring in MainWindowViewModelTests.cs silently dropped the Assert.Equal("Ready", viewModel.StatusText) assertion from RefreshAsync_LoadsSessionsAndSelectsFirstSessionAsync. The AssertAllSessionsVisible helper needs to include this check, otherwise a regression in MainWindowViewModel.StatusText behavior would go undetected.

⏱️ Review completed in 1 minute

Comment on lines +102 to 106
private static void AssertAllSessionsVisible(MainWindowViewModel viewModel)
{
Assert.Equal(2, viewModel.Sessions.Count);
Assert.Equal("session-1", viewModel.SelectedSession?.SessionId);
Assert.Contains("Readable transcript A", viewModel.TranscriptText, StringComparison.Ordinal);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


The refactoring dropped the Assert.Equal("Ready", viewModel.StatusText) assertion that was present in the original RefreshAsync_LoadsSessionsAndSelectsFirstSessionAsync test. AssertAllSessionsVisible does not include this check. This is the only unit test for MainWindowViewModel.StatusText — a regression in the ViewModel's StatusText = "Ready" assignment (line 42 of MainWindowViewModel.cs) would now go undetected.

[Bug]

Solve it in vscode or cursor.

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label May 28, 2026
@codacy-production

codacy-production Bot commented May 28, 2026

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 1 critical

Alerts:
⚠ 1 issue (≤ 0 issues of at least minor severity)

Results:
1 new issue

Category Results
ErrorProne 1 critical

View in Codacy

🔴 Metrics 105 complexity · 0 duplication

Metric Results
Complexity ⚠️ 105 (≤ 10 complexity)
Duplication 0 (≤ 0 duplication)

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sentry

sentry Bot commented May 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs">

<violation number="1" location="tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs:17">
P2: Re-add a `StatusText` assertion in this test. After the helper extraction, this path no longer verifies the expected ready-state text, so a regression there would go undetected.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Assert.Equal(2, viewModel.Sessions.Count);
Assert.Equal("session-1", viewModel.SelectedSession?.SessionId);
Assert.Contains("Readable transcript A", viewModel.TranscriptText, StringComparison.Ordinal);
AssertAllSessionsVisible(viewModel);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Re-add a StatusText assertion in this test. After the helper extraction, this path no longer verifies the expected ready-state text, so a regression there would go undetected.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tests/CodexSessionManager.App.Tests/MainWindowViewModelTests.cs, line 17:

<comment>Re-add a `StatusText` assertion in this test. After the helper extraction, this path no longer verifies the expected ready-state text, so a regression there would go undetected.</comment>

<file context>
@@ -8,37 +8,19 @@ public sealed class MainWindowViewModelTests
-        Assert.Equal(2, viewModel.Sessions.Count);
-        Assert.Equal("session-1", viewModel.SelectedSession?.SessionId);
-        Assert.Contains("Readable transcript A", viewModel.TranscriptText, StringComparison.Ordinal);
+        AssertAllSessionsVisible(viewModel);
     }
 
</file context>
Suggested change
AssertAllSessionsVisible(viewModel);
Assert.Equal("Ready", viewModel.StatusText);
AssertAllSessionsVisible(viewModel);

@codeant-ai

codeant-ai Bot commented May 28, 2026

Copy link
Copy Markdown

CodeAnt AI finished reviewing your PR.

liveRoot,
SessionStoreKind.Live,
liveSessions,
Path.Combine(liveRoot, "session_index.jsonl"));
var repository = new SessionCatalogRepository(databasePath);
await repository.InitializeAsync(CancellationToken.None);
var indexer = new SessionWorkspaceIndexer(repository);
var indexer = await CreateIndexerAsync(Path.Combine(root, "catalog.db"));
var repository = new SessionCatalogRepository(Path.Combine(root, "catalog.db"));
await repository.InitializeAsync(CancellationToken.None);
var indexer = new SessionWorkspaceIndexer(repository);
var indexer = await CreateIndexerAsync(Path.Combine(root, "catalog.db"));
Add .deepsource.toml with the csharp + secrets + shell + test-coverage
analyzers so the DeepSource Visible Zero gate has a configured project
to query (without this file DeepSource cannot register the repo and the
visible-zero gate fails because the GitHub status contexts are missing).
Mirrors the conventions from env-inspector, Airline-Reservations-System,
and quality-zero-platform with C#-appropriate analyzer + scope.

Add .guardrails.yml restricting scan paths to source code (excluding
bin/obj/TestResults/artifacts/publish/packaging/fixtures + tests) so the
org-installed GuardRails GitHub App finishes its scan instead of timing
out. All analyzers stay enabled with default rules; no findings are
silenced.

https://claude.ai/code/session_01TxSWuHhxb1BhUtQq2nADAB
@codeant-ai

codeant-ai Bot commented May 30, 2026

Copy link
Copy Markdown

CodeAnt AI is running Incremental review


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels May 30, 2026
@codeant-ai

codeant-ai Bot commented May 30, 2026

Copy link
Copy Markdown

CodeAnt AI Incremental review completed.

Test added 3 commits May 30, 2026 06:28
The .deepsource.toml csharp analyzer declared ``dotnet_version = "9.0"``
while ``global.json`` pins ``sdk.version`` to ``8.0.419``. When the
DeepSource App is activated for this repo it would refuse to run the
C# analyzer because the requested 9.0 SDK family doesn't match the
8.0 SDK the project actually builds against. Correct the version
identifier and the inline comment so the analyzer config matches the
build's source-of-truth pin.

Note: the ``shared-scanner-matrix / DeepSource Visible Zero`` gate
still fails on this PR because the DeepSource App has not been
activated for ``Prekzursil/codex-session-manager`` at
https://app.deepsource.com — the GitHub commit-status payload contains
ZERO ``DeepSource: *`` per-language contexts (compare with
env-inspector PR #119 which shows 18 such contexts post-activation).
Activating the repo on deepsource.com is a USER-ACTION-NEEDED step
that cannot be performed from the repo source tree.

https://claude.ai/code/session_01TxSWuHhxb1BhUtQq2nADAB
@codeant-ai

codeant-ai Bot commented May 31, 2026

Copy link
Copy Markdown

CodeAnt AI is running Incremental review


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:L This PR changes 100-499 lines, ignoring generated files labels May 31, 2026
@codeant-ai

codeant-ai Bot commented May 31, 2026

Copy link
Copy Markdown

CodeAnt AI Incremental review completed.

Test and others added 2 commits May 31, 2026 04:03
The previous comments `// DeepSource: CS-R1005 suppressed — REASON` are not
DeepSource's recognised suppression syntax, so DeepSource kept flagging
CS-R1005 and CS-R1137 despite the documented intent. The correct convention
(per the existing skipcq usage in the sibling env-inspector repo) is
`// skipcq: <CODE> - <reason>`.

Apply that syntax consistently to:
- All 6 `async void` WPF event handlers (CS-R1005): SessionsListBox_OnSelectionChanged,
  SearchTextBox_OnTextChanged, RefreshButton_OnClick, DeepScanButton_OnClick,
  SaveMetadataButton_OnClick, ExecuteMaintenanceButton_OnClick. WPF's event
  delegate signatures (RoutedEventHandler / SelectionChangedEventHandler / etc.)
  return void by design — `async Task` would not satisfy the delegate.
- `_searchCts` field (CS-R1137): the field is swapped via Interlocked.Exchange
  in the SessionOperations partial — `readonly` would prevent the swap.

No behaviour change; only comment-syntax corrections so DeepSource recognises
the documented exceptions and Visible Zero gate reflects 0 issues.
@Prekzursil Prekzursil merged commit ce3ce84 into main May 31, 2026
40 of 46 checks passed
@Prekzursil Prekzursil deleted the claude/trusting-goodall-Uva23 branch May 31, 2026 04:12
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants