Commit graph

99 commits

Author SHA1 Message Date
40c1ae4958 merge(dev): 하이브리드 handoff 단순화를 반영한다 2026-08-15 12:16:35 +09:00
991f7a7fa3 fix(edge): 중복 handoff 검증을 제거한다
문서 완성도 판정을 여러 런타임 계층에서 반복해 부분 Review가 Reviewer에 도달하지 못하던 실패를 없애기 위해 의미 검증 책임을 Reviewer로 모은다.
2026-08-15 12:07:44 +09:00
4e8075d71a fix(node,edge): provider stall watchdog 구현을 제거한다 2026-08-15 11:22:20 +09:00
4f1faa56e3 fix(edge): 하이브리드 단계 책임을 복원한다
Planner와 Reviewer의 축약 계약을 system 경계에 두고 Worker가 실제 Review 증거를 직접 남기도록 해 terminal 요약에 의한 인계 누락을 막는다.
2026-08-15 09:24:28 +09:00
64ab12b895 fix(openai): Work에 절대 Plan 경로를 전달한다
호출자가 이미 제공하는 working directory를 사용해 Work 입력의 Plan 경로를 절대경로로 해석한다. 잘못 추가했던 /iop 추정 alias는 제거하고 일반 workspace 호출은 그대로 통과시킨다.
2026-08-15 08:31:20 +09:00
71c66aeaab fix(openai): caller workspace 경로 차단을 제거한다
Plan과 Review의 정확한 접근만 상태로 기록하고 일반 작업 경로는 모델과 caller 도구에 그대로 맡긴다.
2026-08-15 08:10:53 +09:00
c1a402fe50 fix(openai): 로컬 Work 인계를 단순화한다
로컬 모델이 내부 REVIEW 프로토콜에 결합되지 않고 PLAN만 읽어 작업하도록 책임 경계를 Edge로 옮긴다.
2026-08-15 07:53:31 +09:00
bfaa9e8684 fix(openai): canonicalize worker review handoff 2026-08-15 07:09:13 +09:00
9baf54a026 fix(openai): normalize reserved path aliases 2026-08-15 07:03:06 +09:00
6f809f99b0 fix(openai): preserve cleanup call identity 2026-08-15 07:00:09 +09:00
0b037d0367 fix(openai): buffer command-mode stage projection 2026-08-15 06:57:26 +09:00
deea8d9592 fix(openai): validate stages before caller projection 2026-08-15 06:51:03 +09:00
9e13304d65 fix(openai): bind canonical artifact operations 2026-08-15 06:43:01 +09:00
51e5e4f35b fix(openai): normalize continuation tool identity 2026-08-15 06:34:45 +09:00
82bfcd432a fix(openai): atomically author selector artifact pair 2026-08-15 06:30:47 +09:00
619a05e0d4 fix(openai): selector pair 호출을 병렬 허용한다
pair-write 계약이 두 canonical write를 한 응답에 요구하므로 provider wire에서도 해당 단계에만 parallel tool calls를 명시해야 partial pair를 피할 수 있다.
2026-08-15 06:17:04 +09:00
0bf0464ee3 fix(openai): selector canonical tool schema를 제공한다
caller command tool schema를 selector에게 그대로 보여주면서 path/content 호출을 요구해 reserved artifact가 거부됐다. Provider에는 canonical schema를 주고 caller projection에서 실제 command로 encode한다.
2026-08-15 06:14:10 +09:00
4e441526b4 fix(openai): Responses 결과를 operation으로 해석한다
OpenAI Chat ingress의 내부 wire가 Responses로 전환돼도 decoder가 caller protocol만 보고 Chat shape를 요구해 502를 만들었다. selected operation을 우선해 공통 stage로 복원한다.
2026-08-15 06:07:16 +09:00
417c54c016 fix(openai): 내부 Responses stream 결속을 맞춘다
buffered Chat-to-Responses body와 tunnel metadata가 서로 다른 stream 값을 가지면 provider 종료 뒤에도 selector terminal이 수렴하지 않는다. 내부 wire를 일관된 non-stream으로 고정한다.
2026-08-15 05:59:21 +09:00
1ad03e0bd0 fix(openai): selector 출력 예산을 제한한다
bounded PLAN/REVIEW seed 생성에 caller SDK의 32000-token 기본값을 그대로 쓰면 high-effort selector가 provider timeout까지 점유한다. 내부 selector에만 4096-token 상한을 적용한다.
2026-08-15 05:55:06 +09:00
e9f043e417 fix(openai): reasoning Responses sampling을 정규화한다
GPT reasoning Responses wire가 generic SDK의 temperature와 top_p 기본값을 거부한다. mapped effort가 활성화된 내부 변환에서는 충돌하는 sampling defaults를 제거한다.
2026-08-15 05:40:45 +09:00
4368a31ea6 fix(openai): 도구 호출 effort를 Responses로 보존한다
GPT Chat wire는 함수 도구와 reasoning effort를 함께 지원하지 않는다. caller-workspace 내부 단계가 선택된 프로필의 Responses operation으로 전환해 두 요구를 모두 보존하도록 한다.
2026-08-15 05:30:42 +09:00
0110ca1af8 fix(openai): 프로필별 Chat 호출을 정규화한다
OpenCode의 일반 Chat 요청을 GPT provider가 거부한 뒤 재시도 가능한 오류로 왜곡해 벤치가 장시간 정체됐다. 선택된 protocol profile에 맞춰 출력 토큰 필드를 정규화하고 upstream 400을 비재시도 validation 오류로 유지한다.
2026-08-15 05:12:54 +09:00
c9939edf24 fix(edge): caller workspace 하이브리드 경계를 복구한다
실제 provider 요청과 작업 공간 handoff가 같은 PLAN/REVIEW 계약을 사용해야 하며, 단계별 prepare와 pair-write 의미가 테스트와 런타임에서 일치해야 한다.
2026-08-15 04:01:21 +09:00
54c0ab1316 feat(plan): 워크스페이스 분석을 선행한다
근거 없는 계획 생성을 막기 위해 읽기 전용 조사가 성공한 뒤에만 Plan을 확정하도록 한다.
2026-08-14 18:19:17 +09:00
4e845e1749 feat(orchestration): 템플릿 기반 작업 인계를 적용한다
단일 요청의 계획·작업·리뷰·수리 단계가 정형화된 산출물을 다음 단계로 전달하고, 선택적 selfcheck로 불완전한 dispatcher 결과를 보완하기 위해 반영한다.
2026-08-14 17:19:35 +09:00
b02654f781 feat(api): Responses 브리지와 Gemini effort를 완성한다
표준 Responses 요청이 선택된 provider profile을 통해 손실 없이 실행되고 Gemini의 휴대 가능한 reasoning 등급만 전달되도록 한다.
2026-08-14 08:07:10 +09:00
d99305d105 fix(edge): Gemini 도구 서명을 provider 계층에서 정규화한다 2026-08-14 04:42:45 +09:00
653977383b fix(edge): provider timings 응답을 정규화한다 2026-08-14 01:46:20 +09:00
84b76fcafe fix(edge): 대화 중 system 메시지를 정규화한다 2026-08-14 01:31:55 +09:00
8dd0c9c297 fix(edge): provider chat 응답을 정규화한다 2026-08-14 01:02:43 +09:00
73d9b51432 fix(edge): single request provider 정규화를 적용한다 2026-08-14 00:24:11 +09:00
2df72b21f1 Merge branch 'feature/benchmark-route-provider-followup' into dev 2026-08-13 23:29:18 +09:00
3d53c28ae1 fix(edge): Gemini caller 모델 경로를 분리한다
엄격한 route 식별자 규칙을 유지하면서 공식 caller의 URL-encoded 표시 모델 이름은 별도 bounded 규칙으로 수용해 Gemini ingress의 잘못된 400을 제거한다.
2026-08-13 23:28:51 +09:00
ad70fcb46e fix(edge): agy 도구 연속 호출을 지원한다
공식 agy의 model-role functionResponse를 Chat tool 메시지로 변환한다.
원격 벤치 검증 기록과 후속 API surface 리팩터링 계획을 함께 반영한다.
2026-08-13 23:25:39 +09:00
e5869a53ae fix(edge): provider 호출 정규화 계층을 추가한다
caller별 예외 대신 요청 의미와 protocol profile capability로 operation을 선택해 tools와 effort 조합을 보존한다. 지원하지 않는 effort는 가장 가까운 하위 등급으로만 내리고 상향 매핑은 거부한다.
2026-08-13 23:06:50 +09:00
f25eda05c3 refactor(benchmark): 전용 하네스를 폐기한다
제품 호출 안정성과 측정 경계를 다시 분리하고, 벤치 대상 경로의 최소 HTML 스모크와 초경량 단일 시도 비교만 남긴다.
2026-08-13 21:14:52 +09:00
58fdb32264 fix(edge): Plan 구조 출력을 배열로 고정한다 2026-08-12 18:41:23 +09:00
f4191097a2 fix(edge): Claude advisor beta를 수용한다 2026-08-12 18:23:37 +09:00
494d863a85 fix(edge): Plan 아티팩트를 결정적으로 렌더링한다 2026-08-12 18:07:21 +09:00
30ac305e18 fix(benchmark): 공식 caller 종료 계약을 보정한다 2026-08-12 17:22:27 +09:00
39fa1da55b fix(benchmark): 원샷 비교 실행 실패를 해소한다
호출기별 격리 쓰기 계약과 Gemini ingress, 단일 요청 stage 처리를 맞춰 실제 9-cell 비교가 생성물을 남길 수 있게 한다.
2026-08-12 14:37:17 +09:00
de4d8f4ff8 feat(benchmark): IOP Agent 연결 경로를 추가한다
세 Agent의 direct route를 동일한 fail-closed preflight와 격리 실행 경계에서 비교하고, 관측되지 않은 preset 셀이 실행되는 것을 막기 위해 연결 계약과 증거 수집 흐름을 고정한다.
2026-08-10 08:11:04 +09:00
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
0eaab4561d docs(roadmap): 단일 요청 실행 마일스톤을 종료한다 2026-08-09 07:00:04 +09:00
3a83f6a7ad fix(api): Claude thinking beta 헤더를 허용한다 2026-08-09 06:55:27 +09:00
d7a150c7fe feat(agent): 단일 요청 실행 경로를 완성한다
Claude의 단일 Anthropic 요청 안에서 IOP가 Plan, Work, Review와 workspace 도구 실행을 끝내고 실제 dev smoke로 계약을 검증할 수 있어야 한다.\n\n완료 task evidence와 마일스톤 검토 상태도 같은 변경에 고정한다.
2026-08-08 23:35:13 +09:00
dc9a9a8c59 feat(agent): 단일 요청 Agent 실행 경계를 구현한다
승인된 execution preset을 Edge 조정 경계와 Node workspace/tool 실행 경계로 연결해 단일 요청 수명주기와 관측 계약을 일관되게 처리한다.
2026-08-07 07:03:55 +09:00
af35296aaa feat(runtime): provider liveness 복구를 dev에 병합한다 2026-08-06 08:56:24 +09:00
f9442edfef feat(runtime): provider liveness 복구를 완성한다
장시간 무응답 attempt를 안전하게 fence하고 provider health와 분리 관측해야 중복 출력 없이 기존 recovery budget으로 재실행할 수 있다.
2026-08-06 08:49:59 +09:00