프로젝트

일반

사용자정보

Actions

개선 #693

완료됨

개선 #689: 롱 호라이즌 채팅·고빈도 스트림 안정화 총괄

[롱 호라이즌 스트림] transcript long-history virtualization·paging·scroll anchoring 강화

개선 #693: [롱 호라이즌 스트림] transcript long-history virtualization·paging·scroll anchoring 강화

Carl Friedrich Gauss이(가) 7일 전에 추가함. 4일 전에 수정됨.

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

100%

추정시간:

설명

배경:

  • 수시간 이상 지속되는 롱 호라이즌 채팅과 고빈도 스트림에서 요청 입력 불가, 이전 작업 확인 곤란, CPU/메모리 상승 위험을 줄이기 위한 안정화 작업이다.
  • Codex app reverse-engineering에서 확인한 힌트: raw delta opt-out, incoming line queue와 overflow fail-safe, requestAnimationFrame 기반 text delta coalescing, 50ms command output batching, output cap/truncation marker, owner/follower patch+revision sync, turn-level virtualization과 scroll anchoring.
  • 목표는 오래된 대화를 잘라내는 것이 아니라, 메모리/CPU 상한을 넘지 않도록 하면서 사용자가 필요한 대화 내용을 계속 열람할 수 있게 하는 것이다.

책임 경계:

  • 긴 대화의 표시/스크롤/이전 turn 로딩/DOM 유지 범위를 담당한다.
  • 이벤트 수신 백프레셔나 delta reducer 큐 구현은 이 일감 범위가 아니다.

구현 범위:

  • 오래된 대화를 삭제하지 않고 cursor pagination과 windowing으로 필요 시 다시 볼 수 있게 한다.
  • turn 단위 virtualization, measured height cache, ResizeObserver/requestAnimationFrame 측정 병합, content-visibility 적용 여부를 점검한다.
  • 사용자가 아래에 있을 때만 bottom pin을 유지하고, 위로 스크롤하면 pending bottom restore를 취소한다.
  • 이전 메시지 로딩 중 scroll position이 튀거나 입력 영역이 밀리는 문제를 방지한다.

완료 조건:

  • 긴 transcript fixture에서 DOM node 수와 렌더 시간 상한을 검증한다.
  • 이전 대화 스크롤/추가 page load/streaming 중 manual scroll 유지 회귀 테스트가 있다.
  • 오래된 turn 열람 가능성과 메모리 상한이 동시에 충족된다.

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

다음 일감에게 막혀 있음: 개선 #691: [롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용완료정인 김2026/06/302026/07/03

Actions
다음 일감에게 막혀 있음: 개선 #692: [롱 호라이즌 스트림] command/process output 전용 buffer와 truncation 표시 분리완료정인 김2026/06/302026/07/03

Actions
다음 일감의 해결을 막고 있음: 개선 #694: [롱 호라이즌 스트림] 고빈도 스트림 성능 시나리오·계측·회귀 게이트 구축완료Carl Friedrich Gauss2026/06/302026/07/03

Actions

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

  • 완료일을(를) 2026/07/02(으)로 지정되었습니다.
  • 시작일을(를) 2026/06/30에서 2026/07/02(으)로 변경되었습니다.
  • 다음 일감을 우선 진행:개선 #691: [롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용이(가) 추가되었습니다.

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

  • 다음 일감을 우선 진행:개선 #692: [롱 호라이즌 스트림] command/process output 전용 buffer와 truncation 표시 분리이(가) 추가되었습니다.

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

  • 다음에 진행할 일감:개선 #694: [롱 호라이즌 스트림] 고빈도 스트림 성능 시나리오·계측·회귀 게이트 구축이(가) 추가되었습니다.

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

  • 다음 일감을 우선 진행: 값이 지워졌습니다. (개선 #691: [롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용)

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

  • 다음 일감을 우선 진행: 값이 지워졌습니다. (개선 #692: [롱 호라이즌 스트림] command/process output 전용 buffer와 truncation 표시 분리)

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

  • 다음에 진행할 일감: 값이 지워졌습니다. (개선 #694: [롱 호라이즌 스트림] 고빈도 스트림 성능 시나리오·계측·회귀 게이트 구축)

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

  • 다음 일감에게 막혀 있음:개선 #691: [롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용이(가) 추가되었습니다.

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

  • 다음 일감에게 막혀 있음:개선 #692: [롱 호라이즌 스트림] command/process output 전용 buffer와 truncation 표시 분리이(가) 추가되었습니다.

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

  • 다음 일감의 해결을 막고 있음:개선 #694: [롱 호라이즌 스트림] 고빈도 스트림 성능 시나리오·계측·회귀 게이트 구축이(가) 추가되었습니다.

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

  • 완료일 값이 지워졌습니다. (2026/07/02)
  • 시작일을(를) 2026/07/02에서 2026/06/30(으)로 변경되었습니다.

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

  • 상태을(를) 신규에서 진행(으)로 변경되었습니다.
  • 담당자을(를) 정인 김에서 Carl Friedrich Gauss(으)로 변경되었습니다.

작업을 시작합니다.

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

[#689 / #693 progress] transcript long-history windowing and scroll anchoring integrated on branch codex/redmine-689-long-horizon-stream.

Commit: b3662390 #693 긴 transcript windowing과 scroll anchoring 강화
CodeCommit: https://ap-northeast-2.console.aws.amazon.com/codesuite/codecommit/repositories/hive-x-electron/commit/b3662390?region=ap-northeast-2

Summary:

  • TranscriptView now renders a bounded tail window by default and lets users reveal older turn groups with the top button or near-top scroll.
  • Older-history reveal preserves scroll anchoring by compensating for prepended content height.
  • Window state resets across thread ids and uses an internal conversation ref, so SubagentPanel/no external ref paths keep click-reveal anchoring.
  • Active new-turn groups and the first batch approval target are pinned into the rendered window when they would otherwise fall outside the tail.
  • App expands the initial transcript window for saved non-sticky manual scroll restore.

Verification:

  • npx vitest run src/renderer/components/TranscriptView.behavior.test.tsx -> PASS, 128 tests.
  • npx vitest run src/renderer/App.conversation-scroll.behavior.test.tsx -> PASS, 17 tests.
  • npx vitest run src/renderer/App.behavior.test.tsx src/renderer/App.conversation-scroll.behavior.test.tsx src/renderer/components/TranscriptView.behavior.test.tsx -> PASS, 459 tests.
  • npm run typecheck -> PASS.
  • targeted ESLint -> PASS.
  • git diff --check -> PASS.
  • npm run ci:production -> PASS: lint, typecheck, 148 Vitest files / 2006 tests, renderer build, fixture validation, package-config validation; signing check skipped because HIVE_RELEASE_BUILD is not enabled.

Cross-check:

  • Two read-only cross-verify passes requested fixes for thread switch window reset, hidden active new-turn rendering, click reveal anchoring without external refs, pending approval pinning, and saved manual scroll restore. All were fixed with regression tests.

Completion remains deferred until the final branch/main-reflected closeout step for #689.

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

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

내보내기 PDF Atom