Skip to content

feat: deprecate DevtoolsPlugin in favor of Microsoft 365 Agents Playground#593

Open
corinagum wants to merge 5 commits into
mainfrom
cg/devtools-deprecation
Open

feat: deprecate DevtoolsPlugin in favor of Microsoft 365 Agents Playground#593
corinagum wants to merge 5 commits into
mainfrom
cg/devtools-deprecation

Conversation

@corinagum
Copy link
Copy Markdown
Collaborator

@corinagum corinagum commented May 22, 2026

Summary

  • Deprecate DevtoolsPlugin in @microsoft/teams.dev: @deprecated JSDoc on the class, plus a runtime log.warn(...) at onInit time so existing users see the deprecation as soon as they start their bot.
  • Add anonymous-mode startup warning in HttpServer.initialize() when no CLIENT_ID / CLIENT_SECRET / TENANT_ID is configured, so customers know their bot accepts unauthenticated requests on /api/messages. 2 new unit tests.
  • Remove DevtoolsPlugin from the 11 example bots (echo, a2a, cards, dialogs, lights, message-extensions, quoting, tab, targeted-messages, threading, botbuilder). The @microsoft/teams.dev dependency is dropped from their package.json as well.
  • Mirror the removal in the CLI templates (packages/cli/templates/typescript/{echo,tab,graph}) so newly-scaffolded agents stay in sync with the example bots.
  • README banner on @microsoft/teams.dev pointing at Microsoft 365 Agents Playground.
  • .gitignore: add **/devTools/ so the Playground CLI's local log directory cannot accidentally get committed.

Why

DevTools is being replaced by Microsoft 365 Agents Playground. The replacement is a standalone CLI tool, not a package; customers install it separately and run it alongside their bot. For the grace-period release, DevtoolsPlugin keeps working but loudly signals its deprecation.

The deprecation message wording is stable across SDKs and stays version-agnostic per team convention ("a later version", not a specific version number).

Note for the CI verification check

skip-test-verification

The CLI templates and example bots are usually kept in sync by the verification check, but examples/graph was already DevtoolsPlugin-free on main while packages/cli/templates/typescript/graph still referenced it. This PR aligns the template with the (already correct) example, so the bidirectional-change check sees a one-sided diff. The other two pairs (echo, tab) have matching changes on both sides.

Test plan

  • npx turbo build across all packages and examples (green)
  • npx jest in packages/apps (270/270 passing, including 2 new tests for the anonymous warning)
  • npx turbo lint (clean)
  • Started an example bot locally and confirmed the deprecation warning fires
  • Captured the anonymous-mode startup warning in the bot console
  • npx turbo build --filter=@microsoft/teams.cli after template updates (green)
  • Reviewer to spot-check example bots compile and run without DevTools

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 22, 2026 19:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR deprecates the legacy @microsoft/teams.dev DevTools experience in favor of Microsoft 365 Agents Playground, while improving runtime visibility when bots start in an unauthenticated/anonymous configuration. It also cleans up the examples to remove DevTools usage and updates repo hygiene to prevent Playground logs from being committed.

Changes:

  • Mark DevtoolsPlugin as deprecated (JSDoc + startup warning) and add a deprecation banner to @microsoft/teams.dev README.
  • Add a startup warning in HttpServer.initialize() when no credentials are configured, with new unit tests.
  • Remove @microsoft/teams.dev / DevtoolsPlugin from multiple examples, update lockfile, and ignore **/devTools/ output.

Reviewed changes

Copilot reviewed 26 out of 28 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/dev/src/plugin.ts Adds deprecation JSDoc and runtime warning for DevtoolsPlugin.
packages/dev/README.md Adds a deprecation banner pointing to Microsoft 365 Agents Playground.
packages/apps/src/http/http-server.ts Warns on initialize when credentials are not configured.
packages/apps/src/http/http-server.spec.ts Adds tests covering the new anonymous-mode credentials warning behavior.
package-lock.json Removes @microsoft/teams.dev from example dependency graph and updates lock entries.
examples/threading/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/threading/package.json Drops @microsoft/teams.dev dependency.
examples/targeted-messages/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/targeted-messages/package.json Drops @microsoft/teams.dev dependency.
examples/tab/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/tab/package.json Drops @microsoft/teams.dev dependency.
examples/quoting/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/quoting/package.json Drops @microsoft/teams.dev dependency.
examples/message-extensions/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/message-extensions/package.json Drops @microsoft/teams.dev dependency.
examples/lights/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/lights/package.json Drops @microsoft/teams.dev dependency.
examples/echo/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/echo/package.json Drops @microsoft/teams.dev dependency.
examples/dialogs/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/dialogs/package.json Drops @microsoft/teams.dev dependency.
examples/cards/src/index.ts Removes DevtoolsPlugin usage from the example app setup.
examples/cards/package.json Drops @microsoft/teams.dev dependency.
examples/botbuilder/src/index.ts Removes DevtoolsPlugin from the plugin list, leaving only BotBuilderPlugin.
examples/botbuilder/package.json Drops @microsoft/teams.dev dependency.
examples/a2a/src/client-example.ts Removes DevtoolsPlugin usage from the example app setup.
examples/a2a/package.json Drops @microsoft/teams.dev dependency.
.gitignore Ignores Playground-generated devTools/ directories to prevent accidental commits.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/dev/src/plugin.ts
Comment thread packages/apps/src/http/http-server.ts Outdated
Comment thread examples/tab/package.json
corinagum and others added 4 commits May 22, 2026 13:58
Strip new DevtoolsPlugin() and @microsoft/teams.dev dependency from
11 example bots. They demonstrate the SDK without DevTools now; users
should run Microsoft 365 Agents Playground for local testing instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Move @deprecated JSDoc above @plugin decorator on DevtoolsPlugin so
  tooling reliably picks up the deprecation annotation (decorators
  break the JSDoc-declaration association in TypeScript tooling).
- Use this._messagingEndpoint instead of hardcoded /api/messages in
  the anonymous-mode warning, so the log reflects the actual route
  when consumers configure a custom messagingEndpoint.
- Remove examples/tab/package-lock.json. It was anomalous (no other
  example ships a per-example lockfile) and still referenced the
  removed @microsoft/teams.dev dependency.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@corinagum corinagum force-pushed the cg/devtools-deprecation branch from 3884f5c to 101748d Compare May 22, 2026 21:01
The CI verification check requires examples/* changes to be reflected
in packages/cli/templates/typescript/* so newly-scaffolded agents stay
in sync with the example bots. Apply the same removal:

- echo: drop import + plugins option + @microsoft/teams.dev dep
- tab: drop import + plugins option + @microsoft/teams.dev dep
- graph: drop import + plugins option + @microsoft/teams.dev dep

Newly-scaffolded agents will run anonymously by default and rely on
Microsoft 365 Agents Playground for local testing, matching the
example bots.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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