Skip to content

Add describe-routing sub-command to wolverine-diagnostics (#2468)#2487

Merged
jeremydmiller merged 2 commits intomainfrom
feature/2468-describe-routing-command
Apr 9, 2026
Merged

Add describe-routing sub-command to wolverine-diagnostics (#2468)#2487
jeremydmiller merged 2 commits intomainfrom
feature/2468-describe-routing-command

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

Implements #2468 — adds a describe-routing action to the existing wolverine-diagnostics CLI command.

  • wolverine-diagnostics describe-routing <MessageType> — inspect routing for a specific message type (fuzzy name matching: full name, short name, alias, or contains)
  • wolverine-diagnostics describe-routing --all — show the complete routing topology for all known message types

Output for a single type includes:

  • Local handler class/method (if any)
  • Routes table with: destination URI, local vs. external, endpoint mode (Buffered/Durable/Inline), outbox enrollment, serializer, and how the route was resolved (local handler convention, explicit publish rule, transport routing convention, or [LocalQueue] attribute)
  • Message-level envelope attributes (ModifyEnvelopeAttribute subclasses like [DeliverWithin])

Output for --all includes:

  • Routing conventions registered via RouteWith()
  • Complete message routing table (unrouted types highlighted in yellow)
  • Listener topology (URI, name, mode, parallelism)
  • Sender topology (URI, name, mode, subscription count)

Runs in the same lightweight CLI mode as codegen-preview — no database or transport connections required.

Test plan

  • WolverineDiagnosticsCommandTests — 8 new tests covering FindMessageType (exact, short, fuzzy, not-found) and smoke tests for routing (handled message gets local route, unhandled message gets no routes); all 13 tests pass
  • Build passes with 0 errors: dotnet build src/Wolverine/Wolverine.csproj --framework net9.0
  • Documentation added to docs/guide/command-line.md

🤖 Generated with Claude Code

jeremydmiller and others added 2 commits April 9, 2026 17:17
Adds a new `describe-routing` action to the existing `wolverine-diagnostics`
CLI command, enabling inspection of message routing configuration without
requiring database or transport connections.

- `describe-routing <MessageType>` shows the local handler (if any), all
  routes with endpoint mode/outbox/serializer, route resolution method
  (local handler convention, explicit publish rule, transport routing
  convention, or [LocalQueue] attribute), and message-level envelope
  attributes
- `describe-routing --all` shows the complete routing topology: routing
  conventions, message routing table (flagging unrouted types), listener
  topology, and sender topology
- Fuzzy message type matching (full name, short name, alias, contains)
- 8 new tests covering FindMessageType and routing smoke cases
- Documentation added to docs/guide/command-line.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix premature class closing brace that left FindMessageType and describe-routing tests outside the class
- Replace describe_routing_for_handled_message_finds_local_route with describe_routing_handled_message_is_known_to_handler_graph since RoutingFor() returns no routes in lightweight (WithinCodegenCommand) mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jeremydmiller jeremydmiller merged commit 73e68fe into main Apr 9, 2026
16 of 19 checks passed
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