Run formal code reviews for all .reviewmark.yaml review-sets and apply findings#121
Merged
Malcolmnixon merged 3 commits intomainfrom Mar 31, 2026
Merged
Conversation
…ag handling, stream deadlock, and doc corrections Agent-Logs-Url: https://github.com/demaconsulting/BuildMark/sessions/87b2160b-c7f8-4317-a0d5-9007212c5f96 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Agent-Logs-Url: https://github.com/demaconsulting/BuildMark/sessions/87b2160b-c7f8-4317-a0d5-9007212c5f96 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Run code review sub-agent for formal reviews
Run formal code reviews for all .reviewmark.yaml review-sets and apply findings
Mar 31, 2026
Malcolmnixon
approved these changes
Mar 31, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR applies fixes identified by running automated code reviews across the .reviewmark.yaml review-sets, focusing on correctness, deadlock avoidance, and documentation accuracy.
Changes:
- Fixed console error handling and updated tests to correctly capture
Console.Error. - Prevented duplicate-tag failures in GitHub release lookup and avoided potential process deadlocks by consuming both stdout/stderr.
- Corrected design documentation to reflect actual validation behavior and the current file layout.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.BuildMark.Tests/Cli/ContextTests.cs | Updates the silent-mode WriteError test to capture stderr instead of stdout. |
| src/DemaConsulting.BuildMark/RepoConnectors/ProcessRunner.cs | Ensures stderr is read alongside stdout in TryRunAsync to prevent pipe-buffer deadlocks. |
| src/DemaConsulting.BuildMark/RepoConnectors/GitHubRepoConnector.cs | Handles duplicate release tag names safely by grouping before building the tag→release map. |
| src/DemaConsulting.BuildMark/Cli/Context.cs | Restores console foreground color via try/finally to avoid leaving the console in a bad state on exceptions. |
| docs/design/self-test/validation.md | Corrects RunGitIntegration documentation to match its use of MockRepoConnector. |
| docs/design/repo-connectors/repo-connectors.md | Fixes the documented path for GitHubRepoConnector.cs. |
| docs/design/introduction.md | Updates the repository structure diagram to reflect the actual location of GitHubRepoConnector.cs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Apr 6, 2026
6 tasks
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.
Pull Request
Description
Ran the
code-reviewagent against all 13 review-sets defined in.reviewmark.yamland applied every actionable finding.Code fixes:
Context.WriteError– restoreConsole.ForegroundColorin atry-finallyblock so color is recovered even ifError.WriteLinethrowsContextTests.cs–Context_WriteError_Silent_DoesNotWriteToConsolewas redirectingConsole.Outinstead ofConsole.Error;WriteErrorwrites to stderrGitHubRepoConnector–branchReleases.ToDictionary(r => r.TagName!, ...)throwsArgumentExceptionwhen two releases share a tag; switched toGroupBy(...).ToDictionary(...)to keep the firstProcessRunner.TryRunAsync– redirected stderr but never read it; if the stderr pipe buffer fills the child process deadlocks; now reads both streams concurrently withTask.WhenAllDocumentation fixes:
validation.md–RunGitIntegrationdescription said it runs against the local Git repo; it actually usesMockRepoConnectorwith hardcoded data like every other validation methodrepo-connectors.md+introduction.md–GitHubRepoConnector.cswas listed under theGitHub/subdirectory; the file lives inRepoConnectors/directlyType of Change
Related Issues
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
dotnet build --configuration Releasedotnet test --configuration Releasedotnet run --project src/DemaConsulting.BuildMark --configuration Release --framework net10.0--no-build -- --validateCode Quality
dotnet format --verify-no-changesQuality Checks
Please run the following checks before submitting:
./lint.sh(Unix/macOS) orcmd /c lint.bat/./lint.bat(Windows)Testing
Documentation
Additional Notes
Reviews with no actionable findings:
BuildMark-Program,BuildMark-Validation,BuildMark-Cli,BuildMark-Utilities,BuildMark-System,BuildMark-AllRequirements,OTS-Dependencies.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/graphql/usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net10.0/DemaConsulting.BuildMark.Tests.runtimeconfig.json --depsfile /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net10.0/DemaConsulting.BuildMark.Tests.deps.json /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net10.0/testhost.dll --port 39035 --endpoint 127.0.0.1:039035 --role client --parentprocessid 4371 --telemetryoptedin false(http block)/usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net8.0/DemaConsulting.BuildMark.Tests.runtimeconfig.json --depsfile /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net8.0/DemaConsulting.BuildMark.Tests.deps.json /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net8.0/testhost.dll --port 43993 --endpoint 127.0.0.1:043993 --role client --parentprocessid 4363 --telemetryoptedin false(http block)/usr/share/dotnet/dotnet /usr/share/dotnet/dotnet exec --runtimeconfig /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net9.0/DemaConsulting.BuildMark.Tests.runtimeconfig.json --depsfile /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net9.0/DemaConsulting.BuildMark.Tests.deps.json /home/REDACTED/work/BuildMark/BuildMark/test/DemaConsulting.BuildMark.Tests/bin/Debug/net9.0/testhost.dll --port 32911 --endpoint 127.0.0.1:032911 --role client --parentprocessid 4369 --telemetryoptedin false(http block)If you need me to access, download, or install something from one of these locations, you can either: