daftari 1.9.0 → 1.10.0
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 +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -12
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/lock.d.ts +15 -0
- package/dist/lifecycle/lock.d.ts.map +1 -0
- package/dist/lifecycle/lock.js +184 -0
- package/dist/lifecycle/lock.js.map +1 -0
- package/dist/search/index-state.d.ts +1 -0
- package/dist/search/index-state.d.ts.map +1 -1
- package/dist/search/index-state.js +30 -0
- package/dist/search/index-state.js.map +1 -1
- package/dist/search/watcher.d.ts.map +1 -1
- package/dist/search/watcher.js +36 -13
- package/dist/search/watcher.js.map +1 -1
- package/dist/storage/index-db.d.ts +2 -1
- package/dist/storage/index-db.d.ts.map +1 -1
- package/dist/storage/index-db.js +84 -24
- package/dist/storage/index-db.js.map +1 -1
- package/dist/tools/read.d.ts +1 -0
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +18 -0
- package/dist/tools/read.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.10.0] - 2026-05-21
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Per-vault process lockfile** (#52). Daftari now acquires
|
|
15
|
+
`.daftari/process.lock` on startup and refuses to share a vault with
|
|
16
|
+
another live daftari process. If a live instance is already holding the
|
|
17
|
+
vault, the new instance sends SIGTERM to the holder, waits up to 3
|
|
18
|
+
seconds for it to exit, then takes over. Stale lockfiles (dead PID, or
|
|
19
|
+
PID recycled to an unrelated process) are overwritten silently. This is
|
|
20
|
+
defense-in-depth against MCP clients that leak server subprocesses on
|
|
21
|
+
timeout/reconnect — the reported symptom was 112 daftari processes
|
|
22
|
+
accumulating against one vault. With the lock, at most one process
|
|
23
|
+
holds the vault at any time.
|
|
24
|
+
|
|
25
|
+
**Known limitation:** the takeover interrupts in-flight reindex. On
|
|
26
|
+
first run against a large vault, if the MCP client is in a tight
|
|
27
|
+
retry/respawn loop, the index may be repeatedly aborted before it
|
|
28
|
+
completes. Workaround: run `daftari --vault <path> --reindex` once
|
|
29
|
+
manually from the shell. Resumable reindex is tracked as a follow-up.
|
|
30
|
+
|
|
31
|
+
## [1.9.1] - 2026-05-21
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- **sqlite-vec load error triage** (#46). Extension-load failures now
|
|
36
|
+
surface one of three actionable messages depending on the failure mode:
|
|
37
|
+
MODULE_NOT_FOUND (re-run `npm install` without `--omit=optional`),
|
|
38
|
+
extension loading disabled (rebuild better-sqlite3 from source), or ABI /
|
|
39
|
+
OS error (platform compatibility hint with the OS reason verbatim).
|
|
40
|
+
|
|
41
|
+
- **sqlite-vec ABI smoke-test** (#48). After `sqliteVec.load()` returns,
|
|
42
|
+
`openIndexDb` now runs a 1-vector KNN roundtrip against a temp virtual
|
|
43
|
+
table. A silent ABI mismatch — where the shared library dlopen'd but the
|
|
44
|
+
SQLite virtual-table machinery is broken — is caught at startup and
|
|
45
|
+
surfaces a `smoke-test` / `ABI mismatch` error instead of corrupting
|
|
46
|
+
vectors at query time.
|
|
47
|
+
|
|
48
|
+
- **Required `expectedVecDim` in `openIndexDb`** (#47). The optional
|
|
49
|
+
`expectedVecDim` parameter with a silent `?? 384` fallback has been made
|
|
50
|
+
required. Callers that omit the dimension now get a compile-time error
|
|
51
|
+
instead of silently creating a wrong-dimension embeddings_vec table.
|
|
52
|
+
|
|
53
|
+
- **Embedding dim-mismatch counter in `vault_status`** (#49). `vault_status`
|
|
54
|
+
now includes `embeddingDimMismatches`, a count of rows in the embeddings
|
|
55
|
+
cache whose recorded `dim` does not match the current provider's dimension.
|
|
56
|
+
Non-zero values indicate stale cache rows from a previous provider that
|
|
57
|
+
will be re-embedded on the next reindex.
|
|
58
|
+
|
|
59
|
+
- **Watcher drain after reindex** (#50). The fs.watch event handler no
|
|
60
|
+
longer busy-polls during a full reindex. Events that arrive while
|
|
61
|
+
`vault_reindex` is running are collected in a deferred map and dispatched
|
|
62
|
+
in a single batch via `onceIndexReady()` after the reindex settles — zero
|
|
63
|
+
extra timer firings per event during a long reindex.
|
|
64
|
+
|
|
10
65
|
## [1.9.0] - 2026-05-21
|
|
11
66
|
|
|
12
67
|
### Added
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuCA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASrE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HhF"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { resolve } from "node:path";
|
|
|
17
17
|
import { pathToFileURL } from "node:url";
|
|
18
18
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
19
19
|
import { GUEST_ROLE, resolveAccess } from "./access/rbac.js";
|
|
20
|
+
import { acquireLock, releaseLock } from "./lifecycle/lock.js";
|
|
20
21
|
import { markIndexError, markIndexing, markIndexReady, setIndexProgress, } from "./search/index-state.js";
|
|
21
22
|
import { isIndexFresh, reindexVault } from "./search/reindex.js";
|
|
22
23
|
import { setProvider, warmModel } from "./search/vector.js";
|
|
@@ -24,6 +25,9 @@ import { startWatcher } from "./search/watcher.js";
|
|
|
24
25
|
import { createServer } from "./server.js";
|
|
25
26
|
import { directoryExists } from "./storage/local.js";
|
|
26
27
|
import { loadConfig } from "./utils/config.js";
|
|
28
|
+
// Kept in sync with package.json. Surfaced in the process lockfile for
|
|
29
|
+
// operator diagnostics. Bump both together on a release.
|
|
30
|
+
const DAFTARI_VERSION = "1.10.0";
|
|
27
31
|
// Reads `--name value` or `--name=value` from argv; null if absent.
|
|
28
32
|
export function parseFlag(argv, name) {
|
|
29
33
|
const flag = `--${name}`;
|
|
@@ -52,6 +56,18 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
52
56
|
process.exitCode = 1;
|
|
53
57
|
return;
|
|
54
58
|
}
|
|
59
|
+
// Acquire the per-vault process lock BEFORE any heavy work. If another
|
|
60
|
+
// daftari is holding this vault, SIGTERM it and wait briefly for it to
|
|
61
|
+
// exit. See docs/superpowers/plans/2026-05-20-process-lockfile.md (#52).
|
|
62
|
+
const lockResult = await acquireLock(vaultRoot, DAFTARI_VERSION);
|
|
63
|
+
if (!lockResult.ok) {
|
|
64
|
+
process.stderr.write(`daftari: failed to acquire vault lock: ${lockResult.error.message}\n`);
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// Install shutdown handlers immediately so the lock is released even if
|
|
69
|
+
// startup fails between here and the transport opening.
|
|
70
|
+
installShutdownHandlers(vaultRoot);
|
|
55
71
|
// Load the RBAC config. A malformed config fails loud: the server must not
|
|
56
72
|
// start serving content under a policy it could not parse.
|
|
57
73
|
const config = loadConfig(vaultRoot);
|
|
@@ -141,6 +157,27 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
141
157
|
// Reference held so a SIGTERM / SIGINT can close the watcher cleanly. One
|
|
142
158
|
// per process — the server runs against one vault for its lifetime.
|
|
143
159
|
let activeWatcher = null;
|
|
160
|
+
// Install once, regardless of whether the watcher starts. The lock release
|
|
161
|
+
// must run for all exit paths:
|
|
162
|
+
// - SIGTERM / SIGINT (parent MCP client closing the pipe, or another
|
|
163
|
+
// daftari instance taking over): onShutdown explicitly releases.
|
|
164
|
+
// - Normal completion of --reindex mode: main() returns, the event loop
|
|
165
|
+
// drains, Node emits 'exit', the registered listener releases.
|
|
166
|
+
// The 'exit' listener is sync-only (Node guarantees the loop is closed by
|
|
167
|
+
// then), which is why releaseLock is sync.
|
|
168
|
+
function installShutdownHandlers(vaultRoot) {
|
|
169
|
+
const onShutdown = () => {
|
|
170
|
+
if (activeWatcher) {
|
|
171
|
+
const w = activeWatcher;
|
|
172
|
+
activeWatcher = null;
|
|
173
|
+
void w.close();
|
|
174
|
+
}
|
|
175
|
+
releaseLock(vaultRoot);
|
|
176
|
+
};
|
|
177
|
+
process.once("SIGTERM", onShutdown);
|
|
178
|
+
process.once("SIGINT", onShutdown);
|
|
179
|
+
process.once("exit", () => releaseLock(vaultRoot));
|
|
180
|
+
}
|
|
144
181
|
// Spawns the chokidar watcher when config.watch !== false. Wired here, not
|
|
145
182
|
// at module load, so the test entry points (which import main) can run with
|
|
146
183
|
// a config that disables it. Idempotent: a second call is a no-op while the
|
|
@@ -154,18 +191,6 @@ function maybeStartWatcher(vaultRoot, watchEnabled) {
|
|
|
154
191
|
return;
|
|
155
192
|
activeWatcher = startWatcher(vaultRoot);
|
|
156
193
|
process.stderr.write(`daftari: watching vault for out-of-band edits\n`);
|
|
157
|
-
// Clean shutdown on the signals stdio MCP servers receive when their
|
|
158
|
-
// parent process closes the pipe. Without this the chokidar handles can
|
|
159
|
-
// keep the event loop alive past the transport close.
|
|
160
|
-
const onShutdown = () => {
|
|
161
|
-
if (!activeWatcher)
|
|
162
|
-
return;
|
|
163
|
-
const w = activeWatcher;
|
|
164
|
-
activeWatcher = null;
|
|
165
|
-
void w.close();
|
|
166
|
-
};
|
|
167
|
-
process.once("SIGTERM", onShutdown);
|
|
168
|
-
process.once("SIGINT", onShutdown);
|
|
169
194
|
}
|
|
170
195
|
// Loads the embedding model in the background so the first user search does
|
|
171
196
|
// not pay the cold-start latency. Failures (no network on first run, model
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,+EAA+E;AAC/E,qDAAqD;AACrD,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,iEAAiE;AACjE,uEAAuE;AACvE,4BAA4B;AAC5B,EAAE;AACF,2EAA2E;AAC3E,oBAAoB;AAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,uEAAuE;AACvE,yDAAyD;AACzD,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,IAAY;IACpD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC5E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,SAAS,IAAI,CAAC,CAAC;QAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,wEAAwE;IACxE,wDAAwD;IACxD,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEnC,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,qBAAqB;IACrB,IAAI,CAAC;QACH,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,8DAA8D;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC;IACvD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2BAA2B,QAAQ,qDAAqD,CACzF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,sEAAsE;IACtE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEhD,yEAAyE;IACzE,wEAAwE;IACxE,qCAAqC;IACrC,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oBAAoB,CAAC,CAAC,aAAa,UAAU,CAAC,CAAC,UAAU,UAAU;gBACjE,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAClD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,2EAA2E;IAC3E,gBAAgB;IAChB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,SAAS,aAAa;QACjD,QAAQ,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,QAAQ,IAAI,CAClD,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC1E,cAAc,EAAE,CAAC;QACjB,yEAAyE;QACzE,wEAAwE;QACxE,oEAAoE;QACpE,8DAA8D;QAC9D,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAChC,KAAK,iBAAiB,EAAE,CAAC;QAC3B,CAAC;QACD,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,kEAAkE;IAClE,wCAAwC;IACxC,YAAY,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAChE,KAAK,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE;QACrE,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,oEAAoE;AACpE,IAAI,aAAa,GAAwB,IAAI,CAAC;AAE9C,2EAA2E;AAC3E,+BAA+B;AAC/B,uEAAuE;AACvE,qEAAqE;AACrE,0EAA0E;AAC1E,mEAAmE;AACnE,0EAA0E;AAC1E,2CAA2C;AAC3C,SAAS,uBAAuB,CAAC,SAAiB;IAChD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,aAAa,CAAC;YACxB,aAAa,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,WAAW,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,gCAAgC;AAChC,SAAS,iBAAiB,CAAC,SAAiB,EAAE,YAAqB;IACjE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,IAAI,aAAa;QAAE,OAAO;IAC1B,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AAC1E,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,mEAAmE;AACnE,KAAK,UAAU,iBAAiB;IAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,cAAuB,EACvB,MAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oBAAoB,CAAC,CAAC,aAAa,UAAU,CAAC,CAAC,UAAU,UAAU;gBACjE,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAClD,CAAC;YACF,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,wCAAwC;YACxC,IAAI,cAAc,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC5C,KAAK,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oDAAoD,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,MAAM,IAAI,CAAC,CAAC;IACpF,CAAC;YAAS,CAAC;QACT,oEAAoE;QACpE,kEAAkE;QAClE,6DAA6D;QAC7D,iEAAiE;QACjE,8BAA8B;QAC9B,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,uCAAuC;AACvC,SAAS,oBAAoB;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,OAAO;QACL,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1B,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO;YACxB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;gBACrE,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;YAC3B,IAAI,KAAK,IAAI,YAAY,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;gBACrE,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YAC/D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,qEAAqE;AACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Result } from "../frontmatter/types.js";
|
|
2
|
+
export type LockData = {
|
|
3
|
+
daftari: true;
|
|
4
|
+
pid: number;
|
|
5
|
+
vaultRoot: string;
|
|
6
|
+
startedAt: string;
|
|
7
|
+
version: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function readLockfile(vaultRoot: string): Result<LockData | null, Error>;
|
|
10
|
+
export declare function writeLockfile(vaultRoot: string, data: LockData): Result<void, Error>;
|
|
11
|
+
export declare function isProcessAlive(pid: number): boolean;
|
|
12
|
+
export declare function isDaftariProcess(pid: number, vaultRoot: string): boolean;
|
|
13
|
+
export declare function acquireLock(vaultRoot: string, version: string): Promise<Result<void, Error>>;
|
|
14
|
+
export declare function releaseLock(vaultRoot: string): void;
|
|
15
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,IAAI,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,CAmB9E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAQpF;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD;AAaD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAYxE;AA8CD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CA2C9B;AAMD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CASnD"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// Process-level lockfile for a vault. Prevents two daftari processes from
|
|
2
|
+
// running against the same vault concurrently and corrupting the shared
|
|
3
|
+
// index.db. See docs/superpowers/plans/2026-05-20-process-lockfile.md (#52).
|
|
4
|
+
import { execFileSync } from "node:child_process";
|
|
5
|
+
import { closeSync, mkdirSync, openSync, readFileSync, unlinkSync, writeFileSync, writeSync, } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
8
|
+
import { err, ok } from "../frontmatter/types.js";
|
|
9
|
+
function lockPath(vaultRoot) {
|
|
10
|
+
return join(vaultRoot, ".daftari", "process.lock");
|
|
11
|
+
}
|
|
12
|
+
export function readLockfile(vaultRoot) {
|
|
13
|
+
try {
|
|
14
|
+
const raw = readFileSync(lockPath(vaultRoot), "utf-8");
|
|
15
|
+
const parsed = JSON.parse(raw);
|
|
16
|
+
if (typeof parsed === "object" &&
|
|
17
|
+
parsed !== null &&
|
|
18
|
+
parsed.daftari === true &&
|
|
19
|
+
typeof parsed.pid === "number") {
|
|
20
|
+
return ok(parsed);
|
|
21
|
+
}
|
|
22
|
+
return ok(null);
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
const errno = e;
|
|
26
|
+
if (errno.code === "ENOENT")
|
|
27
|
+
return ok(null);
|
|
28
|
+
if (e instanceof SyntaxError)
|
|
29
|
+
return ok(null);
|
|
30
|
+
return err(errno);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function writeLockfile(vaultRoot, data) {
|
|
34
|
+
try {
|
|
35
|
+
mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
|
|
36
|
+
writeFileSync(lockPath(vaultRoot), JSON.stringify(data, null, 2), "utf-8");
|
|
37
|
+
return ok(undefined);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
return err(e);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// `kill(pid, 0)` is the POSIX way to test process liveness without delivering
|
|
44
|
+
// a signal. ESRCH = no such process; EPERM = exists but not ours (still alive
|
|
45
|
+
// for our purposes — someone else owns it but it exists).
|
|
46
|
+
export function isProcessAlive(pid) {
|
|
47
|
+
try {
|
|
48
|
+
process.kill(pid, 0);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
const errno = e;
|
|
53
|
+
return errno.code === "EPERM";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Best-effort check that PID belongs to a daftari process running THIS vault.
|
|
57
|
+
// Protects against PID recycling — if the original daftari died and the OS
|
|
58
|
+
// reassigned its PID to e.g. vim, we must NOT SIGTERM the unrelated process.
|
|
59
|
+
//
|
|
60
|
+
// Uses `ps -p PID -o command=` which is POSIX-portable. Match requires the
|
|
61
|
+
// exact vault path to appear in the command line: daftari's CLI requires
|
|
62
|
+
// `--vault <path>` as a positional argument, so the path is always in argv.
|
|
63
|
+
// We deliberately do NOT match on the substring "daftari" anywhere in the
|
|
64
|
+
// output, because the daftari repo's own path contains that string and would
|
|
65
|
+
// falsely match any node process whose cwd or argv includes the repo root
|
|
66
|
+
// (e.g. vitest workers).
|
|
67
|
+
export function isDaftariProcess(pid, vaultRoot) {
|
|
68
|
+
if (!isProcessAlive(pid))
|
|
69
|
+
return false;
|
|
70
|
+
try {
|
|
71
|
+
const out = execFileSync("ps", ["-p", String(pid), "-o", "command="], {
|
|
72
|
+
encoding: "utf-8",
|
|
73
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
74
|
+
}).trim();
|
|
75
|
+
if (out.length === 0)
|
|
76
|
+
return false;
|
|
77
|
+
return out.includes(vaultRoot);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Wait until pid exits or until timeoutMs elapses. Returns true if pid is
|
|
84
|
+
// gone. Polled with setTimeout so we don't peg a CPU core during the grace
|
|
85
|
+
// window.
|
|
86
|
+
async function waitForExit(pid, timeoutMs) {
|
|
87
|
+
const POLL_MS = 100;
|
|
88
|
+
const deadline = Date.now() + timeoutMs;
|
|
89
|
+
while (Date.now() < deadline) {
|
|
90
|
+
if (!isProcessAlive(pid))
|
|
91
|
+
return true;
|
|
92
|
+
await sleep(POLL_MS);
|
|
93
|
+
}
|
|
94
|
+
return !isProcessAlive(pid);
|
|
95
|
+
}
|
|
96
|
+
const SIGTERM_GRACE_MS = 3000;
|
|
97
|
+
// Atomic O_EXCL create. Returns ok(true) if we created the lockfile (sole
|
|
98
|
+
// owner), ok(false) on EEXIST (caller must read and resolve).
|
|
99
|
+
function tryCreateExclusive(vaultRoot, data) {
|
|
100
|
+
try {
|
|
101
|
+
mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
|
|
102
|
+
const fd = openSync(lockPath(vaultRoot), "wx");
|
|
103
|
+
try {
|
|
104
|
+
writeSync(fd, JSON.stringify(data, null, 2));
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
closeSync(fd);
|
|
108
|
+
}
|
|
109
|
+
return ok(true);
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
const errno = e;
|
|
113
|
+
if (errno.code === "EEXIST")
|
|
114
|
+
return ok(false);
|
|
115
|
+
return err(errno);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Acquire the per-vault process lock. Behavior:
|
|
119
|
+
// - No existing lock → atomic O_EXCL create, return ok.
|
|
120
|
+
// - Existing lock with dead PID → stale, overwrite.
|
|
121
|
+
// - Existing lock with live PID that does not look like a daftari for this
|
|
122
|
+
// vault (PID recycled) → stale, overwrite.
|
|
123
|
+
// - Existing lock with live daftari for this vault → SIGTERM it, wait up to
|
|
124
|
+
// 3s for exit, then overwrite. If it does not exit, log a warning and
|
|
125
|
+
// overwrite anyway.
|
|
126
|
+
//
|
|
127
|
+
// Logs go to stderr (MCP convention; stdout is reserved for JSON-RPC).
|
|
128
|
+
export async function acquireLock(vaultRoot, version) {
|
|
129
|
+
const our = {
|
|
130
|
+
daftari: true,
|
|
131
|
+
pid: process.pid,
|
|
132
|
+
vaultRoot,
|
|
133
|
+
startedAt: new Date().toISOString(),
|
|
134
|
+
version,
|
|
135
|
+
};
|
|
136
|
+
const created = tryCreateExclusive(vaultRoot, our);
|
|
137
|
+
if (!created.ok)
|
|
138
|
+
return created;
|
|
139
|
+
if (created.value)
|
|
140
|
+
return ok(undefined);
|
|
141
|
+
const existing = readLockfile(vaultRoot);
|
|
142
|
+
if (!existing.ok)
|
|
143
|
+
return existing;
|
|
144
|
+
if (existing.value !== null) {
|
|
145
|
+
const prior = existing.value;
|
|
146
|
+
if (isDaftariProcess(prior.pid, vaultRoot)) {
|
|
147
|
+
process.stderr.write(`daftari: another instance is holding this vault (pid=${prior.pid}, ` +
|
|
148
|
+
`started=${prior.startedAt}); sending SIGTERM and taking over\n`);
|
|
149
|
+
try {
|
|
150
|
+
process.kill(prior.pid, "SIGTERM");
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// Died between check and signal — fine.
|
|
154
|
+
}
|
|
155
|
+
const exited = await waitForExit(prior.pid, SIGTERM_GRACE_MS);
|
|
156
|
+
if (!exited) {
|
|
157
|
+
process.stderr.write(`daftari: warning: pid ${prior.pid} did not exit within ` +
|
|
158
|
+
`${SIGTERM_GRACE_MS}ms; proceeding anyway\n`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
process.stderr.write(`daftari: removing stale lockfile (pid=${prior.pid} not a live daftari instance)\n`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return writeLockfile(vaultRoot, our);
|
|
166
|
+
}
|
|
167
|
+
// Idempotent. Removes the lockfile only if it still belongs to us — protects
|
|
168
|
+
// against a race where takeover happens during our shutdown and we'd
|
|
169
|
+
// otherwise delete the new owner's lock. Stays sync because it runs from
|
|
170
|
+
// `process.on("exit")`, which forbids async work.
|
|
171
|
+
export function releaseLock(vaultRoot) {
|
|
172
|
+
const existing = readLockfile(vaultRoot);
|
|
173
|
+
if (!existing.ok || existing.value === null)
|
|
174
|
+
return;
|
|
175
|
+
if (existing.value.pid !== process.pid)
|
|
176
|
+
return;
|
|
177
|
+
try {
|
|
178
|
+
unlinkSync(lockPath(vaultRoot));
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Best-effort. If the file is already gone, fine.
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export interface IndexSnapshot {
|
|
|
13
13
|
export declare function getIndexStatus(): IndexSnapshot;
|
|
14
14
|
export declare function markIndexing(): void;
|
|
15
15
|
export declare function setIndexProgress(done: number, total: number): void;
|
|
16
|
+
export declare function onceIndexReady(cb: () => void): void;
|
|
16
17
|
export declare function markIndexReady(): void;
|
|
17
18
|
export declare function markIndexError(message: string): void;
|
|
18
19
|
export declare function markModelWarming(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-state.d.ts","sourceRoot":"","sources":["../../src/search/index-state.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAOzD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAiBD,wBAAgB,cAAc,IAAI,aAAa,CAE9C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGlE;
|
|
1
|
+
{"version":3,"file":"index-state.d.ts","sourceRoot":"","sources":["../../src/search/index-state.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAOzD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAiBD,wBAAgB,cAAc,IAAI,aAAa,CAE9C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGlE;AAWD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAMnD;AAaD,wBAAgB,cAAc,IAAI,IAAI,CAQrC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQpD;AAMD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpD;AAID,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAYD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAQD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAWnE"}
|
|
@@ -46,6 +46,33 @@ export function setIndexProgress(done, total) {
|
|
|
46
46
|
return;
|
|
47
47
|
state = { ...state, done, total };
|
|
48
48
|
}
|
|
49
|
+
// Callbacks registered via onceIndexReady that fire when the current
|
|
50
|
+
// indexing pass completes (successfully or with an error). Cleared on each
|
|
51
|
+
// transition out of "indexing" so each callback fires at most once.
|
|
52
|
+
const indexReadyCallbacks = [];
|
|
53
|
+
// Register a one-shot callback that fires the next time the global index
|
|
54
|
+
// status leaves "indexing" (either markIndexReady or markIndexError). If the
|
|
55
|
+
// index is already not indexing, the callback fires on the next event-loop
|
|
56
|
+
// tick so the caller can finish its current synchronous work first.
|
|
57
|
+
export function onceIndexReady(cb) {
|
|
58
|
+
if (state.status !== "indexing") {
|
|
59
|
+
setTimeout(cb, 0);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
indexReadyCallbacks.push(cb);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function flushIndexReadyCallbacks() {
|
|
66
|
+
const cbs = indexReadyCallbacks.splice(0);
|
|
67
|
+
for (const cb of cbs) {
|
|
68
|
+
try {
|
|
69
|
+
cb();
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// callbacks must not crash the state machine
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
49
76
|
export function markIndexReady() {
|
|
50
77
|
state = {
|
|
51
78
|
...state,
|
|
@@ -53,6 +80,7 @@ export function markIndexReady() {
|
|
|
53
80
|
error: null,
|
|
54
81
|
finishedAt: new Date().toISOString(),
|
|
55
82
|
};
|
|
83
|
+
flushIndexReadyCallbacks();
|
|
56
84
|
}
|
|
57
85
|
export function markIndexError(message) {
|
|
58
86
|
state = {
|
|
@@ -61,6 +89,7 @@ export function markIndexError(message) {
|
|
|
61
89
|
error: message,
|
|
62
90
|
finishedAt: new Date().toISOString(),
|
|
63
91
|
};
|
|
92
|
+
flushIndexReadyCallbacks();
|
|
64
93
|
}
|
|
65
94
|
// Model lifecycle transitions. Called by vector.ts as the memoised
|
|
66
95
|
// extractor promise progresses; the warm-up entry point and the lazy
|
|
@@ -80,6 +109,7 @@ export function markModelError(message) {
|
|
|
80
109
|
export function resetIndexState() {
|
|
81
110
|
state = freshState();
|
|
82
111
|
inflightPaths.clear();
|
|
112
|
+
indexReadyCallbacks.splice(0); // discard any leftover callbacks from previous tests
|
|
83
113
|
}
|
|
84
114
|
// Per-path "currently indexing this one file" tracker. The global `status`
|
|
85
115
|
// above describes whole-vault reindex passes (startup / vault_reindex). The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-state.js","sourceRoot":"","sources":["../../src/search/index-state.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,wCAAwC;AACxC,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,QAAQ;AAsBR,SAAS,UAAU;IACjB,OAAO;QACL,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,IAAI,KAAK,GAAkB,UAAU,EAAE,CAAC;AAExC,MAAM,UAAU,cAAc;IAC5B,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,KAAK,GAAG;QACN,GAAG,KAAK;QACR,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACxC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,KAAK,GAAG;QACN,GAAG,KAAK;QACR,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"index-state.js","sourceRoot":"","sources":["../../src/search/index-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/search/watcher.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAY1D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,WAAW,YAAY;IAI3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAG7B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAG5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAG3D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;CACnD;AA2GD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/search/watcher.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAY1D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,WAAW,YAAY;IAI3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAG7B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAG5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAG3D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;CACnD;AA2GD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,YAAY,CA4LvF"}
|
package/dist/search/watcher.js
CHANGED
|
@@ -33,7 +33,7 @@ import { default as chokidar } from "chokidar";
|
|
|
33
33
|
import { ok } from "../frontmatter/types.js";
|
|
34
34
|
import { deleteDocument, openIndexDb } from "../storage/index-db.js";
|
|
35
35
|
import { resolveVaultPath } from "../storage/local.js";
|
|
36
|
-
import { getIndexStatus, markPathIndexing, markPathReady } from "./index-state.js";
|
|
36
|
+
import { getIndexStatus, markPathIndexing, markPathReady, onceIndexReady } from "./index-state.js";
|
|
37
37
|
import { indexDocument } from "./reindex.js";
|
|
38
38
|
import { consumeSelfWrite } from "./self-write.js";
|
|
39
39
|
import { getProvider } from "./vector.js";
|
|
@@ -145,6 +145,14 @@ export function startWatcher(vaultRoot, opts = {}) {
|
|
|
145
145
|
const resolved = resolveOptions(opts);
|
|
146
146
|
const root = resolve(vaultRoot);
|
|
147
147
|
const pending = new Map();
|
|
148
|
+
// Events that arrived while a full reindex was running and could not be
|
|
149
|
+
// dispatched immediately (dispatch would race the bulk clearIndex write).
|
|
150
|
+
// Drained as a single batch when markIndexReady/markIndexError fires.
|
|
151
|
+
// Unlike the old busy-poll approach (re-schedule a debounceMs timer until
|
|
152
|
+
// reindex finishes), this accumulates at most one entry per path and fires
|
|
153
|
+
// zero timers per event during a long reindex.
|
|
154
|
+
const deferred = new Map();
|
|
155
|
+
let drainScheduled = false;
|
|
148
156
|
// Spawn chokidar (or the injected fake). The ignored pattern mirrors
|
|
149
157
|
// listFiles in storage/local.ts so the watcher and listing agree on
|
|
150
158
|
// "what's vault content".
|
|
@@ -186,21 +194,35 @@ export function startWatcher(vaultRoot, opts = {}) {
|
|
|
186
194
|
}
|
|
187
195
|
// While a full reindex is running, the indexer is rebuilding from
|
|
188
196
|
// scratch — a per-file index call would race the bulk write and may
|
|
189
|
-
// be wiped by clearIndex().
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
197
|
+
// be wiped by clearIndex(). Park the event in `deferred` (no timer) and
|
|
198
|
+
// register a one-shot drain that fires when the reindex settles. At most
|
|
199
|
+
// one timer fires per event per path (when the debounce window elapses),
|
|
200
|
+
// versus the old busy-poll that re-scheduled a new debounceMs timer on
|
|
201
|
+
// every dispatch call until the reindex finished.
|
|
193
202
|
const status = getIndexStatus();
|
|
194
203
|
if (status.status === "indexing") {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
204
|
+
// Cancel any active debounce timer for this path — the deferred map
|
|
205
|
+
// entry will hold the event until drain.
|
|
206
|
+
const existing = pending.get(relPath);
|
|
207
|
+
if (existing) {
|
|
208
|
+
clearTimeout(existing.timer);
|
|
200
209
|
pending.delete(relPath);
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
210
|
+
}
|
|
211
|
+
deferred.set(relPath, lastEvent);
|
|
212
|
+
if (!drainScheduled) {
|
|
213
|
+
drainScheduled = true;
|
|
214
|
+
onceIndexReady(() => {
|
|
215
|
+
drainScheduled = false;
|
|
216
|
+
if (closed) {
|
|
217
|
+
deferred.clear();
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
for (const [p, e] of deferred) {
|
|
221
|
+
deferred.delete(p);
|
|
222
|
+
void dispatch(p, e);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
204
226
|
return;
|
|
205
227
|
}
|
|
206
228
|
markPathIndexing(relPath);
|
|
@@ -293,6 +315,7 @@ export function startWatcher(vaultRoot, opts = {}) {
|
|
|
293
315
|
for (const { timer } of pending.values())
|
|
294
316
|
clearTimeout(timer);
|
|
295
317
|
pending.clear();
|
|
318
|
+
deferred.clear();
|
|
296
319
|
await watcher.close();
|
|
297
320
|
},
|
|
298
321
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/search/watcher.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,2EAA2E;AAC3E,6DAA6D;AAC7D,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,iCAAiC;AACjC,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,eAAe;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAkB,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/search/watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ export interface IndexedChunk {
|
|
|
26
26
|
export declare function indexDbPath(vaultRoot: string): string;
|
|
27
27
|
export declare function clearEmbeddingsVec(db: IndexDb): void;
|
|
28
28
|
export declare function insertEmbeddingVec(db: IndexDb, contentHash: string, model: string, embedding: Float32Array): void;
|
|
29
|
-
export declare function openIndexDb(vaultRoot: string, expectedVecDim
|
|
29
|
+
export declare function openIndexDb(vaultRoot: string, expectedVecDim: number): Result<IndexDb, Error>;
|
|
30
30
|
export declare function clearIndex(db: IndexDb): void;
|
|
31
31
|
export declare function deleteDocument(db: IndexDb, path: string): void;
|
|
32
32
|
export declare function embeddingToBlob(vec: Float32Array): Buffer;
|
|
@@ -50,4 +50,5 @@ export declare function getChunksForPath(db: IndexDb, path: string, model: strin
|
|
|
50
50
|
export declare function getMeta(db: IndexDb, key: string): string | null;
|
|
51
51
|
export declare function documentCount(db: IndexDb): number;
|
|
52
52
|
export declare function embeddingCount(db: IndexDb): number;
|
|
53
|
+
export declare function countDimMismatches(db: IndexDb, model: string, expectedDim: number): number;
|
|
53
54
|
//# sourceMappingURL=index-db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-db.d.ts","sourceRoot":"","sources":["../../src/storage/index-db.ts"],"names":[],"mappings":"AAwCA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index-db.d.ts","sourceRoot":"","sources":["../../src/storage/index-db.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index-db.js
CHANGED
|
@@ -44,13 +44,6 @@ import { err, ok } from "../frontmatter/types.js";
|
|
|
44
44
|
// virtual tables for SQL-native search. The index is a derived cache so the
|
|
45
45
|
// bump triggers a clean rebuild (see openIndexDb); no in-place migration.
|
|
46
46
|
const SCHEMA_VERSION = "5";
|
|
47
|
-
// Default dim used when openIndexDb is invoked without an explicit
|
|
48
|
-
// `embeddings_vec` dim — e.g. legacy tests that don't go through the
|
|
49
|
-
// reindex path. The vec table's column type is fixed at CREATE-TABLE time,
|
|
50
|
-
// so any subsequent call with a different dim will rebuild the virtual
|
|
51
|
-
// table. Set to the local-minilm dim so the common case (default provider,
|
|
52
|
-
// no explicit dim) creates a usable table on the first open.
|
|
53
|
-
const DEFAULT_VEC_DIM = 384;
|
|
54
47
|
// Meta key that records the dim at which `embeddings_vec` was created. Used
|
|
55
48
|
// on every open to decide whether to rebuild the virtual table (provider
|
|
56
49
|
// switch). The durable `embeddings` cache is per-(model, dim) so it survives
|
|
@@ -132,24 +125,80 @@ CREATE TRIGGER IF NOT EXISTS documents_au AFTER UPDATE ON documents BEGIN
|
|
|
132
125
|
VALUES (new.rowid, new.title, new.tags, new.content);
|
|
133
126
|
END;
|
|
134
127
|
`;
|
|
135
|
-
// Loads the sqlite-vec loadable extension
|
|
136
|
-
//
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
//
|
|
128
|
+
// Loads the sqlite-vec loadable extension and runs a 1-vector roundtrip to
|
|
129
|
+
// confirm ABI compatibility. Returns Result so the caller (openIndexDb) can
|
|
130
|
+
// surface an actionable message to the operator.
|
|
131
|
+
// Three realistic failure modes, each with a different fix:
|
|
132
|
+
// 1. Platform binary not installed — happens when `npm install` was run
|
|
133
|
+
// with `--omit=optional`, so the per-platform sqlite-vec package was
|
|
134
|
+
// never downloaded. Fix: re-run `npm install` without that flag.
|
|
135
|
+
// 2. Extension loading disabled — better-sqlite3 was compiled with
|
|
136
|
+
// SQLITE_OMIT_LOAD_EXTENSION or the feature was stripped by a distro
|
|
137
|
+
// package. Fix: rebuild from source.
|
|
138
|
+
// 3. ABI / dlopen error — native library found but refused by the OS
|
|
139
|
+
// (e.g. wrong architecture, missing dylib dependency). Message carries
|
|
140
|
+
// the OS reason verbatim.
|
|
141
|
+
// After load() returns, a 1-vector KNN roundtrip catches the case where the
|
|
142
|
+
// extension was dlopen'd but the SQLite virtual-table machinery is broken —
|
|
143
|
+
// a silent ABI mismatch that `load()` itself would not detect.
|
|
142
144
|
function loadVecExtension(db) {
|
|
143
145
|
try {
|
|
144
146
|
sqliteVec.load(db);
|
|
145
|
-
return ok(undefined);
|
|
146
147
|
}
|
|
147
148
|
catch (e) {
|
|
148
149
|
const reason = e instanceof Error ? e.message : String(e);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
let hint;
|
|
151
|
+
if (reason.includes("Cannot find module") || reason.includes("not found")) {
|
|
152
|
+
// require.resolve threw MODULE_NOT_FOUND — the per-platform binary
|
|
153
|
+
// package was never installed (most commonly: npm install --omit=optional).
|
|
154
|
+
hint =
|
|
155
|
+
"The sqlite-vec platform binary was not installed. " +
|
|
156
|
+
"Re-run `npm install` without --omit=optional.";
|
|
157
|
+
}
|
|
158
|
+
else if (reason.includes("not authorized") ||
|
|
159
|
+
reason.includes("extension loading") ||
|
|
160
|
+
reason.includes("SQLITE_ERROR")) {
|
|
161
|
+
// db.loadExtension threw because the better-sqlite3 build has
|
|
162
|
+
// extension loading compiled out.
|
|
163
|
+
hint =
|
|
164
|
+
"Rebuild better-sqlite3 with extension loading enabled: `npm rebuild better-sqlite3 --build-from-source`.";
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// ABI mismatch, OS security policy, or other native-load error.
|
|
168
|
+
hint = "Check that the sqlite-vec binary is compatible with this platform.";
|
|
169
|
+
}
|
|
170
|
+
return err(new Error(`cannot load sqlite-vec extension: ${reason}. ${hint}`));
|
|
171
|
+
}
|
|
172
|
+
// ABI smoke-test: insert one vector and retrieve it. Uses temp.schema
|
|
173
|
+
// (CREATE VIRTUAL TABLE temp._vec_smoke) because SQLite does not allow
|
|
174
|
+
// CREATE TEMP VIRTUAL TABLE syntax, but does allow schema-qualified names
|
|
175
|
+
// that target the temp database. The table is dropped after the test so no
|
|
176
|
+
// permanent schema changes land.
|
|
177
|
+
const smokeBlob = Buffer.from(new Float32Array([1.0]).buffer);
|
|
178
|
+
try {
|
|
179
|
+
db.exec("CREATE VIRTUAL TABLE temp._vec_smoke USING vec0(v FLOAT[1] distance_metric=cosine);");
|
|
180
|
+
db.prepare("INSERT INTO temp._vec_smoke(v) VALUES (?)").run(smokeBlob);
|
|
181
|
+
const rows = db
|
|
182
|
+
.prepare("SELECT * FROM temp._vec_smoke WHERE v MATCH ? AND k = ?")
|
|
183
|
+
.all(smokeBlob, 1);
|
|
184
|
+
db.exec("DROP TABLE IF EXISTS temp._vec_smoke;");
|
|
185
|
+
if (rows.length !== 1) {
|
|
186
|
+
return err(new Error("sqlite-vec loaded but smoke-test returned no rows — " +
|
|
187
|
+
"possible ABI mismatch between the sqlite-vec binary and this build of better-sqlite3"));
|
|
188
|
+
}
|
|
152
189
|
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
try {
|
|
192
|
+
db.exec("DROP TABLE IF EXISTS _vec_smoke;");
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// best-effort cleanup; ignore secondary failure
|
|
196
|
+
}
|
|
197
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
198
|
+
return err(new Error(`sqlite-vec loaded but smoke-test failed: ${reason} — ` +
|
|
199
|
+
"possible ABI mismatch between the sqlite-vec binary and this build of better-sqlite3"));
|
|
200
|
+
}
|
|
201
|
+
return ok(undefined);
|
|
153
202
|
}
|
|
154
203
|
// Creates the sqlite-vec virtual table at the given dim, dropping any
|
|
155
204
|
// existing copy first. `dim` is fixed at CREATE TABLE time for vec0, so a
|
|
@@ -191,7 +240,9 @@ function deleteEmbeddingsVecForHash(db, contentHash) {
|
|
|
191
240
|
// `embeddings_vec` was created at a different dim (or doesn't exist yet),
|
|
192
241
|
// it is dropped and recreated at the expected dim — the durable `embeddings`
|
|
193
242
|
// cache is untouched, so a switch back to the previous provider is all
|
|
194
|
-
// cache hits.
|
|
243
|
+
// cache hits. `expectedVecDim` is required — pass the active provider's dim
|
|
244
|
+
// (e.g. `getProvider().dim`). Tests that don't exercise vector queries should
|
|
245
|
+
// use `LOCAL_MINILM_DIM` from `src/search/providers/local-minilm.ts`.
|
|
195
246
|
export function openIndexDb(vaultRoot, expectedVecDim) {
|
|
196
247
|
try {
|
|
197
248
|
mkdirSync(join(vaultRoot, ".daftari"), { recursive: true });
|
|
@@ -232,11 +283,9 @@ export function openIndexDb(vaultRoot, expectedVecDim) {
|
|
|
232
283
|
}
|
|
233
284
|
db.exec(SCHEMA);
|
|
234
285
|
db.exec(FTS_SCHEMA);
|
|
235
|
-
//
|
|
236
|
-
//
|
|
237
|
-
|
|
238
|
-
// recreating would drop all the indexed vectors for no reason.
|
|
239
|
-
const targetDim = expectedVecDim ?? DEFAULT_VEC_DIM;
|
|
286
|
+
// If the persisted dim matches AND the virtual table already exists, leave
|
|
287
|
+
// it alone — recreating would drop all the indexed vectors for no reason.
|
|
288
|
+
const targetDim = expectedVecDim;
|
|
240
289
|
const persistedDimRaw = getMeta(db, VEC_DIM_META_KEY);
|
|
241
290
|
const persistedDim = persistedDimRaw ? Number.parseInt(persistedDimRaw, 10) : null;
|
|
242
291
|
const vecTableExists = db
|
|
@@ -461,4 +510,15 @@ export function embeddingCount(db) {
|
|
|
461
510
|
const row = db.prepare("SELECT COUNT(*) AS n FROM embeddings").get();
|
|
462
511
|
return row.n;
|
|
463
512
|
}
|
|
513
|
+
// Counts embedding cache rows for `model` whose stored `dim` does not match
|
|
514
|
+
// `expectedDim`. A non-zero result means some cached vectors will be silently
|
|
515
|
+
// skipped by `rowToChunk`'s dim-guard, so vector search falls back to
|
|
516
|
+
// keyword-only for those chunks. Exposed via vault_status so operators can
|
|
517
|
+
// detect a corrupt cache without digging through logs.
|
|
518
|
+
export function countDimMismatches(db, model, expectedDim) {
|
|
519
|
+
const row = db
|
|
520
|
+
.prepare("SELECT COUNT(*) AS n FROM embeddings WHERE model = ? AND dim != ?")
|
|
521
|
+
.get(model, expectedDim);
|
|
522
|
+
return row.n;
|
|
523
|
+
}
|
|
464
524
|
//# sourceMappingURL=index-db.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-db.js","sourceRoot":"","sources":["../../src/storage/index-db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-db.js","sourceRoot":"","sources":["../../src/storage/index-db.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/read.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ export interface VaultStatusResult {
|
|
|
74
74
|
stalenessDistribution: StalenessDistribution;
|
|
75
75
|
unresolvedTensions: UnresolvedTensions;
|
|
76
76
|
recentWrites: RecentWrites;
|
|
77
|
+
embeddingDimMismatches: number;
|
|
77
78
|
}
|
|
78
79
|
export declare function vaultStatus(vaultRoot: string, access?: AccessContext): Promise<Result<VaultStatusResult, Error>>;
|
|
79
80
|
export declare const readTools: ToolDefinition[];
|
package/dist/tools/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAmC,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,2BAA2B,CAAC;AAIpF,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,MAAM,EAEX,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/read.js
CHANGED
|
@@ -10,6 +10,8 @@ import { listStaleFiles } from "../curation/staleness.js";
|
|
|
10
10
|
import { DEFAULT_TENSION_STATUS, listTensions } from "../curation/tension.js";
|
|
11
11
|
import { parseDocument } from "../frontmatter/parser.js";
|
|
12
12
|
import { DOMAINS, err, ok, STATUSES, } from "../frontmatter/types.js";
|
|
13
|
+
import { getProvider } from "../search/vector.js";
|
|
14
|
+
import { countDimMismatches, openIndexDb } from "../storage/index-db.js";
|
|
13
15
|
import { listFiles, readFile, resolveVaultPath } from "../storage/local.js";
|
|
14
16
|
import { sha256Hex } from "../utils/hash.js";
|
|
15
17
|
export async function vaultRead(vaultRoot, path, access) {
|
|
@@ -168,6 +170,21 @@ export async function vaultStatus(vaultRoot, access) {
|
|
|
168
170
|
const visibleWrites = access
|
|
169
171
|
? log.value.filter((e) => canRead(access.role, topCollection(e.file)))
|
|
170
172
|
: log.value;
|
|
173
|
+
// Dim-mismatch counter. A non-zero value means some embedding cache rows
|
|
174
|
+
// for the active model have the wrong dim and are being silently skipped
|
|
175
|
+
// by vector ranking. We open the DB defensively — if sqlite-vec isn't
|
|
176
|
+
// installed or the index hasn't been built yet, the field is 0.
|
|
177
|
+
const provider = getProvider();
|
|
178
|
+
let embeddingDimMismatches = 0;
|
|
179
|
+
const dbResult = openIndexDb(vaultRoot, provider.dim);
|
|
180
|
+
if (dbResult.ok) {
|
|
181
|
+
try {
|
|
182
|
+
embeddingDimMismatches = countDimMismatches(dbResult.value, provider.id, provider.dim);
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
dbResult.value.close();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
171
188
|
return ok({
|
|
172
189
|
vault: vaultRoot,
|
|
173
190
|
fileCount: index.value.count,
|
|
@@ -183,6 +200,7 @@ export async function vaultStatus(vaultRoot, access) {
|
|
|
183
200
|
count: visibleWrites.length,
|
|
184
201
|
entries: visibleWrites.slice(-10),
|
|
185
202
|
},
|
|
203
|
+
embeddingDimMismatches,
|
|
186
204
|
});
|
|
187
205
|
}
|
|
188
206
|
// ---------------------------------------------------------------------------
|
package/dist/tools/read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,oEAAoE;AACpE,wDAAwD;AAExD,OAAO,EAAsB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAwB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,OAAO,EACP,GAAG,EAEH,EAAE,EAEF,QAAQ,GAET,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAgC7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,IAAY,EACZ,MAAsB;IAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAE9B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,CACR,IAAI,KAAK,CACP,wBAAwB,MAAM,CAAC,QAAQ,gBAAgB,GAAG,eAAe,UAAU,GAAG,CACvF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;QACR,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;QAC7B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;QACrC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG;QACrB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QACnC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;QAC3C,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAC7C,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAmCD,+EAA+E;AAC/E,kDAAkD;AAClD,SAAS,YAAY,CAAC,OAAe,EAAE,EAAe;IACpD,IAAI,EAAE,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,GAAG,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,UAA6B,EAAE,EAC/B,MAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,SAAS;QAC3B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,SAAS;QAEzB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QACpC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,UAAU,IAAI,UAAU,KAAK,OAAO,CAAC,UAAU;YAAE,SAAS;QACtE,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE,SAAS;QAC7D,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE,SAAS;QAC7D,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBAAE,SAAS;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC,aAAa;gBAAE,SAAS;QACzE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,UAAU;YACV,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,iBAAiB,EAAE,EAAE,CAAC,kBAAkB;YACxC,eAAe,EAAE,EAAE,CAAC,gBAAgB;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;SACrC,CAAC,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChF,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
|