Make backlog-scan lanes say what they actually selected

The next repo-local sweep target was ROADMAP #65: backlog-scanning
lanes could stop with prose-only summaries naming roadmap items, but
there was no machine-readable record of which items were chosen,
which were skipped, or whether the lane intended to execute, review,
or no-op. The fix teaches completed lane persistence to extract a
structured selection outcome while preserving the existing quality-
floor and review-verdict behavior for other lanes.

Constraint: Keep selection-outcome extraction on the existing `lane.finished` metadata path instead of inventing a separate event stream
Rejected: Add a dedicated selection event type first | unnecessary for this focused closeout because `lane.finished` already persists structured data downstream can read
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: If backlog-scan summary conventions change later, update `extract_selection_outcome`, its regression test, and the ROADMAP closeout wording together
Tested: cargo fmt --all --check; cargo clippy --workspace --all-targets -- -D warnings; cargo test --workspace; architect review APPROVE after roadmap closeout update
Not-tested: Downstream consumers that may still ignore `lane.finished.data.selectionOutcome`
This commit is contained in:
Yeachan-Heo
2026-04-12 09:54:37 +00:00
parent b5e30e2975
commit 8f53524bd3
3 changed files with 156 additions and 2 deletions

View File

@@ -3,6 +3,8 @@ use std::path::Path;
use std::path::PathBuf;
use std::process::{Command, Output};
use std::sync::atomic::{AtomicU64, Ordering};
use std::thread;
use std::time::Duration;
use std::time::{SystemTime, UNIX_EPOCH};
use runtime::ContentBlock;
@@ -191,6 +193,7 @@ fn resume_latest_restores_the_most_recent_managed_session() {
older
.save_to_path(&older_path)
.expect("older session should persist");
thread::sleep(Duration::from_millis(2));
let mut newer = workspace_session(&project_dir).with_persistence_path(&newer_path);
newer