Skip to content

Commit 4bc4bb7

Browse files
committed
Add per-entity merge audit trail
Adds ResolutionStrategy enum and EntityAudit struct to track how each entity was resolved during merge (unchanged, diffy_merged, inner_merged, conflict variants, etc). Exposed via --audit flag on weave-driver (writes JSON sidecar) and new weave_merge_audit MCP tool.
1 parent 78376e3 commit 4bc4bb7

9 files changed

Lines changed: 205 additions & 39 deletions

File tree

Cargo.lock

Lines changed: 7 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/weave-core/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ sem-core = { git = "https://github.com/Ataraxy-Labs/sem", version = "0.3" }
99
diffy = "0.4"
1010
thiserror = "2"
1111
tempfile = "3"
12+
serde = { version = "1", features = ["derive"] }
1213

1314
[dev-dependencies]
1415
pretty_assertions = "1"

crates/weave-core/src/conflict.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use std::fmt;
2+
use serde::Serialize;
23

34
/// The type of conflict between two branches' changes to an entity.
45
#[derive(Debug, Clone, PartialEq, Eq)]
@@ -384,7 +385,7 @@ fn parse_conflict_header(header: &str) -> (String, String, ConflictComplexity, S
384385
}
385386

386387
/// Statistics about a merge operation.
387-
#[derive(Debug, Clone, Default)]
388+
#[derive(Debug, Clone, Default, Serialize)]
388389
pub struct MergeStats {
389390
pub entities_unchanged: usize,
390391
pub entities_ours_only: usize,

crates/weave-core/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ pub mod region;
66
pub mod validate;
77

88
pub use conflict::{parse_weave_conflicts, ParsedConflict};
9-
pub use merge::{entity_merge, entity_merge_with_registry, MergeResult};
9+
pub use merge::{entity_merge, entity_merge_with_registry, EntityAudit, MergeResult, ResolutionStrategy};
1010
pub use validate::{validate_merge, ModifiedEntity, SemanticWarning};

0 commit comments

Comments
 (0)