v0.16.2 fixes two cache lifecycle errors:
- After a warm repository switches to an unborn branch, a successful refresh
no longer saves old committed files with current dirty files. - Seek now removes Zoekt
.zoekt.metatombstone sidecars with their.zoekt
shards. This prevents a stale tombstone from hiding a recreated path.
Existing v0.16.1 no-HEAD caches with committed shards or sidecars repair during
their next successful refresh. No CLI syntax, dependency, Zoekt revision,
index format, or cache key changed. v0.16.1 corpora remain eligible for reuse.
Install
Universal Ctags is required to build or update an index. Git is required for
Git-backed searches; Git 2.31 or later is required for worktrees. Source
builds require Go 1.27.0.
The tagged README incorrectly says Go 1.25+ and links to the prior Zoekt query
documentation. Use the matching query documentation.
curl -sSfL \
https://raw.githubusercontent.com/dualeai/seek/v0.16.2/install.sh |
sh -s -- v0.16.2Known limitations
- v0.16.2 does not repair an otherwise empty v0.16.1 cache whose only
remaining index artifact is an orphanuncommitted_*.zoekt.metasidecar.
It can hide a recreated dirty path. If this happens, runseek gc --all
and search again. The command evicts each corpus that is not in active use;
an evicted corpus rebuilds when next searched. - While another process builds, or when a failed refresh leaves usable shards,
Seek can search the last published index. During a committed-to-unborn
transition, this can return an old-branch result. A later successful refresh
removes that result.
Validation
The tagged tree passed focused lifecycle tests, go test -race ./cmd/seek,
make lint, make test-static, and a compiled CLI warm-to-orphan replay.
Full changelog: v0.16.1...v0.16.2