@lmzhen/dsh-evolution-state-json 0.3.31 → 0.3.33
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 +1 -1
- package/lib/index.js +7 -0
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -22,5 +22,5 @@ Independent of request-prefix construction. This package does not alter the asse
|
|
|
22
22
|
## Known Limitations and Deferred Work
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
- JSON provider serializes writers inside one process.
|
|
25
|
+
- JSON provider serializes writers inside one process AND through the IO backend's cross-process transact lock (`jsonTransact` wraps every mutation, 0.3.20/0.3.27) — this provider is NOT limited to single-process safety. The caveat below is about the DSH storage-domain providers (`storage-json` documents no cross-process write locking) when the DOMAIN provider is used instead; multi-process deployments should route the evolution domain to a backend with cross-process semantics such as SQLite or remote storage.
|
|
26
26
|
|
package/lib/index.js
CHANGED
|
@@ -175,6 +175,13 @@ function apply(ctx, rawConfig) {
|
|
|
175
175
|
const parsed = JSON.parse(current);
|
|
176
176
|
if (Array.isArray(parsed)) archive = parsed;
|
|
177
177
|
} catch {}
|
|
178
|
+
const archiveKeys = /* @__PURE__ */ new Set();
|
|
179
|
+
archive = archive.filter((entry) => {
|
|
180
|
+
const key = pendingArchiveKey(entry);
|
|
181
|
+
if (archiveKeys.has(key)) return false;
|
|
182
|
+
archiveKeys.add(key);
|
|
183
|
+
return true;
|
|
184
|
+
});
|
|
178
185
|
const seen = new Set(archive.map(pendingArchiveKey));
|
|
179
186
|
const fresh = records.filter((record) => !seen.has(pendingArchiveKey(record)));
|
|
180
187
|
if (fresh.length === 0) return current;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-evolution-state-json",
|
|
3
3
|
"description": "JSON-file evolution state provider over the IO seam (community build)",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.33",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -31,17 +31,17 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
34
|
-
"@lmzhen/dsh-evolution-core": "^0.3.
|
|
34
|
+
"@lmzhen/dsh-evolution-core": "^0.3.33"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
|
|
38
38
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
39
|
-
"@lmzhen/dsh-evolution-io": "^0.3.
|
|
40
|
-
"@lmzhen/dsh-evolution-state-storage": "^0.3.
|
|
39
|
+
"@lmzhen/dsh-evolution-io": "^0.3.33",
|
|
40
|
+
"@lmzhen/dsh-evolution-state-storage": "^0.3.33"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
|
|
44
|
-
"@lmzhen/dsh-evolution-io": "^0.3.
|
|
45
|
-
"@lmzhen/dsh-evolution-state-storage": "^0.3.
|
|
44
|
+
"@lmzhen/dsh-evolution-io": "^0.3.33",
|
|
45
|
+
"@lmzhen/dsh-evolution-state-storage": "^0.3.33"
|
|
46
46
|
}
|
|
47
47
|
}
|