Skip to content

fix(progress-viewer): enable cancellation while loading (#339, re-landing PR #342 onto main)#373

Open
drmoisan wants to merge 7 commits into
mainfrom
bump-release
Open

fix(progress-viewer): enable cancellation while loading (#339, re-landing PR #342 onto main)#373
drmoisan wants to merge 7 commits into
mainfrom
bump-release

Conversation

@drmoisan

Copy link
Copy Markdown
Owner

fix(progress-viewer): enable cancellation while loading (#339, re-landing PR #342 onto main)

Summary

  • Lands the ProgressViewer cancellation fix (issue Bug: progress-viewer-cancel-button #339) on main. PR Enable ProgressViewer cancellation during loading #342 delivered this work but was merged into bump-release instead of main, so the fix never reached the default branch; issue Bug: progress-viewer-cancel-button #339 remains open.
  • Production change: UtilitiesCS/Threading/ProgressViewer.cs (6 changed lines) enables the Cancel button and wires it to the assigned CancellationTokenSource while loading.
  • Regression coverage: UtilitiesCS.Test/Threading/ProgressViewer_Tests.cs (+108 lines), including CancelSource_WhenAssigned_EnablesButtonAndCancelsSameSourceOnClick, which failed before the fix and passes after.
  • Also carries the Bug: progress-viewer-cancel-button #339 feature folder (docs/features/active/2026-07-16-progress-viewer-cancel-button-339/): plan, audits, remediation records, and QA/coverage evidence (52 docs/evidence files, including two large Cobertura XML baselines and a TRX).
  • This PR is the existing bump-release head (429fcae) opened against main; no new commits were authored. The merge with current main was verified conflict-free (git merge-tree).

Why

During the 2026-07-18 worktree/branch cleanup, git cherry origin/main showed the fix commit (a22530c) has no equivalent on main, and issue #339 is still open: PR #342's base branch was bump-release, which was itself never re-merged into main. Opening bump-release against main re-lands the stranded work without rewriting history.

What Changed

  • Core fix:
    • UtilitiesCS/Threading/ProgressViewer.cs — cancellation enabled during loading (6 changed lines)
  • Tests:
    • UtilitiesCS.Test/Threading/ProgressViewer_Tests.cs — new cancellation regression tests
  • Docs / evidence (52 files under docs/features/active/2026-07-16-progress-viewer-cancel-button-339/):
    • plan, policy-audit, code-review, feature-audit, remediation plan and remediation evidence
    • QA-gate evidence (csharpier, analyzer, nullable, vstest coverage) and baseline/final Cobertura XML artifacts

Note: the PR-context overview classifies all changes as docs; the actual diff contains the two C# files listed above (verified via git diff origin/main...HEAD -- "*.cs").

Architecture / How It Fits Together

ProgressViewer (UtilitiesCS threading UI helper) exposes a CancelSource; the fix enables the Cancel button when a source is assigned and cancels that same source on click. No public API surface changes beyond this behavior.

Verification

  • Completed (recorded in the feature evidence, all against the bump-release head):
    • Failing-test-first evidence: the regression test failed before the fix (fail-before-339, exit 1 expected) and passed after (pass-after-339, exit 0).
    • dotnet tool run csharpier format . — pass
    • msbuild TaskMaster.sln /t:Build /p:EnableNETAnalyzers=true /p:EnforceCodeStyleInBuild=true — pass
    • msbuild TaskMaster.sln /t:Build /p:Nullable=enable /p:TreatWarningsAsErrors=true — pass
    • vstest coverage run plus coverage-delta, scope, TRX-integrity, and acceptance-criteria gates — pass (one recorded fail row, p2-t4-plan-revision-request, is the remediation trigger that was subsequently resolved; final audits show blocking count 0)
  • Not verified in this PR: a fresh toolchain run against the post-merge tree; branch CI will run on this PR.
  • Recommended: rely on the PR's Format, build, analyze, and test check before merging.

Backward Compatibility / Migration Notes

None. Behavioral fix plus additive tests and documentation.

Risks and Mitigations

  • Risk: the branch predates recent main changes (breadcrumb epic, dependency bumps). Mitigation: merge verified conflict-free; PR CI rebuilds and retests the merged tree.
  • Risk: large evidence artifacts (~370k inserted lines, mostly two Cobertura XML files and one TRX) inflate the diff. Mitigation: they are inert evidence files under the feature folder, consistent with repository convention.
  • Rollback: revert the merge commit.

Review Guide

  1. UtilitiesCS/Threading/ProgressViewer.cs — the entire behavioral change (6 lines).
  2. UtilitiesCS.Test/Threading/ProgressViewer_Tests.cs — regression tests.
  3. Feature-folder audits (policy-audit, code-review, feature-audit, timestamps 2026-07-16T16-18 / 2026-07-16T17-02) — review outcomes.
  4. Skip the Cobertura XML and TRX evidence files (mechanical bulk).

Follow-ups

  • After merge, origin/bump-release and origin/bug/progress-viewer-cancel-button-339 become fully merged and can be deleted.
  • The feature folder can move out of docs/features/active/ per the promotion lifecycle when the issue closes.

GitHub Auto-close

drmoisan and others added 7 commits July 16, 2026 16:14
- Enable the Cancel button when a cancellation source is assigned
- Verify button selection cancels the same source with an MSTest regression
- Record acceptance criteria and QA evidence for the fix

Refs: #339
- Add code, feature, and policy audits with a bounded remediation plan
- Normalize six TRX whitespace findings while preserving test counters
- Record final scope, integrity, diff-check, and readiness evidence

Refs: #339
- Add post-remediation code, feature, and policy audits
- Confirm acceptance, coverage, and branch-integrity gates pass
- Record readiness for PR creation and CI verification

Refs: #339
…on-339

Enable ProgressViewer cancellation during loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: progress-viewer-cancel-button

2 participants