synartesis 0.5.0 → 0.5.1
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/CHANGELOG.md +31 -0
- package/dist/{chunk-CACV6R74.js → chunk-DRDKIFD3.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/proxy.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
What changed, and why it mattered. Dates are release dates.
|
|
4
4
|
|
|
5
|
+
## 0.5.1 — 2026-09-10
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **The journal is back to `synchronous = NORMAL`, reverting 0.5.0.** The
|
|
10
|
+
argument for FULL was right and the measurement behind it was taken on the
|
|
11
|
+
wrong machine.
|
|
12
|
+
|
|
13
|
+
This proxy commits three times per tool call — the pending row, the snapshot,
|
|
14
|
+
and the outcome — and under FULL each commit is an fsync that has to reach the
|
|
15
|
+
platter. On the NVMe it was benchmarked on, that is microseconds, and the
|
|
16
|
+
change looked free: 0.0246 ms per write against 0.0594. On a CI runner, a
|
|
17
|
+
container, or anything with networked storage an fsync is tens of
|
|
18
|
+
milliseconds, and three of them put the proxy's p95 overhead at **132 ms
|
|
19
|
+
against a 10 ms budget**. CI caught it on the release that shipped it, having
|
|
20
|
+
been green on every commit before.
|
|
21
|
+
|
|
22
|
+
The three commits cannot be collapsed into one: the snapshot has to be durable
|
|
23
|
+
*before* the call goes out, which is the entire point of taking it. So the
|
|
24
|
+
cost is structural, and the default returns to the setting whose cost is
|
|
25
|
+
predictable. `SYNARTESIS_SYNC=full` asks for the fsync where it is cheap or
|
|
26
|
+
where the tail of the log matters more than latency.
|
|
27
|
+
|
|
28
|
+
What is given up is stated plainly: under NORMAL, a crash of the process or of
|
|
29
|
+
the CLI mid-undo still loses nothing, but the machine losing power can cost
|
|
30
|
+
the tail of the write-ahead log — and what is at that tail is the record of
|
|
31
|
+
calls that really happened.
|
|
32
|
+
|
|
33
|
+
The performance thresholds that caught this were left exactly where they were.
|
|
34
|
+
A 10 ms budget that fails at 132 ms is a budget doing its job.
|
|
35
|
+
|
|
5
36
|
## 0.5.0 — 2026-09-10
|
|
6
37
|
|
|
7
38
|
A safety release. Two more races of the same family as 0.4.2's, one structural
|
|
@@ -340,7 +340,7 @@ function openDatabase(path) {
|
|
|
340
340
|
db.pragma("foreign_keys = ON");
|
|
341
341
|
db.pragma("busy_timeout = 5000");
|
|
342
342
|
db.pragma(
|
|
343
|
-
process.env["SYNARTESIS_SYNC"]?.toLowerCase() === "
|
|
343
|
+
process.env["SYNARTESIS_SYNC"]?.toLowerCase() === "full" ? "synchronous = FULL" : "synchronous = NORMAL"
|
|
344
344
|
);
|
|
345
345
|
if (path !== ":memory:") {
|
|
346
346
|
restrictToOwner(path);
|
|
@@ -1580,4 +1580,4 @@ export {
|
|
|
1580
1580
|
observeState,
|
|
1581
1581
|
connectStdioUpstream
|
|
1582
1582
|
};
|
|
1583
|
-
//# sourceMappingURL=chunk-
|
|
1583
|
+
//# sourceMappingURL=chunk-DRDKIFD3.js.map
|
package/dist/cli.js
CHANGED
package/dist/proxy.js
CHANGED