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 refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
config.go feat(openai): 핫패스 에이전트 실행 경로를 확장한다 2026-08-06 00:09:24 +09:00
credential_plane_config_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
edge_openai_config_test.go feat(openai): 핫패스 에이전트 실행 경로를 확장한다 2026-08-06 00:09:24 +09:00
edge_runtime_config_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
edge_types.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
execution_preset_config_test.go feat(hot-path): 실행 프리셋과 논리 요청 흐름을 구현한다 2026-08-03 14:42:55 +09:00
execution_preset_types.go fix(single_request): 템플릿 경로 생략과 명시 빈 값을 구분한다 2026-08-09 10:04:01 +09:00
legacy_provider_rejection_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
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 refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
node_types.go feat(credential): Provider Credential Slot 라우팅을 구현한다 2026-08-02 09:10:11 +09:00
normalize.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
protocol_profile.go feat(protocol-profile): GLM Coding Plan 프로필을 분리한다 2026-08-02 13:24:42 +09:00
protocol_profile_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
provider_catalog_config_test.go feat: provider pool admission, policy config, snapshot source task archive + runtime updates 2026-07-19 22:41:05 +09:00
provider_catalog_validation_config_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
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 feat(openai): 실제 provider별 사용량 귀속을 기록한다 2026-07-31 20:22:23 +09:00
tls_types.go feat(credential): Provider Credential Slot 라우팅을 구현한다 2026-08-02 09:10:11 +09:00
tls_types_test.go feat(credential): Provider Credential Slot 라우팅을 구현한다 2026-08-02 09:10:11 +09:00
usage_attribution_config_test.go feat(openai): 실제 provider별 사용량 귀속을 기록한다 2026-07-31 20:22:23 +09:00
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