프로젝트

일반

사용자정보

Actions

개선 #942

완료됨

[부모] Codex App식 thread/turns/list 기반 이전 히스토리 lazy-load 및 transcript virtualization 이식

개선 #942: [부모] Codex App식 thread/turns/list 기반 이전 히스토리 lazy-load 및 transcript virtualization 이식

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

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

100%

추정시간:
(합계: 0:00 시간)

설명

배경:

  • #689 롱 호라이즌 안정화는 #690-#694로 완료되었고, renderer bounded window/local reveal/scroll anchoring과 synthetic gate가 선행 반영됐다.
  • 추가 검토 결과 Codex app-server는 thread/read includeTurns:true 외에 thread/turns/list 기반 turn history pagination을 지원한다.
  • 이 부모 일감은 “API 지원 여부 조사”가 아니라, 확인된 thread/resume excludeTurns/initialTurnsPagethread/turns/list 계약을 HiveAppII에 이식하는 총괄로 정정한다.

정정된 기술 사실:

  • 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한다. 반복 상단 스크롤 요청은 반드시 제어해야 한다.

목표:

  • 초기 restore에서 full thread.turns payload를 피하거나 줄이고, 최신 turn page만 bootstrap한다.
  • 상단 스크롤 시 thread/turns/listnextCursor로 older turn page를 가져와 prepend한다.
  • prepend 후 scroll anchor를 유지하고, measured-height turn virtualization으로 DOM/render 비용을 bounded하게 유지한다.
  • thread/turns/items/list에는 의존하지 않는다. older page의 itemsView 정책은 #943에서 fidelity/성능 기준으로 확정한다.

책임 경계:

  • #943 Protocol, #944 Bridge, #945 Runtime, #946 Transcript, #947 Virtualizer, #948 Performance 순서로 진행한다.
  • #689/#690-#694는 완료된 선행 작업으로 취급하고 재오픈하지 않는다.
  • Protocol child는 API 존재 여부가 아니라 Hive fixture/live gate/adapter 계약 반영과 itemsView 정책 확정을 책임진다.

완료 조건:

  • child 1-6 완료.
  • Hive contract fixture/live gate가 thread/turns/list, resume.excludeTurns, resume.initialTurnsPage를 검증한다.
  • 긴 transcript에서 initial restore payload/render 비용, older-load latency, rendered turn count, repeated top-scroll request 수가 report artifact로 남는다.

하위 일감 6 (모두 완료6 건 완료)

개선 #943: [Protocol] app-server thread/turns/list older-history 계약 반영완료정인 김2026/07/062026/07/06

Actions
개선 #944: [Bridge] Electron main/preload thread/turns/list load 경로 추가완료정인 김2026/07/062026/07/06

Actions
개선 #945: [Runtime] turn page prepend merge와 history page 상태 모델완료정인 김2026/07/062026/07/06

Actions
개선 #946: [Transcript] 상단 스크롤 async older turn page trigger와 anchor restore완료정인 김2026/07/062026/07/06

Actions
개선 #947: [Virtualizer] Codex식 measured-height turn virtualization 적용완료정인 김2026/07/062026/07/06

Actions
개선 #948: [Performance] thread/turns/list lazy-load/virtualized transcript 검증 게이트완료정인 김2026/07/062026/07/06

Actions

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #1

  • Subtask#943이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #2

  • Subtask#944이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #3

  • Subtask#945이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #4

  • Subtask#946이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #5

  • Subtask#947이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #6

  • Subtask#948이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #7

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #8

Codex App식 이전 대화 lazy-load 이식 계획을 child 일감으로 등록했습니다.

하위 일감:

  1. #943 [Protocol] app-server older-history page 계약 확정
  2. #944 [Bridge] Electron main/preload older-history load 경로 추가
  3. #945 [Runtime] 이전 히스토리 prepend merge와 보존 상태 모델
  4. #946 [Transcript] 상단 스크롤 load trigger와 anchor restore
  5. #947 [Virtualizer] Codex식 measured-height turn virtualization 적용
  6. #948 [Performance] lazy-load/virtualized transcript 검증 게이트

순서/차단 관계:

등록 원칙:

  • Project Hive X / tracker 개선 / priority 보통 / status 신규 / assignee 정인 김(id=5)
  • Protocol 우선: app-server older-history page API가 확인되지 않으면 후속 구현 child 진입 중단
  • #689/#690-#694는 완료된 선행 작업으로 취급하고 재오픈하지 않음

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #9

  • 제목을(를) [부모] Codex App식 대화 이전 히스토리 lazy-load 및 transcript virtualization 이식에서 [부모] Codex App식 thread/turns/list 기반 이전 히스토리 lazy-load 및 transcript virtualization 이식(으)로 변경되었습니다.
  • 설명이 변경되었습니다. (비교(diff))

일감 정정: app-server pagination 선행 검토 누락을 바로잡아 thread/turns/list 지원 확인, thread/turns/items/list 미지원, app-server replay/rebuild 비용 제약을 반영했습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #10

  • 상태을(를) 신규에서 진행(으)로 변경되었습니다.

#942 총괄을 시작했습니다. 조율 문서: docs/task-coordination/redmine-942/README.md. 현재 child discovery와 dependency wave를 확정했고, multi-thread-coordination gate에 따라 worker thread 생성은 사용자 확인 전까지 보류합니다. Wave 1 후보는 #943 Protocol이며 #944-#948은 순차 prerequisite 대기입니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #11

총괄 조율 문서를 Wave 1 #943 handoff package까지 보강했습니다: docs/task-coordination/redmine-942/README.md. 포함 내용: 현재 Hive contract/gate 누락 지점, likely files, itemsView/fallback 결정 항목, 검증 명령, 분석-only worker prompt draft. multi-thread-coordination gate에 따라 visible worker thread 생성은 사용자 확인 전까지 보류합니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #12

사용자 승인에 따라 Wave 1 #943 분석 worker를 생성했습니다. Thread: 019f364e-8962-7492-bfac-63b9cadaa3d6, worktree: /Users/jeonginkim/.codex/worktrees/4083/HiveAppII. 제목 설정 및 pin 완료, Redmine #943은 진행으로 전환했습니다. worker에는 analysis-only 지시와 coordinator-local README 부재 보강 handoff를 전달했습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #13

#943 Wave 1 protocol 계약 작업 검증 완료 및 브랜치 push.\n\n브랜치/커밋:\n- origin/codex/redmine-943-protocol\n- bba19ba4 #943 app-server 이전 히스토리 페이지 계약 고정\n\n핵심 결과:\n- thread/resume excludeTurns + initialTurnsPage 계약 고정\n- thread/turns/list request/page response 계약 고정\n- thread/turns/items/list는 schema-present/runtime-unsupported로 고정\n- default itemsView는 summary, fallback은 thread/read includeTurns:true로 문서화\n- cross-verify 후 live smoke를 보강: ephemeral thread 대신 materialized non-ephemeral thread에서 paging 확인, page shape/cursor/excludeTurns semantic assertion 추가\n\n검증 통과:\n- npm ci\n- HIVE_CODEX_BINARY=/opt/homebrew/bin/codex npm run validate:codex-app-server-schema\n- npx vitest run electron/codexAppServerSchemaGate.behavior.test.ts electron/liveAppServerGate.behavior.test.ts\n- npm run typecheck:electron\n- node --check scripts/lib/codex-app-server-smoke.mjs\n- git diff --check\n\n다음 단계: #944 Bridge 작업을 #943 브랜치/커밋 위에서 시작 가능. #943 Redmine 완료 처리는 main 반영 정책 확인 후 진행.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #14

#944 Wave 2 Bridge 구현/검증 완료 및 브랜치 push.\n\n브랜치/커밋:\n- origin/codex/redmine-944-bridge\n- 53c30bce #944 이전 히스토리 페이지 브리지 추가\n\n결과:\n- #943 계약의 thread/turns/list를 Electron supervisor/main/preload bridge로 연결\n- renderer가 raw app-server JSON-RPC payload 없이 projected turns/items/page metadata만 받도록 경계 설정\n- unsupported/unavailable method에 한정한 thread/read fallback과 malformed page error 구분 보강\n- #945 Runtime child가 raw next/backwards cursor를 재해석하지 않도록 olderCursor DTO 추가\n\n검증:\n- focused Vitest 4 files / 97 tests 통과\n- typecheck:electron, typecheck:renderer, lint, git diff --check 통과\n\n다음 단계: #945 Runtime prepend merge/state 모델은 origin/codex/redmine-944-bridge / 53c30bce 위에서 시작 가능. #943/#944 완료 처리는 main 반영 정책 확인 후 진행.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #15

#945 Runtime 분석 worker 시작.\n\nThread: 019f3686-96f9-75a1-97d6-426b09d8c68c\nWorktree: /Users/jeonginkim/.codex/worktrees/14b0/HiveAppII\nBase: origin/codex/redmine-944-bridge / 53c30bce\n\n범위: #944 bridge DTO를 소비하는 runtime older-history state/prepend merge 모델 분석. 구현 금지 상태입니다.\n\n초기 관찰: current reducer의 limitRuntimeThread/limitThreadItems 500-item trim 때문에 naive prepend는 lazy-loaded older items를 즉시 잃을 수 있어 #945 핵심 설계 쟁점으로 확인 중입니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #16

#945 분석 계획 검토 완료.\n\n핵심 판단:\n- 현재 runtime-store의 500-item trim 때문에 naive prepend는 older-history를 보존하지 못함\n- thread/restored는 full fallback replacement에는 적합하지만 incremental older page에는 별도 protected history policy 필요\n- #945 구현 범위는 RuntimeThreadState/RuntimeEvent/reducer merge와 limit preservation까지로 제한\n- App bridge caller/top-scroll trigger/anchor/error UI는 #946으로 유지\n\n다음 단계: #945 worker에 implementation-only 지시를 보낼 예정.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #17

#945 Runtime child verified branch pushed.\n\nBranch: origin/codex/redmine-945-runtime\nCommit: a1869073 #945 이전 히스토리 런타임 상태 모델 추가\n\n확인된 handoff:\n- #944 older-history bridge DTO를 runtime event/state가 수용 가능\n- turns-list desc page -> transcript order prepend merge\n- requestId/projectId/cursor stale guard\n- item/turn dedupe와 current/live 우선 정책\n- thread-read-fallback terminal replacement semantics\n- loaded history id 보호로 500 live-tail trim과 충돌 방지\n\n검증: runtime-store focused Vitest 136 passed, typecheck:renderer, lint, git diff --check.\n\n다음 순서: #946 Transcript top-scroll async older page trigger 및 anchor restore 분석/구현으로 진행.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #18

#946 Transcript child started.\n\nThread: 019f369e-1401-7051-bb82-d910b0a95966\nWorktree: /Users/jeonginkim/.codex/worktrees/ae6d/HiveAppII\nBase: origin/codex/redmine-945-runtime / commit a1869073\n\n분석 범위: #689 local reveal/windowing을 #944 bridge + #945 runtime history events와 연결하는 top-scroll async older page trigger, request guard, anchor restore, no-more/error/thread-switch 처리.\n\n구현/커밋/푸시/Redmine closeout은 계획 검토 후 별도 단계로 진행.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #19

#946 Transcript 상단 스크롤 older-load 연결 브랜치 검증 완료.\n\n브랜치: codex/redmine-946-transcript\n커밋: b2dad90f1bea739dfc8922cf7696b18e24b131d6\n상태: 원격 push 완료, main 미반영으로 child 완료 처리는 보류.\n\n핵심 결과:\n- local reveal 우선 -> server older-history 요청 -> runtime prepend -> anchor restore 흐름 연결\n- 복원 programmatic scroll의 중복 older-load 재진입 방지까지 반영\n- focused test/typecheck/lint/diff-check 통과\n\n다음 순서: #947 Virtualizer 작업은 #946 브랜치 기준으로 진행 가능.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #20

#947 Virtualizer 분석 worker 시작.\n\nCodex thread: 019f36bc-5f18-7910-bacd-3fa40b43589b\nWorktree: /Users/jeonginkim/.codex/worktrees/6579/HiveAppII\nBase branch: codex/redmine-946-transcript\nBase commit: b2dad90f1bea739dfc8922cf7696b18e24b131d6\n\n현재 단계: analysis-only. 구현/커밋/푸시/Redmine 완료 처리는 오케스트레이터 승인 전 금지.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #21

#947 Virtualizer verified branch pushed.

  • child: #947 Codex식 measured-height turn virtualization 적용
  • branch: origin/codex/redmine-947-virtualizer
  • commit: 09a53052 (#947 대화 transcript turn virtualization 적용)
  • verification: related renderer suites, typecheck, lint, diff check, and full npm run test (151 files / 2080 tests) passed.
  • cross-verify: no blockers; virtualized prepend anchor regression added after review.

Next allowed child: #948 Performance gate from #947 branch/commit. Parent closeout and child completion remain pending main integration policy.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #22

#948 Performance gate analysis worker started.

Thread: 019f36db-87ad-7300-a8ff-6fbd0362501c
Worktree: /Users/jeonginkim/.codex/worktrees/4955/HiveAppII
Base: origin/codex/redmine-947-virtualizer / commit 09a53052e2fb87098f13b29a064683815921353d

Current phase: analysis-only for performance/report gate scope. Implementation will wait for coordinator plan review.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #23

#948 Performance gate verified branch pushed.

  • child: #948 thread/turns/list lazy-load/virtualized transcript 검증 게이트
  • branch: origin/codex/redmine-948-performance-gate
  • commit: e20439e8 (#948 lazy-load 성능 게이트 확장)
  • verification: performance gate report/hard mode, focused renderer tests, lint, typecheck, full npm run test (151 files / 2080 tests), diff check passed.
  • cross-verify: revise items fixed and accepted.

#943-#948 child implementation branches are now all verified/pushed. Parent closeout and child completion remain pending main integration policy.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #24

  • 상태을(를) 진행에서 완료(으)로 변경되었습니다.

Carl Friedrich Gauss이(가) 하루 전에 변경 Actions #25

Commit reflected on main: https://ap-northeast-1.console.aws.amazon.com/codesuite/codecommit/repositories/hive-x-electron/commit/5dc8974ec9da035a221235c3026cb66b1d92696c?region=ap-northeast-1
Origin main SHA: 5dc8974ec9da035a221235c3026cb66b1d92696c
Tokyo main SHA: 5dc8974ec9da035a221235c3026cb66b1d92696c

검증: npm run ci:production 통과 (161 files / 2159 tests, renderer build, fixtures, package-config, signing check skipped because HIVE_RELEASE_BUILD is not enabled).

Actions

내보내기 PDF Atom