synartesis 0.3.0 → 0.3.2
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 +50 -0
- package/README.md +0 -4
- package/dist/{chunk-FIIKQECN.js → chunk-LNR5GXPG.js} +6 -6
- package/dist/{chunk-FIIKQECN.js.map → chunk-LNR5GXPG.js.map} +1 -1
- package/dist/{chunk-K3QIPVBY.js → chunk-WNLRMSDB.js} +66 -3
- package/dist/chunk-WNLRMSDB.js.map +1 -0
- package/dist/cli.js +15 -13
- package/dist/cli.js.map +1 -1
- package/dist/proxy.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-K3QIPVBY.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
What changed, and why it mattered. Dates are release dates.
|
|
4
4
|
|
|
5
|
+
## 0.3.2 — 2026-08-30
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **A drift halt shows what changed, not both documents.** Halting on drift
|
|
10
|
+
printed the expected and actual contents of the resource in full. On a
|
|
11
|
+
200-line file that is two screens of escaped JSON with the one line that
|
|
12
|
+
matters buried inside, which is the same as not saying. It now trims the head
|
|
13
|
+
and tail the two sides agree on and prints only the region that differs,
|
|
14
|
+
capped at eight lines a side:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
drift at sequence 4: the resource is not in the state this run left it in.
|
|
18
|
+
at line 123:
|
|
19
|
+
+ // A HUMAN FIXED THIS BY HAND.
|
|
20
|
+
0 removed, 1 added.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Both values are still on the row, and `synartesis show` prints them.
|
|
24
|
+
- **And it no longer crashes on a snapshot it cannot walk.** Finding the text
|
|
25
|
+
to diff, and the fallback for when there is none, both recursed — so a
|
|
26
|
+
snapshot nested a few thousand levels deep turned a drift halt into a stack
|
|
27
|
+
trace, at exactly the moment a person needs to be told their work is at risk.
|
|
28
|
+
Walked with an explicit stack now, with a node cap, and the fallback catches.
|
|
29
|
+
|
|
30
|
+
## 0.3.1 — 2026-08-30
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- **`--older-than` no longer crashes on a number too large to be a date.**
|
|
35
|
+
`Number.isFinite` is true for 1e9, but a cutoff that many days back sits
|
|
36
|
+
before the earliest date a `Date` can hold, so `toISOString` threw and
|
|
37
|
+
`synartesis prune --older-than 999999999` answered `Invalid time value` and
|
|
38
|
+
exited 1. That names neither the flag nor the problem, and exit 1 means
|
|
39
|
+
"halted or refused" — so it read as a prune that had failed partway through
|
|
40
|
+
rather than a mistyped argument. Bounded to 0–36500 days, with the range in
|
|
41
|
+
the message and exit 2 where it belongs.
|
|
42
|
+
- **A journal that cannot be read is reported as unknown, not as `1 kB`.**
|
|
43
|
+
`sizeOf` could never throw, because the function it called already swallowed
|
|
44
|
+
the error and returned zero, so the "unknown" branch was unreachable and a
|
|
45
|
+
missing file was reported at a confident wrong size.
|
|
46
|
+
|
|
47
|
+
### Documentation
|
|
48
|
+
|
|
49
|
+
- `synartesis prune` is on the landing page, which listed eleven commands and
|
|
50
|
+
not the twelfth.
|
|
51
|
+
- The doc comment promising that a failed journal write is never swallowed sits
|
|
52
|
+
on the method that does that again, rather than on `prunableRuns`, which is a
|
|
53
|
+
read and promises no such thing.
|
|
54
|
+
|
|
5
55
|
## 0.3.0 — 2026-08-29
|
|
6
56
|
|
|
7
57
|
### Security
|
package/README.md
CHANGED
|
@@ -282,10 +282,6 @@ than reporting an opaque failure.
|
|
|
282
282
|
|
|
283
283
|
## Real servers
|
|
284
284
|
|
|
285
|
-
If you would rather follow steps than read about it, there is a
|
|
286
|
-
[guide to running this against your own files](TESTING-ON-A-REAL-SYSTEM.md),
|
|
287
|
-
with the gate and the drift check as the two things worth testing on purpose.
|
|
288
|
-
|
|
289
285
|
Synartesis has nothing to do with email in particular. It sits on the MCP
|
|
290
286
|
protocol, so its subject is whatever the servers you have connected can do:
|
|
291
287
|
your files, your repositories, your database, your tickets, your agent's own
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
SnapshotError,
|
|
5
5
|
UpstreamError,
|
|
6
6
|
describe
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WNLRMSDB.js";
|
|
8
8
|
|
|
9
9
|
// src/invocation.ts
|
|
10
10
|
import { accessSync, constants } from "fs";
|
|
@@ -615,10 +615,6 @@ var SqliteJournal = class {
|
|
|
615
615
|
close() {
|
|
616
616
|
this.#db.close();
|
|
617
617
|
}
|
|
618
|
-
/**
|
|
619
|
-
* A failed journal write means the record of what the agent did is
|
|
620
|
-
* incomplete. It is never swallowed and never merely logged.
|
|
621
|
-
*/
|
|
622
618
|
prunableRuns(before) {
|
|
623
619
|
return this.#run(
|
|
624
620
|
"prunableRuns",
|
|
@@ -674,6 +670,10 @@ var SqliteJournal = class {
|
|
|
674
670
|
this.#db.pragma("wal_checkpoint(TRUNCATE)");
|
|
675
671
|
});
|
|
676
672
|
}
|
|
673
|
+
/**
|
|
674
|
+
* A failed journal write means the record of what the agent did is
|
|
675
|
+
* incomplete. It is never swallowed and never merely logged.
|
|
676
|
+
*/
|
|
677
677
|
#run(operation, body) {
|
|
678
678
|
try {
|
|
679
679
|
return body();
|
|
@@ -1479,4 +1479,4 @@ export {
|
|
|
1479
1479
|
observeState,
|
|
1480
1480
|
connectStdioUpstream
|
|
1481
1481
|
};
|
|
1482
|
-
//# sourceMappingURL=chunk-
|
|
1482
|
+
//# sourceMappingURL=chunk-LNR5GXPG.js.map
|