Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a69aec2
context: Add doctor mutation-scope repair plan
davidabram Sep 20, 2026
466be5e
tests: Extract hook and setup tests into dedicated modules
davidabram Sep 20, 2026
69cf4b1
setup: Refactor setup service into focused modules
davidabram Sep 20, 2026
ae87fe5
runtime: Extract hook processing into focused modules
davidabram Sep 20, 2026
03832fe
hooks: Refactor mutation scope adapters into focused modules
davidabram Sep 20, 2026
f1b0301
runtime: Fix OpenCode mutation scope recovery
davidabram Sep 20, 2026
dcab5ab
spec: Add formal model for doctor recovery protocol
davidabram Sep 21, 2026
ba92c25
hooks: Extract shared process-owner evidence from Pi
davidabram Sep 21, 2026
4fd6db3
runtime: Implement safe OpenCode PendingStart repair
davidabram Sep 21, 2026
818ee7b
claude-mutation-scope: Add durable abandonment evidence and repair
davidabram Sep 21, 2026
c7fd589
runtime: Resolve worktree root before capturing Git snapshots
davidabram Sep 21, 2026
370b999
doctor: Add mutation-scope repair orchestration
davidabram Sep 21, 2026
202a9f3
doctor: Fix mutation-scope remediation across output surfaces
davidabram Sep 21, 2026
b5949c2
doctor: Prevent duplicate mutation-scope fix results
davidabram Sep 21, 2026
98bcbe0
doctor: Add cross-adapter mutation-scope recovery regression coverage
davidabram Sep 21, 2026
58c0bff
release: Bump version to 0.4.0-pre-alpha-v7
davidabram Sep 21, 2026
f405aa7
mutation_trace: Reduce Quint MBT sample count to bound memory
davidabram Sep 30, 2026
399073c
tests: Stabilize mutation-trace and doctor service tests
davidabram Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0-pre-alpha-v6
0.4.0-pre-alpha-v7
2 changes: 1 addition & 1 deletion cli/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "shared-context-engineering"
version = "0.4.0-pre-alpha-v6"
version = "0.4.0-pre-alpha-v7"
edition = "2021"
description = "Shared Context Engineering CLI"
license = "Apache-2.0"
Expand Down
33 changes: 30 additions & 3 deletions cli/src/services/doctor/fixes.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,42 @@
use super::types::{DoctorFixResultRecord, FixResult, ProblemFixability};
use super::types::{
DoctorFixResultRecord, DoctorProblem, FixResult, IntegrationTarget, ProblemCategory,
ProblemFixability,
};
use super::HookDoctorReport;

pub(super) fn build_manual_fix_results(report: &HookDoctorReport) -> Vec<DoctorFixResultRecord> {
pub(super) fn build_manual_fix_results(
report: &HookDoctorReport,
attempted_mutation_scope_targets: &[IntegrationTarget],
) -> Vec<DoctorFixResultRecord> {
report
.problems
.iter()
.filter(|problem| problem.fixability == ProblemFixability::ManualOnly)
.filter(|problem| {
!owned_by_attempted_mutation_scope_repair(problem, attempted_mutation_scope_targets)
})
.map(|problem| DoctorFixResultRecord {
category: problem.category,
outcome: FixResult::Manual,
detail: format!("{} Manual remediation is still required.", problem.summary),
detail: manual_fix_detail(problem),
})
.collect()
}

fn owned_by_attempted_mutation_scope_repair(
problem: &DoctorProblem,
attempted_mutation_scope_targets: &[IntegrationTarget],
) -> bool {
problem.category == ProblemCategory::MutationScopeHealth
&& problem
.mutation_scope_target
.is_some_and(|target| attempted_mutation_scope_targets.contains(&target))
}

fn manual_fix_detail(problem: &DoctorProblem) -> String {
if problem.category == ProblemCategory::MutationScopeHealth {
problem.remediation.clone()
} else {
format!("{} Manual remediation is still required.", problem.summary)
}
}
Loading
Loading