Searchable Feature gallery

ADR-0004: Semver for the public API; a manifest version integer for the index format, checked independently

Status

Accepted (implemented in packages/searchable/src/validate-manifest.ts and python/searchable/src/searchable/client/validate_manifest.py).

2.0 amendment: the packages were consolidated into @ktjn/searchable and searchable; the latter contains both the sole index builder and the Python client. The index-format-versus-package-API split remains unchanged.

Context

Two different things can break compatibility independently: the published TypeScript/Python API surfaces (function signatures and option shapes), and the on-disk/over-HTTP manifest and shard format they read and write. A deployment can upgrade one without the other (rebuild with a new builder against an old client still deployed, or vice versa), so they need independent version numbers and independent compatibility rules, not one combined "package version" meaning both at once.

Decision

Alternatives Considered

Consequences