Repository navigation
v0.25.0 — Lua, srclight tool CLI, and self-repairing git hooks
New
srclight toolruns 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_patternreports truncation and the matched line count (#28).
Fixes
- Auto-reindex git hooks repair themselves after the srclight checkout moves. Previously
hook installskipped any file that already had the srclight marker, andhook statuschecked only the marker. After a directory move, hooks pointing at a removed binary exited silently and were still reported as installed.hook installreplaces a block whose binary no longer runs, and leaves a working block alone unless you pass--force. Installs from uvx, a frozen engine orpython -mtherefore cannot keep re-pointing each other's hooks.hook installexits 1 if the resolved srclight binary is not an executable file.- Install, uninstall and status follow
core.hooksPath, viagit rev-parse --git-path hooks. A hooks path that points at a missing directory is reported, not silently ignored. hook statusreportsSTALEfor a missing binary andBROKENfor 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, andhook statusstill 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 withhook 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.