feat: committedGeneration capability + pinned durability/stability contracts
- storage.committedGeneration(): the committed watermark exposed on the fact-scan capability, so a provider compares its stamp's sourceGeneration against the store's truth without parsing the private manifest format (the capability source now carries both the live fact log and the committed closure). - Pinned contract tests: fsync-before-ack (transact passes today; the single-op path is pinned via it.fails as the documented target — group commit must become LATENCY batching, ack waiting on the shared fsync, never durability skipping; the pin flips red when that lands so there is no cliff to discover) and scan-stability-under-rotation (a scan snapshot yields exactly its facts — no gaps, duplicates, or bleed-in — while segments rotate beneath it; the reclaim-during-scan variant lands with fact compaction, which does not exist yet). - FactLog accepts a rotateBytes option so tests exercise real rotation.
This commit is contained in:
parent
e4f37cd32b
commit
d1ecee10f0
6 changed files with 177 additions and 11 deletions
|
|
@ -24,6 +24,14 @@ Small additive follow-up to 8.4.0, from the native accelerator's first consumpti
|
|||
providers run literally the same verification function, never a synchronized copy.
|
||||
- **Rollup stamp invariants accept strings** (`number | string`) — content fingerprints such as a
|
||||
per-tree SHA-256 are valid invariant values; a type mismatch reads as incoherence, never a pass.
|
||||
- **`storage.committedGeneration()`** — the committed watermark as a capability, so a provider
|
||||
compares its stamp's `sourceGeneration` against the store's truth without parsing the private
|
||||
manifest format.
|
||||
- **Two durability/stability contracts pinned in the suite:** fsync-before-ack (holds for
|
||||
`transact()` today; the single-op path is pinned as the documented future target — group commit
|
||||
becomes latency batching, never durability skipping) and scan-stability-under-rotation (a scan
|
||||
snapshot yields exactly its facts — no gaps, duplicates, or bleed-in — while segments rotate
|
||||
beneath it).
|
||||
|
||||
No behavior change for applications; all additions.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue