Skip to content

Remove app manifest handling from teams.apps#611

Merged
heyitsaamir merged 6 commits into
mainfrom
remove-apps-manifest-concept
Jun 11, 2026
Merged

Remove app manifest handling from teams.apps#611
heyitsaamir merged 6 commits into
mainfrom
remove-apps-manifest-concept

Conversation

@heyitsaamir

@heyitsaamir heyitsaamir commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Removing the manifest concept from @microsoft/teams.apps.

Why:
The Teams app manifest is deployment/configuration metadata, not runtime state. The server does not need the manifest to exist when it runs, and in some setups it may not exist at runtime at all.

teams.apps currently assumes manifest data can be passed into the runtime, stored on App, mutated by tab()/configTab(), and used for proactive bot identity. That couples runtime behavior to one specific configuration mechanism. If someone configures or packages their app another way, those runtime dependencies are weird and not very useful. Additionally, we are not promoting keeping manifests in appPackage/ now either (the new CLI doesn't promote it for eg).

It also does not buy us much right now:

  • app.manifest synthesizes metadata, but nothing in the runtime depends on it.
  • tab()'s useful runtime behavior is serving static files; the manifest mutation is packaging metadata.
  • configTab() only mutates manifest metadata.
  • app.name only reads manifest.name.full to set proactive bot.name, but bot name is not required.

Interesting bits:

  • Removed manifest, _manifest, and name from App.
  • tab() now matches teams.py behavior: it just hosts static content.
  • Removed configTab() since it only existed to mutate manifest metadata.
  • Dropped generated manifest types/schema from the apps package.
  • Made Account.name optional because proactive bot references don't need to invent a name.
  • Devtools falls back to App when rendering unnamed senders.

Tips for reviewers:
Start with packages/apps/src/app.ts and packages/apps/src/app.embed.ts. The giant deletions are generated manifest types/schema.

Testing:

  • npm run build --workspace @microsoft/teams.api
  • npm test --workspace @microsoft/teams.apps
  • npm run clean --workspace @microsoft/teams.apps && npm run build --workspace @microsoft/teams.apps
  • npm run build --workspace @microsoft/teams.devtools

@heyitsaamir
heyitsaamir marked this pull request as ready for review June 9, 2026 16:16
@heyitsaamir
heyitsaamir requested review from Copilot and corinagum June 9, 2026 16:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 removes the Teams app manifest concept from @microsoft/teams.apps, decoupling runtime behavior (bots/tabs/plugins) from deployment-time manifest metadata and updating dependent packages to handle missing sender/bot names.

Changes:

  • Removed generated manifest schema/types and the manifest surface area (AppOptions.manifest, App.manifest, App.name, configTab(), manifest export).
  • Updated proactive messaging reference construction and related API types to allow Account.name to be omitted.
  • Updated devtools UI rendering to fall back to "App" when sender names are missing, and adjusted mention-stripping behavior accordingly.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/devtools/src/stores/ChatStore.ts Fallback to "App" when from.name is missing in chat message rendering.
packages/devtools/src/components/ActivitiesGrid/ActivityGridColumns.tsx Fallback to "App" when from.name is missing in activities grid.
packages/botbuilder/src/plugin.ts Removes dependency on @microsoft/teams.apps manifest DI surface.
packages/apps/src/manifest.ts Deletes generated manifest TypeScript types.
packages/apps/src/index.ts Stops exporting manifest namespace from @microsoft/teams.apps.
packages/apps/src/app.ts Removes manifest/name handling from App and its DI registrations; bot conversation references no longer invent a name.
packages/apps/src/app.spec.ts Updates tests for proactive send behavior when bot name is absent.
packages/apps/src/app.embed.ts tab() now only hosts static content; removes manifest mutations and deletes configTab().
packages/apps/package.json Removes manifest generation script from the apps workspace.
packages/apps/manifest.schema.json Deletes the manifest JSON schema used for generation.
packages/api/src/models/account.ts Makes Account.name optional to support unnamed proactive bot references.
packages/api/src/activities/utils/strip-mentions-text.ts Avoids replacing <at>...</at> by name when mentioned.name is absent.

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

Comment thread packages/apps/src/app.ts
@heyitsaamir
heyitsaamir requested a review from lilyydu June 9, 2026 17:21
@heyitsaamir
heyitsaamir requested a review from corinagum June 10, 2026 23:50
@heyitsaamir
heyitsaamir added this pull request to the merge queue Jun 11, 2026
Merged via the queue into main with commit dae6ab4 Jun 11, 2026
6 checks passed
@heyitsaamir
heyitsaamir deleted the remove-apps-manifest-concept branch June 11, 2026 17:45
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.

3 participants