|
|
19b555c34d
|
fix(openai): hybrid 과거 receipt 재검증을 제거한다
|
2026-08-15 16:18:57 +09:00 |
|
|
|
178539590f
|
fix(openai): 단일 selector 도구를 required로 정규화한다
|
2026-08-15 16:11:40 +09:00 |
|
|
|
a200e0051c
|
fix(openai): hybrid 도구 응답을 pending receipt로 연결한다
|
2026-08-15 15:59:47 +09:00 |
|
|
|
74b6f0b99c
|
fix(openai): Claude Code 작업 경로 형식을 정규화한다
|
2026-08-15 15:51:55 +09:00 |
|
|
|
99a4f75ed1
|
fix(openai): cleanup commit에 현재 receipt만 전달한다
|
2026-08-15 15:39:46 +09:00 |
|
|
|
6173dbd6d7
|
fix(openai): cleanup에서 이전 tool result를 무시한다
|
2026-08-15 15:34:33 +09:00 |
|
|
|
a10790b8f2
|
fix(openai): cleanup receipt를 exact call id로 수렴시킨다
|
2026-08-15 15:28:49 +09:00 |
|
|
|
a676e35905
|
fix(openai): cleanup의 중복 history 판정을 제거한다
|
2026-08-15 15:21:42 +09:00 |
|
|
|
ffd2c82f48
|
fix(openai): hybrid continuation 소유 순서를 바로잡는다
|
2026-08-15 15:15:01 +09:00 |
|
|
|
59d07723ca
|
fix(openai): hybrid artifact selector를 경량화한다
|
2026-08-15 15:06:04 +09:00 |
|
|
|
1a25ba3e6d
|
fix(openai): cleanup receipt의 중복 history gate를 제거한다
|
2026-08-15 14:54:26 +09:00 |
|
|
|
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 |
|