fix(compaction): configurable summarizer tool_choice; wider overflow detection
Port of upstream grok-build 0.2.105 + 0.2.118. - CompactionToolChoice (auto default | none), resolved env KIGI_COMPACTION_TOOL_CHOICE > [features].compaction_tool_choice > remote settings. Some OpenAI-compatible servers reject tool_choice:"none" with tools attached, failing every long-session compaction; auto keeps them working (the summarization prompt already forbids tool use). Threaded from agent + subagent spawn through CompactionConfig into generate_session_compact; the Responses gate counts hosted tools too, so a hosted-only request still carries the configured choice. - is_context_length_error recognizes the "current message ... exceeds budget" phrasing, so that overflow is Fatal instead of burning the retry budget on a deterministic failure. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KSy9S31pZNWXtRZNVJ1sDf
This commit is contained in:
1 parent
6a4bff0d45
commit
1ae803519e
18 files changed
+190
-13
No files matched your search
@@ -112,6 +112,7 @@ pub(crate) async fn spawn_session_actor(
|
||||
system_prompt_label: String,
|
||||
compaction_mode: kigi_chat_state::CompactionMode,
|
||||
compaction_verbatim_input: bool,
|
||||
compaction_tool_choice: crate::util::config::CompactionToolChoice,
|
||||
two_pass_enabled: bool,
|
||||
buffering_settings: Option<BufferingSettings>,
|
||||
origin_client: Option<crate::http::OriginClientInfo>,
|
||||
@@ -1032,6 +1033,7 @@ pub(crate) async fn spawn_session_actor(
|
||||
previous_model: std::cell::Cell::new(None),
|
||||
compaction_mode,
|
||||
verbatim_input: compaction_verbatim_input,
|
||||
tool_choice: compaction_tool_choice,
|
||||
prefire: crate::session::compaction_config::PrefireState::default(),
|
||||
prefix_released: std::sync::atomic::AtomicBool::new(false),
|
||||
},
|
||||
@@ -1535,6 +1537,7 @@ pub(crate) async fn spawn_session_on_thread(
|
||||
system_prompt_label: String,
|
||||
compaction_mode: kigi_chat_state::CompactionMode,
|
||||
compaction_verbatim_input: bool,
|
||||
compaction_tool_choice: crate::util::config::CompactionToolChoice,
|
||||
two_pass_enabled: bool,
|
||||
buffering_settings: Option<BufferingSettings>,
|
||||
origin_client: Option<crate::http::OriginClientInfo>,
|
||||
@@ -1679,6 +1682,7 @@ pub(crate) async fn spawn_session_on_thread(
|
||||
system_prompt_label,
|
||||
compaction_mode,
|
||||
compaction_verbatim_input,
|
||||
compaction_tool_choice,
|
||||
two_pass_enabled,
|
||||
buffering_settings,
|
||||
origin_client,
|
||||
|
||||
Reference in new issue
Block a user