Commit graph

293 commits

Author SHA1 Message Date
450522186b fix(openai): artifact receipt의 중복 history gate를 제거한다 2026-08-15 14:48:18 +09:00
af96a1e03a fix(openai): artifact pair 도구 선택을 고정한다 2026-08-15 14:41:01 +09:00
949db240a9 fix(openai): Anthropic history 표현을 정규화한다 2026-08-15 14:35:42 +09:00
1f1be982c9 fix(openai): artifact selector 스트림을 분류 전 버퍼링한다 2026-08-15 14:29:11 +09:00
85c6fc837c fix(openai): selector 분류 오류 근거를 보존한다 2026-08-15 14:21:44 +09:00
3ac0f46c7b fix(openai): atomic artifact pair 투영을 교정한다 2026-08-15 14:03:49 +09:00
545ecb3727 fix(openai): Claude hybrid selector를 정규화한다 2026-08-15 13:51:10 +09:00
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
00761ba0c8 fix(edge): Gemini provider 도구 ID를 검증한다 2026-08-15 10:56:07 +09:00
48b69740df fix(edge): Gemini selector 서명 경계를 분리한다 2026-08-15 10:51:38 +09:00
bb0b916bf5 fix(edge): Gemini 지연 서명을 보존한다 2026-08-15 10:45:45 +09:00
ead8b50056 fix(edge): plan task root를 정규화한다 2026-08-15 10:40:27 +09:00
b6ae39bf3e fix(edge): worker 산출물 경계를 plan에 고정한다 2026-08-15 10:35:32 +09:00
81439001f9 fix(edge): 분리된 Gemini 도구 호출을 보존한다 2026-08-15 10:29:48 +09:00
03aff0b8f8 fix(edge): Gemini 병렬 도구 인덱스를 정규화한다 2026-08-15 10:25:34 +09:00
1e2aaf4c64 fix(edge): artifact content와 제어 경로를 분리한다 2026-08-15 10:13:02 +09:00
5dfce5fd90 fix(edge): review 검증 진입을 강제한다 2026-08-15 10:08:00 +09:00
0feb3b5e83 fix(edge): worker review handoff를 plan에 명시한다 2026-08-15 09:37:28 +09:00
4f1faa56e3 fix(edge): 하이브리드 단계 책임을 복원한다
Planner와 Reviewer의 축약 계약을 system 경계에 두고 Worker가 실제 Review 증거를 직접 남기도록 해 terminal 요약에 의한 인계 누락을 막는다.
2026-08-15 09:24:28 +09:00
c051529c05 fix(openai): Review 읽기를 handoff 쓰기와 구분한다
Work 도구 호출에 review 경로가 포함됐다는 이유만으로 handoff write로 오분류하지 않는다. 실제 write content가 있는 호출만 handoff로 판정하고 단순 read/inspection은 caller 도구로 통과시킨다.
2026-08-15 08:42:16 +09:00
64ab12b895 fix(openai): Work에 절대 Plan 경로를 전달한다
호출자가 이미 제공하는 working directory를 사용해 Work 입력의 Plan 경로를 절대경로로 해석한다. 잘못 추가했던 /iop 추정 alias는 제거하고 일반 workspace 호출은 그대로 통과시킨다.
2026-08-15 08:31:20 +09:00
864a930b55 fix(openai): 발급된 artifact 경로를 정규화한다
로컬 모델이 선행 점을 슬래시로 바꾼 경우에도 정확한 Plan과 Review만 식별하고 일반 workspace 호출은 그대로 유지한다.
2026-08-15 08:15:15 +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
fe08764fcf fix(openai): canonicalize issued tool calls 2026-08-15 06:39:36 +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
70176afda6 fix(edge): classify artifact lineage mismatches 2026-08-15 06:21:57 +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
dbf278e854 fix(openai): preset selector effort를 결속한다
caller body에 effort가 없어도 preset selector가 소유한 reasoning effort를 operation 요구사항에 포함해야 올바른 Responses wire를 선택할 수 있다.
2026-08-15 05:45:04 +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
aeedf9b59d test(plan): 선행 조사 흐름을 검증한다
Plan 조사 호출이 추가된 실제 실행 순서와 단계별 도구 예산을 통합 fixture가 정확히 반영하도록 한다.
2026-08-14 18:36:44 +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