Skip to content

Refactor/unified metric - #5

Merged
Pradyothsp merged 18 commits into
mainfrom
refactor/unified-metric
Oct 13, 2026
Merged

Pradyothsp merged 18 commits into
mainfrom
refactor/unified-metric

Conversation

@Pradyothsp

Copy link
Copy Markdown
Owner

No description provided.

v2.9.0 is built with Go 1.26 and panics on Go 1.27 code, crashing lint and the pre-commit hook.
…kage

- hnsw had diverged too far to track upstream; dropping the fork rule let metrics leave it
- Topology no longer saves the metric or ef_search, which overwrote config on load
Lets hnsw depend on the metric alone, without reaching GoVec's domain types in core.
…ding

Sparse scoring walks indices in order, so unsorted or repeated ones silently skipped matches.
…strings

The quantization guard now asks the metric whether it is scale-invariant instead of matching its name.
…ph config in hnsw

- Engines were built in pieces; one missing a step silently ran without part of its config
- Graph settings and their defaults are hnsw's, so hnsw.Config and NewGraph own them
Sparse scoring scanned every stored document per query while the inverted index went unread.
Transports and main passed the snapshot path around only to hand it back; Flush, Recover and Reset now need none.
… results free of wire tags

The JSON clients see is unchanged; gRPC already converted engine results into its own types.
…both engines

Recovery, REST and quantization were each tested three or four times across layers; coverage of production code is unchanged.
Both engines keep records through the same code, yet search, persistence and batch rules were tested per engine, and HNSW's copies were the weaker ones.
…quest table each

Each route was tested at handler, router and integration level with near-identical happy paths; router auth wiring had no test at all.
… are wrong

The old ones had no timed loop, reported quality only as log warnings, and queried with stored vectors, so recall was always perfect.
Nothing outside internal/index reads them any more; their names were the last exported way into an engine's internals.
- core, config, metric and heap tests restated each case as its own function; config validation and quantize gain the rules nothing tested.
- AGENTS.md now states the testing rules the cleanup followed.
With an API key set, gRPC refused its own health check and accepted a token sent without "Bearer ".
Go 1.26.6 carries twelve standard-library advisories (net/http, crypto/tls,
html/template) that fail govulncheck in CI; the Docker builder image and the
README's minimum version follow.
@Pradyothsp
Pradyothsp merged commit 3e35c3b into main Oct 13, 2026
8 checks passed
@Pradyothsp
Pradyothsp deleted the refactor/unified-metric branch October 13, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant