Skip to content

plan: PR-H1 — FEIGN_CLIENT role → CLIENT + HTTP_CLIENT capability#32

Merged
HumanBean17 merged 1 commit into
masterfrom
plans/client-role-rename
May 6, 2026
Merged

plan: PR-H1 — FEIGN_CLIENT role → CLIENT + HTTP_CLIENT capability#32
HumanBean17 merged 1 commit into
masterfrom
plans/client-role-rename

Conversation

@HumanBean17
Copy link
Copy Markdown
Owner

Plan: PR-H1 — FEIGN_CLIENT role → CLIENT + HTTP_CLIENT capability

Plans-only PR. Adds plans/PLAN-CLIENT-ROLE-RENAME.md (423 lines).
Implements propose merged in #28.

Sequence

Headline decisions

  • Single PR, ~115 LOC, ontology bump 8 → 9
  • Hard rename — no deprecation alias (MCP bundle has no users yet; breaking changes explicitly allowed)
  • Single source-of-truth flips:
    • ast_java.py:91ROLE_ANNOTATIONS["FeignClient"]: "FEIGN_CLIENT""CLIENT"
    • ast_java.py:114 — add _TYPE_ANN_TO_CAPABILITY["FeignClient"] = "HTTP_CLIENT"
  • VALID_ROLES / VALID_CAPABILITIES are auto-derived (java_ontology.py:16,18) → no edit needed
  • 9 new tests in tests/test_client_role_rename.py → target ~290 passed, 4 skipped

Plan delta from propose

Test #4 asserts warn-and-drop behaviour (stderr warning + override silently dropped) matching actual graph_enrich.py:443-447, 481-486, NOT the raised ValueError shown in the propose's example. Aligns plan with reality.

Out of scope (followups)

What's in the file

  • TL;DR + origin
  • PR boundary rationale (single PR is right size)
  • Background, failure modes, resolution per change
  • Tests table (9 tests enumerated)
  • Manual evidence command + expected output
  • Migration notes for brownfield consumers
  • Definition of Done checklist
  • Risk register
  • 6 followups captured
  • References

Ready for Cursor + Sonnet to pick up.

Implements propose merged in #28. Sequences after PR-F1 (#31, merged) and
PR-G1 (#30, merged). Hard rename — no deprecation alias, MCP bundle has
no users yet and breaking changes are explicitly allowed.

Single PR, ~115 LOC, ontology bump 8→9. Single source-of-truth flips at
ast_java.py:91 (role) and ast_java.py:114 (HTTP_CLIENT capability);
VALID_ROLES / VALID_CAPABILITIES are auto-derived so no java_ontology.py
edit needed.

9 new tests in tests/test_client_role_rename.py target ~290 passed,
4 skipped (281 baseline + 9).

Plan delta from propose: test #4 asserts warn-and-drop behaviour
(stderr warning + override silently dropped) matching actual
graph_enrich.py:443-447, 481-486, NOT raised ValueError as the propose's
example suggested.

Out of scope: async role/capability changes (MESSAGE_PRODUCER already
covers Kafka/Rabbit/JMS), auto-promoting RestTemplate/WebClient to
HTTP_CLIENT (brownfield-only opt-in), backwards-compat alias,
RegisterRestClient (followup #3).
@HumanBean17 HumanBean17 merged commit 4e2e96f into master May 6, 2026
@HumanBean17 HumanBean17 deleted the plans/client-role-rename branch May 10, 2026 21: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