rony-chat-bot/internal/agent
Victor Hugo Vargas 7393812fba feat(agent): auto-compact long conversations in the runner
Runner.Compact folds the older portion of history into a single
system-role summary when the previous turn's input tokens cross
threshold_ratio × MaxContextWindow. When summarization fails, the
runner falls back to truncateToBudget so a flaky summarize call never
breaks the user's request.

EstimatePromptTokens / totalPromptTokens give a conservative count
(roughly 3 chars per token) used by both the compaction trigger and
BuildMessages' new limitRAGContext / fitHistory helpers to cap the
prompt inside the provider's reported window before the request goes
out. Covers the first-turn case where no usage has been reported yet.

Adds runner_compaction_test.go with table-driven coverage for the
disabled, below-threshold, short-history, unknown-window, fallback
and first-stream cases, plus a regression for the RAG-context trimmer.
2026-07-18 00:08:05 -07:00
..
client.go feat: bootstrap rony-chat-bot Go module 2026-07-17 00:56:06 -07:00
runner.go feat(agent): auto-compact long conversations in the runner 2026-07-18 00:08:05 -07:00
runner_compaction_test.go feat(agent): auto-compact long conversations in the runner 2026-07-18 00:08:05 -07:00
runner_test.go feat: bootstrap rony-chat-bot Go module 2026-07-17 00:56:06 -07:00
testhelpers_test.go feat: bootstrap rony-chat-bot Go module 2026-07-17 00:56:06 -07:00