Skip to main content

Module path compatibility

  • Canonical module path: github.com/uchebnick/unch
  • Canonical source install path: github.com/uchebnick/unch/cmd/unch@latest
  • Older unch-searcher references should be treated as legacy

CLI compatibility

  • Existing commands and flags are expected to stay stable across patch releases
  • Breaking CLI changes should only happen in minor releases
  • New flags should be additive

Manifest compatibility

  • Local repository state lives in .semsearch/manifest.json
  • Manifest compatibility is governed by schema_version
  • version is the logical publication or generation number of indexed repo state
  • Remote binding metadata also lives in the manifest, which means remote configuration is checkout-local state

Index compatibility

  • index.db is a rebuildable cache artifact, not a durable user database
  • Active index state is provider-scoped and model-scoped
  • When the current binary cannot use a database layout, the fix is to rebuild the index

Remote and CI compatibility

  • Remote sync trusts published state only when it is compatible with the local binary
  • If a published remote index uses an older incompatible schema, local search should keep using a compatible local cache when available
  • Repositories that use remote indexing must rerun .github/workflows/unch-index.yml after incompatible indexing releases
  • A local reindex detaches remote binding and returns the manifest to local-only mode until the checkout is rebound

Support matrix

AreaStatusNotes
Go indexingSupportedTree-sitter-based symbol extraction
Rust indexingSupportedTree-sitter-based symbol extraction
TypeScript indexingSupportedTree-sitter-based symbol extraction
JavaScript indexingSupportedTree-sitter-based symbol extraction
Python indexingSupportedTree-sitter-based symbol extraction
Other languagesLimitedLegacy prefix fallback only
Search modesSupportedauto, semantic, lexical
Homebrew installSupportedmacOS-first polished install path
go installSupportedCLI package path is github.com/uchebnick/unch/cmd/unch; requires a cgo-capable Go toolchain
install.shSupportedUses release assets on macOS and Linux by default, verifies downloads against published checksums, and falls back to go install only when no matching archive is available
install/install.ps1SupportedUses release assets on Windows by default, verifies downloads against published checksums, and falls back to go install only when no matching archive is available
Darwin release binariesSupportedarm64 and x86_64
Linux release binariesSupportedarm64 and x86_64
Windows release binariesSupportedarm64 and x86_64
Remote indexingSupportedGitHub Actions remote index workflow (unch-index.yml)
Published release binaries and CI builds on macOS, Linux, and Windows arm64/x86_64 use the full cgo-backed Tree-sitter and SQLite stack. Manual Windows builds without cgo remain a fallback path and should not be treated as identical to the published binaries. go install is smoke-tested in CI in the official Debian-based Go container image; install.sh is smoke-tested on Ubuntu, Debian, Arch, and NixOS-like Linux environments; install/install.ps1 is smoke-tested on Windows arm64 and x86_64.
Existing commands and flags are expected to stay stable across patch releases.Breaking CLI changes should only happen in minor releases, and new flags should be additive.
Local repository state lives in .semsearch/manifest.json.schema_version governs manifest compatibility, while index.db remains a rebuildable cache artifact rather than a durable user database.
Remote sync only trusts published state when it is compatible with the local binary.If a published remote index uses an older incompatible schema, local search should keep using a compatible local cache when available.
If unch upgrades and local search breaks, rerun unch index.If remote sync reports an incompatible published schema, rerun .github/workflows/unch-index.yml.

Practical upgrade rules

  • If unch upgrades and local search breaks, rerun unch index
  • If remote sync reports an incompatible published schema, rerun the repository remote index workflow
  • If you automate installation from source, use go install github.com/uchebnick/unch/cmd/unch@latest