From 8cb4f8a5832e8f2994dde12d587f58e3f466e74e Mon Sep 17 00:00:00 2001 From: Dmitry Teryaev Date: Wed, 13 May 2026 17:14:22 +0300 Subject: [PATCH] move describe override rollup propose and plan to completed Co-authored-by: Cursor --- AGENTS.md | 2 ++ plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md | 2 +- plans/{ => completed}/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md | 8 ++++---- .../{ => completed}/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) rename plans/{ => completed}/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md (98%) rename propose/{ => completed}/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md (99%) diff --git a/AGENTS.md b/AGENTS.md index b58e7f6..74b7beb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,7 +32,9 @@ for tools that don't read `.cursor/rules/`. files are kept as reference templates for future per-PR Cursor work. - Older completed: `propose/completed/CALL-GRAPH-PROPOSE.md`, `propose/completed/DESCRIBE-MEMBER-EDGE-ROLLUP-PROPOSE.md`, + `propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md`, `plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md`, + `plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md`, `propose/completed/MCP-API-V2-REDESIGN-PROPOSE.md` (four-tool MCP + `java-codebase-rag` CLI), `plans/completed/PLAN-CALL-GRAPH.md`, `plans/completed/PLAN-CAPABILITIES-MODEL.md`, diff --git a/plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md b/plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md index 906127a..8cc0248 100644 --- a/plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md +++ b/plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md @@ -5,7 +5,7 @@ Status: **complete** (PR-1 landed). Source propose: Depends on: **none** for graph or indexer work (read-path only). -**Coordinate with:** [`propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md`](../../propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md) if both describe rollups land in the same release window. That propose extends the **same** `_edge_summary_for_node` hook for **method and constructor** symbols with different composed keys. Prefer **one** `kind` + `row` signature change and one composable `_edge_summary_for_node` body with **disjoint** branches (type rollup vs override rollup), or land two PRs in an order where the second PR only adds the method/constructor branch without reshaping the signature again. +**Related:** Companion describe rollup for method symbols (override-axis `edge_summary` keys) lives in [`propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md`](../../propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md) and [`plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md`](PLAN-DESCRIBE-OVERRIDE-ROLLUP.md) (landed in PR #110). ## Goal diff --git a/plans/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md b/plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md similarity index 98% rename from plans/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md rename to plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md index badba80..8ef7f28 100644 --- a/plans/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md +++ b/plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md @@ -1,7 +1,7 @@ # Plan: describe override-axis rollup (`edge_summary` virtual dispatch keys) -Status: **active (planning)**. This plan implements -[`propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md`](../propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md). +Status: **completed** (landed in PR #110). This plan implemented +[`propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md`](../../propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md). Depends on: **none** for graph or indexer work (read-path only). **Coordinate with landed PR-89:** [`plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md`](completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md) — `_edge_summary_for_node` in `mcp_v2.py` already threads `kind` + `row` and merges type-side `member_edge_rollup_for`. This rollout adds a **disjoint** branch for **method** symbols only (not constructors — short-circuit). Type and method branches are mutually exclusive on `row["kind"]`. @@ -151,8 +151,8 @@ Add **exactly** these five tests (propose §6): 1. Propose §3 surface behaviour matches `describe_v2` output on covered scenarios (UC1, UC2, UC5–UC7, UC6 silent). 2. Documentation and Pydantic field descriptions tell agents not to pass virtual keys to `neighbors`. -3. All default `pytest tests` pass; propose moved to `propose/completed/` only **after** the PR merges (repo convention). +3. All default `pytest tests` pass; propose moved to `propose/completed/` after PR #110 merged (repo convention). ## Tracking -- `PR-1`: _pending_ +- `PR-1`: merged (PR #110) diff --git a/propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md b/propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md similarity index 99% rename from propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md rename to propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md index 0be69f4..92f579d 100644 --- a/propose/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md +++ b/propose/completed/DESCRIBE-OVERRIDE-ROLLUP-PROPOSE.md @@ -1,6 +1,6 @@ # DESCRIBE-OVERRIDE-ROLLUP — Surface override-axis affordances on method `describe` so the dispatch chasm is visible -**Status**: under review (v2) +**Status**: completed (landed in PR #110) **Author**: Dmitriy Teriaev + Perplexity Computer **Date**: 2026-05-12 @@ -191,7 +191,7 @@ In `docs/AGENT-GUIDE.md` under `describe`: 2. Run the dispatch-down walk (declarations → impls) and dispatch-up walk (override → declarations) using `signature` equality. 3. Count `DECLARES_CLIENT` / `EXPOSES` outgoing edges on the collected override method ids. 4. Emit non-zero keys only. - - In `mcp_v2._edge_summary_for_node` (or `describe_v2`), check `kind == "symbol"` AND `data.kind == "method"`, then merge non-zero rollup results (constructors: no helper call — see [`plans/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md`](../plans/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md) §PR-1). + - In `mcp_v2._edge_summary_for_node` (or `describe_v2`), check `kind == "symbol"` AND `data.kind == "method"`, then merge non-zero rollup results (constructors: no helper call — see [`plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md`](../../plans/completed/PLAN-DESCRIBE-OVERRIDE-ROLLUP.md) §PR-1). - Update `DescribeOutput` documentation / pydantic field-level description to mention method-side rollup keys. - **Test summary**: 5 new tests in `tests/test_mcp_v2_compose.py` (same module as PR-89 describe `edge_summary` tests; avoids splitting describe rollups across files): - `test_describe_interface_method_with_annotated_impl_emits_rollup` — UC1 fixture.