iop/packages/go/config
toki 1ed718cadc fix(single_request): 명시된 null 템플릿 경로를 생략과 구분한다
`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>
2026-08-09 10:35:53 +09:00
..
adapter_types.go
config.go feat(openai): 핫패스 에이전트 실행 경로를 확장한다 2026-08-06 00:09:24 +09:00
credential_plane_config_test.go
edge_openai_config_test.go feat(openai): 핫패스 에이전트 실행 경로를 확장한다 2026-08-06 00:09:24 +09:00
edge_runtime_config_test.go
edge_types.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
execution_preset_config_test.go
execution_preset_types.go fix(single_request): 템플릿 경로 생략과 명시 빈 값을 구분한다 2026-08-09 10:04:01 +09:00
legacy_provider_rejection_test.go
load.go fix(single_request): 명시된 null 템플릿 경로를 생략과 구분한다 2026-08-09 10:35:53 +09:00
model_execution_preset_config_test.go fix(single_request): 명시된 null 템플릿 경로를 생략과 구분한다 2026-08-09 10:35:53 +09:00
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 feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
provider_types.go feat(runtime): provider liveness 복구를 dev에 병합한다 2026-08-06 08:56:24 +09:00
single_request_execution_preset_config_test.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
stream_evidence_gate_config_test.go
tls_types.go
tls_types_test.go
usage_attribution_config_test.go
validate.go feat(openai): 핫패스 에이전트 실행 경로를 확장한다 2026-08-06 00:09:24 +09:00
workspace_config_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00