iop/apps/edge/internal/service
toki 31fada5d08 fix(single_request): 템플릿 승인 경계를 닫고 회귀 근거를 채운다
공식 리뷰가 지적한 두 가지 승인 경계 결함을 고친다. `plan_file`/`review_file`은
edge.yaml 디렉터리 기준 상대 경로만 허용하고 절대/빈 경로는 파일 접근 전에 거부한다.
필수 heading과 Review `PASS`는 부분 문자열이 아니라 정확한 단독 줄로 검증하며,
문서화된 placeholder를 제거한 뒤 남는 `{{`/`}}`를 거부해 문법을 닫는다.

리뷰가 존재한다고 기술했지만 실제로는 없던 회귀 근거를 추가한다. admission 시
고정된 effective 템플릿 쌍이 clone과 workspace 재검증을 통과하는지, refresh가
이미 승인된 요청이 아니라 새 요청에만 적용되는지, custom Review 템플릿이 내부
artifact만 바꾸고 caller 최종 출력은 그대로인지를 각각 확정 검증한다.

현재 문서도 실제 동작에 맞춘다. Edge 실행 spec의 낡은 Plan JSON Schema 서술을
direct PlanMD 검증으로 고치고, outer Anthropic 계약과 input spec에 템플릿이
Edge 내부 stage 입력일 뿐 caller 요청/응답 계약을 바꾸지 않음을 명시한다.

Refs: agent-task/single_request_plan_review_templates/PLAN-cloud-G08.md
2026-08-09 09:25:27 +09:00
..
control_command.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
long_context_queue_test.go feat: provider-resource-admission-ownership alignment 2026-07-22 20:45:04 +09:00
model_queue_admission.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
model_queue_admission_test.go feat: provider-resource-admission-ownership alignment 2026-07-22 20:45:04 +09:00
model_queue_release.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
model_queue_snapshot.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
model_queue_test_support_test.go refactor: model queue admission/release/reservation, provider resolution, tunnel 개선 2026-07-19 14:03:46 +09:00
model_queue_types.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
node_command.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
protocol_profile_test.go feat(protocol-profile): 멀티 프로토콜 프로필을 추가한다 2026-08-01 10:33:10 +09:00
provider_health_observability.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_health_observability_test.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_health_overlay_test.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_pool.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_pool_admission_test.go feat: openai-compatible output validation filters - stream gate pipeline, policy, filters, tunnel codec, model queue, provider pool, contract & spec updates 2026-07-28 15:21:09 +09:00
provider_recovery_selection_test.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_resolution.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
provider_scheduling_advanced_test.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
provider_scheduling_test.go feat: provider resource admission ownership alignment - runtime refresh & model queue implementation 2026-07-20 10:50:44 +09:00
provider_stall_timeout_test.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
provider_tunnel.go feat(runtime): provider liveness 복구를 완성한다 2026-08-06 08:49:59 +09:00
provider_tunnel_credential_test.go feat(credential): Provider Credential Slot 라우팅을 구현한다 2026-08-02 09:10:11 +09:00
queue_dispatch_test.go feat(edge): provider 리소스 승인 소유권 정렬 구현 2026-07-22 18:10:54 +09:00
queue_reservation.go refactor: model queue admission/release/reservation, provider resolution, tunnel 개선 2026-07-19 14:03:46 +09:00
queue_reservation_test.go feat(edge): provider 리소스 승인 소유권 정렬 구현 2026-07-22 18:10:54 +09:00
run_cancel.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
run_command_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
run_dispatch_internal_test.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
run_submit.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
run_types.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
run_wire.go feat(liveness): provider 실행 stall 관측을 구현한다 2026-08-05 09:45:14 +09:00
service.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
service_internal_test.go fix(edge): 동시 실행 ID 충돌을 방지한다 2026-08-02 12:21:16 +09:00
single_request.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_artifact.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_artifact_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_cleanup_test.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_metrics.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_metrics_test.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_observation.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_observation_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_tool_loop.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_tool_loop_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
single_request_tool_types.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_tool_types_test.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_types.go feat(single_request): implement bounded Plan and Review Markdown templates 2026-08-09 08:41:03 +09:00
single_request_types_test.go fix(single_request): 템플릿 승인 경계를 닫고 회귀 근거를 채운다 2026-08-09 09:25:27 +09:00
single_request_workspace.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
single_request_workspace_test.go feat(agent): 단일 요청 Agent 실행 경계를 구현한다 2026-08-07 07:03:55 +09:00
status_provider.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
status_provider_test.go refactor(runtime): promote provider-only execution boundary 2026-08-02 20:28:45 +09:00
usage_attribution_dispatch_test.go feat(credential): Provider Credential Slot 라우팅을 구현한다 2026-08-02 09:10:11 +09:00
workspace_wire.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00
workspace_wire_test.go feat(agent): 단일 요청 실행 경로를 완성한다 2026-08-08 23:35:13 +09:00