Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plans/completed/CURSOR-PROMPTS-CLI-SCENARIOS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Cursor task prompts — CLI scenarios (PR-CLI-1 → PR-CLI-3)

Status: **active**. Implements
Status: **completed** (reference). Implements
[`plans/completed/PLAN-CLI-SCENARIOS.md`](./PLAN-CLI-SCENARIOS.md) and
[`propose/completed/CLI-SCENARIOS-PROPOSE.md`](../propose/completed/CLI-SCENARIOS-PROPOSE.md).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Cursor task prompts — Lossless-permissive `NodeFilter` (PR-N1)

Status: **active**. Implements
Status: **completed** (reference). Implements
[`plans/PLAN-LOSSLESS-PERMISSIVE-NODEFILTER.md`](./PLAN-LOSSLESS-PERMISSIVE-NODEFILTER.md)
and
[`propose/LOSSLESS-PERMISSIVE-NODEFILTER-PROPOSE.md`](../propose/LOSSLESS-PERMISSIVE-NODEFILTER-PROPOSE.md).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: brownfield role/capability overrides — design-fix changelog

Status: **applied**. Companion document to
Status: **completed** — applied. Companion document to
`PLAN-BROWNFIELD-ROLE-OVERRIDES.md`.

## Why this file exists
Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-BROWNFIELD-ROLE-OVERRIDES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: brownfield role / capability overrides

Status: **agreed, ready to implement**. Self-contained: an agent picking
Status: **completed** — shipped (`BrownfieldOverrides` role/capability layers on `master`). Self-contained: an agent picking
this up should be able to land it without re-deriving the design.

## Goal
Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-CALL-GRAPH.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: call-graph layer (static intra-JVM `CALLS` + `DECLARES`)

Status: **ready to implement**. Self-contained: an agent picking this up
Status: **completed** — shipped (static intra-JVM `CALLS` + `DECLARES` on `master`). Self-contained: an agent picking this up
should be able to land it without re-deriving the design. Pairs with
`propose/completed/CALL-GRAPH-PROPOSE.md` (scope, rationale, schema).

Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-CAPABILITIES-MODEL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: capabilities model (multi-tag annotations on Java types)

Status: **agreed, ready to implement**. Self-contained: an agent picking
Status: **completed** — shipped (`capabilities` on Symbol nodes + brownfield overrides on `master`). Self-contained: an agent picking
this up should be able to land it without re-deriving the design.

## Goal
Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-CLIENT-ROLE-RENAME.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: `FEIGN_CLIENT` role → `CLIENT` + `HTTP_CLIENT` capability

Status: **active** — propose merged in [#28](https://github.com/HumanBean17/java-codebase-rag/pull/28).
Status: **completed** — shipped (propose merged in [#28](https://github.com/HumanBean17/java-codebase-rag/pull/28)).
Source: `propose/CLIENT-ROLE-RENAME-PROPOSE.md` on master.
Sequence: ships **after** PR-F1 (#31, merged) and PR-G1 (#30, merged). Master baseline at this plan's start: `aed732b`, `ONTOLOGY_VERSION = 8`, **281 passed, 4 skipped**.

Expand Down
6 changes: 4 additions & 2 deletions plans/completed/PLAN-COCOINDEX-SYMLINK-FIX.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Plan: Fix cocoindex Binary Path Resolution in Venv

Status: **completed** — shipped (`Path(sys.executable).parent / "cocoindex"` without `.resolve()` in `server.py`).

## Goal

Fix `refresh_code_index` failing to find `cocoindex` binary when Python venv uses symlinks.
Expand Down Expand Up @@ -119,5 +121,5 @@ Then run:
## Status

- [x] Step 1: Fix cocoindex binary path resolution
- [ ] Step 2: Verify no similar path resolution issues exist
- [ ] Step 3: Verify fix works in venv environment
- [x] Step 2: Verify no similar path resolution issues exist (no other `cocoindex` path uses `.resolve()` on `sys.executable`)
- [x] Step 3: Verify fix works in venv environment (`tests/test_mcp_tools.py::test_cocoindex_subprocess_env_sets_project_root`)
2 changes: 1 addition & 1 deletion plans/completed/PLAN-CROSS-SERVICE-RESOLUTION-FLAG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: `cross_service_resolution` config flag

Status: **active** — propose merged in [#26](https://github.com/HumanBean17/java-codebase-rag/pull/26).
Status: **completed** — shipped (PR-G1; propose merged in [#26](https://github.com/HumanBean17/java-codebase-rag/pull/26)).
Source: `propose/CROSS-SERVICE-RESOLUTION-FLAG-PROPOSE.md` on master.
Companion plan: `plans/PLAN-FEIGN-NOT-AN-EXPOSER.md` (orthogonal — different pass; either order works, but combined testing on `cross_service_smoke` is cleaner).

Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-DESCRIBE-MEMBER-EDGE-ROLLUP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: describe member edge rollup (`edge_summary` composed keys)

Status: **complete** (PR-1 landed). Source propose:
Status: **completed** (PR-1 landed). Source propose:
[`propose/completed/DESCRIBE-MEMBER-EDGE-ROLLUP-PROPOSE.md`](../../propose/completed/DESCRIBE-MEMBER-EDGE-ROLLUP-PROPOSE.md).

Depends on: **none** for graph or indexer work (read-path only).
Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-ENUM-ANNOTATION-FIXES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: Enum annotation migration fixes

Status: **pending**
Status: **completed** — shipped (`strict=True` in `graph_enrich.py`; README enum stubs without invalid `@Target` on enums).

Companion fixes for commit `01ff39e1` ("from string to enums for java annotations").

Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-FEIGN-NOT-AN-EXPOSER.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: @FeignClient is a caller, not an exposer

Status: **active** — propose merged in [#25](https://github.com/HumanBean17/java-codebase-rag/pull/25).
Status: **completed** — shipped (PR-F1; propose merged in [#25](https://github.com/HumanBean17/java-codebase-rag/pull/25)).
Source: `propose/FEIGN-NOT-AN-EXPOSER-PROPOSE.md` on master.
Companion plan: `plans/PLAN-CROSS-SERVICE-RESOLUTION-FLAG.md` (orthogonal — different pass; can ship in either order).

Expand Down
4 changes: 2 additions & 2 deletions plans/completed/PLAN-HINTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,8 @@ Use **verbatim** names below (adjust only if pytest collection would collide; if

## Tracking

- `PR-A`: _pending_
- `PR-B`: _pending_
- `PR-A`: **merged**
- `PR-B`: **merged**

## Cursor handoff

Expand Down
2 changes: 1 addition & 1 deletion plans/completed/PLAN-HTTP-ROUTE-METHOD-ENUM.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plan: HTTP brownfield enum method, `@CodebaseHttpClient` rename, inbound exclusivity

Status: **complete**. This plan implements
Status: **completed**. This plan implements
[`propose/HTTP-ROUTE-METHOD-ENUM-PROPOSE.md`](../../propose/HTTP-ROUTE-METHOD-ENUM-PROPOSE.md).
PR-1 and PR-2 landed earlier on `master`; PR-3 adds agent docs and the v2 addendum
[`propose/completed/BROWNFIELD-ANNOTATIONS-V2-ADDENDUM-HTTP-METHOD-ENUM.md`](../../propose/completed/BROWNFIELD-ANNOTATIONS-V2-ADDENDUM-HTTP-METHOD-ENUM.md).
Expand Down
8 changes: 4 additions & 4 deletions plans/completed/PLAN-POST-TIER1B-FOLLOWUPS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Post-Tier-1B follow-ups — small cleanup PR plan

Status: **active** — PR-E1 (items 1–6) shipped in [#19](https://github.com/HumanBean17/java-codebase-rag/pull/19); PR-E2 (item 7) and PR-E3 (item 8) outstanding.
Status: **completed** — PR-E1 (items 1–6) shipped in [#19](https://github.com/HumanBean17/java-codebase-rag/pull/19); PR-E2 (item 7) shipped in [#20](https://github.com/HumanBean17/java-codebase-rag/pull/20); PR-E3 (item 8) shipped in [#22](https://github.com/HumanBean17/java-codebase-rag/pull/22).
Source: catches collected from PR-D1, PR-D2, PR-D3 reviews + the PR-E1 review reply.
None are blockers; all are either contract-tightening, naming, doc gaps,
or invariant guards.
Expand All @@ -18,14 +18,14 @@ Links go to the review comment so the original context survives.
| 4 | [PR-D3 #15](https://github.com/HumanBean17/java-codebase-rag/pull/15#issuecomment-4379649557) obs 5 | Empty-feign-name short-circuit in `_match_call_edge` — add reader comment | low (doc) |
| 5 | [PR-D2 #13](https://github.com/HumanBean17/java-codebase-rag/pull/13#issuecomment-4378995637) post-D3 follow-up 1 | README: document `anchor`-fills-from-builtin behaviour for partial brownfield overrides | low (doc) |
| 6 | [PR-D2 #13](https://github.com/HumanBean17/java-codebase-rag/pull/13#issuecomment-4378995637) post-D3 follow-up 2 | Proposal §6: add `channel` field to the `OutgoingCallDecl` schema sketch as durable | low (doc) |
| 7 | [PR-D1 #12](https://github.com/HumanBean17/java-codebase-rag/pull/12#issuecomment-4378723605) obs 2 | Second copy of strategy ladder still in `graph_enrich.py:720-724` (annotation/spel/constant_ref) — known consolidation candidate | medium (tech debt) |
| 7 | [PR-D1 #12](https://github.com/HumanBean17/java-codebase-rag/pull/12#issuecomment-4378723605) obs 2 | Second copy of strategy ladder in `graph_enrich.py` — **✅ shipped in PR-E2** ([#20](https://github.com/HumanBean17/java-codebase-rag/pull/20); `_route_path_atom` + sentinel test) | medium (tech debt) |
| 8 | [PR-E1 #19 review reply](https://github.com/HumanBean17/java-codebase-rag/pull/19#issuecomment-4380659734) | `pass3_calls` doesn't enforce the intra-JVM invariant for `CALLS` edges. Today no cross-microservice CALLS edge is emitted on any fixture (verified on `cross_service_smoke`: 9 CALLS edges, 0 cross), but the cleanliness is incidental — no `caller.microservice == callee.microservice` guard exists. FQN collisions across services or brownfield supertype overrides could in principle break the invariant silently. **✅ shipped in PR-E3** | low-to-medium (invariant) |

## Recommended PR boundaries

- **PR-E1** (✅ shipped in [#19](https://github.com/HumanBean17/java-codebase-rag/pull/19)) — items 1–6 in one PR (risk-score normalisation + the four small renames/comments + two doc fixes).
- **PR-E2** — item 7 (refactor of the second strategy ladder — needs its own per-PR Cursor task prompt with sentinel greps).
- **PR-E3** — item 8 (intra-JVM CALLS invariant guard). Tiny PR, ~10 lines + one fixture test. Safe to ship before or after PR-E2.
- **PR-E2** (✅ shipped in [#20](https://github.com/HumanBean17/java-codebase-rag/pull/20)) — item 7 (`_route_path_atom` + sentinel test in `tests/test_call_edge_matching.py`).
- **PR-E3** (✅ shipped in [#22](https://github.com/HumanBean17/java-codebase-rag/pull/22)) — item 8 (intra-JVM CALLS invariant guard).

This document covers all three. Implementation guidance below.

Expand Down
2 changes: 2 additions & 0 deletions plans/completed/PLAN-REMOTE-PROJECT-INDEXING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Plan: Remote Project Indexing via MCP Configuration

Status: **completed** — shipped (`PROJECT_ROOT` via `_cocoindex_subprocess_env`; see §Status checklist below).

## Goal

Enable users to run `refresh_code_index` from any Java project root without copying Python scripts. Users should only need to provide a valid MCP configuration pointing to their project.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AGENT-GUIDE-SURGICAL-PATCHES — three small additions to docs/AGENT-GUIDE.md

**Status**: approvedlocked insertion spec for PR-AGP-2 (cite §3 + Appendix A verbatim).
**Status**: completedshipped (PR-AGP-1 → PR-AGP-2; patches A–C in `docs/AGENT-GUIDE.md`).
**Author**: Dmitriy Teriaev + Perplexity Computer
**Date**: 2026-05-11

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Addendum: HTTP brownfield enum method, `@CodebaseHttpClient` rename, inbound exclusivity

**Status**: completed — shipped (ontology 12; see §What landed below).

This file extends **[`BROWNFIELD-ANNOTATIONS-V2-PROPOSE.md`](./BROWNFIELD-ANNOTATIONS-V2-PROPOSE.md)** without editing that document’s body (immutable parent).

## References
Expand Down
3 changes: 1 addition & 2 deletions propose/completed/BROWNFIELD-ANNOTATIONS-V2-PROPOSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

## Status

Proposal — not yet planned. Breaking change, no migration required (no
production users yet, per project policy).
**Completed** — shipped (brownfield v2 annotations: `@CodebaseHttpRoute`, `@CodebaseAsyncRoute`, `@CodebaseHttpClient`, `@CodebaseProducer`; HTTP method enum addendum landed separately). Breaking change, no migration required (no production users yet, per project policy).

> **Revision note.** An earlier draft of this propose split `@CodebaseRoute`
> into `@CodebaseHttpRoute` + `@CodebaseAsyncRoute` while *keeping* the
Expand Down
4 changes: 2 additions & 2 deletions propose/completed/CALL-GRAPH-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Call-graph layer — active proposal
# Call-graph layer — completed proposal

Status: **activeready for planning**. Pairs with
Status: **completed**shipped (static intra-JVM `CALLS` + `DECLARES`; plan: [`plans/completed/PLAN-CALL-GRAPH.md`](../../plans/completed/PLAN-CALL-GRAPH.md)). Pairs with
[`plans/completed/PLAN-CALL-GRAPH.md`](../../plans/completed/PLAN-CALL-GRAPH.md) for the
step-by-step implementation.

Expand Down
2 changes: 1 addition & 1 deletion propose/completed/CLIENT-ROLE-RENAME-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Propose: `FEIGN_CLIENT` role → `CLIENT` role + `HTTP_CLIENT` capability

**Status:** Draft (2026-05-06)
**Status:** completed — shipped (PR #28; `FEIGN_CLIENT` → `CLIENT` + `HTTP_CLIENT` capability; see `tests/test_client_role_rename.py`)
**Author:** Dmitry (with Computer)
**Companion docs:**
- `propose/FEIGN-NOT-AN-EXPOSER-PROPOSE.md` (PR #25, merged) — orthogonal
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Propose: `cross_service_resolution` config flag

**Status:** Draft (2026-05-05)
**Status:** completed — shipped (PR-G1 / [#26](https://github.com/HumanBean17/java-codebase-rag/pull/26); see `tests/test_cross_service_resolution_flag.py`)
**Author:** Dmitry (with Computer)
**Companion docs:**
- `propose/FEIGN-NOT-AN-EXPOSER-PROPOSE.md` (PR #25) — fixes a wrong-direction edge in the auto path; **must ship before this**
Expand Down
2 changes: 1 addition & 1 deletion propose/completed/EXPLORATION-SKILL-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# EXPLORATION-SKILL — a standalone agent skill for exploring Java microservice estates

**Status**: approvedlocked design for PR-EXPLORE-2 (§3–§7 authoritative).
**Status**: completedshipped (PR-EXPLORE-1 → PR-EXPLORE-2; skill: `docs/skills/java-codebase-explore.md`).
**Author**: Dmitriy Teriaev + Perplexity Computer
**Date**: 2026-05-11

Expand Down
2 changes: 1 addition & 1 deletion propose/completed/FEIGN-NOT-AN-EXPOSER-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `@FeignClient` is a caller, not an exposer

Status: **draftopen for review**.
Status: **completed**shipped (PR-F1; `exposes_suppressed_feign` + cross-service matcher; see `tests/test_feign_not_exposer.py`).

This is a **proposal**, not an implementable plan. After review and the
§9 [TBD] decisions, an implementable plan will be derived under
Expand Down
2 changes: 1 addition & 1 deletion propose/completed/HTTP-ROUTE-METHOD-ENUM-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Brownfield HTTP annotations: rename `@CodebaseClient` → `@CodebaseHttpClient`, type `method` as a shared `CodebaseHttpMethod` enum on both sides, lock brownfield-exclusivity

**Status**: implemented — see [`plans/completed/PLAN-HTTP-ROUTE-METHOD-ENUM.md`](../plans/completed/PLAN-HTTP-ROUTE-METHOD-ENUM.md).
**Status**: completedshipped (see [`plans/completed/PLAN-HTTP-ROUTE-METHOD-ENUM.md`](../plans/completed/PLAN-HTTP-ROUTE-METHOD-ENUM.md)).
**Author**: Dmitriy Teriaev + Perplexity Computer
**Date**: 2026-05-12 (v4 doc alignment)

Expand Down
2 changes: 1 addition & 1 deletion propose/completed/YAML-PATH-EXPANSION-PROPOSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# YAML-PATH-EXPANSION — Apply `~` and `$VAR` expansion to `embedding.model` in project YAML

**Status**: under review
**Status**: completed — shipped (`maybe_expand_embedding_model_path` in `java_codebase_rag/config.py`; tests on `master`).
**Author**: Dmitriy Teriaev + Perplexity Computer
**Date**: 2026-05-12 (v2)

Expand Down
Loading