Skip to content

feat: add DevTools debugging UI for core branch#380

Closed
rajan-chari wants to merge 1 commit intomicrosoft:next/corefrom
rajan-chari:devtools-port
Closed

feat: add DevTools debugging UI for core branch#380
rajan-chari wants to merge 1 commit intomicrosoft:next/corefrom
rajan-chari:devtools-port

Conversation

@rajan-chari
Copy link
Copy Markdown
Contributor

Summary

  • Ports the DevTools browser-based debugging UI from main's plugin system to the upstream/next/core middleware architecture
  • New Microsoft.Teams.Bot.DevTools project under core/src/ — provides real-time WebSocket activity monitoring, test message injection, and app metadata display at /devtools
  • Uses ITurnMiddleware for incoming activity interception, ConversationClient override for outgoing, and minimal API endpoints (replacing MVC controllers)

Architecture

Component Role
DevToolsMiddleware ITurnMiddleware — emits received/error events
DevToolsConversationClient Extends ConversationClient — emits sent events
DevToolsService Singleton shared state: WebSocket connections, metadata
DevToolsHostingExtensions AddDevTools() + UseDevTools() registration
web/ Embedded React UI (copied from main, unchanged)

Usage

builder.Services.AddTeamsBotApplication();
builder.Services.AddDevTools();          // NEW

var app = builder.Build();
app.UseTeamsBotApplication();
app.UseDevTools();                       // NEW

Verification

  • Builds with 0 warnings, 0 errors on both net8.0 and net10.0
  • All 447 existing tests pass
  • Full solution builds cleanly

Test plan

  • Build: dotnet build core/src/Microsoft.Teams.Bot.DevTools/
  • Run existing tests: dotnet test core/core.slnx
  • Add DevTools to a sample bot and verify /devtools UI loads
  • Verify WebSocket connection receives activity events
  • Verify test message injection via DevTools UI
  • Verify outgoing activities appear in DevTools

🤖 Generated with Claude Code

Port the DevTools debugging UI from main's plugin system to core's middleware
architecture. Provides real-time WebSocket activity monitoring, test message
injection, and app metadata display at /devtools.

Architecture:
- DevToolsMiddleware (ITurnMiddleware) intercepts incoming activities + errors
- DevToolsConversationClient (extends ConversationClient) intercepts outgoing
- DevToolsService holds shared WebSocket state and emit helpers
- Minimal API endpoints replace MVC controllers
- Embedded React UI copied from main (unchanged)

Usage: services.AddDevTools() + app.UseDevTools()

Includes devtools-plan/ docs describing the main→core porting design.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rido-min
Copy link
Copy Markdown
Member

closing, superseed by #381

@rido-min rido-min closed this Mar 19, 2026
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.

2 participants