Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions .github/workflows/pull-request-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ jobs:
--forceExit \
--logHeapUsage \
--runInBand \
--silent \
--testPathPattern=/packages/\
timeout-minutes: 10

Expand All @@ -154,7 +155,7 @@ jobs:
ls -laR .

mv lcov.info lcov-unit.info
mv result.trx result-unit.trx
# mv result.trx result-unit.trx
working-directory: ./coverage

- if: always()
Expand All @@ -164,7 +165,7 @@ jobs:
name: test-result-unit
path: |
./coverage/lcov-*.info
./coverage/result-*.trx
# ./coverage/result-*.trx

type-definitions-test:
name: Type definitions test
Expand Down Expand Up @@ -255,7 +256,8 @@ jobs:
--forceExit \
--logHeapUsage \
--runInBand \
--shard=${{ format('{0}/{1}', matrix.shard-index, matrix.shard-count) }}
--shard=${{ format('{0}/{1}', matrix.shard-index, matrix.shard-count) }} \
--silent
timeout-minutes: 10

- if: always()
Expand All @@ -268,7 +270,7 @@ jobs:
ls -laR .

mv lcov.info lcov-${{ matrix.shard-index }}.info
mv result.trx result-${{ matrix.shard-index }}.trx
# mv result.trx result-${{ matrix.shard-index }}.trx
working-directory: ./coverage

- if: always()
Expand All @@ -278,7 +280,7 @@ jobs:
name: test-result-html-${{ matrix.shard-index }}
path: |
./coverage/lcov-*.info
./coverage/result-*.trx
# ./coverage/result-*.trx

- if: failure()
name: Upload test snapshot diffs
Expand Down
49 changes: 29 additions & 20 deletions ACHIEVEMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A curated list of major achievements by the Web Chat team. This document celebra

<!-- Template for future additions. Add new to the top of a corresponding section.

## 🏆 \[Achievement Title]
### 🏆 \[Achievement Title]

**Goal:** Briefly describe the purpose of the change.
**By:** [@username](https://github.com/username) in [PR #XXXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXXX)
Expand All @@ -19,7 +19,7 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🌐 ES Modules Browser Build

**Goal:** Ship first-class `<script type="module">` bundles for modern browsers.
**Goal:** Ship first-class `<script type="module">` bundles for modern browsers.
**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)

- Delivered browser-ready ES module builds with vendor chunking for optimal caching.
Expand All @@ -28,7 +28,7 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🧠 Part Grouping for Chain-of-Thought

**Goal:** Organize multi-part reasoning flows into collapsible groups within the transcript.
**Goal:** Organize multi-part reasoning flows into collapsible groups within the transcript.
**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)

- Added logical grouping and context so activities can self-organize via `Message` entity metadata.
Expand All @@ -38,23 +38,23 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🛠️ Migration to `micromark`

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

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

### 🧼 HTML Content Transformer Middleware

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

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

### 🧩 Migration to npm Workspaces

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

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

### 🎨 Icon Customization via CSS Variables

**Goal:** Enable developers to customize Web Chat and Fluent theme icons without JavaScript overrides.
**Goal:** Enable developers to customize Web Chat and Fluent theme icons without JavaScript overrides.
**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)

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

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

**Goal:** Improve multi-file upload UX by introducing persistent attachment previews.
**Goal:** Improve multi-file upload UX by introducing persistent attachment previews.
**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)

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

### 🧾 Code Block Rendering & Highlighting System

**Goal:** Unify and polish code block rendering across Markdown and UI components.
**Goal:** Unify and polish code block rendering across Markdown and UI components.
**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)

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

### ✨ Fluent Theme Overhaul

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

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

### 🧱 Decorator System for Activity Styling

**Goal:** Enable pluggable, dynamic visual enhancements per activity.
**Goal:** Enable pluggable, dynamic visual enhancements per activity.
**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)

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

### 🗂️ Starter Prompts

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

- 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)
Expand All @@ -120,15 +120,15 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🎙️ Speech Recognition Enhancements

**Goal:** Improve real-world usability of voice input.
**Goal:** Improve real-world usability of voice input.
**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)

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

### 🔊 Centralized Live Region Announcements

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

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

### 🧩 Shadow DOM Support

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

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

### 🧮 TeX/MathML Markdown Support

**Goal:** Support use cases requiring math rendering.
**Goal:** Support use cases requiring math rendering.
**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)

- Integrated `katex` via `micromark-extension-math`.
Expand All @@ -160,7 +160,7 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🧩 Introduction of PolyMiddleware

**Goal:** Enable composable, reusable, and unified way for managing middleware.
**Goal:** Enable composable, reusable, and unified way for managing middleware.
**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)

- Allows multiple middleware to be composed and applied from a single place.
Expand All @@ -169,15 +169,15 @@ A curated list of major achievements by the Web Chat team. This document celebra

### 🧠 Memoization & Hook Optimizations

**Goal:** Reduce rerenders and memory footprint.
**Goal:** Reduce rerenders and memory footprint.
**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)

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

### 🧮 Multi-Dimensional Grouping Support

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

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

### 🧪 `valibot` Props Validation

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

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

### 🧪 `html2` test infrastructure

**Goal:** Modernize WebDriver test infrastructure to prioritize debuggability and reproducibility.
**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)

- Eliminate `.js` entry file.
- Put screenshots side-by-side with test to improve debuggability.
- Improves debuggability by running tests directly in browser.

---
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,9 @@ Notes: web developers are advised to use [`~` (tilde range)](https://github.com/
- Use `entities[@id=""][@type="Message"].citation[@type="Claim"]` instead
- `activityStatusMiddleware.nextVisibleActivity` and `activityStatusMiddleware.sameTimestampGroup` is being deprecated and will be removed on or after 2022-07-22, in PR [#4362](https://github.com/microsoft/BotFramework-WebChat/issues/4362), by [@compulim](https://github.com/compulim)
- Completed deprecation, in PR [#5565](https://github.com/microsoft/BotFramework-WebChat/issues/5565), by [@compulim](https://github.com/compulim)
- Removed legacy test harness, in PR [#5655](https://github.com/microsoft/BotFramework-WebChat/issues/5655), by [@compulim](https://github.com/compulim)
- All tests are now either using `html2` test harness or simple unit tests
- Legacy and `html` (html1) test harness are all migrated to `html2`

### Samples

Expand Down
35 changes: 0 additions & 35 deletions LOCALIZATION.md

This file was deleted.

8 changes: 0 additions & 8 deletions __tests__/.eslintrc

This file was deleted.

10 changes: 0 additions & 10 deletions __tests__/.prettierrc.yml

This file was deleted.

3 changes: 0 additions & 3 deletions __tests__/__image_snapshots__/.gitignore

This file was deleted.

Binary file not shown.
9 changes: 9 additions & 0 deletions __tests__/assets/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,12 @@ body.jest textarea,
body.jest [contenteditable] {
caret-color: Transparent;
}

input::grammar-error,
input::spelling-error,
textarea::grammar-error,
textarea::spelling-error,
[contenteditable]::grammar-error,
[contenteditable]::spelling-error {
text-decoration: none;
}
19 changes: 0 additions & 19 deletions __tests__/constants.json

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 17 additions & 0 deletions __tests__/html2.setup/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module.exports = {
displayName: { color: 'cyan', name: 'html2' },
globals: { npm_package_version: '0.0.0-0.jest' },
moduleFileExtensions: ['html', 'js'], // Will cause fail validation error if 'js' is not included.
rootDir: '../html2/',
setupFilesAfterEnv: [
'<rootDir>/../html2.setup/setupFiles/setupImageSnapshot.js',
'<rootDir>/../html2.setup/setupFiles/setupTestNightly.js',
'<rootDir>/../html2.setup/setupFiles/setupTimeout.js'
],
testEnvironment: '<rootDir>/../../packages/test/harness/src/host/jest/WebDriverEnvironment.js', // Cannot load environment in HTML file due to syntax requirements. Jest also ignores environment comment in transformed file.
testMatch: ['<rootDir>/../html2/**/*.html'],
testPathIgnorePatterns: ['/node_modules/', '<rootDir>/packages/', '<rootDir>/samples/'], // Jest will warn obsoleted snapshots outside of "testMatch", need "testPathIgnorePatterns" to skip checking obsoleted snapshots.
transform: {
'\\.html$': '<rootDir>/../html2.setup/transformer/htmlTransformer.js'
}
};
Loading
Loading