Skip to content

fix(core): take graph-anchored NEAR candidates at the configured [search] quality (#2430) - #2473

Open
cyberlife-coder wants to merge 1 commit into
developfrom
claude/funny-fermat-99ev12
Open

cyberlife-coder wants to merge 1 commit into
developfrom
claude/funny-fermat-99ev12

Conversation

@cyberlife-coder

Copy link
Copy Markdown
Owner

Summary

Part of #2430 (2026-10-25 audit of its table against develop).

  • search_anchors_bitmap (collection/search/query/graph_prefilter.rs) passed SearchQuality::default() (Balanced), so a graph-anchored NEAR over a large anchor set ignored [search] default_mode / ef_search. It now uses self.runtime_search_quality(), as batch.rs, text.rs, text_fusion.rs and graph_api.rs already do.
  • A default config still resolves to Balanced: results change only for users who set a non-default [search] (same behaviour note as core: a search that sets only rerank runs at Balanced, not the configured [search] default #2399).

Status of the #2430 table (against develop at e75c6bd)

Site State
hybrid_search (text.rs) already fixed (#2459)
hybrid fusion streams (text_fusion.rs) already fixed (#2459)
search_by_embedding on graph collections (graph_api.rs) already fixed (#2459)
graph-anchored NEAR bitmap path this PR
metadata-filtered NEAR via secondary-index bitmap (vector.rs, search_with_optional_bitmap) not changed: it sizes its own ef_search = candidates_k.max(k * 10), so following [search] there is a design decision, not a one-line routing fix

Verification

  • cargo check -p velesdb-core --features persistence, cargo fmt --all -- --check: clean.
  • cargo test -p velesdb-core --features persistence --lib anchor -- --test-threads=1: 26 passed.

Not done

  • No dedicated two-config test for this path. The bitmap branch only runs above ANCHORED_EXACT_SCORE_MAX (10 000 anchors), and search_near_with_anchor_ids is pub(crate), so a test in tests/search_config_defaults.rs needs a 10k+ node graph driven through VelesQL MATCH. Left for the maintainer to decide.
  • Full scripts/local-ci.sh and pedantic clippy were not run.
  • The head branch is claude/*, which pr-governance rejects; it needs renaming to a permitted prefix (e.g. fix/) before this can merge.

Generated by Claude Code

…rch] quality (#2430)

search_anchors_bitmap pinned SearchQuality::default() (Balanced) and so
ignored [search] default_mode / ef_search. Route it through
runtime_search_quality(), as the hybrid and graph-embedding sites already
do. Default config still resolves to Balanced, so results are unchanged
unless [search] is customised.
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution to VelesDB!

Before this PR can be merged, please sign the Contributor License Agreement by posting the following comment:

I have read the CLA Document and I hereby sign the CLA

This grants the project a license to use your contribution under the VelesDB Core License 1.0 and future licensing terms.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Copy link
Copy Markdown
Owner Author

Two red checks on 0312cc5, neither a code failure:

  • PR Governance / Git Flow & Freshness Checks: the head branch is claude/funny-fermat-99ev12; the gate only allows feature/ feat/ fix/ bugfix/ refactor/ chore/ docs/ style/ perf/ test/ build/ ci/ dependabot/. A PR's head branch cannot be renamed, so this needs the same commit pushed under e.g. fix/search-quality-graph-anchored-near and a new PR (this one closed as superseded). The session that opened this PR was bound to the claude/ branch name, so that move is the maintainer's call.
  • cla-assistant: needs the author to post the CLA sentence from the bot's comment; that cannot be done on the maintainer's behalf.

The change itself (one line in graph_prefilter.rs) is unaffected; the remaining checks are still running.


Generated by Claude Code

This branch has not been deployed

No deployments
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.

2 participants