Skip to content

Commit 0230b9a

Browse files
authored
Add achievements (#5488)
* Add achievements * Add more * Add new lines
1 parent 11f25a2 commit 0230b9a

File tree

2 files changed

+170
-17
lines changed

2 files changed

+170
-17
lines changed

ACHIEVEMENTS.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# 🎉 BotFramework Web Chat — Achievements
2+
3+
A curated list of major achievements by the Web Chat team. This document celebrates impactful changes, forward-looking designs, and key architectural wins.
4+
5+
<!-- Template for future additions. Add new to the top of a corresponding section.
6+
7+
## 🏆 \[Achievement Title]
8+
9+
**Goal:** Briefly describe the purpose of the change.
10+
**By:** [@username](https://github.com/username) in [PR #XXXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXXX)
11+
12+
* Summary of what was done and why it mattered.
13+
14+
-->
15+
16+
---
17+
18+
## 🧱 Architecture & Core Systems
19+
20+
### 🛠️ Migration to `micromark`
21+
22+
**Goal:** Replace `markdown-it` with a modern and extensible markdown parser.
23+
**By:** [@compulim](https://github.com/compulim) in [PR #5330](https://github.com/microsoft/BotFramework-WebChat/pull/5330)
24+
25+
- Switched to `micromark`, enabling MathML support and consistent parsing.
26+
- Foundation for better Markdown extensibility and performance.
27+
28+
### 🧼 HTML Content Transformer Middleware
29+
30+
**Goal:** Move HTML sanitization into a dedicated middleware layer.
31+
**By:** [@compulim](https://github.com/compulim) in [PR #5338](https://github.com/microsoft/BotFramework-WebChat/pull/5338)
32+
33+
- Clean separation of concerns for Markdown rendering and sanitation.
34+
- Easier customization and more secure rendering.
35+
36+
### 🧩 Migration to npm Workspaces
37+
38+
**Goal:** Modernize monorepo tooling for better dependency and package management.
39+
**By:** [@compulim](https://github.com/compulim) in [PR #5301](https://github.com/microsoft/BotFramework-WebChat/pull/5301)
40+
41+
- Dropped Lerna in favor of native npm workspaces.
42+
- Improves build performance and developer experience.
43+
44+
---
45+
46+
## 🎨 UI & Theming
47+
48+
### 🧾 Code Block Rendering & Highlighting System
49+
50+
**Goal:** Unify and polish code block rendering across Markdown and UI components.
51+
**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)
52+
53+
- Introduced syntax highlighting for markdown blocks using Shiki.
54+
- Added copy buttons to all rendered code blocks and dialogs.
55+
- Unified presentation of fenced blocks with accessibility and clipboard improvements.
56+
57+
### ✨ Fluent Theme Overhaul
58+
59+
**Goal:** Expand and refine Fluent UI styling across all components.
60+
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5258](https://github.com/microsoft/BotFramework-WebChat/pull/5258) and others
61+
62+
- Introduced "Copilot" variant and transcript-wide theming.
63+
- Improved accessibility, visual consistency, and component modularity.
64+
65+
### 🧱 Decorator System for Activity Styling
66+
67+
**Goal:** Enable pluggable, dynamic visual enhancements per activity.
68+
**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)
69+
70+
- Introduced `WebChatDecorator` and `ActivityDecorator`.
71+
- Supports animated borders and style options with minimal code changes.
72+
73+
### 🗂️ Starter Prompts
74+
75+
**Goal:** Enhance onboarding by offering users suggested starter prompts before interaction.
76+
**By:** [@compulim](https://github.com/compulim), [@OEvgeny](https://github.com/OEvgeny)
77+
78+
- 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)
79+
- Fluent blueprint implementation in [#5270](https://github.com/microsoft/BotFramework-WebChat/pull/5270), [#5276](https://github.com/microsoft/BotFramework-WebChat/pull/5276), [#5279](https://github.com/microsoft/BotFramework-WebChat/pull/5279), [#5284](https://github.com/microsoft/BotFramework-WebChat/pull/5284)
80+
81+
---
82+
83+
## 🗣️ Voice & Accessibility
84+
85+
### 🎙️ Speech Recognition Enhancements
86+
87+
**Goal:** Improve real-world usability of voice input.
88+
**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)
89+
90+
- Support for initial silence timeout and continuous barge-in mode.
91+
- Makes Azure Speech more responsive and accessible.
92+
93+
### 🔊 Centralized Live Region Announcements
94+
95+
**Goal:** Improve screen reader support via centralized ARIA updates.
96+
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5251](https://github.com/microsoft/BotFramework-WebChat/pull/5251)
97+
98+
- Added `usePushToLiveRegion` hook.
99+
- Enables consistent and predictable accessibility behavior.
100+
101+
---
102+
103+
## 🧪 Advanced & Experimental
104+
105+
### 🧩 Shadow DOM Support
106+
107+
**Goal:** Enable safe embedding of Web Chat in custom element trees.
108+
**By:** [@OEvgeny](https://github.com/OEvgeny) in [PR #5196](https://github.com/microsoft/BotFramework-WebChat/pull/5196)
109+
110+
- Added `stylesRoot`, `ThemeProvider.styles`, and nonce support.
111+
- Ensures style encapsulation and isolation in Web Component environments.
112+
113+
### 🧮 TeX/MathML Markdown Support
114+
115+
**Goal:** Support use cases requiring math rendering.
116+
**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)
117+
118+
- Integrated `katex` via `micromark-extension-math`.
119+
- Supports `\\[ \\]`, `\\( \\)`, and `$$ $$` syntax.
120+
121+
---
122+
123+
## 🚀 Performance & Developer Experience
124+
125+
### 🧠 Memoization & Hook Optimizations
126+
127+
**Goal:** Reduce rerenders and memory footprint.
128+
**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)
129+
130+
- Rewrote key hooks (`useActivityWithRenderer`, `useMemoized`) for efficiency.
131+
- Prevents excessive renders in large conversations.
132+
133+
### 🧮 Multi-Dimensional Grouping Support
134+
135+
**Goal:** Improve activity grouping logic and performance.
136+
**By:** [@compulim](https://github.com/compulim) in [PR #5471](https://github.com/microsoft/BotFramework-WebChat/pull/5471)
137+
138+
- Added `styleOptions.groupActivitiesBy` and `useGroupActivitiesByName` hook.
139+
- Keeps existing `sender` + `status` behavior as default.
140+
- New hook preferred for performance.
141+
- Middleware can optionally compute groupings by name.
142+
143+
### 🧪 `valibot` Props Validation
144+
145+
**Goal:** Modernize runtime prop validation for performance and clarity.
146+
**By:** [@compulim](https://github.com/compulim) in [PR #5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476)
147+
148+
- Introduced `valibot` to improve schema-based prop safety.
149+
- Reduces runtime errors and simplifies validation logic.
150+
151+
---

README.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ Web Chat supports [Content Security Policy (CSP)](https://developer.mozilla.org/
1919

2020
> This section points out important version notes. For further information, please see the related links and check the [`CHANGELOG.md`](https://github.com/microsoft/BotFramework-WebChat/blob/main/CHANGELOG.md)
2121
22+
[Our achievements](https://github.com/microsoft/BotFramework-WebChat/blob/main/ACHIEVEMENTS.md)
23+
2224
Notes: web developers are advised to use [`~` (tilde range)](https://github.com/npm/node-semver?tab=readme-ov-file#tilde-ranges-123-12-1) to select minor versions, which contains new features and/or fixes. Use [`^` (caret range)](https://github.com/npm/node-semver?tab=readme-ov-file#caret-ranges-123-025-004) to select major versions, which may contains breaking changes.
2325

2426
## 4.19.0 notable changes
2527

26-
- Supports informative message in [livestreaming](./docs/LIVESTREAMING.md)
28+
- Supports informative message in [livestreaming](./docs/LIVESTREAMING.md)
2729

2830
## 4.18.0 notable changes
2931

@@ -101,8 +103,8 @@ window.WebChat.renderWebChat(
101103
);
102104
```
103105

104-
- Web Chat will apply the maximum schema available according to the Adaptive Cards version (as of this patch, schema 1.3) by default.
105-
- An invalid version will revert to Web Chat's default.
106+
- Web Chat will apply the maximum schema available according to the Adaptive Cards version (as of this patch, schema 1.3) by default.
107+
- An invalid version will revert to Web Chat's default.
106108

107109
## Visual focus changes to transcript in Web Chat 4.12.0
108110

@@ -163,9 +165,9 @@ We strongly recommend using the token API instead of providing the app with your
163165

164166
For further reading, please see the following links:
165167

166-
- Using Web Chat with [Azure Bot Services authentication](https://blog.botframework.com/2018/09/01/using-webchat-with-azure-bot-services-authentication/)
168+
- Using Web Chat with [Azure Bot Services authentication](https://blog.botframework.com/2018/09/01/using-webchat-with-azure-bot-services-authentication/)
167169

168-
- [Enhanced Direct Line authentication features](https://blog.botframework.com/2018/09/25/enhanced-direct-line-authentication-features/)
170+
- [Enhanced Direct Line authentication features](https://blog.botframework.com/2018/09/25/enhanced-direct-line-authentication-features/)
169171

170172
## Integrate with JavaScript
171173

@@ -279,11 +281,11 @@ To use Redux DevTools, use the `createStoreWithDevTools` function for creating a
279281

280282
There are some limitations when using the Redux DevTools:
281283

282-
- The Redux store uses side-effects via [`redux-saga`](https://github.com/redux-saga/redux-saga). Time-traveling may break the UI.
283-
- Many UI states are stored in React context and state. They are not exposed in the Redux store.
284-
- Some time-sensitive UIs are based on real-time clock and not affected by time-traveling.
285-
- Dispatching actions are not officially supported. Please use [hooks API](https://github.com/microsoft/BotFramework-WebChat/tree/main/docs/HOOKS.md) instead.
286-
- Actions and reducers may move in and out of Redux store across versions. [Hooks API](https://github.com/microsoft/BotFramework-WebChat/tree/main/docs/HOOKS.md) is the official API for accessing the UI.
284+
- The Redux store uses side-effects via [`redux-saga`](https://github.com/redux-saga/redux-saga). Time-traveling may break the UI.
285+
- Many UI states are stored in React context and state. They are not exposed in the Redux store.
286+
- Some time-sensitive UIs are based on real-time clock and not affected by time-traveling.
287+
- Dispatching actions are not officially supported. Please use [hooks API](https://github.com/microsoft/BotFramework-WebChat/tree/main/docs/HOOKS.md) instead.
288+
- Actions and reducers may move in and out of Redux store across versions. [Hooks API](https://github.com/microsoft/BotFramework-WebChat/tree/main/docs/HOOKS.md) is the official API for accessing the UI.
287289

288290
# Customizing the Web Chat UI
289291

@@ -324,10 +326,10 @@ If you need Web Chat in Internet Explorer 11, please see the [ES5 bundle demo](h
324326

325327
Please note, however:
326328

327-
- Web Chat does not support Internet Explorer older than version 11
328-
- Customization as shown in non-ES5 samples are not supported for Internet Explorer. Because IE11 is a non-modern browser, it does not support ES6, and many samples that use arrow functions and modern promises would need to be manually converted to ES5. If you are in need of heavy customization for your app, we strongly recommend developing your app for a modern browser like Google Chrome or Microsoft Edge.
329-
- Web Chat has no plan to support samples for IE11 (ES5).
330-
- For customers who wish to manually rewrite our other samples to work in IE11, we recommend looking into converting code from ES6+ to ES5 using polyfills and transpilers like [`babel`](https://babeljs.io/docs/en/next/babel-standalone.html).
329+
- Web Chat does not support Internet Explorer older than version 11
330+
- Customization as shown in non-ES5 samples are not supported for Internet Explorer. Because IE11 is a non-modern browser, it does not support ES6, and many samples that use arrow functions and modern promises would need to be manually converted to ES5. If you are in need of heavy customization for your app, we strongly recommend developing your app for a modern browser like Google Chrome or Microsoft Edge.
331+
- Web Chat has no plan to support samples for IE11 (ES5).
332+
- For customers who wish to manually rewrite our other samples to work in IE11, we recommend looking into converting code from ES6+ to ES5 using polyfills and transpilers like [`babel`](https://babeljs.io/docs/en/next/babel-standalone.html).
331333

332334
## Accessibility
333335

@@ -353,9 +355,9 @@ View the [Technical Support Guide](https://github.com/microsoft/BotFramework-Web
353355

354356
Web Chat supports a wide-range of speech engines for a natural chat experience with a bot. This section outlines the different engines that are supported:
355357

356-
- [Direct Line Speech](#integrate-with-direct-line-speech)
357-
- [Cognitive Services Speech Services](#integrate-with-cognitive-services-speech-services)
358-
- [Browser-provided engine or other engines](#browser-provided-engine-or-other-engines)
358+
- [Direct Line Speech](#integrate-with-direct-line-speech)
359+
- [Cognitive Services Speech Services](#integrate-with-cognitive-services-speech-services)
360+
- [Browser-provided engine or other engines](#browser-provided-engine-or-other-engines)
359361

360362
### Integrate with Direct Line Speech
361363

0 commit comments

Comments
 (0)