Skip to content

feat(hints): v4 success-path find road signs (F1–F3)#176

Merged
HumanBean17 merged 2 commits into
masterfrom
feat/hints-v4-find-success
May 17, 2026
Merged

feat(hints): v4 success-path find road signs (F1–F3)#176
HumanBean17 merged 2 commits into
masterfrom
feat/hints-v4-find-success

Conversation

@HumanBean17
Copy link
Copy Markdown
Owner

Summary

  • Add F1–F3 find success-path hints in mcp_hints.py: route → inbound EXPOSES, client → outbound HTTP_CALLS, producer → outbound ASYNC_CALLS.
  • Page-full gate: F-rows suppressed when len(results) >= limit and has_more_results is true; page-full meta stays PRIORITY_META, success rows at PRIORITY_LEAF_FOLLOWUP.
  • When multiple matches, {id} is results[0]["id"] only (output-level sign, not per-row).
  • Appendix traceability paragraph in propose/completed/HINTS-ROAD-SIGNS-PROPOSE.md for v4 second partial dot-key reversal (neighbors success path).
  • S1 (search single-hit → describe) not shipped — deferred per plan default.

Implements PR-B from plans/PLAN-HINTS-V4.md / propose/HINTS-V4-SUCCESS-PATH-PROPOSE.md (issue #163).

No re-index. Query-time hint logic only.

Test plan

  • .venv/bin/ruff check .
  • .venv/bin/python -m pytest tests/test_mcp_hints.py -v -k "hints_find_route_success or hints_find_client or hints_find_producer or hints_find_success"
  • .venv/bin/python -m pytest tests -v (637 passed; use .venv/bin on PATH for CLI tests)
  • Sentinel: no ONTOLOGY_VERSION, build_ast_graph.py, or neighbors success trigger changes

Made with Cursor

Emit handler/HTTP/async neighbors follow-ups on non-page-full find
results; document v4 dot-key reversal in HINTS-ROAD-SIGNS appendix.
S1 search single-hit describe deferred per plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HumanBean17
Copy link
Copy Markdown
Owner Author

Review (approve with minor nits)

Solid, plan-faithful PR-B: F1–F3 wired correctly, page-full gate + _find_is_page_full refactor look good, sentinels clean, S1 deferral documented. Local test_mcp_hints.py is green.

Strengths

  • Correct gates: success, non-empty results, not page-full (has_more_results), kind ∈ {route, client, producer}, results[0].id, 120-char cap.
  • Priority: page-full PRIORITY_META (1), F-rows PRIORITY_LEAF_FOLLOWUP (2); suppression when page-full is tested.
  • Traversals align with describe/neighbors v4 (route → EXPOSES in, client → HTTP_CALLS out, producer → ASYNC_CALLS out).
  • Good extras: multi-match uses first id only (tested), templates in char-cap parametrize.

Suggestions (non-blocking)

  1. find_v2 round-trip — PR-A required a neighbors_v2 integration test; this PR only exercises generate_hints("find", synthetic_payload). One cheap kuzu_graph test would close the loop, e.g. find_v2("route", …) and assert TPL_FIND_SUCCESS_HANDLER with out.results[0].id.

  2. Locked catalog driftHINTS-ROAD-SIGNS-PROPOSE.md UC12 still says successful find emits no hints; v4 now emits F1–F3 for route/client/producer. The appendix paragraph documents neighbors dot-keys (PR-A traceability per plan) but not find success. Consider a short v4 find amendment or Appendix A rows + UC12 update (can be follow-up).

  3. Optional negativeskind="symbol" with results → no F-row; missing results[0].id → silent.

  4. Post-merge hygiene — per plan, move propose/HINTS-V4-SUCCESS-PATH-PROPOSE.md and plans/PLAN-HINTS-V4.md to completed/ when the full v4 effort lands.

results[0] only on multi-match is an accepted v4 limitation (Open Q4) — fine as long as it stays in the PR description.

LGTM once CI is green.

Add find_v2 kuzu_graph round-trip and negative gates; update
HINTS-ROAD-SIGNS catalog/UCs for v4 find success; move v4 propose
and plan to completed/.

Co-authored-by: Cursor <cursoragent@cursor.com>
@HumanBean17 HumanBean17 merged commit 348c61b into master May 17, 2026
1 check passed
@HumanBean17 HumanBean17 deleted the feat/hints-v4-find-success branch May 23, 2026 16:18
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