Centralize synchronous Guardian context preparation (#57494)

## What changed

- Retain captured root conversation sources until synchronous preparation applies request limits. Keep asynchronous snapshots limited to the bounded messages.
- Move approval-reason truncation and tool-description escaping and truncation from composition into preparation.
- Extract synchronous image preparation and admission into `guardian-context`, preserving the prompt token cap and model context-window checks.

GitOrigin-RevId: d3a864c77d8f16bd3e77df436d80c4d2738c43cc
This commit is contained in:
ioanbudea-OAI
2026-10-27 15:53:50 +00:00
committed by copyberry
parent 6b56106ed9
commit 603a7baff0
18 changed files with 307 additions and 162 deletions
@@ -201,6 +201,7 @@ fn registered_transcript_filters_roles_and_preserves_node_repl_tool_attribution(
history: &history,
transcript: &config,
root_conversation: &[],
root_conversation_candidates: None,
trusted_user_answers: &[],
planned_action: None,
permissions: None,
@@ -290,6 +291,7 @@ fn excluded_tool_calls_still_attribute_included_results() {
history: &history,
transcript: &config,
root_conversation: &[],
root_conversation_candidates: None,
trusted_user_answers: &[],
planned_action: None,
permissions: None,
@@ -404,6 +406,7 @@ fn outputs_with_call_ids_or_explicit_names_are_retained() {
history: &history,
transcript: &config,
root_conversation: &[],
root_conversation_candidates: None,
trusted_user_answers: &[],
planned_action: None,
permissions: None,
@@ -464,6 +467,7 @@ fn reused_registry_applies_current_history_sources_and_entry_limits() {
history: &history,
transcript: &config,
root_conversation: &[],
root_conversation_candidates: None,
trusted_user_answers: &[],
planned_action: None,
permissions: None,
@@ -506,6 +510,7 @@ fn reused_registry_applies_current_history_sources_and_entry_limits() {
history: &history,
transcript: &config,
root_conversation: &[],
root_conversation_candidates: None,
trusted_user_answers: &[],
planned_action: None,
permissions: None,