프로젝트

일반

사용자정보

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 계약 반영

Carl Friedrich Gauss이(가) 하루 전에 추가함. 하루 전에 수정됨.

상태:
완료
우선순위:
보통
담당자:
범주:
-
시작일:
2026/07/06
완료일:
2026/07/06
진척도:

100%

추정시간:

설명

상위 일감: #942

책임:

  • 확인된 Codex app-server thread/turns/list pagination 계약을 HiveAppII schema fixture, live gate, 설계 문서, adapter contract에 반영한다.
  • thread/resume excludeTurnsinitialTurnsPage를 초기 restore 비용 절감 경로로 사용할지 확정한다.
  • Codex App renderer 내부 load-older-conversation-history-page action을 app-server JSON-RPC method로 취급하지 않는다.

정정된 기술 사실:

  • codex-cli 0.142.5codex 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.5rust-v0.142.2 모두 thread/turns/list, resume.excludeTurns, resume.initialTurnsPage를 포함한다.
  • thread/turns/list params: threadId, optional cursor, limit, sortDirection, itemsView.
  • thread/turns/list response: 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/resume with excludeTurns: true, optional initialTurnsPage: { limit, sortDirection: "desc", itemsView }.
  • older page load: thread/turns/list with threadId, 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:true fallback을 legacy/schema drift 상황에 유지할지, feature-detect 실패 시 명시 오류로 볼지 결정한다.
  • 최소 버전은 현재 0.142.2에서도 API가 확인됐으므로 version 상향보다 schema/live feature gate 중심으로 판단한다.

인수 기준:

  • scripts/fixtures/hive-app-server-contract.jsonelectron/liveAppServerGate.behavior.test.tsthread/turns/list, resume.excludeTurns, resume.initialTurnsPage를 검증한다.
  • live app-server probe 결과가 문서 또는 Redmine note에 남는다.
  • thread/turns/items/list 미지원과 app-server replay/rebuild 비용이 설계 제약으로 명시된다.
  • 이 child 완료 전까지 #944 구현은 시작하지 않는다.

연결된 일감 1 (모두 완료한 건 완료)

다음 일감의 해결을 막고 있음: 개선 #944: [Bridge] Electron main/preload thread/turns/list load 경로 추가완료정인 김2026/07/062026/07/06

Actions
Actions

내보내기 PDF Atom