`plan_file: null`과 `review_file: ~`은 YAML에 실제로 존재하는 키인데 mapstructure가 present nil을 생략과 같은 nil pointer로 접어버려, 승인 경계가 빈 문자열과 공백만 거부하고 null 형태는 조용히 built-in default로 떨어뜨렸다. Viper가 돌려주는 raw preset 구조에는 두 키가 nil 값으로 남아 있으므로, strict decode 전에 그 presence를 검사해 필드 경로와 함께 거부하고 실제로 없는 키만 fallback 신호로 남긴다. 두 필드와 두 가지 YAML null 표기를 모두 회귀로 고정하고, 기존 빈/공백, 생략, 상대 경로, clone 독립성, refresh redaction 근거는 그대로 유지한다. Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| adapter_types.go | ||
| config.go | ||
| credential_plane_config_test.go | ||
| edge_openai_config_test.go | ||
| edge_runtime_config_test.go | ||
| edge_types.go | ||
| execution_preset_config_test.go | ||
| execution_preset_types.go | ||
| legacy_provider_rejection_test.go | ||
| load.go | ||
| model_execution_preset_config_test.go | ||
| node_config_test.go | ||
| node_types.go | ||
| normalize.go | ||
| protocol_profile.go | ||
| protocol_profile_test.go | ||
| provider_catalog_config_test.go | ||
| provider_catalog_validation_config_test.go | ||
| provider_stall_timeout_test.go | ||
| provider_types.go | ||
| single_request_execution_preset_config_test.go | ||
| stream_evidence_gate_config_test.go | ||
| tls_types.go | ||
| tls_types_test.go | ||
| usage_attribution_config_test.go | ||
| validate.go | ||
| workspace_config_test.go | ||