7d00ae758e
feat(coordination): apply-under-drift (WP-0008 T4)
...
OverlayEngine.apply: read-only target → KEPT_DRAFT; base_rev==current →
fast-forward write-through (APPLIED, MERGE_DECIDED closes overlay); drift →
REFUSED_DRIFT (no clobber, I-5). 5 tests green, pyflakes clean. (blueprint §8.6)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 13:25:10 +02:00
715ab1ca00
feat(coordination): patch rendering (unified diff) (WP-0008 T3)
...
render_patch(overlay, base_body) → Patch (pure difflib unified diff, target-
labelled); is_empty when unchanged. 3 tests green, pyflakes clean. (ADR-05)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 12:32:47 +02:00
d797bc5ee4
feat(coordination): Overlay model + OverlayEngine.draft (WP-0008 T2)
...
Overlay value type (id, target, base_rev, body, state) recorded as an
OVERLAY_CREATED decision-log event (coordination-canonical); get()/open_overlays()
reconstruct from the fold. 4 tests green, pyflakes clean. (ADR-05, blueprint §8.2)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 11:56:53 +02:00
24108b65aa
feat(coordination): event-sourced DecisionLog keystone (WP-0007 T5)
...
Append-only, totally-ordered-per-space decision log (in-process append authority;
git+lease later) with event types overlay/binding/alias/merge/fork, and a derived
fold to CoordinationState (aliases LWW, transitively-merged equivalence groups,
open overlays). derived = f(log); read-your-writes. 6 tests green. (blueprint §8.1)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 09:45:11 +02:00