You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [14.6.0] — 2026-03-16
11
+
12
+
### Added
13
+
14
+
-**Working-set overlay write API** — Added `WarpGraph.createWorkingSetPatch()` and `WarpGraph.patchWorkingSet()` so a pinned working set can diverge through its own overlay patch-log while reusing the standard patch builder and mutation kernel.
15
+
16
+
### Changed
17
+
18
+
-**Working-set materialization now replays base plus overlay** — `materializeWorkingSet()` now reduces the pinned base observation together with the current overlay patch-log, and `getWorkingSet()` / `listWorkingSets()` reconcile overlay metadata from the overlay ref so callers see the current head and patch count.
19
+
-**Working-set documentation now reflects real overlay behavior** — Updated `README.md`, `ARCHITECTURE.md`, `docs/WORKING_SETS.md`, `docs/GUIDE.md`, `docs/TTD.md`, and `docs/CLI_GUIDE.md` so the docs describe overlay patch logs, the library-first write API, and the CLI boundary accurately instead of talking about permanently empty overlays.
20
+
21
+
### Fixed
22
+
23
+
-**Dropping a working set now removes its overlay ref too** — `dropWorkingSet()` now cleans up both the descriptor ref and the overlay patch-log ref, preventing orphaned overlay heads from remaining reachable after a working set is deleted.
-**Working-set foundation is now part of the substrate** — `WarpGraph` now exposes explicit coordinate materialization plus durable working-set descriptors through `materializeCoordinate()`, `createWorkingSet()`, `getWorkingSet()`, `listWorkingSets()`, `dropWorkingSet()`, and `materializeWorkingSet()`. Working sets pin a frontier plus optional Lamport ceiling without assuming a Git worktree or making cached materializations authoritative.
17
-
-**The main CLI now has a top-level `working-set` family** — `git warp working-set create|list|show|materialize|drop` manages pinned working-set descriptors directly from the main package, with no extra package to version or keep in sync.
18
-
-**TTD stays read-only and architecture stays hex-clean** — the debugger remains a thin inspection family (`debug ...` + `seek`), while durable coordinate management lives beside it as a separate substrate family. This keeps “debug” from becoming a side-effecting mutation channel.
19
-
-**Working-set docs are now first-class** — [docs/WORKING_SETS.md](docs/WORKING_SETS.md), [ARCHITECTURE.md](ARCHITECTURE.md), [docs/GUIDE.md](docs/GUIDE.md), and [docs/CLI_GUIDE.md](docs/CLI_GUIDE.md) now document the pinned-coordinate model, the non-authoritative cache boundary, and the CLI/API contract together.
16
+
-**Working sets can now diverge through overlay patch logs** — `WarpGraph` now exposes `createWorkingSetPatch()` and `patchWorkingSet()` so a working set can continue from its pinned base observation through a separate overlay ref, while live writer refs stay untouched.
17
+
-**Working-set materialization now replays base plus overlay** — `materializeWorkingSet()` and `getWorkingSet()` now reflect the current overlay patch-log head and replay the full working-set view instead of treating overlays as empty identity only.
18
+
-**The working-set architecture stays hex-clean** — overlay writes reuse the existing patch builder and mutation kernel rather than introducing a second ad hoc working-set mutation engine.
19
+
-**Docs now describe the real substrate boundary** — [docs/WORKING_SETS.md](docs/WORKING_SETS.md), [ARCHITECTURE.md](ARCHITECTURE.md), [docs/GUIDE.md](docs/GUIDE.md), and [docs/CLI_GUIDE.md](docs/CLI_GUIDE.md) now explain the split between descriptor lifecycle in the CLI and overlay writes in the library API.
20
20
21
21
See the [full changelog](CHANGELOG.md) for complete release details.
22
22
@@ -72,7 +72,7 @@ If you are new to git-warp, start with the **[Guide](docs/GUIDE.md)**. For deepe
72
72
-**[Architecture](ARCHITECTURE.md)**: Deep dive into the hexagonal "Ports and Adapters" design.
73
73
-**[CLI Guide](docs/CLI_GUIDE.md)**: Command-by-command reference with examples, flags, and output formats.
74
74
-**[Time Travel Debugger](docs/TTD.md)**: Architecture and scope of the thin debugger CLI surface.
75
-
-**[Working Sets](docs/WORKING_SETS.md)**: Pinned observation coordinates, empty-overlay v1 semantics, and the working-set API/CLI surface.
75
+
-**[Working Sets](docs/WORKING_SETS.md)**: Pinned observation coordinates, overlay patch-log semantics, and the working-set API/CLI surface.
76
76
-**[Protocol Specs](docs/specs/)**: Binary formats for Audit Receipts, Content Attachments, and BTRs.
77
77
-**[ADR Registry](adr/)**: Architectural Decision Records (e.g., edge-property internal canonicalization).
78
78
-**[Cookbook](examples/)**: Functional examples of Event Sourcing, Pathfinding, and Multi-Writer setups.
Copy file name to clipboardExpand all lines: docs/CLI_GUIDE.md
+20-4Lines changed: 20 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -707,7 +707,7 @@ The `working-set` family creates and manages durable descriptors for explicit ob
707
707
- the current frontier snapshot
708
708
- an optional Lamport ceiling
709
709
- optional owner/scope/lease metadata
710
-
- an empty overlay identity for future evolution
710
+
- an overlay identity and patch-log ref for future divergent writes
711
711
712
712
This is **not** part of the read-only Time Travel Debugger family. `working-set` creates durable descriptor refs, while TTD only inspects substrate facts.
This always replays the pinned coordinate, even if the live frontier has advanced since the descriptor was created.
767
+
This always replays the pinned coordinate plus any overlay patches already committed through the library API, even if the live frontier has advanced since the descriptor was created.
Copy file name to clipboardExpand all lines: docs/WORKING_SETS.md
+19-9Lines changed: 19 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Working Sets
2
2
3
-
**Status:** v1 foundation active.
3
+
**Status:** v1 substrate active.
4
4
5
5
Working sets give git-warp a durable way to pin explicit observation coordinates without assuming a Git worktree, a browser UI, or higher-level XYPH semantics.
6
6
@@ -13,23 +13,23 @@ A working set is a durable descriptor that records:
13
13
- pinned frontier snapshot
14
14
- optional Lamport ceiling
15
15
- optional owner/scope/lease metadata
16
-
- overlay identity for future evolution
16
+
- overlay identity plus a patch-log ref for divergent writes
17
17
18
-
In v1, the overlay exists only as identity:
18
+
A newly created working set still starts with an empty overlay:
19
19
20
20
-`overlay.kind = patch-log`
21
21
-`overlay.headPatchSha = null`
22
22
-`overlay.patchCount = 0`
23
23
24
-
That means a newly created working set reads exactly like its base observation.
24
+
That means a newly created working set reads exactly like its base observation until an overlay patch is committed.
The CLI manages descriptor lifecycle and replay. Overlay writes are available through the library API, not through a separate working-set patch DSL in the CLI.
104
+
94
105
`working-set` is intentionally a top-level family rather than a `debug` subcommand because it creates durable descriptor refs.
95
106
96
107
## Relationship to TTD
97
108
98
109
The Time Travel Debugger stays read-only:
99
110
100
111
-`seek` and `debug ...` inspect substrate facts
101
-
-`working-set ...`pins reusable coordinates
112
+
-`working-set ...`manages durable coordinates and overlay patch logs
102
113
103
-
That boundary keeps the debugger from turning into a mutation channel.
114
+
That boundary keeps the debugger from turning into a mutation channel while still letting higher layers build real fork/worldline behavior on top of working sets.
0 commit comments