Skip to content

Release 2.0.7#501

Merged
heyitsaamir merged 12 commits into
releasefrom
prep-release/2.0.7
Apr 7, 2026
Merged

Release 2.0.7#501
heyitsaamir merged 12 commits into
releasefrom
prep-release/2.0.7

Conversation

@heyitsaamir

@heyitsaamir heyitsaamir commented Apr 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Merge main into release for stable 2.0.7 release
  • Set version.json to 2.0.7

skip-test-verification

heyitsaamir and others added 12 commits March 24, 2026 17:36
## Summary
- Bumps `version.json` to `2.0.7-preview.{height}` for the next release
cycle after 2.0.6

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
## Summary
- Adds `"supportsChannelFeatures": "tier1"` to the root of all 10 Teams
app `manifest.json.hbs` template files
- Covers templates for Python (ai, echo, graph), TypeScript (ai, echo,
graph, mcp, mcpclient, tab), and the ATK basic C# config

skip-test-verification

---------

Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: Rajan <[email protected]>
## Summary

Exposes the Graph `Client`'s HTTP client via a public read-only `http`
getter. This allows users to make raw Graph API requests with the
correct base URL, auth headers, and user-agent already configured,
without needing to reconstruct that setup themselves.

Use cases include making raw Graph requests not covered by endpoint
functions, and following `@odata.nextLink` URLs for
[pagination](https://learn.microsoft.com/en-us/graph/paging?tabs=http).

```ts
const graph = new Client(options);
const response = await graph.http.get('/me/photo/$value');
```

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js)
from 4.7.8 to 4.7.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/releases">handlebars's
releases</a>.</em></p>
<blockquote>
<h2>v4.7.9</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2</a></li>
</ul>
</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md">handlebars's
changelog</a>.</em></p>
<blockquote>
<h2>v4.7.9 - March 26th, 2026</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/dce542c9a660048d31f0981ac8a45c08b919bddb"><code>dce542c</code></a>
v4.7.9</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/8a41389ba5b2624b6f43a5463d8e2533b843a562"><code>8a41389</code></a>
Update release notes</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe67b07da2"><code>68d8df5</code></a>
Fix security issues</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/b2a083136b11e1da9f0f47a11f749a9830a49328"><code>b2a0831</code></a>
Fix browser tests</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/9f98c1629834abf8de5a127caff8a2eab03d2c12"><code>9f98c16</code></a>
Fix release script</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/45443b4290475dfb7cec32a85d344f12ab345eb9"><code>45443b4</code></a>
Revert &quot;Improve partial indenting performance&quot;</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/8841a5f6d35096aee95d68e1e49636a4cb5c661e"><code>8841a5f</code></a>
Fix CI errors with linting</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/e0137c26f2202593bca7cc25184e733e87d54709"><code>e0137c2</code></a>
fix: enable shell mode for spawn to resolve Windows EINVAL issue</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/e914d6037ffb0dd371f7e4823cdb019732ae66d7"><code>e914d60</code></a>
Improve rendering performance</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/7de4b41c344a5d702edca93d1841b59642fa32bd"><code>7de4b41</code></a>
Upgrade GitHub Actions checkout and setup-node on 4.x branch</li>
<li>Additional commits viewable in <a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=handlebars&package-manager=npm_and_yarn&previous-version=4.7.8&new-version=4.7.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/teams.ts/network/alerts).

</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [yaml](https://github.com/eemeli/yaml) from 2.8.2 to 2.8.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eemeli/yaml/releases">yaml's
releases</a>.</em></p>
<blockquote>
<h2>v2.8.3</h2>
<ul>
<li>Add <code>trailingComma</code> ToString option for multiline flow
formatting (<a
href="https://redirect.github.com/eemeli/yaml/issues/670">#670</a>)</li>
<li>Catch stack overflow during node composition (1e84ebb)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eemeli/yaml/commit/ce14587484822bffb0f7d31aefedcaf2dc0d0387"><code>ce14587</code></a>
2.8.3</li>
<li><a
href="https://github.com/eemeli/yaml/commit/1e84ebbea7ec35011a4c61bbb820a529ee4f359b"><code>1e84ebb</code></a>
fix: Catch stack overflow during node composition</li>
<li><a
href="https://github.com/eemeli/yaml/commit/6b24090280eaaab5040112bba41ccef57f39c2d5"><code>6b24090</code></a>
ci: Include Prettier check in lint action</li>
<li><a
href="https://github.com/eemeli/yaml/commit/9424dee38c85163fad53ac27533c7c4bdaf7495d"><code>9424dee</code></a>
chore: Refresh lockfile</li>
<li><a
href="https://github.com/eemeli/yaml/commit/d1aca82bc15a4c261bdc58561d32189a5d3a45ef"><code>d1aca82</code></a>
Add trailingComma ToString option for multiline flow formatting (<a
href="https://redirect.github.com/eemeli/yaml/issues/670">#670</a>)</li>
<li><a
href="https://github.com/eemeli/yaml/commit/43215099f7fcdac422d778c15e70d83c691b0e41"><code>4321509</code></a>
ci: Drop the branch filter from GitHub PR actions</li>
<li><a
href="https://github.com/eemeli/yaml/commit/47207d0fc7d4f863cd5fbdcff1378637bd93e847"><code>47207d0</code></a>
chore: Update docs-slate</li>
<li><a
href="https://github.com/eemeli/yaml/commit/5212faeed5936d1fa291d2f28672e4a96e2c2c5d"><code>5212fae</code></a>
chore: Update docs-slate</li>
<li>See full diff in <a
href="https://github.com/eemeli/yaml/compare/v2.8.2...v2.8.3">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary

Fixes #487. SDK v2.0.6 broke deployments on Azure App Service because
`HttpServer.start()` called `parseInt()` on the `PORT` environment
variable, which on Azure App Service (IIS + iisnode) is a Windows named
pipe path (e.g. `\\.\pipe\507cb72a-...`), not a numeric port. This
returned `NaN`, causing the server to never bind and all requests to
time out.

The fix removes the `parseInt` coercion and passes the port value
through as-is to the adapter. Node's `http.Server.listen()` natively
supports both numeric ports and named pipe strings. The
`IHttpServerAdapter.start()` and `ExpressAdapter.start()` signatures are
widened from `number` to `number | string` to match.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
- Fixes #426 - default version 1.5 will be applied to payload 
- Updated generated Adaptive Cards core file `core.ts` from latest
codegen output
- Updated `collab-stage.ts` to use new generated types
(`InvokeSubmitActionData`, `CollabStageInvokeDataValue`, `ITabInfo`)
- Marked `IMBackAction`, `InvokeAction`, `MessageBackAction`,
`SignInAction`, and `TaskFetchAction` as `@deprecated`, pointing to
their generated replacements
- Removed `common/tab-info.ts` (now generated in core.ts)
- Other default values added: isEnabled, action mode defaults to
"primary", action style "default, requires defaults to new
HostCapabilities.
- `msteams` added to several types: `AdaptiveCard`, `SubmitAction`,
`Image`, `SubmitActionData`
- `ISubmitAction.data: any` change to `string | ISubmitActionData`
- `IAdaptiveCard.isVisible`: removed from `IAdaptiveCard`
- `IHostCapabilities`: now extends `Record<string, string>`

---------

Co-authored-by: Corina Gum <>
)

Enhance the OnMessage handler to support cancellation tokens, allowing
for better control over asynchronous operations.
## Summary
- **Fix `ERR_HTTP_HEADERS_SENT`** when passing an `http.Server` that
already has an Express app attached — the adapter no longer creates a
second Express app in that scenario
- `ExpressAdapter` constructor now accepts `http.Server |
express.Application | undefined`:
- **Express app passed**: uses it directly - assumes the http server is
being managed by the user directly.
- **http.Server passed**: creates internal Express app, attaches to
server (existing behavior)
  - **Nothing passed**: creates both (existing behavior)
- Updated Express example to pass the Express app directly (the
recommended pattern)

The original `http.Server`-only constructor was designed to match the
`HttpPlugin`'s capabilities, but it led users into a trap: passing
`http.createServer(app)` caused the adapter to attach a second Express
app to the same server, resulting in double request handling. Accepting
the Express app directly is the natural fix. Ideally, we should probably
just not accept an http server and just accept an existing express app.
If someone is managing an express app outside, they can continue doing
that, and they should be responsible for handling the http server too.

Fixes #503

## Test plan
- [x] Existing `express-adapter` tests pass (9/9)
- [x] New test: passing an Express app works for both custom routes and
adapter-registered routes
- [x] Manual: verify Express example compiles and runs correctly

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Co-authored-by: Copilot <[email protected]>
## Summary

- Adds `OpenDialogData` class that extends `SubmitActionData` and
abstracts away the `msteams: { type: 'task/fetch' }` protocol detail for
opening dialogs. Takes a `dialogId` and optional extra data.
- Adds `SubmitData` class that extends `SubmitActionData` with a
convenience constructor accepting an `action` identifier for handler
routing. Aligns with [web form `action`
attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form#action).
- Above matches Python SDK implementation (microsoft/teams.py#222).
- Updates dialogs and cards examples to use the new classes.
- Updates dialogs example handler to read `dialog_id` (the reserved
field set by `OpenDialogData`) instead of `opendialogtype`.
- Regenerated core.ts from latest codegen: non-required hero constructor
params now use `?` only when type-safe (arrays, `any`, or types that
include `undefined`). Required hero params stay required.
- New generated types: CollabStageInvokeDataValue, OpenUrlDialogAction,
PopoverAction, ProgressBar, ProgressRing, Resources, StringResource,
TabInfo.


**Note:** Identifier-based handler routing (e.g. `on('dialog.open',
'simple_form')`) is not included in this PR and will be scoped
separately.

## Test plan

- [x] 0 TypeScript compilation errors
- [x] 18/18 cards package tests pass
- [x] E2E: dialogs example tested against Teams (dialog open, form
submit, multi-step)
- [x] E2E: cards example tested against Teams (submit_basic,
save_profile, submit_feedback)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
@heyitsaamir
heyitsaamir merged commit 63633d1 into release Apr 7, 2026
4 checks passed
@heyitsaamir
heyitsaamir deleted the prep-release/2.0.7 branch April 7, 2026 04:20
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.

4 participants