Actions
개선 #691
완료됨개선 #689: 롱 호라이즌 채팅·고빈도 스트림 안정화 총괄
[롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용
개선 #691:
[롱 호라이즌 스트림] renderer 텍스트 delta 병합 큐와 순서 보존 적용
시작일:
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 상한을 넘지 않도록 하면서 사용자가 필요한 대화 내용을 계속 열람할 수 있게 하는 것이다.
책임 경계:
- assistant message, plan, reasoning text 등 사용자에게 보이는 텍스트 delta를 renderer state에 반영하는 큐를 담당한다.
- command/process output 대량 로그 처리는 별도 하위 일감에서 다룬다.
구현 범위:
- conversationId/turnId/itemId/target 단위로 delta를 병합하는 frame queue를 도입한다.
- visible 상태에서는 requestAnimationFrame, background/비브라우저 상황에서는 bounded timeout fallback을 사용한다.
- item/completed, turn/completed, error 같은 semantic event는 남은 delta가 먼저 flush된 뒤 적용되도록 drainBefore 계열 순서 보존을 둔다.
- reducer/store 업데이트 횟수가 delta 개수에 선형으로 증가하지 않게 한다.
완료 조건:
- 초당 수백~수천 delta 입력에서도 state commit 수가 프레임/시간 기준으로 제한된다.
- 완료 이벤트가 텍스트 delta를 앞질러 최종 메시지가 깨지는 회귀가 없다.
- agentMessage/plan/reasoningSummary/reasoningContent별 keying 테스트가 있다.
Actions