프로젝트

일반

사용자정보

Actions

개선 #945

완료됨

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

[Runtime] turn page prepend merge와 history page 상태 모델

개선 #945: [Runtime] turn page prepend merge와 history page 상태 모델

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

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

100%

추정시간:

설명

상위 일감: #942

책임:

  • thread/turns/list page를 현재 thread 앞쪽 history로 병합하고, cursor/loading/error/complete 상태를 runtime store에 보존한다.

수행 내용:

  • RuntimeThreadState 또는 thread UI state에 older-history state를 추가한다: nextCursor, backwardsCursor, hasOlder, loading, error, lastLoadedCursor, itemsView, pageLimit.
  • turn page의 Turn.items를 기존 RuntimeThread item/turn group 모델로 변환한다.
  • prepend merge는 turn/item id 기준으로 중복을 제거하고 기존 activeTurn, pending request, local UI state를 보존한다.
  • thread/turns/items/list가 미지원이므로 summary/full 선택에 따른 누락 가능성을 상태에 표시하거나 Protocol child 결정에 맞춘다.
  • 현재 RUNTIME_THREAD_ITEM_LIMIT=500 tail slice와 충돌하지 않도록 lazy-loaded history 보존 정책을 결정한다.
  • thread/restored, thread/restoring, thread switch, live delta 이벤트와의 우선순위를 정리한다.

인수 기준:

  • success, no-more-history, duplicate page, partial error, thread switch 중 stale response 무시 테스트가 있다.
  • lazy-loaded 과거 item/turn이 limit 정책 때문에 즉시 잘리지 않는다는 회귀 테스트가 있다.
  • #689의 renderer windowing 동작과 상태가 충돌하지 않는다.

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

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

Actions
다음 일감의 해결을 막고 있음: 개선 #946: [Transcript] 상단 스크롤 async older turn page trigger와 anchor restore완료정인 김2026/07/062026/07/06

Actions

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #1

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

  • 다음 일감에게 막혀 있음:개선 #944: [Bridge] Electron main/preload thread/turns/list load 경로 추가이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #3

  • 다음 일감의 해결을 막고 있음:개선 #946: [Transcript] 상단 스크롤 async older turn page trigger와 anchor restore이(가) 추가되었습니다.

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #4

  • 제목을(를) [Runtime] 이전 히스토리 prepend merge와 보존 상태 모델에서 [Runtime] turn page prepend merge와 history page 상태 모델(으)로 변경되었습니다.
  • 설명이 변경되었습니다. (비교(diff))

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

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #5

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

#945 Runtime 분석 worker 시작.\n\nThread: 019f3686-96f9-75a1-97d6-426b09d8c68c\nWorktree: /Users/jeonginkim/.codex/worktrees/14b0/HiveAppII\nBase: origin/codex/redmine-944-bridge / commit 53c30bce\n\n범위: 이전 turn page prepend merge와 history page 상태 모델 분석. 구현 금지. Transcript top-scroll trigger/anchor(#946), virtualizer(#947), performance gate(#948)는 제외.\n\n핵심 handoff: #944 DTO의 olderCursor를 runtime-facing older page cursor로 사용하고, source=thread-read-fallback은 terminal full-history replacement semantics로 취급해야 함.

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #6

#945 분석 계획 검토 완료 및 구현 착수 지시 예정.\n\n분석 확인 사항:\n- #945 worktree는 origin/codex/redmine-944-bridge / 53c30bce 기반 detached 상태로 확인됨\n- #944는 bridge/projection 범위에 머물며 runtime merge/UI trigger는 미구현\n- runtime-store의 updateRuntimeThread 경로는 limitRuntimeThread/limitThreadItems 500 trim을 적용하므로 naive prepend는 older items를 즉시 잃을 수 있음\n- thread/restored 경로는 special restore path라 full fallback replacement에는 사용할 수 있으나, incremental older page는 별도 보존 정책 필요\n- TranscriptView의 기존 older reveal은 이미 로드된 local group reveal이므로 #945에서 top-scroll trigger/anchor를 건드리지 않음\n\n채택 방향:\n- RuntimeThreadState에 older-history state 추가\n- RuntimeEvent/reducer로 history request/success/failure 상태와 merge를 표현\n- #944 DTO의 olderCursor를 runtime-facing cursor로 그대로 사용\n- thread/turns/list desc page는 transcript display order로 정규화 후 prepend\n- dedupe는 turn/item id 기준, 현재/live item 우선\n- source=thread-read-fallback은 terminal full-history replacement로 처리\n- lazy-loaded history ids를 보존해 RUNTIME_THREAD_ITEM_LIMIT=500 tail trim과 충돌하지 않게 함\n\n조정/제외:\n- App.tsx bridge caller, top-scroll trigger, duplicate request trigger guard, failure 표시 UI는 #946 Transcript child로 이관\n- #945에서는 reducer/state/merge와 그 테스트에 집중\n\n구현 전 검증 기준:\n- runtime-store focused tests로 prepend, duplicate, no-more, error, malformed bridge error, stale request discard, active live turn preservation, 500-limit preservation, thread-read fallback replacement를 확인.

Carl Friedrich Gauss이(가) 2일 전에 변경 Actions #7

#945 구현/검증 완료(브랜치 반영, main 반영 전).\n\nBranch: origin/codex/redmine-945-runtime\nCommit: a1869073 #945 이전 히스토리 런타임 상태 모델 추가\nWorktree: /Users/jeonginkim/.codex/worktrees/14b0/HiveAppII\nThread: 019f3686-96f9-75a1-97d6-426b09d8c68c\n\n변경 요약:\n- RuntimeThreadState에 older-history 상태와 historyPageLoadStarted/Succeeded/Failed 이벤트 추가\n- thread/turns/list 결과를 desc page -> transcript order로 정규화 후 prepend merge\n- requestId/projectId/cursor 기반 stale response discard\n- item id + turn id dedupe, current/live item 우선\n- olderCursor를 #944 bridge DTO에서 그대로 저장하고 null이면 complete/no-more 처리\n- thread-read-fallback은 terminal full-history replacement로 처리하되 absent live/local item만 보존\n- RUNTIME_THREAD_ITEM_LIMIT=500 live tail 제한에서 lazy-loaded history item id 보호\n\nCoordinator 보정 및 cross-verify:\n- cross-verify A/B가 fallback이 non-live stale item까지 보존하는 문제를 지적하여 수용/수정\n- 같은 turn id/다른 item id page 중복 회귀 테스트 추가\n- history id 전체 보호에 따른 memory/render residual risk는 #947 virtualizer/#948 performance gate에서 계측/제어 대상으로 남김\n\n검증:\n- npx vitest run src/renderer/runtime-store.behavior.test.ts (136 passed)\n- npm run typecheck:renderer\n- npm run lint\n- git diff --check\n\n주의: 아직 main 반영/통합 전이므로 Redmine 완료 처리하지 않음.

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

  • 완료일을(를) 2026/07/06(으)로 지정되었습니다.
  • 상태을(를) 진행에서 완료(으)로 변경되었습니다.
  • 진척도을(를) 0에서 100(으)로 변경되었습니다.

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

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