Repository navigation
v0.12.0
Install
Quick install (no repo needed)
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ix-infrastructure/Ix/main/scripts/install/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/ix-infrastructure/Ix/main/scripts/install/install.ps1 | iex
# Homebrew
brew tap ix-infrastructure/ix https://github.com/ix-infrastructure/Ix
brew install ix
ix docker startDocker image
docker pull ghcr.io/ix-infrastructure/ix-memory-layer:latestHighlights
- Lean issue bundles:
ix context --from-issue <file> --leanprints only the starting points Ix trusts, aspath:lineswith the reason ("the issue namesJsonWriter"), then the next few files. That's about 150–200 tokens instead of a full bundle. When Ix trusts none of its starting points, it says so in one line. In agent runs on SWE-PolyBench, full issue bundles added 13–15% tokens; lean ones cost about the same as no bundle, with no change in how many issues agents solved. (#740) - Better starting points for
--from-issue:- It ranks files better: whole multi-part code names count as words, stopwords are dropped, and identifiers named in the issue count double. On held-out issues, the share of fix files in the top 5 went from 0.47 to 0.61.
- Specific names are tried before common words like
debug. - Files in a project's website, playground, test-config, benchmarks, storybook and e2e directories are no longer ranked. (#740)
- Ix tells you when its graph is damaged. If checkouts of the same repository share a backend, a backend bug can wipe a workspace's call and import links.
context,explain,callers,calleesandimpactnow say so, instead of answering "0 callers" or "low risk". The fix is the newix reset --workspace --ingest, which resets only the current workspace. Graph reads from an unmapped directory now fail withworkspace_not_mappedinstead of answering from another repository. Misses suggest the nearest names. (#733) - MCP:
- The server now sends instructions saying when Ix beats grep.
- The default tool set is 5 task-shaped tools:
ix_context(now alsoissue=),ix_search,ix_neighbors,ix_impact,ix_read. The rest are available with--tools=all. - Next steps are written as tool calls an MCP client can run. (#734)
- Rows you can act on:
- Correctness fixes:
- Python, Rust and PHP bare calls no longer link to another file's method.
- Deleted files could stay in the graph for good after a failed lookup.
- A config file with a typo was silently overwritten.
ix ingest --langdid nothing.ix upgradereported success after a failed step.- Several Windows and symlinked-path mismatches.
ix ingest --githubexited 0 when nothing was written.ix watchdied on a file-watcher error; it now falls back to polling. (#739, #742, #730)
Upgrading
- The first
ix mapafter upgrading rebuilds the graph once. The extractor is nowtree-sitter/1.27, because Python, Rust and PHP calls resolve differently. This takes about as long as a first map, and an interrupted rebuild resumes where it stopped. On a large repository, runix maponce by hand to get it done in one go. (#739) - MCP: if a prompt or allowlist names
ix_explain,ix_locate,ix_overview,ix_textorix_health, start the server withix mcp --tools=all. Tool names are unchanged. (#734) - Scripts that ran graph commands from an unmapped directory now get
workspace_not_mappedand exit 1. Run them from inside a mapped workspace. (#733)
What's Changed
- chore(brew): update formula for v0.11.1 by @github-actions[bot] in #728
- fix(ingest): re-send commits that lost the base-rev race to another writer by @KageBinary in #730
- docs: remove the live demo and docs links until they are hosted by @KageBinary in #735
- docs: serve the docs site at docs.ix-infra.com/oss by @KageBinary in #736
- fix: CLI and ingestion correctness sweep (14 fixes, extractor 1.27) by @KageBinary in #739
- feat(cli): detect hollowed graphs, refuse unmapped workspaces, better misses by @KageBinary in #733
- feat(mcp): server instructions, a 5-tool core set, and hints an MCP caller can run by @KageBinary in #734
- feat(cli): rows carry the call site, lines and numbering an agent acts on by @KageBinary in #732
- feat(context): lean issue view, better starting points, better BM25 for --from-issue by @KageBinary in #740
- fix(read): re-anchor a stale file's symbol span to the declaration on disk by @KageBinary in #741
- fix: ingest --github exit code, ix watch polling fallback (follow-ups to #739) by @KageBinary in #742
Full Changelog: v0.11.1...v0.12.0