Skip to content

v0.25.0 — Lua, srclight tool CLI, and self-repairing git hooks

Choose a tag to compare

@tofutim tofutim released this 15 Sep 17:52
· 33 commits to develop since this release

New

  • srclight tool runs any MCP tool from the shell, with schema-driven argument coercion (#28, #29).
  • Lua indexing (#26).
  • Sticky embedding model: an index remembers its embedding model, so flag-less runs (git hooks, cron) keep embeddings current (#27).
  • find_pattern reports truncation and the matched line count (#28).

Fixes

  • Auto-reindex git hooks repair themselves after the srclight checkout moves. Previously hook install skipped any file that already had the srclight marker, and hook status checked only the marker. After a directory move, hooks pointing at a removed binary exited silently and were still reported as installed.
    • hook install replaces a block whose binary no longer runs, and leaves a working block alone unless you pass --force. Installs from uvx, a frozen engine or python -m therefore cannot keep re-pointing each other's hooks.
    • hook install exits 1 if the resolved srclight binary is not an executable file.
    • Install, uninstall and status follow core.hooksPath, via git rev-parse --git-path hooks. A hooks path that points at a missing directory is reported, not silently ignored.
    • hook status reports STALE for a missing binary and BROKEN for a block with no end marker or duplicate blocks.
    • A hook whose binary is missing writes a line to .srclight/reindex.log. Correction: in 0.25.0 that line is only written when .srclight/ already exists, and hook status still exits 0 on a problem. Both are fixed in 0.25.1.
    • Hooks do nothing under Git for Windows, for example in WSL clones under /mnt/c.
  • C/C++ call graph: pointer return types and prototype resolution (#24).

Performance

  • Symbol names are matched by grouped lookup instead of one large alternation (#25).

Docs

  • The cron example logs to ~/.local/state/srclight/cron.log, keeps running after a failed step, and ends with hook status. A user-level logrotate setup is documented.

Upgrade to 0.25.1 and run srclight hook install (or with -w <workspace>). From 0.25.1 on, install upgrades hooks from older versions in place, keeping the binary each hook uses, so --force is no longer needed for that.