Skip to content

docs: finalize RFC 0014 — exact KNN query mode (accept)#19

Merged
hev merged 2 commits into
mainfrom
docs/rfc-0014-finalize
Jul 8, 2026
Merged

docs: finalize RFC 0014 — exact KNN query mode (accept)#19
hev merged 2 commits into
mainfrom
docs/rfc-0014-finalize

Conversation

@hevbot

@hevbot hevbot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Links issue #17: #17

Rendered RFC rich diff: https://github.com/hev/search/pull/19/files#diff-0563f4713405f41d8313a3725025dabdc9e13b4fc97db418d87594201213fbc4

Summary

  • Finalizes docs/rfcs/0014-exact-knn-query-mode.md as Accepted (2026-07-08).
  • Resolves query-shape and cache semantics against current engine/bench reality.
  • Keeps the only remaining judgment call explicitly flagged as an Open Question for Review.

Resolved open questions

  • Naming: resolved to exact: true; evidence: current /query uses direct request fields (nprobes, filter, semantic_cache) and exact states the caller intent without exposing ANN as the wire default.
  • FTS-only + exact: resolved to HTTP 400; evidence: current manager has a separate FTS-only branch with no vector query or vector index to bypass, while hybrid can apply exactness to the vector leg only.
  • nprobes + exact: resolved to HTTP 400; evidence: current nprobes is only an IVF/ANN knob (QueryRequest::nprobes, default 20), and exact scan has no partitions to probe.
  • Semantic cache: resolved to reject semantic_cache.enabled with exact and skip semantic sidecar insertion; evidence: current semantic cache is approximate near-duplicate reuse and is documented/validated only for single-vector, unfiltered, non-FTS requests.
  • Exact result cache: resolved to keep result caching but include exact in the cache key; evidence: current exact result cache keys canonical query fields by namespace generation, so exact and indexed answers must not collide.
  • Bench lane wording: resolved to describe current recall_sweep honestly; evidence: current harness computes/loads exact ground truth and self-checks an unindexed namespace, while PR Add bench evidence CI workflow #10 wraps that harness and records the image provenance caveat from review.

Open question flagged for hev

  • Cost guardrail: whether v1 should ship with no row-count guardrail under the trusted-caller posture or require an override above a namespace-size threshold. Current code has no exact-scan knob and no existing guardrail behavior to mirror.

Verification

  • git diff --name-only origin/main...HEAD -> docs/rfcs/0014-exact-knn-query-mode.md only.
  • git diff --check origin/main...HEAD passed.

@hevbot hevbot added the gate:docs Awaiting docs review gate (agentic-gates §2) label Jul 8, 2026
@hevbot

hevbot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

Factory verified: diff touches only docs/rfcs/0014-exact-knn-query-mode.md; rendered rich-diff linked; open questions explicitly flagged. Ready for hev's docs review — merge = RFC accepted + factory files implementation issues.

@hev

hev commented Jul 8, 2026

Copy link
Copy Markdown
Owner

@hevbot please provide the docs preview link

@hevbot

hevbot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

Docs preview link — the rendered RFC on this branch: https://github.com/hev/search/blob/docs/rfc-0014-finalize/docs/rfcs/0014-exact-knn-query-mode.md (GitHub renders the markdown there; the body's rich-diff link shows the change highlights). Note: hev/search has no Pages-style docs preview lane like hev/layer's — if you want real HTML previews for RFC docs PRs here, that's a §6 render-path tail worth an issue; say the word and the factory files + dispatches it.

@hev hev force-pushed the docs/rfc-0014-finalize branch from fecc2e9 to 4ff3044 Compare July 8, 2026 15:52
@hev

hev commented Jul 8, 2026

Copy link
Copy Markdown
Owner

@hevbot No guardrails necessary.

@hev hev force-pushed the docs/rfc-0014-finalize branch from 4ff3044 to 75fdea5 Compare July 8, 2026 19:00
@hevbot

hevbot commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

Done: the cost-guardrail open question is now resolved in the doc per your call — v1 ships with no row-count guardrail (trusted-caller posture; Layer owns caller-facing limits). Also updated the branch onto post-#18 main — there was no real conflict, just the out-of-date banner. CI re-running; merge when green.

@hev hev merged commit 28f6334 into main Jul 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gate:docs Awaiting docs review gate (agentic-gates §2)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants