fix rebase and compaction

This commit is contained in:
Dylan Hurd
2026-03-02 14:10:14 -07:00
parent 2dd562b2f1
commit 15a7addd30
6 changed files with 24 additions and 5 deletions
+3 -3
View File
@@ -771,6 +771,7 @@ impl TurnContext {
.unwrap_or(compact::SUMMARIZATION_PROMPT)
}
#[cfg(test)]
pub(crate) fn to_turn_context_item(&self) -> TurnContextItem {
self.to_turn_context_item_with_approved_prefix_rules(None)
}
@@ -3187,9 +3188,8 @@ impl Session {
self.build_settings_update_items(reference_context_item.as_ref(), turn_context)
.await
};
let turn_context_item = turn_context.to_turn_context_item_with_exec_policy(
self.services.exec_policy.current().as_ref(),
);
let turn_context_item = turn_context
.to_turn_context_item_with_exec_policy(self.services.exec_policy.current().as_ref());
if !context_items.is_empty() {
self.record_conversation_items(turn_context, &context_items)
.await;
@@ -46,6 +46,7 @@ async fn record_initial_history_resumed_bare_turn_context_does_not_hydrate_previ
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -84,6 +85,7 @@ async fn record_initial_history_resumed_hydrates_previous_turn_settings_from_lif
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -745,6 +747,7 @@ async fn record_initial_history_resumed_turn_context_after_compaction_reestablis
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -816,6 +819,7 @@ async fn record_initial_history_resumed_turn_context_after_compaction_reestablis
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -844,6 +848,7 @@ async fn record_initial_history_resumed_aborted_turn_without_id_clears_active_tu
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -949,6 +954,7 @@ async fn record_initial_history_resumed_unmatched_abort_preserves_active_turn_fo
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: current_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -1050,6 +1056,7 @@ async fn record_initial_history_resumed_trailing_incomplete_turn_compaction_clea
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
@@ -1193,6 +1200,7 @@ async fn record_initial_history_resumed_replaced_incomplete_compacted_turn_clear
approval_policy: turn_context.approval_policy.value(),
sandbox_policy: turn_context.sandbox_policy.get().clone(),
network: None,
approved_prefix_rules: None,
model: previous_model.to_string(),
personality: turn_context.personality,
collaboration_mode: Some(turn_context.collaboration_mode.clone()),
+5 -1
View File
@@ -211,7 +211,11 @@ async fn run_compact_task_inner(
new_history.extend(ghost_snapshots);
let reference_context_item = match initial_context_injection {
InitialContextInjection::DoNotInject => None,
InitialContextInjection::BeforeLastUserMessage => Some(turn_context.to_turn_context_item()),
InitialContextInjection::BeforeLastUserMessage => {
Some(turn_context.to_turn_context_item_with_exec_policy(
sess.services.exec_policy.current().as_ref(),
))
}
};
let compacted_item = CompactedItem {
message: summary_text.clone(),
+5 -1
View File
@@ -135,7 +135,11 @@ async fn run_remote_compact_task_inner_impl(
}
let reference_context_item = match initial_context_injection {
InitialContextInjection::DoNotInject => None,
InitialContextInjection::BeforeLastUserMessage => Some(turn_context.to_turn_context_item()),
InitialContextInjection::BeforeLastUserMessage => {
Some(turn_context.to_turn_context_item_with_exec_policy(
sess.services.exec_policy.current().as_ref(),
))
}
};
let compacted_item = CompactedItem {
message: String::new(),
+1
View File
@@ -1401,6 +1401,7 @@ mod tests {
approval_policy: AskForApproval::Never,
sandbox_policy: SandboxPolicy::new_read_only_policy(),
network: None,
approved_prefix_rules: None,
model: "test-model".to_string(),
personality: None,
collaboration_mode: None,
+2
View File
@@ -258,6 +258,7 @@ mod tests {
approval_policy: AskForApproval::Never,
sandbox_policy: SandboxPolicy::DangerFullAccess,
network: None,
approved_prefix_rules: None,
model: "gpt-5".to_string(),
personality: None,
collaboration_mode: None,
@@ -295,6 +296,7 @@ mod tests {
approval_policy: AskForApproval::OnRequest,
sandbox_policy: SandboxPolicy::new_read_only_policy(),
network: None,
approved_prefix_rules: None,
model: "gpt-5".to_string(),
personality: None,
collaboration_mode: None,