feat(ui): Expose history truncation controls in the Discussion panel

This commit is contained in:
2026-02-23 11:03:00 -05:00
parent 9e6b740950
commit 94fe904d3f
2 changed files with 37 additions and 0 deletions

15
gui.py
View File

@@ -62,6 +62,15 @@ def get_total_token_usage() -> dict:
usage[k] += u.get(k, 0) or 0
return usage
def truncate_entries(entries: list[dict], max_pairs: int) -> list[dict]:
"""Truncates history to the last N pairs of User/AI messages."""
if max_pairs <= 0:
return []
target_count = max_pairs * 2
if len(entries) <= target_count:
return entries
return entries[-target_count:]
# ------------------------------------------------------------------ comms rendering helpers
@@ -1344,6 +1353,11 @@ class App:
self.disc_entries.clear()
self._rebuild_disc_list()
def cb_disc_truncate(self):
self.disc_entries = truncate_entries(self.disc_entries, 2)
self._rebuild_disc_list()
self._update_status("history truncated")
def cb_disc_collapse_all(self):
for i, entry in enumerate(self.disc_entries):
tag = f"disc_content_{i}"
@@ -1761,6 +1775,7 @@ class App:
dpg.add_button(label="+ Entry", callback=self.cb_disc_append_entry)
dpg.add_button(label="-All", callback=self.cb_disc_collapse_all)
dpg.add_button(label="+All", callback=self.cb_disc_expand_all)
dpg.add_button(label="Truncate", callback=self.cb_disc_truncate)
dpg.add_button(label="Clear All", callback=self.cb_disc_clear)
dpg.add_button(label="Save", callback=self.cb_disc_save)
dpg.add_checkbox(