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 go
Output 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 abc1234
An 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 Β· default
make 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 toSearchDeps/RelatedDepsstructs; wiring layer gains aserverWiringaccumulator that eliminates field-by-field extraction between builders.