You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
-`seeklink get PATH:LINE -C N` prints a grep-style context window around a search hit, returning `N` lines before and after the requested line while preserving direct filesystem reads and path-escape protection.
12
12
-`seeklink search --json` and `seeklink status --json` emit stable machine-readable stdout for agents that should not scrape the human text format.
13
13
14
+
### Fixed
15
+
-`seeklink search` and `seeklink index` now auto-restart a stale daemon when its vault, embedder, or reranker config no longer matches the caller, avoiding repeated cold-start fallbacks after switching vaults or model settings.
16
+
14
17
## [0.3.2] - 2026-04-23
15
18
16
19
Repository cleanup pass. No code changes affecting runtime behavior
The daemon stays resident across terminal sessions until you `kill` itor restart. `seeklink search` and `seeklink index` auto-spawn it when missing; `seeklink status` is always cold-start (it only reads SQLite stats, no model load) and `seeklink get` is a direct filesystem read (no daemon involved either).
120
+
The daemon stays resident across terminal sessions until you `kill` it, restart, or switch the default vault/model config. `seeklink search` and `seeklink index` auto-spawn it when missing and auto-restart it if a stale daemon is bound to the wrong vault or model settings; `seeklink status` is always cold-start (it only reads SQLite stats, no model load) and `seeklink get` is a direct filesystem read (no daemon involved either).
121
121
122
122
## For agents
123
123
@@ -158,7 +158,7 @@ Options:
158
158
159
159
Starts a Unix-socket daemon that keeps the embedding model (and reranker, if enabled) resident in memory. First query after startup takes ~2s for model warmup; warm queries return in ~1-2s with the reranker on (default) or ~10ms with `SEEKLINK_RERANKER_MODEL=""`.
160
160
161
-
**You almost never run this directly.**`seeklink search` and `seeklink index` auto-spawn a daemon on cold machines when `--vault` is not passed. `seeklink status` is always cold-start (no model load). `seeklink get` is a direct filesystem read (no daemon). The daemon uses `SEEKLINK_VAULT` (or cwd) as its vault and never auto-exits — kill it with `kill` or restart your machine.
161
+
**You almost never run this directly.**`seeklink search` and `seeklink index` auto-spawn a daemon on cold machines when `--vault` is not passed. If an existing daemon was started for a different vault or model config, the CLI shuts it down and starts a matching one. `seeklink status` is always cold-start (no model load). `seeklink get` is a direct filesystem read (no daemon). The daemon uses `SEEKLINK_VAULT` (or cwd) as its vault.
162
162
163
163
Passing `--vault` always uses cold-start instead of the daemon, because the daemon binds to a single vault at startup.
Copy file name to clipboardExpand all lines: llms.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ seeklink get PATH:LINE -l N # read window around a hit
42
42
seeklink get PATH:LINE -C N # read N lines before/after a hit
43
43
```
44
44
45
-
Set `SEEKLINK_VAULT=<path>` once to omit `--vault` on every call and route through the resident daemon (first call after boot: ~2s; warm: ~1-2s with reranker, ~10ms without).
45
+
Set `SEEKLINK_VAULT=<path>` once to omit `--vault` on every call and route through the resident daemon (first call after boot: ~2s; warm: ~1-2s with reranker, ~10ms without). If that env/model config changes, `search` and `index` auto-restart a stale daemon instead of silently serving the old vault.
46
46
47
47
### Output contract
48
48
@@ -79,5 +79,5 @@ No other codes.
79
79
### Common failure modes
80
80
81
81
- Empty results on a fresh vault → index not built yet. Run `seeklink index --vault PATH`.
82
-
- Daemon won't auto-spawn → `--vault` was passed (cold-start mandatory in that case), or another daemon is bound to a different vault. Run `status` to see `vault` / `embedder` / `reranker` and respawn if needed.
82
+
- Daemon won't auto-spawn → `--vault` was passed, which intentionally forces cold-start. Without `--vault`, `search` / `index` should auto-spawn and auto-restart stale daemons when `vault` / `embedder` / `reranker` no longer match.
83
83
- Line numbers look wrong → file was edited after indexing. Re-index. `status` prints a freshness warning on cold-start.
0 commit comments