From 024ceb593aeeb1c45556c3ebfe41c191c484a069 Mon Sep 17 00:00:00 2001 From: Leif Date: Fri, 24 Jul 2026 15:29:44 -0600 Subject: [PATCH] fix: lifecycle performance cliffs in change check/list/correct-owner (closes #439) --- src/commands/change.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/commands/change.rs b/src/commands/change.rs index 1931ea02..04d42742 100644 --- a/src/commands/change.rs +++ b/src/commands/change.rs @@ -55,12 +55,17 @@ pub fn cmd_change(root: &Path, action: ChangeAction, format: OutputFormat) { } => change::add_supersedes_obligation(root, &id, &predecessor, &path, &module, &digest) .and_then(|record| print_record(root, &record, format, false)), ChangeAction::List => { + let _scope = change::begin_change_read_scope(root); print_records(root, &change::list_changes(root), format); Ok(()) } - ChangeAction::Show { id } => change::load_change(root, &id) - .and_then(|record| print_record(root, &record, format, true)), + ChangeAction::Show { id } => { + let _scope = change::begin_change_read_scope(root); + change::load_change(root, &id) + .and_then(|record| print_record(root, &record, format, true)) + } ChangeAction::Status { id } => { + let _scope = change::begin_change_read_scope(root); if let Some(id) = id { change::load_change(root, &id) .and_then(|record| print_record(root, &record, format, false)) @@ -232,6 +237,7 @@ pub fn cmd_change(root: &Path, action: ChangeAction, format: OutputFormat) { }) } ChangeAction::Check => { + let _scope = change::begin_change_read_scope(root); let report = change::check_project(root); let passed = report.errors.is_empty(); match format {