mirror of
https://github.com/openai/codex.git
synced 2026-10-21 12:10:06 +00:00
Keep incremental rendering with visualization context (#34217)
## Why Providing an inline visualization context forced every streamed Markdown update to rerender the full response, even when the source contained no visualization directives. ## What changed - Preserve the stable rendered prefix when visualization context is available but no directive is present. - Continue using canonical full rendering when the source contains a visualization directive. ## Testing Added a regression test that verifies directive-free streams match full rendering while advancing the stable source boundary. GitOrigin-RevId: cd70d2ba052db822d474eba8619d04cedf4c0573
This commit is contained in:
@@ -102,7 +102,7 @@ impl StreamingRender {
|
||||
return;
|
||||
}
|
||||
|
||||
if inline_visualization_context.is_some() || raw_source.contains(DIRECTIVE_PREFIX) {
|
||||
if raw_source.contains(DIRECTIVE_PREFIX) {
|
||||
self.recompute(
|
||||
raw_source,
|
||||
width,
|
||||
|
||||
@@ -165,6 +165,40 @@ fn incremental_raw_render_preserves_blank_lines() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn inline_visualization_context_without_directives_keeps_stable_prefix() {
|
||||
let cwd = test_cwd();
|
||||
let context = InlineVisualizationContext::new(&cwd, ThreadId::new())
|
||||
.expect("UUIDv7 thread id should provide a timestamp");
|
||||
let width = Some(80);
|
||||
let mut source = String::new();
|
||||
let mut render = StreamingRender::new();
|
||||
|
||||
for chunk in ["First paragraph.\n\n", "Second paragraph.\n\n"] {
|
||||
source.push_str(chunk);
|
||||
render.append(
|
||||
&source,
|
||||
chunk,
|
||||
width,
|
||||
&cwd,
|
||||
HistoryRenderMode::Rich,
|
||||
Some(&context),
|
||||
);
|
||||
assert_eq!(
|
||||
render.lines,
|
||||
render_source(
|
||||
&source,
|
||||
width,
|
||||
&cwd,
|
||||
HistoryRenderMode::Rich,
|
||||
Some(&context),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
assert!(render.stable_source_len > 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn inline_visualizations_use_canonical_full_render() {
|
||||
let cwd = test_cwd();
|
||||
|
||||
Reference in New Issue
Block a user