Skip to content

Commit c354d53

Browse files
authored
Merge pull request #715 from flyingrobots/task/714-persist-writer-epoch-fencing
Persist filesystem WAL writer epochs
2 parents 9c1d961 + 12a67f6 commit c354d53

9 files changed

Lines changed: 1159 additions & 25 deletions

.ban-nondeterminism-allowlist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,15 @@ std-fs crates/warp-core/src/causal_wal.rs native WAL filesystem adapter pending
1111
std-fs crates/warp-core/src/wsc/store.rs native WSC filesystem store adapter pending extraction to a boundary crate.
1212
std-fs crates/warp-core/src/wsc/view.rs native WSC file-open helper pending extraction to a boundary adapter.
1313
std-fs crates/warp-core/src/causal_wal_tests.rs WAL filesystem fixture I/O only.
14+
std-env crates/warp-core/tests/causal_wal_hardening_tests.rs WAL independent-process fixture environment handoff only.
1415
std-fs crates/warp-core/tests/causal_wal_hardening_tests.rs WAL filesystem fixture I/O only.
1516
std-env crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture temp directory selection only.
1617
std-fs crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture I/O only.
1718
std-process crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture temp directory disambiguation only.
19+
time-instant crates/warp-core/tests/support/child_process.rs bounded independent-process fixture deadline only.
20+
thread-sleep crates/warp-core/tests/support/child_process.rs bounded independent-process fixture polling only.
21+
std-fs crates/warp-core/tests/support/child_process.rs timed-out fixture cleanup only.
22+
std-process crates/warp-core/tests/support/child_process.rs bounded independent-process fixture execution only.
1823
std-env crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture temp directory selection only.
1924
std-fs crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture I/O only.
2025
std-process crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture temp directory disambiguation only.

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@
77

88
### Added
99

10+
- Strict filesystem WAL stores now persist a checksummed writer-epoch ledger
11+
containing the active epoch, its exact latest closed predecessor, and final
12+
LSN and commit-digest evidence. Bounded retention keeps ledger writes and
13+
reopen validation independent of lifetime restart count. An OS-backed writer
14+
lease—not the deterministic chain markers stored in the generic fencing,
15+
process, host, and lease fields—refuses overlapping processes before append.
16+
A recovered trusted host closes only an abandoned epoch under that lease and
17+
derives a fresh, monotonically linked successor. Duplicate, stale, skipped,
18+
regressed, or unfenced epoch chains fail closed. Independent-process
19+
witnesses carry an external-action request, claim, settlement, and
20+
effect-free replay across successive host processes.
1021
- Echo now consumes the exact independently verified Edict
1122
`workspace.patch.applyValidated@1` request through a capability-rooted
1223
single-file patch adapter. The request binds the prior bounded-observation

0 commit comments

Comments
 (0)