Actions
개선 #943
완료됨개선 #942: [부모] Codex App식 thread/turns/list 기반 이전 히스토리 lazy-load 및 transcript virtualization 이식
[Protocol] app-server thread/turns/list older-history 계약 반영
개선 #943:
[Protocol] app-server thread/turns/list older-history 계약 반영
시작일:
2026/07/06
완료일:
2026/07/06
진척도:
100%
추정시간:
설명
상위 일감: #942
책임:
- 확인된 Codex app-server
thread/turns/listpagination 계약을 HiveAppII schema fixture, live gate, 설계 문서, adapter contract에 반영한다. -
thread/resume excludeTurns와initialTurnsPage를 초기 restore 비용 절감 경로로 사용할지 확정한다. - Codex App renderer 내부
load-older-conversation-history-pageaction을 app-server JSON-RPC method로 취급하지 않는다.
정정된 기술 사실:
-
codex-cli 0.142.5의codex app-server --stdio에 직접 JSON-RPC 접속해 확인했다. -
thread/turns/list는 실제 app-server method다. bogus thread에서는 unknown method가 아니라thread not loaded가 반환됐고, 실제 저장 thread 대상itemsView: "notLoaded",limit: 2호출도 성공했다. - official source tags
rust-v0.142.5와rust-v0.142.2모두thread/turns/list,resume.excludeTurns,resume.initialTurnsPage를 포함한다. -
thread/turns/listparams:threadId, optionalcursor,limit,sortDirection,itemsView. -
thread/turns/listresponse:data: Turn[],nextCursor,backwardsCursor. -
thread/turns/items/list는 shape만 있고 현재-32601 thread/turns/items/list is not supported yet로 실패한다. - Codex App renderer의
load-older-conversation-history-page는 app-server JSON-RPC method가 아니다. - app-server pagination은 network payload를 줄이지만, 구현상 매 요청마다 stored rollout history를 읽고 turn list를 재구성한 뒤 paginate한다. 반복 상단 스크롤 요청은 반드시 제어해야 한다.
계약 초안:
- initialize는
capabilities.experimentalApi: true를 유지한다. - initial restore 후보:
thread/resumewithexcludeTurns: true, optionalinitialTurnsPage: { limit, sortDirection: "desc", itemsView }. - older page load:
thread/turns/listwiththreadId,cursor,limit,sortDirection: "desc",itemsView. - older 방향 continuation은 response
nextCursor를 다음 요청의cursor로 사용한다. - no-more-history는
nextCursor === null로 판정한다. -
thread/turns/items/list는 현재 미지원이므로 구현 dependency에서 제외한다.
결정 항목:
-
itemsView: "summary"는 first user + final agent 중심이라 payload는 작지만 transcript fidelity가 낮다.full은 fidelity가 높지만 payload/parse 비용이 크다. Hive transcript 요구 기준으로 기본값과 fallback을 결정한다. -
thread/read includeTurns:truefallback을 legacy/schema drift 상황에 유지할지, feature-detect 실패 시 명시 오류로 볼지 결정한다. - 최소 버전은 현재
0.142.2에서도 API가 확인됐으므로 version 상향보다 schema/live feature gate 중심으로 판단한다.
인수 기준:
-
scripts/fixtures/hive-app-server-contract.json와electron/liveAppServerGate.behavior.test.ts가thread/turns/list,resume.excludeTurns,resume.initialTurnsPage를 검증한다. - live app-server probe 결과가 문서 또는 Redmine note에 남는다.
-
thread/turns/items/list미지원과 app-server replay/rebuild 비용이 설계 제약으로 명시된다. - 이 child 완료 전까지 #944 구현은 시작하지 않는다.
Actions