V10.1.4/service update#32
Conversation
Introduce AGENTS.md as official repository guidance for AI agents working in this codebase, including project overview, coding standards, test conventions, build & CI practices, and git operation safeguards. Expand copilot-instructions.md with explicit guidelines prohibiting ExcludeFromCodeCoverage attributes across all code paths, emphasizing code refactoring over metrics exclusion.
Add workflow_dispatch input to optionally run macOS test matrix (X64 and ARM64 variants) despite increased cost and runtime. Introduce test_qualitygate job to orchestrate test result validation, ensuring all required test suites complete successfully before downstream quality and deployment jobs. Fix codecov repository reference from 'codebeltnet/newtonsoft' to 'codebeltnet/newtonsoft-json'. Update job dependencies throughout pipeline to reference test_qualitygate rather than individual test jobs.
Add .bot/ folder to gitignore with allowance for .bot/README.md. The .bot/ directory contains local-only AI agent ideation material including product requirement documents, design proposals, and agentic loop state that should never be committed to the repository.
Update Microsoft.NET.Test.SDK from 18.5.1 to 18.6.0, the latest stable patch version. This brings bug fixes and improvements to the test infrastructure without breaking changes.
TransientFaultExceptionConverter now handles null evidence by creating a default TransientFaultEvidence instance. JDataResultExtensions validates PropertyName is not null or empty before attempting wildcard matching to prevent null reference exceptions.
Adds 11 new test files covering DynamicContractResolver, ExceptionConverter, StringFlagsEnumConverter, TransientFaultExceptionConverter, JDataResult, JDataResultExtensions, JsonConverterFactory, JsonSerializerSettingsExtensions, and JsonWriterExtensions. Expands test coverage with additional test methods in MvcBuilderExtensionsTests, NewtonsoftJsonFormatterTest, ContractResolverExtensionsTest, and ValidatorExtensionsTest.
Adds detailed release notes to PackageReleaseNotes.txt and comprehensive changelog to CHANGELOG.md documenting all additions, changes, and bug fixes for version 10.1.4. Includes sections on test coverage expansion, CI/CD enhancements, AI agent guidance, and defensive null-checking improvements.
Greptile SummaryThis patch release (v10.1.4) delivers targeted bug fixes, a reworked CI pipeline with macOS support and a quality-gate fan-in job, significantly expanded test coverage, and new AI-agent guidance documentation.
Confidence Score: 5/5Safe to merge — all three source-level changes are minimal, targeted fixes with direct test coverage, and the CI restructuring correctly handles optional jobs. The bug fixes in No files require special attention. Important Files Changed
Reviews (5): Last reviewed commit: "🐛 fix condition for macOS in test proje..." | Re-trigger Greptile |
Add null-safety check for PropertyName before accessing names list. Prevents null reference exceptions when jr.PropertyName is not set during filtering operations.
…nverter test Expand test to verify full deserialization behavior and validate that evidence is correctly preserved during serialization and deserialization cycles. Removes redundant comments and adds comprehensive assertions on message, inner exception, and evidence properties.
Implement thread-safe caching of resolved contracts in DynamicCamelCasePropertyNamesContractResolver using a lock-protected dictionary. Reduces repeated contract resolution overhead and improves performance for repeated serialization operations. Adds test coverage for caching behavior including edge case where multiple resolver instances interact with the contract cache.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #32 +/- ##
===========================================
+ Coverage 78.01% 99.24% +21.23%
===========================================
Files 24 25 +1
Lines 905 929 +24
Branches 111 116 +5
===========================================
+ Hits 706 922 +216
+ Misses 197 7 -190
+ Partials 2 0 -2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This pull request delivers a patch release (v10.1.4) focused on improving code quality, CI/CD infrastructure, and documentation for both developers and AI agents. It introduces official AI agent guidance, expands the CI pipeline with macOS test support and stricter quality gating, upgrades dependencies, and fixes several bugs in JSON extension logic. Notably, it also prohibits code coverage exclusions to ensure more reliable test metrics.
Documentation and AI Agent Guidance
AGENTS.mdwith official instructions for AI agents, detailing project overview, standards, test conventions, CI practices, and safeguards for git operations. Also clarified the purpose and handling of the.bot/folder for confidential agent ideation material. (AGENTS.md,.bot/README.md) [1] [2]CHANGELOG.mdto document these changes and linked new release notes. [1] [2]Testing and Code Coverage Improvements
DynamicContractResolverTest,ExceptionConverterTest, etc.).MvcBuilderExtensionsTests,NewtonsoftJsonFormatterTest, etc.).ExcludeFromCodeCoverageattributes in Copilot instructions, emphasizing refactoring over coverage exclusion. (.github/copilot-instructions.md)CI/CD Pipeline Enhancements
.github/workflows/ci-pipeline.yml) [1] [2] [3] [4]test_qualitygatejob to coordinate test result validation, ensuring all required test suites pass before proceeding to quality and deployment jobs.Dependency and Package Management
Microsoft.NET.Test.Sdkfrom 18.5.1 to 18.6.0. (Directory.Packages.props,.nuget/Codebelt.Extensions.*.Json/PackageReleaseNotes.txt) [1] [2] [3] [4] [5]Bug Fixes
TransientFaultExceptionConverternow gracefully handles null evidence by providing a default instance, preventing null reference exceptions. (src/Codebelt.Extensions.Newtonsoft.Json/Converters/TransientFaultExceptionConverter.cs)JDataResultExtensionsvalidatesPropertyNamebefore path comparison to avoid null reference errors. (src/Codebelt.Extensions.Newtonsoft.Json/JDataResultExtensions.cs)