fix: preserve Memory consolidation enablement

This commit is contained in:
2026-09-04 23:53:59 +09:00
parent 12646b6ca0
commit 4df277c81f
5 changed files with 142 additions and 7 deletions
@@ -526,7 +526,9 @@ impl FeatureBackgroundTask for MemoryLifecycleTask {
.await;
if !cancellation.is_cancelled() {
context.generation_fence.ensure_current()?;
self.request_consolidation().await;
if self.config.profile.consolidation.request_enabled {
self.request_consolidation().await;
}
}
extraction
}
@@ -1323,6 +1325,36 @@ permission = "write"
);
}
#[tokio::test]
async fn lifecycle_task_does_not_request_consolidation_when_profile_disables_it() {
let client = ScriptClient::new(Vec::new());
let extension_writes = Arc::new(Mutex::new(Vec::new()));
let (event_tx, _) = broadcast::channel(16);
let workspace_client = Arc::new(RecordingWorkspaceClient::default());
let mut interrupted = capture(2, 250);
interrupted.run_exit = CommittedRunExit::Interrupted;
let mut task = test_task(
interrupted,
Box::new(client),
extension_writes,
event_tx,
workspace_client.clone(),
);
task.config.profile.consolidation.request_enabled = false;
run_background_task(task).await;
let requests = workspace_client.requests.lock().unwrap();
assert!(
!requests.iter().any(|request| {
request
.body
.as_deref()
.is_some_and(|body| body == "{\"force\":false}")
}),
"recorded requests: {requests:?}"
);
}
fn internal_result(
lifecycle: WorkerRunResult,
) -> Result<InternalWorkerResult, InternalWorkerError> {