fix(query): skip covered-term seed guarantee; relax starving heuristic context filters (#2507) - #2516
fix(query): skip covered-term seed guarantee; relax starving heuristic context filters (#2507)#2516filipechagas wants to merge 2 commits into
Graphify — worth a look
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Details
Graphify reviewed this change.
Worth a look — the grounded gate found no coupling regressions or blocking issues, but 1 advisory finding(s) below merit a look before merge.
Graphify review — findings
This PR bumps the package version from 0.9.35 to 0.9.36 and adds two related changes to the natural-language query seeding pipeline in graphify/serve.py. It introduces a skip_covered_terms option to _pick_seeds (opted into only by _query_graph_text) that skips the per-term seed guarantee when a term is a substring of the top-ranked seed's normalized label, and adds a fallback in _query_graph_text that retraverses unfiltered when a heuristically inferred context filter discovers nothing beyond the seeds, annotating the header accordingly. The change also adds a new shared test fixture file (tests/seeding_fixtures.py) and associated tests, plus CHANGELOG entries describing both fixes. The surface area is concentrated in seed selection, context-filter handling, header formatting, and test scaffolding.
Worth a look
- Covered-term skip uses substring test, matching arbitrary short terms —
graphify/serve.py:771· Escalate · medium- agreed by 2 of 2 members but NOT verified (no proof, no reproducing execution) — consensus is not a verdict; needs human review
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 651 functions depend on the 347 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
_query_graph_text()— 29 callers, 6 callees - worse:
_score_query()— 22 callers, 5 callees - worse:
_query_terms()— 22 callers, 3 callees - new:
make_charge_fixture()— 14 callers, 3 callees - new:
test_generic_noun_phrasing_seeds_no_hub_and_stays_bounded()— 0 callers, 11 callees - new:
test_callers_of_phrasing_renders_all_callers_and_drops_junk_seed()— 0 callers, 7 callees - new:
test_who_calls_phrasing_falls_back_when_heuristic_filter_strands_the_seed()— 0 callers, 7 callees - new:
test_expanding_heuristic_filter_is_left_in_force()— 0 callers, 6 callees - …and 1 more
Verification — 651 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 511 function(s) in the blast radius were not formally verified this run