@peac/capture-node 0.10.13 → 0.10.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ const session = createCaptureSession({
|
|
|
33
33
|
## Durability Contract
|
|
34
34
|
|
|
35
35
|
- **`append()`** writes to the OS page cache (no fsync). Fast, but not crash-safe on its own.
|
|
36
|
-
- **`commit()`** calls fsync
|
|
36
|
+
- **`commit()`** calls fsync: the explicit durability point. Entries written before the last `commit()` survive crashes. Entries after may be lost.
|
|
37
37
|
- **Auto-commit timer** (default 5s) calls `commit()` periodically when dirty. Prevents long unflushed windows. Set `autoCommitIntervalMs: 0` to disable.
|
|
38
38
|
|
|
39
39
|
### Commit Ordering
|
|
@@ -43,12 +43,12 @@ When used with a dedupe index:
|
|
|
43
43
|
1. Spool `commit()` first (authoritative evidence log)
|
|
44
44
|
2. Dedupe `commit()` second (best-effort optimization index)
|
|
45
45
|
|
|
46
|
-
If dedupe commit fails after spool commit, worst case is re-emitting some receipts after restart. No evidence is lost. The dedupe index is disposable
|
|
46
|
+
If dedupe commit fails after spool commit, worst case is re-emitting some receipts after restart. No evidence is lost. The dedupe index is disposable: it can be deleted and rebuilt from the spool.
|
|
47
47
|
|
|
48
48
|
## Corruption Boundaries
|
|
49
49
|
|
|
50
50
|
- **Incomplete last line** (crash artifact): automatically truncated on startup. `onWarning` callback fired.
|
|
51
|
-
- **Malformed JSON mid-file**: spool marked corrupt. No auto-repair
|
|
51
|
+
- **Malformed JSON mid-file**: spool marked corrupt. No auto-repair: mid-file corruption could indicate tampering.
|
|
52
52
|
- **Chain linkage broken**: spool marked corrupt. `prev_entry_digest` chain failed verification.
|
|
53
53
|
- **Oversized line** (exceeds `maxLineBytes`): spool marked corrupt. Line was never materialized as a JS string.
|
|
54
54
|
|
|
@@ -79,7 +79,7 @@ const diag = getFsSpoolDiagnostics(store);
|
|
|
79
79
|
- `maxEntries` (default: 100,000)
|
|
80
80
|
- `maxFileBytes` (default: 100MB)
|
|
81
81
|
|
|
82
|
-
When exceeded, `append()` throws `SpoolFullError`. The session returns `E_CAPTURE_STORE_FAILED` with a clear message. The adapter stays running (hooks, tools)
|
|
82
|
+
When exceeded, `append()` throws `SpoolFullError`. The session returns `E_CAPTURE_STORE_FAILED` with a clear message. The adapter stays running (hooks, tools): only new captures are blocked.
|
|
83
83
|
|
|
84
84
|
## Reset Procedure
|
|
85
85
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peac/capture-node",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.14",
|
|
4
4
|
"description": "Node.js durable storage for PEAC capture pipeline (filesystem spool store and dedupe index)",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"provenance": true
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@peac/capture-core": "0.10.
|
|
40
|
+
"@peac/capture-core": "0.10.14"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^22.0.0",
|