Skip to content

Commit 31be6ef

Browse files
authored
Merge branch 'main' into locfiles/51ffd811-bddd-40b6-bb03-6b932057433a
2 parents 0309a17 + d6ba639 commit 31be6ef

3,658 files changed

Lines changed: 48565 additions & 24351 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc.react.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,13 @@ rules:
118118
- warn
119119
- additionalHooks: ^(useLiveRegion|useMemoized|use(\w+)Updater)$
120120

121+
# The rule is preventing read access to refs inside the render loop.
122+
# For optimization, we are heavy on ref usage.
123+
react-hooks/refs: off
124+
125+
# This rule does not understand validateProps and falsely claim validateProps is causing mutations.
126+
react-hooks/preserve-manual-memoization: off
127+
121128
# Conflicts with Adaptive Card schema.
122129
# react/forbid-prop-types: error
123130

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,23 @@
1818

1919
<!-- Please list the changes in a concise manner. -->
2020

21-
## -
22-
23-
-
21+
-
2422

2523
<!-- For bugs, add the bug repro as a test. Otherwise, add tests to futureproof your work. -->
2624

27-
- [ ] I have added tests and executed them locally
28-
- [ ] I have updated `CHANGELOG.md`
29-
- [ ] I have updated documentation
25+
- [ ] I have added tests and executed them locally
26+
- [ ] I have updated `CHANGELOG.md`
27+
- [ ] I have updated documentation
3028

3129
## Review Checklist
3230

3331
> This section is for contributors to review your work.
3432
35-
- [ ] Accessibility reviewed (tab order, content readability, alt text, color contrast)
36-
- [ ] Browser and platform compatibilities reviewed
37-
- [ ] CSS styles reviewed (minimal rules, no `z-index`)
38-
- [ ] Documents reviewed (docs, samples, live demo)
39-
- [ ] Internationalization reviewed (strings, unit formatting)
40-
- [ ] `package.json` and `package-lock.json` reviewed
41-
- [ ] Security reviewed (no data URIs, check for nonce leak)
42-
- [ ] Tests reviewed (coverage, legitimacy)
33+
- [ ] Accessibility reviewed (tab order, content readability, alt text, color contrast)
34+
- [ ] Browser and platform compatibilities reviewed
35+
- [ ] CSS styles reviewed (minimal rules, no `z-index`)
36+
- [ ] Documents reviewed (docs, samples, live demo)
37+
- [ ] Internationalization reviewed (strings, unit formatting)
38+
- [ ] `package.json` and `package-lock.json` reviewed
39+
- [ ] Security reviewed (no data URIs, check for nonce leak)
40+
- [ ] Tests reviewed (coverage, legitimacy)

.github/workflows/pull-request-validation.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ defaults:
2222
env:
2323
CI_PULL_REQUEST: 1 # Skip nightly tests
2424
NODE_ENV: test # Add instrumentation code
25-
node-version: 18.20 # Need to bump jest@29 to resolve something in https://github.com/facebook/react-native/issues/35701
25+
node-version: 24
2626

2727
permissions:
2828
contents: read
@@ -145,6 +145,7 @@ jobs:
145145
--forceExit \
146146
--logHeapUsage \
147147
--runInBand \
148+
--silent \
148149
--testPathPattern=/packages/\
149150
timeout-minutes: 10
150151

@@ -154,7 +155,7 @@ jobs:
154155
ls -laR .
155156
156157
mv lcov.info lcov-unit.info
157-
mv result.trx result-unit.trx
158+
# mv result.trx result-unit.trx
158159
working-directory: ./coverage
159160

160161
- if: always()
@@ -164,7 +165,7 @@ jobs:
164165
name: test-result-unit
165166
path: |
166167
./coverage/lcov-*.info
167-
./coverage/result-*.trx
168+
# ./coverage/result-*.trx
168169

169170
type-definitions-test:
170171
name: Type definitions test
@@ -228,7 +229,7 @@ jobs:
228229
- run: npm clean-install --strict-peer-deps
229230

230231
- name: Run docker compose build
231-
run: docker compose -f docker-compose-wsl2.yml build --build-arg REGISTRY=mcr.microsoft.com/mirror/docker/library
232+
run: docker compose -f docker-compose-wsl2.yml build --build-arg REGISTRY=mcr.microsoft.com
232233

233234
- name: Run docker compose up
234235
run: docker compose -f docker-compose-wsl2.yml up --detach --scale chrome=2
@@ -255,7 +256,8 @@ jobs:
255256
--forceExit \
256257
--logHeapUsage \
257258
--runInBand \
258-
--shard=${{ format('{0}/{1}', matrix.shard-index, matrix.shard-count) }}
259+
--shard=${{ format('{0}/{1}', matrix.shard-index, matrix.shard-count) }} \
260+
--silent
259261
timeout-minutes: 10
260262

261263
- if: always()
@@ -268,7 +270,7 @@ jobs:
268270
ls -laR .
269271
270272
mv lcov.info lcov-${{ matrix.shard-index }}.info
271-
mv result.trx result-${{ matrix.shard-index }}.trx
273+
# mv result.trx result-${{ matrix.shard-index }}.trx
272274
working-directory: ./coverage
273275

274276
- if: always()
@@ -278,7 +280,7 @@ jobs:
278280
name: test-result-html-${{ matrix.shard-index }}
279281
path: |
280282
./coverage/lcov-*.info
281-
./coverage/result-*.trx
283+
# ./coverage/result-*.trx
282284

283285
- if: failure()
284286
name: Upload test snapshot diffs

ACHIEVEMENTS.md

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A curated list of major achievements by the Web Chat team. This document celebra
44

55
<!-- Template for future additions. Add new to the top of a corresponding section.
66
7-
## 🏆 \[Achievement Title]
7+
### 🏆 \[Achievement Title]
88
99
**Goal:** Briefly describe the purpose of the change.
1010
**By:** [@username](https://github.com/username) in [PR #XXXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXXX)
@@ -17,25 +17,44 @@ A curated list of major achievements by the Web Chat team. This document celebra
1717

1818
## 🧱 Architecture & Core Systems
1919

20+
### 🌐 ES Modules Browser Build
21+
22+
**Goal:** Ship first-class `<script type="module">` bundles for modern browsers.
23+
**By:** [@compulim](https://github.com/compulim) in [PR #5592](https://github.com/microsoft/BotFramework-WebChat/pull/5592), [#5593](https://github.com/microsoft/BotFramework-WebChat/pull/5593), [#5595](https://github.com/microsoft/BotFramework-WebChat/pull/5595), [#5600](https://github.com/microsoft/BotFramework-WebChat/pull/5600), [#5602](https://github.com/microsoft/BotFramework-WebChat/pull/5602)
24+
25+
- Delivered browser-ready ES module builds with vendor chunking for optimal caching.
26+
- Introduced new export entries and reworked external API.
27+
- Added documentation for all available Web Chat inclusion options.
28+
29+
### 🧠 Part Grouping for Chain-of-Thought
30+
31+
**Goal:** Organize multi-part reasoning flows into collapsible groups within the transcript.
32+
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5553](https://github.com/microsoft/BotFramework-WebChat/pull/5553), [#5585](https://github.com/microsoft/BotFramework-WebChat/pull/5585), [#5590](https://github.com/microsoft/BotFramework-WebChat/pull/5590), [#5608](https://github.com/microsoft/BotFramework-WebChat/pull/5608)
33+
34+
- Added logical grouping and context so activities can self-organize via `Message` entity metadata.
35+
- Introduced a way to render grouped activities and group-aware focus management to keep grouped conversations accessible.
36+
- Reworked fluent-theme approach to decorating activities.
37+
- Extended activity ordering to honor entity `position` fields when rendering grouped messages.
38+
2039
### 🛠️ Migration to `micromark`
2140

22-
**Goal:** Replace `markdown-it` with a modern and extensible markdown parser.
41+
**Goal:** Replace `markdown-it` with a modern and extensible markdown parser.
2342
**By:** [@compulim](https://github.com/compulim) in [PR #5330](https://github.com/microsoft/BotFramework-WebChat/pull/5330)
2443

2544
- Switched to `micromark`, enabling MathML support and consistent parsing.
2645
- Foundation for better Markdown extensibility and performance.
2746

2847
### 🧼 HTML Content Transformer Middleware
2948

30-
**Goal:** Move HTML sanitization into a dedicated middleware layer.
49+
**Goal:** Move HTML sanitization into a dedicated middleware layer.
3150
**By:** [@compulim](https://github.com/compulim) in [PR #5338](https://github.com/microsoft/BotFramework-WebChat/pull/5338)
3251

3352
- Clean separation of concerns for Markdown rendering and sanitation.
3453
- Easier customization and more secure rendering.
3554

3655
### 🧩 Migration to npm Workspaces
3756

38-
**Goal:** Modernize monorepo tooling for better dependency and package management.
57+
**Goal:** Modernize monorepo tooling for better dependency and package management.
3958
**By:** [@compulim](https://github.com/compulim) in [PR #5301](https://github.com/microsoft/BotFramework-WebChat/pull/5301)
4059

4160
- Dropped Lerna in favor of native npm workspaces.
@@ -47,15 +66,15 @@ A curated list of major achievements by the Web Chat team. This document celebra
4766

4867
### 🎨 Icon Customization via CSS Variables
4968

50-
**Goal:** Enable developers to customize Web Chat and Fluent theme icons without JavaScript overrides.
69+
**Goal:** Enable developers to customize Web Chat and Fluent theme icons without JavaScript overrides.
5170
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5413](https://github.com/microsoft/BotFramework-WebChat/pull/5413), [#5502](https://github.com/microsoft/BotFramework-WebChat/pull/5502)
5271

5372
- Introduced CSS variable-based icon customization system for Web Chat and Fluent theme.
5473
- Reworked existing icons and fully enabled across Web Chat components.
5574

5675
### 📎 Attachment Preview for `sendAttachmentOn: "send"`
5776

58-
**Goal:** Improve multi-file upload UX by introducing persistent attachment previews.
77+
**Goal:** Improve multi-file upload UX by introducing persistent attachment previews.
5978
**By:** [@compulim](https://github.com/compulim), [@OEvgeny](https://github.com/OEvgeny) in [PR #5464](https://github.com/microsoft/BotFramework-WebChat/pull/5464), [#5491](https://github.com/microsoft/BotFramework-WebChat/pull/5491), [#5492](https://github.com/microsoft/BotFramework-WebChat/pull/5492)
6079

6180
- Added `SendBoxAttachmentBar` to allow users to preview and remove attachments before sending.
@@ -64,7 +83,7 @@ A curated list of major achievements by the Web Chat team. This document celebra
6483

6584
### 🧾 Code Block Rendering & Highlighting System
6685

67-
**Goal:** Unify and polish code block rendering across Markdown and UI components.
86+
**Goal:** Unify and polish code block rendering across Markdown and UI components.
6887
**By:** [@OEvgeny](https://github.com/OEvgeny), [@compulim](https://github.com/compulim) in [PR #5334](https://github.com/microsoft/BotFramework-WebChat/pull/5334), [#5335](https://github.com/microsoft/BotFramework-WebChat/pull/5335), [#5336](https://github.com/microsoft/BotFramework-WebChat/pull/5336), [#5389](https://github.com/microsoft/BotFramework-WebChat/pull/5389)
6988

7089
- Introduced syntax highlighting for markdown blocks using Shiki.
@@ -73,23 +92,23 @@ A curated list of major achievements by the Web Chat team. This document celebra
7392

7493
### ✨ Fluent Theme Overhaul
7594

76-
**Goal:** Expand and refine Fluent UI styling across all components.
95+
**Goal:** Expand and refine Fluent UI styling across all components.
7796
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5258](https://github.com/microsoft/BotFramework-WebChat/pull/5258) and others
7897

7998
- Introduced "Copilot" variant and transcript-wide theming.
8099
- Improved accessibility, visual consistency, and component modularity.
81100

82101
### 🧱 Decorator System for Activity Styling
83102

84-
**Goal:** Enable pluggable, dynamic visual enhancements per activity.
103+
**Goal:** Enable pluggable, dynamic visual enhancements per activity.
85104
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5205](https://github.com/microsoft/BotFramework-WebChat/pull/5205), [#5312](https://github.com/microsoft/BotFramework-WebChat/pull/5312)
86105

87106
- Introduced `WebChatDecorator` and `ActivityDecorator`.
88107
- Supports animated borders and style options with minimal code changes.
89108

90109
### 🗂️ Starter Prompts
91110

92-
**Goal:** Enhance onboarding by offering users suggested starter prompts before interaction.
111+
**Goal:** Enhance onboarding by offering users suggested starter prompts before interaction.
93112
**By:** [@compulim](https://github.com/compulim), [@OEvgeny](https://github.com/OEvgeny)
94113

95114
- Experimental pre-chat messages added in [PR #5255](https://github.com/microsoft/BotFramework-WebChat/pull/5255) and [#5263](https://github.com/microsoft/BotFramework-WebChat/pull/5263)
@@ -101,15 +120,15 @@ A curated list of major achievements by the Web Chat team. This document celebra
101120

102121
### 🎙️ Speech Recognition Enhancements
103122

104-
**Goal:** Improve real-world usability of voice input.
123+
**Goal:** Improve real-world usability of voice input.
105124
**By:** [@compulim](https://github.com/compulim), [@RushikeshGavali](https://github.com/RushikeshGavali) in [PR #5400](https://github.com/microsoft/BotFramework-WebChat/pull/5400), [#5426](https://github.com/microsoft/BotFramework-WebChat/pull/5426)
106125

107126
- Support for initial silence timeout and continuous barge-in mode.
108127
- Makes Azure Speech more responsive and accessible.
109128

110129
### 🔊 Centralized Live Region Announcements
111130

112-
**Goal:** Improve screen reader support via centralized ARIA updates.
131+
**Goal:** Improve screen reader support via centralized ARIA updates.
113132
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5251](https://github.com/microsoft/BotFramework-WebChat/pull/5251)
114133

115134
- Added `usePushToLiveRegion` hook.
@@ -121,15 +140,15 @@ A curated list of major achievements by the Web Chat team. This document celebra
121140

122141
### 🧩 Shadow DOM Support
123142

124-
**Goal:** Enable safe embedding of Web Chat in custom element trees.
143+
**Goal:** Enable safe embedding of Web Chat in custom element trees.
125144
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5196](https://github.com/microsoft/BotFramework-WebChat/pull/5196)
126145

127146
- Added `stylesRoot`, `ThemeProvider.styles`, and nonce support.
128147
- Ensures style encapsulation and isolation in Web Component environments.
129148

130149
### 🧮 TeX/MathML Markdown Support
131150

132-
**Goal:** Support use cases requiring math rendering.
151+
**Goal:** Support use cases requiring math rendering.
133152
**By:** [@compulim](https://github.com/compulim), [@OEvgeny](https://github.com/OEvgeny) in [PR #5332](https://github.com/microsoft/BotFramework-WebChat/pull/5332), [#5381](https://github.com/microsoft/BotFramework-WebChat/pull/5381)
134153

135154
- Integrated `katex` via `micromark-extension-math`.
@@ -139,27 +158,26 @@ A curated list of major achievements by the Web Chat team. This document celebra
139158

140159
## 🚀 Performance & Developer Experience
141160

142-
143161
### 🧩 Introduction of PolyMiddleware
144162

145-
**Goal:** Enable composable, reusable, and unified way for managing middleware.
163+
**Goal:** Enable composable, reusable, and unified way for managing middleware.
146164
**By:** [@compulim](https://github.com/compulim) in [PR #5515](https://github.com/microsoft/BotFramework-WebChat/pull/5515), [#5566](https://github.com/microsoft/BotFramework-WebChat/pull/5566)
147165

148166
- Allows multiple middleware to be composed and applied from a single place.
149167
- Simplifies extension, testing, and maintenance of middleware logic.
150-
- Lays groundwork for Web Chat becomoming an UI orchestration.
168+
- Lays groundwork for Web Chat becoming a UI orchestration layer.
151169

152170
### 🧠 Memoization & Hook Optimizations
153171

154-
**Goal:** Reduce rerenders and memory footprint.
172+
**Goal:** Reduce rerenders and memory footprint.
155173
**By:** [@OEvgeny](https://github.com/OEvgeny), [@compulim](https://github.com/compulim) across [#5163](https://github.com/microsoft/BotFramework-WebChat/pull/5163), [#5183](https://github.com/microsoft/BotFramework-WebChat/pull/5183), [#5190](https://github.com/microsoft/BotFramework-WebChat/pull/5190)
156174

157175
- Rewrote key hooks (`useActivityWithRenderer`, `useMemoized`) for efficiency.
158176
- Prevents excessive renders in large conversations.
159177

160178
### 🧮 Multi-Dimensional Grouping Support
161179

162-
**Goal:** Improve activity grouping logic and performance.
180+
**Goal:** Improve activity grouping logic and performance.
163181
**By:** [@compulim](https://github.com/compulim) in [PR #5471](https://github.com/microsoft/BotFramework-WebChat/pull/5471)
164182

165183
- Added `styleOptions.groupActivitiesBy` and `useGroupActivitiesByName` hook.
@@ -169,10 +187,19 @@ A curated list of major achievements by the Web Chat team. This document celebra
169187

170188
### 🧪 `valibot` Props Validation
171189

172-
**Goal:** Modernize runtime prop validation for performance and clarity.
190+
**Goal:** Modernize runtime prop validation for performance and clarity.
173191
**By:** [@compulim](https://github.com/compulim) in [PR #5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476)
174192

175193
- Introduced `valibot` to improve schema-based prop safety.
176194
- Reduces runtime errors and simplifies validation logic.
177195

196+
### 🧪 `html2` test infrastructure
197+
198+
**Goal:** Modernize WebDriver test infrastructure to prioritize debuggability and reproducibility.
199+
**By:** [@compulim](https://github.com/compulim) in [PR #5311](https://github.com/microsoft/BotFramework-WebChat/pull/5311), along with migrations [PR #5541](https://github.com/microsoft/BotFramework-WebChat/pull/5541), [PR #5543](https://github.com/microsoft/BotFramework-WebChat/pull/5543), [PR #5544](https://github.com/microsoft/BotFramework-WebChat/pull/5544), [PR #5545](https://github.com/microsoft/BotFramework-WebChat/pull/5545), [PR #5546](https://github.com/microsoft/BotFramework-WebChat/pull/5546), [PR #5547](https://github.com/microsoft/BotFramework-WebChat/pull/5547), [PR #5548](https://github.com/microsoft/BotFramework-WebChat/pull/5548), [PR #5549](https://github.com/microsoft/BotFramework-WebChat/pull/5549), [PR #5550](https://github.com/microsoft/BotFramework-WebChat/pull/5550), [PR #5576](https://github.com/microsoft/BotFramework-WebChat/pull/5576), [PR #5577](https://github.com/microsoft/BotFramework-WebChat/pull/5577), [PR #5649](https://github.com/microsoft/BotFramework-WebChat/pull/5649), [PR #5651](https://github.com/microsoft/BotFramework-WebChat/pull/5651), [PR #5652](https://github.com/microsoft/BotFramework-WebChat/pull/5652), [PR #5653](https://github.com/microsoft/BotFramework-WebChat/pull/5653)
200+
201+
- Eliminate `.js` entry file.
202+
- Put screenshots side-by-side with test to improve debuggability.
203+
- Improves debuggability by running tests directly in browser.
204+
178205
---

0 commit comments

Comments
 (0)