synartesis 0.6.11 → 0.6.12

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 CHANGED
@@ -2,6 +2,38 @@
2
2
 
3
3
  What changed, and why it mattered. Dates are release dates.
4
4
 
5
+ ## 0.6.12 — 2026-09-13
6
+
7
+ ### Security
8
+
9
+ - **Nine advisories, none of them ours, all of them shipped anyway.** Four
10
+ high and five moderate arrived through one dependency's dependencies --
11
+ `fast-uri`, `qs` and `hono`, by way of the MCP SDK. Nothing in the published
12
+ npm package contained them: that bundle imports the SDK rather than inlining
13
+ it, so a fresh install resolves patched versions on its own. The desktop
14
+ application is the opposite -- it bundles everything, so it was carrying
15
+ `fast-uri` 3.1.5 and its four high advisories into every installer. Pinned to
16
+ patched versions; `pnpm audit --prod` now reports nothing.
17
+
18
+ ### Fixed
19
+
20
+ - **Two lookups that ran while somebody was waiting were full table scans.**
21
+ Finding a standing approval happens twice on every call that needs one, and
22
+ listing what is held backs both `synartesis gates` and the console. Neither
23
+ had an index, so both read every row in the journal -- including the
24
+ snapshots, which are the largest column there. At fifty thousand actions with
25
+ two-kilobyte snapshots, measured: 61ms and 56ms, on every irreversible call,
26
+ growing with the journal.
27
+
28
+ Both are now indexed: **61ms to 0.01ms, and 56ms to nothing.**
29
+
30
+ Deliberately without a schema version bump. This build refuses to open a
31
+ journal written by a different schema, so bumping would have told everybody
32
+ with history to abandon it in exchange for an index. Adding an index changes
33
+ no row and no meaning, the statement is idempotent, and it runs on every
34
+ open -- so an existing journal gains both the next time it is opened, and an
35
+ older build opening the same file afterwards neither notices nor cares.
36
+
5
37
  ## 0.6.11 — 2026-09-13
6
38
 
7
39
  ### Fixed
@@ -240,6 +240,23 @@ CREATE TABLE IF NOT EXISTS actions (
240
240
  );
241
241
 
242
242
  CREATE INDEX IF NOT EXISTS actions_by_run ON actions(run_id, seq);
243
+
244
+ -- Deliberately not a schema version bump. Adding an index changes no row and
245
+ -- no meaning, IF NOT EXISTS makes it idempotent, and the statement is run on
246
+ -- every open -- so a journal written months ago gains these the next time it
247
+ -- is opened, and an older build opening the same file afterwards neither
248
+ -- notices nor cares. A version bump would have been the opposite: this build
249
+ -- refuses to open a journal from a different schema, and telling somebody to
250
+ -- abandon everything an agent has ever done in order to gain an index would
251
+ -- be a poor trade.
252
+ --
253
+ -- Both of these sit in front of a person waiting. findApproval runs twice on
254
+ -- every gated call and findGated backs the gates command and the console;
255
+ -- without them each is a full scan over rows that carry the snapshots, which
256
+ -- is the largest thing in the table. Measured at fifty thousand actions with
257
+ -- two-kilobyte snapshots: 61ms to 0.01ms, and 56ms to 0.00ms.
258
+ CREATE INDEX IF NOT EXISTS actions_approved ON actions(server, tool, status, approved_at);
259
+ CREATE INDEX IF NOT EXISTS actions_gated ON actions(status, ts);
243
260
  `;
244
261
 
245
262
  // src/journal/journal.ts
@@ -1580,4 +1597,4 @@ export {
1580
1597
  observeState,
1581
1598
  connectStdioUpstream
1582
1599
  };
1583
- //# sourceMappingURL=chunk-DRDKIFD3.js.map
1600
+ //# sourceMappingURL=chunk-FUVEHRJP.js.map
package/dist/cli.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  toResolvedRead,
28
28
  verifyAgainstServers,
29
29
  wasRefused
30
- } from "./chunk-DRDKIFD3.js";
30
+ } from "./chunk-FUVEHRJP.js";
31
31
  import {
32
32
  DriftConflict,
33
33
  ManifestError,
package/dist/proxy.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  runRead,
20
20
  toPayload,
21
21
  verifyAgainstServers
22
- } from "./chunk-DRDKIFD3.js";
22
+ } from "./chunk-FUVEHRJP.js";
23
23
  import {
24
24
  SnapshotError,
25
25
  UpstreamError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synartesis",
3
- "version": "0.6.11",
3
+ "version": "0.6.12",
4
4
  "description": "An undo layer for AI agents.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -70,7 +70,12 @@
70
70
  "pnpm": {
71
71
  "neverBuiltDependencies": [
72
72
  "better-sqlite3"
73
- ]
73
+ ],
74
+ "overrides": {
75
+ "fast-uri": "^3.1.7",
76
+ "hono": "^4.13.7",
77
+ "qs": "^6.16.0"
78
+ }
74
79
  },
75
80
  "devDependencies": {
76
81
  "@anthropic-ai/sdk": "^0.125.0",