[feat] use experimental reasoning summary (#3071)

<img width="1512" height="442" alt="Screenshot 2025-09-02 at 3 49 46 PM"
src="https://github.com/user-attachments/assets/26c3c1cf-b7ed-4520-a12a-8d38a8e0c318"
/>
This commit is contained in:
Anton Panasenko
2025-09-02 18:47:14 -07:00
committed by GitHub
parent 03e2796ca4
commit a93a907c7e
3 changed files with 56 additions and 8 deletions

View File

@@ -191,10 +191,12 @@ impl ChatWidget {
// At the end of a reasoning block, record transcript-only content.
self.full_reasoning_buffer.push_str(&self.reasoning_buffer);
if !self.full_reasoning_buffer.is_empty() {
self.add_to_history(history_cell::new_reasoning_block(
for cell in history_cell::new_reasoning_summary_block(
self.full_reasoning_buffer.clone(),
&self.config,
));
) {
self.add_boxed_history(cell);
}
}
self.reasoning_buffer.clear();
self.full_reasoning_buffer.clear();
@@ -900,16 +902,14 @@ impl ChatWidget {
}
fn add_to_history(&mut self, cell: impl HistoryCell + 'static) {
self.add_boxed_history(Box::new(cell));
}
fn add_boxed_history(&mut self, cell: Box<dyn HistoryCell>) {
if !cell.display_lines(u16::MAX).is_empty() {
// Only break exec grouping if the cell renders visible lines.
self.flush_active_exec_cell();
}
self.app_event_tx
.send(AppEvent::InsertHistoryCell(Box::new(cell)));
}
fn add_boxed_history(&mut self, cell: Box<dyn HistoryCell>) {
self.flush_active_exec_cell();
self.app_event_tx.send(AppEvent::InsertHistoryCell(cell));
}