Skip to content

feat: filter frame edge decisions (PR-FRAME-2)#132

Merged
HumanBean17 merged 2 commits into
masterfrom
feat/filter-frame-decisions
May 14, 2026
Merged

feat: filter frame edge decisions (PR-FRAME-2)#132
HumanBean17 merged 2 commits into
masterfrom
feat/filter-frame-decisions

Conversation

@HumanBean17
Copy link
Copy Markdown
Owner

Scope

Implements PR-FRAME-2 from plans/PLAN-MCP-FILTER-FRAME.md (frame-edge decisions §3.4.1–§3.4.6 in code and tests; §3.4.7 deferred to PR-FRAME-3 per plan). Rationale: propose/MCP-FILTER-FRAME-PROPOSE.md section 3.4.

Changes

  • Wildcard rejection: _validate_no_wildcards on fqn_prefix, path_prefix, target_path_prefix; wired into find_v2, search_v2, and neighbors_v2 after applicability checks, before querying. Errors hint at search(query=...).
  • describe(fqn=...): describe_v2 and MCP describe tool accept optional fqn for exact Symbol FQN lookup; id wins when both set; collision returns first match with disambiguation message.
  • Module docstring on mcp_v2.py: strict frame contract and N=3 / 6-month revisit trigger (propose section 3.4.6).
  • Tests: 13 tests in tests/test_mcp_v2.py per plan (multi-value OR, cross-field AND, exclude_roles, empty filter, wildcards, describe-by-fqn).

Out of scope (not in this PR)

PR-FRAME-3 items: tool-description refresh for search/find/neighbors, local fail-loud counters, docs/AGENT-GUIDE.md, §3.4.7 identifier-resolution text in tool descriptions.

Validation

  • .venv/bin/ruff check .
  • PATH="<repo>/.venv/bin:$PATH" .venv/bin/python -m pytest tests -q (426 passed, 10 skipped)

Files

  • mcp_v2.py, server.py, tests/test_mcp_v2.py only (vs master).

Depends on / stacks with PR-FRAME-1 vocabulary work already on this branch where applicable.

Made with Cursor

HumanBean17 and others added 2 commits May 14, 2026 23:44
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@HumanBean17 HumanBean17 merged commit 3576769 into master May 14, 2026
1 check passed
@HumanBean17 HumanBean17 deleted the feat/filter-frame-decisions branch May 23, 2026 16:22
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