Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 11:07

Released: June 11, 2026 · Download


✨ New features

idx server renamed to idx agent

The background process that keeps the index up to date is now exposed as idx agent instead of idx server. The old name is retained as a silent backward-compatible alias — existing scripts do not break.

idx agent start    # start the background agent
idx agent stop     # stop it
idx agent status   # show health, PID, and uptime

idx agent status now includes the PID, making it easy to kill the process manually if needed:

✅ Agent running (PID: 12345, uptime: 4m10s)

All user-facing messages were updated to remove JSON-RPC and daemon terminology. See agent.md.

Richer search result output

idx search text output was significantly improved:

Results header — every search now opens with a summary line before the results:

📁 Found 8 file(s) matching your search

When --skip or --limit is active:

📁 Found 8 file(s) matching your search (showing 3 with pagination)

ANSI-colored file paths — file paths are rendered in the idx accent color in terminal mode. The --compact flag disables coloring for agent/script consumption.

Tree-prefix line format — context lines now use ├── and └── prefixes with inline term highlighting, making it easier to scan matches:

internal/features/search/service.go
  ├── 42: func (s *SearchService) Run(query string, opts Options) (Results, error) {
  └── 55: }

Stale file warning — if a file in the index no longer exists on disk, the result row now shows an inline warning instead of failing or silently returning broken data:

internal/old/removed.go
  └── ⚠ file not found — index is outdated, run idx sync

Compact mode format--compact output now uses lineNum:content (without tree prefix), which is more token-efficient for AI agent consumption.

Score display--explain now shows the BM25 score inline with the file path:

internal/features/search/service.go (score: 0.8432)

Blank line separator — a blank line is printed between results in normal mode, improving readability when --context is used.

bm25.popularity_weight now visible in idx config show

bm25.popularity_weight is now listed as a first-class configurable key (the 14th key) and appears in idx config show output with its resolved value and an override indicator when set in .idx.yml.

idx init no longer requires the agent to be running

idx init now executes in-process as a bootstrap exception. You can initialize a fresh project without starting the agent first:

# Both workflows now work on a clean project:
idx init && idx agent start
# or
idx agent start   # auto-initializes via ensureRootIndex on first watch event

After a successful first init, a hint is printed:

💡 Run `idx agent start` to enable search

See ADR 0022 for the rationale.

release-idx developer skill

A new internal skill (/release-idx) automates the end-to-end release workflow: doc gap analysis, test suite, semver determination, release notes, tagging, and push. The check-docs.sh script was rewritten to perform a real diff-based analysis since the last tag instead of trivial file-existence checks.


🔄 Breaking changes

search.relaxation type changed from string to int in .idx.yml

The relaxation value in .idx.yml is now a plain integer. The old ">N" string format is no longer accepted.

# Before (v0.7.0)
search:
  relaxation: ">2"

# After (v0.8.0)
search:
  relaxation: 2

The --relax N CLI flag is unchanged.


🗑️ Removed

--hits / --matches-only search flag removed

The --hits and --matches-only flags have been removed from idx search. Context lines around matches are available via --context N / -c N.


🐛 Improvements

CI workflow security hardening

All GitHub Actions workflows now use least-privilege permissions (contents: read by default, elevated only where needed).


📦 Dependency updates

Package From To
github.com/stretchr/testify 1.9.0 1.11.1
charm.land/bubbletea/v2 2.0.6 2.0.7
github/codeql-action 3.28.18 4.36.1
goreleaser/goreleaser-action 6.4.0 7.2.2
actions/checkout 6.0.2 6.0.3

🏗️ Architecture

  • ADR 0022 — idx init executes in-process as a bootstrap exception; idx agent start no longer requires prior init.