Commit graph

77 commits

Author SHA1 Message Date
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
c31130e68b fix(streamgate): 반복 복구 설정 모순을 차단한다
blocking repeat guard가 복구 예산 0과 함께 배포되면 런타임에서 recovery_failed로 종료된다. 설정 로드 단계에서 모순을 거부하고 dev의 단일 내부 복구 기준을 명시한다.
2026-08-14 02:46:23 +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
f1b7c14610 fix(control-plane): 관리 라우트 갱신 경로를 연결한다
운영 중 provider 선택을 직접 DB 조작 없이 CAS와 projection 동기화를 거쳐 교정할 수 있어야 한다.
2026-08-14 01:04:02 +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
b7fc808a56 fix(config): provider admission을 transport 상한과 분리한다 2026-08-13 23:12:33 +09:00
e5869a53ae fix(edge): provider 호출 정규화 계층을 추가한다
caller별 예외 대신 요청 의미와 protocol profile capability로 operation을 선택해 tools와 effort 조합을 보존한다. 지원하지 않는 effort는 가장 가까운 하위 등급으로만 내리고 상향 매핑은 거부한다.
2026-08-13 23:06:50 +09:00
e250ef6e5c Merge branch 'feature/iop-one-shot-agent-model-comparison' into dev 2026-08-13 21:15:25 +09:00
f25eda05c3 refactor(benchmark): 전용 하네스를 폐기한다
제품 호출 안정성과 측정 경계를 다시 분리하고, 벤치 대상 경로의 최소 HTML 스모크와 초경량 단일 시도 비교만 남긴다.
2026-08-13 21:14:52 +09:00
721960fec7 fix(runtime): provider stall 재시도를 단일 종료로 제한한다 2026-08-13 20:39:10 +09:00
28ed27a575 fix(benchmark): direct 진단 런타임을 안정화한다 2026-08-13 09:14:23 +09:00
634531afca fix(benchmark): 종료 증거와 실행 경계를 정리한다
실패를 완료되지 않은 실행과 혼동해 동일 사이클을 반복하던 조건을 분리하고, 이미 검증된 dispatcher 작업 이력과 benchmark 결과를 보존한다.
2026-08-13 08:43:34 +09:00
8f00606c03 fix(benchmark): 결과 경계를 독립 축으로 분리한다
제품 결과와 harness·process·artifact 실패가 하나의 성공 값으로 덮이지 않도록 durable evidence와 모든 소비자 계약을 함께 마이그레이션한다.
2026-08-12 21:01:51 +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
029ff0d2c8 feat(benchmark): 비교 파이프라인을 완성한다
동일한 IOP 경유 과업을 caller와 model 설정만 바꿔 재현하고, 실패를 포함한 실행·검증·채점 근거를 보존할 수 있어야 한다.
2026-08-12 01:44:26 +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
b6e0080fe5 feat(single_request): implement bounded Plan and Review Markdown templates 2026-08-09 08:41:03 +09:00
0eaab4561d docs(roadmap): 단일 요청 실행 마일스톤을 종료한다 2026-08-09 07:00:04 +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
4b3b5debae feat(openai): extend Anthropic bridge compatibility 2026-08-06 07:04:03 +09:00
495996fee4 feat(openai): 핫패스 에이전트 실행 경로를 확장한다
Anthropic·Chat 게이트와 관찰·종료 제어를 통합하고 관련 계약·검증 산출물을 반영한다.
2026-08-06 00:09:24 +09:00
fef1f7a9dc feat(liveness): provider 실행 stall 관측을 구현한다
Node의 provider progress 기반 stall timeout, watchdog fencing과 bounded health probe evidence를 실행 경로에 반영한다. Edge-Node 계약과 구현 스펙, 테스트 및 Milestone 완료 evidence를 현재 상태와 맞춘다.
2026-08-05 09:45:14 +09:00
09598013d8 Merge dev into feature/iop-hot-path-one-shot-execution 2026-08-04 16:11:49 +09:00
6650e9f70d feat(hot-path): 실행 프리셋과 논리 요청 흐름을 구현한다 2026-08-03 14:42:55 +09:00
4cafc91323 fix(transport): 터널 지연에 맞춰 heartbeat 경계를 보강한다
장시간 provider prefill과 stream backpressure가 정상 노드를 끊지 않도록 liveness window를 확장하고 Chronos 분리 완료 문서와 잔여 artifact를 정리한다.
2026-08-02 22:30:25 +09:00