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
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
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