feat(tui): pace catch-up stream chunking with hysteresis (#10461)

## Summary
- preserve baseline streaming behavior (smooth mode still commits one
line per 50ms tick)
- extract adaptive chunking policy and commit-tick orchestration from
ChatWidget into `streaming/chunking.rs` and `streaming/commit_tick.rs`
- add hysteresis-based catch-up behavior with bounded batch draining to
reduce queue lag without bursty single-frame jumps
- document policy behavior, tuning guidance, and debug flow in rustdoc +
docs

## Testing
- just fmt
- cargo test -p codex-tui
This commit is contained in:
Josh McKinney
2026-02-03 15:01:51 -08:00
committed by GitHub
parent 750ebe154d
commit aec58ac29b
14 changed files with 1182 additions and 37 deletions

View File

@@ -17,7 +17,6 @@
use std::io::Result;
use std::sync::Arc;
use std::time::Duration;
use crate::chatwidget::ActiveCellTranscriptKey;
use crate::history_cell::HistoryCell;
@@ -299,7 +298,7 @@ impl PagerView {
}
}
tui.frame_requester()
.schedule_frame_in(Duration::from_millis(16));
.schedule_frame_in(crate::tui::TARGET_FRAME_INTERVAL);
Ok(())
}