개선 #944
완료됨개선 #942: [부모] Codex App식 thread/turns/list 기반 이전 히스토리 lazy-load 및 transcript virtualization 이식
[Bridge] Electron main/preload thread/turns/list load 경로 추가
100%
설명
상위 일감: #942
책임:
- renderer가 raw app-server payload를 직접 다루지 않도록 preload IPC와 main/supervisor adapter에
thread/turns/list기반 older turn page load 경로를 추가한다. - Protocol child가 확정한
itemsView, limit, cursor, error contract만 사용한다.
수행 내용:
-
window.hiveApp계열 bridge에loadOlderThreadTurnsPage또는 동등한 명시 API를 추가한다. - main process에서 appServerSupervisor 호출, app-server 응답 검증, RuntimeThread item/turn projection 경계를 담당한다.
- request는
threadId,cursor,limit,sortDirection: "desc",itemsView를 포함한다. - response는
ok/error, projected turns/items,nextCursor,backwardsCursor,itemsView, page metadata만 포함한다. -
thread/turns/items/list는 미지원이므로 bridge에 hydration dependency로 넣지 않는다. - stale response 판정을 위해 threadId, request cursor, page identity를 renderer/runtime이 확인할 수 있게 전달한다.
인수 기준:
- preload type, IPC handler, supervisor adapter, response validation, projection boundary 테스트가 있다.
- success, no-more-history, app-server error, malformed response, unsupported method/schema drift를 구분한다.
- Protocol child가 blocker 상태이면 이 일감은 시작하지 않는다.
Carl Friedrich Gauss이(가) 2일 전에 변경
- 설명이 변경되었습니다. (비교(diff))
Carl Friedrich Gauss이(가) 2일 전에 변경
- 다음 일감에게 막혀 있음:에 개선 #943: [Protocol] app-server thread/turns/list older-history 계약 반영이(가) 추가되었습니다.
Carl Friedrich Gauss이(가) 2일 전에 변경
- 다음 일감의 해결을 막고 있음:에 개선 #945: [Runtime] turn page prepend merge와 history page 상태 모델이(가) 추가되었습니다.
Carl Friedrich Gauss이(가) 2일 전에 변경
- 제목을(를) [Bridge] Electron main/preload older-history load 경로 추가에서 [Bridge] Electron main/preload thread/turns/list load 경로 추가(으)로 변경되었습니다.
- 설명이 변경되었습니다. (비교(diff))
일감 정정: app-server pagination 선행 검토 누락을 바로잡아 thread/turns/list 지원 확인, thread/turns/items/list 미지원, app-server replay/rebuild 비용 제약을 반영했습니다.
Carl Friedrich Gauss이(가) 2일 전에 변경
- 상태을(를) 신규에서 진행(으)로 변경되었습니다.
#944 Bridge 분석 worker 시작.\n\nThread: 019f3668-9e83-7c11-9e57-f384ad11026a\nWorktree: /Users/jeonginkim/.codex/worktrees/69f9/HiveAppII\nBase: origin/codex/redmine-943-protocol / commit bba19ba4\n\n범위: Electron main/preload/app-server adapter의 thread/turns/list bridge 계획 수립. Runtime prepend/state, Transcript trigger/anchor, Virtualizer, Performance gate는 #945-#948로 유지.
Carl Friedrich Gauss이(가) 2일 전에 변경
#944 분석 계획 검토 후 구현 착수 지시.\n\n채택한 방향:\n- appServerSupervisor에 thread/turns/list typed wrapper 추가\n- preload/shared IPC에 bounded Hive API 추가: loadOlderThreadHistoryPage / thread:load-older-history-page\n- Electron main/runtimeSnapshotProvider에서 app-server page를 Hive DTO로 projection\n- renderer는 raw app-server JSON-RPC payload를 직접 다루지 않음\n- 기본 요청은 sortDirection=desc, itemsView=summary\n- thread/turns/list unavailable/unsupported에 한해 thread/read includeTurns:true fallback 허용\n- invalid page shape은 schema drift로 간주하여 fallback하지 않고 bridge error로 노출\n\n명시적 제외:\n- #945 runtime prepend/state merge\n- #946 transcript trigger/anchor restore\n- #947 virtualizer\n- #948 performance gate\n\nWorker: 019f3668-9e83-7c11-9e57-f384ad11026a\n지시: clean detached bba19ba4에서 codex/redmine-944-bridge 브랜치 생성 후 구현.
Carl Friedrich Gauss이(가) 2일 전에 변경
#944 Bridge 구현/검증 완료 및 브랜치 push.\n\n브랜치/커밋:\n- origin/codex/redmine-944-bridge\n- 53c30bce #944 이전 히스토리 페이지 브리지 추가\n\n핵심 구현:\n- appServerSupervisor thread/turns/list typed wrapper 추가\n- preload/shared API: loadOlderThreadHistoryPage / thread:load-older-history-page 추가\n- main IPC 로직을 threadHistoryPageBridge로 분리하여 app-server page 검증, RuntimeThread turn/items projection, attachment preview id 재적용, file-change patch cache capture 수행\n- thread/turns/list malformed success는 bridge error로 노출하고 thread/read fallback하지 않음\n- fallback은 unsupported/unavailable method 오류에 한정, thread not found는 fallback 제외\n- #945 소비 ambiguity 방지를 위해 next/backwards raw cursor와 별도 olderCursor를 DTO에 명시\n\n교차검증 반영:\n- Subagent A/B 모두 scope boundary와 projection 방향은 accept, main IPC fallback/error 테스트 보강은 revise 권고\n- 권고에 따라 electron/threadHistoryPageBridge.behavior.test.ts 추가\n\n검증 통과:\n- npx vitest run electron/threadHistoryPageBridge.behavior.test.ts electron/runtimeSnapshotProvider.behavior.test.ts src/renderer/app-server-supervisor-live.behavior.test.ts electron/securityBoundary.behavior.test.ts\n- npm run typecheck:electron\n- npm run typecheck:renderer\n- npm run lint\n- git diff --check\n\n명시적 제외 유지:\n- #945 runtime prepend/state merge\n- #946 transcript trigger/anchor restore\n- #947 virtualizer\n- #948 performance gate\n\n주의: 아직 main 반영 전 브랜치 상태이므로 Redmine 완료 처리는 main 반영 정책 확인 후 진행.
Carl Friedrich Gauss이(가) 하루 전에 변경
- 완료일을(를) 2026/07/06(으)로 지정되었습니다.
- 상태을(를) 진행에서 완료(으)로 변경되었습니다.
- 진척도을(를) 0에서 100(으)로 변경되었습니다.
Carl Friedrich Gauss이(가) 하루 전에 변경
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).