generated from coulomb/repo-seed
feat(adapters): writable FolderAdapter + positive write conformance (WP-0008 T1)
FolderAdapter(writable=True) declares WRITE+PER_PAGE, implements write() and current_rev() (mtime token for drift detection). Conformance gains a content-preserving positive write probe for WRITE-claiming adapters. 5 tests green, full suite green, pyflakes clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ created: "2026-06-15"
|
||||
updated: "2026-06-15"
|
||||
depends_on:
|
||||
- SHARD-WP-0007
|
||||
state_hub_workstream_id: "12bed418-39d6-47fa-a359-ff04bae6ec99"
|
||||
---
|
||||
|
||||
# SHARD-WP-0008 — Write path
|
||||
@@ -41,8 +42,9 @@ propagation, network API, lossy native-syntax overlays. Those are later.
|
||||
|
||||
```task
|
||||
id: SHARD-WP-0008-T1
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "80492f8e-125c-4015-b3c0-821fbec038e0"
|
||||
```
|
||||
|
||||
Make `FolderAdapter` optionally **writable** (`writable=True`): declare `WRITE` +
|
||||
@@ -58,6 +60,7 @@ folder still rejects write; conformance passes for both.
|
||||
id: SHARD-WP-0008-T2
|
||||
status: todo
|
||||
priority: high
|
||||
state_hub_task_id: "cc6bf9a3-667d-468d-972d-dae51931a657"
|
||||
```
|
||||
|
||||
`coordination/overlay.py`: an `Overlay` value type (id, target identity, base_rev, body, state)
|
||||
@@ -71,6 +74,7 @@ overlays. Tests: draft recorded + retrievable via fold; overlay id stable.
|
||||
id: SHARD-WP-0008-T3
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "90d98c16-ed3b-414f-802c-b0400eca6ede"
|
||||
```
|
||||
|
||||
Render an overlay as a reviewable **patch** (a `Patch` with a unified diff of base→overlay body,
|
||||
@@ -83,6 +87,7 @@ empty patch when unchanged.
|
||||
id: SHARD-WP-0008-T4
|
||||
status: todo
|
||||
priority: high
|
||||
state_hub_task_id: "2a0179b1-802e-44e6-883d-9f1babefee80"
|
||||
```
|
||||
|
||||
`OverlayEngine.apply(overlay_id)` with §8.6 semantics: compare overlay `base_rev` to the
|
||||
@@ -97,6 +102,7 @@ Tests: ff apply mutates the shard; drift refuses; read-only keeps draft.
|
||||
id: SHARD-WP-0008-T5
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "4536d74f-3860-4b4c-82d2-e8d20e6e2125"
|
||||
```
|
||||
|
||||
When resolving a page that has an **open overlay**, surface it: the read reflects
|
||||
@@ -110,6 +116,7 @@ overlay. Tests: page with a draft reads with overlay_state DRAFT; applied/none r
|
||||
id: SHARD-WP-0008-T6
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "ab01fffb-61ad-416c-9f13-fdfbfd503153"
|
||||
```
|
||||
|
||||
Add `InformationSpace.edit(name, body)` (write-through if the resolved shard supports WRITE,
|
||||
|
||||
Reference in New Issue
Block a user