test(harness): add YAML nil-vs-empty unmarshaling semantics tests - #2129
Conversation
|
🤖 Finished Review · ✅ Success · Started 4:10 PM UTC · Completed 4:17 PM UTC |
ReviewFindingsNo findings. Previous runReviewFindingsNo findings. Previous run (2)ReviewFindingsLow
|
fe15fd8 to
5d20c6f
Compare
|
🤖 Review · Started 4:27 PM UTC |
Site previewPreview: https://ff192726-site.fullsend-ai.workers.dev Commit: |
|
🤖 Finished Review · ✅ Success · Started 4:27 PM UTC · Completed 4:32 PM UTC |
ralphbean
left a comment
There was a problem hiding this comment.
LGTM. One minor note inline.
Pin gopkg.in/yaml.v3 unmarshaling behavior for all Harness fields where nil-vs-empty semantics matter for base composition and forge merging (ADR-0045). Tests exercise raw yaml.Unmarshal without Validate() to document the library's contract across slices, maps, pointer-to-struct, and pointer-to-bool fields. PR 7 of the ADR-0045 implementation plan. Signed-off-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
5d20c6f to
ed2d3d0
Compare
|
🤖 Finished Review · ✅ Success · Started 8:09 PM UTC · Completed 8:15 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 8:48 PM UTC · Completed 8:54 PM UTC |
|
Retro: PR #2129 — test(harness): add YAML nil-vs-empty unmarshaling semantics tests This PR followed a healthy workflow with good outcomes across all optimization lenses:
No new proposals filed. All potential improvement areas are already covered by existing open issues:
|
Summary
internal/harness/yaml_semantics_test.gopinninggopkg.in/yaml.v3unmarshaling behavior for all Harness fields where nil-vs-empty semantics matter for base composition (PR 4) and forge merging (PR 1)yaml.Unmarshal(noValidate(), noLoad()) to document the library's contract, not harness validation logicSkills,Plugins,Providers,AllowedRemoteResources), struct slices (HostFiles,APIServers), maps (RunnerEnv,APIServer.Env), pointer-to-structs (ValidationLoop,Securityand all nested configs), and pointer-to-bools (all*boolfields in the security tree)PR 7 of the ADR-0045 implementation plan. No dependencies — parallel with all other PRs.
Test plan
go test ./internal/harness/ -run TestYAMLSemantics -v— all 47 subtests passmake go-test— full suite passesmake lint— clean🤖 Generated with Claude Code