v0.10.0
v0.10.0
Released: June 30, 2026 · Download
✨ New features
idx related <file> — contextual file discovery
A new top-level command that finds the files most likely relevant to the one you
are currently editing. Results are ranked by a weighted combination of three signals:
| Signal | Weight | Description |
|---|---|---|
| Git co-change | 0.5 | Files that appear in the same commits as the target |
| Persistent co-read | 0.3 | Files read in the same session window (stored across sessions in .idx/co_read_matrix.idx) |
| BM25 term co-occurrence | 0.2 | Files sharing significant vocabulary with the target |
The reason field (git, co-read, term-overlap, both) tells you which
signal(s) drove each result.
# Default: up to 10 related files in text format
idx related internal/features/search/service.go
# JSON output for scripting or AI agents
idx related internal/features/search/service.go --format json
# Compact output — paths only
idx related internal/features/search/service.go --compact --limit 5
# Filter to recently changed files
idx related internal/features/search/service.go --since HEAD~3 --ext goOutput columns (text mode): relative path · signal reason · final score (0–1).
idx search --since <ref> — git-aware search
idx search gains a --since flag that restricts results to files changed since
any git ref — commit SHA, branch name, tag, or HEAD~N.
# Only return matches in files touched since the last commit
idx search "error handling" --since HEAD~1
# Scope a search to a feature branch
idx search "middleware" --since main --ext go
# Use an explicit commit SHA
idx search "config" --since abc1234An invalid ref returns a clear error immediately:
invalid git ref "bad-ref": ...
Four enforcement hooks for idx skills install claude
The Claude enforcement layer now installs four hook scripts instead of two.
The new idx-read-block.sh and idx-grep-block.sh hooks intercept Claude's
built-in Read and Grep tools at the project level, complementing the existing
Bash-shell blocker:
| File | Event | Matcher | Purpose |
|---|---|---|---|
~/.claude/idx-block.sh |
PreToolUse |
Bash |
Blocks grep/cat/head/tail and similar shell tools |
~/.claude/idx-read-block.sh |
PreToolUse |
Read |
Blocks the built-in Read tool on repo files |
~/.claude/idx-grep-block.sh |
PreToolUse |
Grep |
Blocks the built-in Grep tool on repo files |
~/.claude/idx-context-hook.sh |
UserPromptSubmit |
— | Injects enforcement rules each turn |
Re-running idx skills install claude is idempotent and upgrades existing
installations automatically.
🐛 Bug fixes / Improvements
bm25.popularity_weight accessible via idx config get
bm25.popularity_weight was not included in the idx config show output or
accessible via idx config get. It is now a first-class config key alongside
the other 13 keys (total: 14 configurable keys).
idx config get bm25.popularity_weight
# 0.3
idx config show
# bm25.popularity_weight 0.3 · defaultmake check now enforces cyclomatic complexity and skill-asset drift
Two additional quality gates were added to make check (and make all):
complexity— fails the build when any function exceeds cyclomatic complexity 15.skill-lint— fails if any flag or subcommand referenced in the skill asset
files no longer exists in the binary. Catches drift between docs and CLI.
🏗️ Architecture
- ADR 0024 —
idx relatedoriginal design: co-read affinity via temporal
proximity + BM25 term co-occurrence;idx search --sinceviagit diff --name-only. - ADR 0025 —
idx relatedsignals upgraded: git co-change (two-call approach:
git log --format=%H+git diff-tree), persistent co-read matrix (GOB at
.idx/co_read_matrix.idx, 30-min session window), temporal proxy removed. - Internal
gitutilpackage extracted tointernal/shared/gitutil/— git
subprocess calls are now shared rather than duplicated across features. SearchCommandServiceandRelatedCommandServiceconstructors migrated to
SearchDeps/RelatedDepsstructs; wiring layer gains aserverWiring
accumulator that eliminates field-by-field extraction between builders.