Skip to content

v0.3.0

Choose a tag to compare

@clemlesne clemlesne released this 11 Mar 19:36

Feature

  • POSIX exit codes — exit 0 on match, 1 on no match, 2 on error, following the grep/ripgrep convention so seek composes naturally in shell pipelines and conditionals (if seek "TODO"; then … fi)
  • Quiet by default — clean output with no noise. New -verbose / -v flag for debugging
  • Fresh results after edits — consecutive saves to the same file now trigger a re-index by including file mtime and size in the state hash, fixing a class of stale result bugs
  • Concurrent safety — multiple seek processes can search the same repo simultaneously without reading partially-written index data

Fix

  • Git status parsing — fixed incorrect parsing of NUL-terminated records that could silently misparse repository state
  • Cache directory no longer causes repeated re-indexing.seek-cache is auto-excluded from git tracking via .git/info/exclude
  • No more index gaps during re-indexing — atomic shard replacement eliminates a window where uncommitted content was temporarily invisible
  • Removed GIT_OPTIONAL_LOCKS=0 — allows git to refresh its stat cache after git status, improving detection of rapid edits

Performance

  • Zero-alloc context line counting
  • Benchmark suite with make test-bench

Test

  • 1900+ lines of new tests covering integration, concurrency, locking, and edge cases
  • CI now installs universal-ctags on macOS and Linux