Releases: microsoft/chat-copilot
Serving frontend files from app service instead of static web app
Starting from this release, the frontend files are served directly from the app service instead of from a Static Web App. This means that you will want to update your links and DNS aliases to point to the app service. You may then delete the Static Web App resource from your Azure resource group.
This was done to make deployments easier and reduce the number of moving parts required to get a deployment to work.
The static frontend files can still be hosted elsewhere if desired. In which case REACT_APP_BACKEND_URI needs to be specified in webapp/.env.
What's Changed
- Fix route for processing plans by @gitri-ms in #455
- Add Support for deployment slots in deployment scripts by @arnoldblake in #446
- Fix global document retrieval and citations by @TaoChenOSU in #457
- Fetch AAD authentication info from backend by @dehoward in #427
- Fix hanging when status is RequiresUpgrade by @dehoward in #460
- Modify deployment scripts to serve static files from web service by @glahaye in #377
- Volatile memory singleton for memory "migration" by @crickman in #476
New Contributors
- @arnoldblake made their first contribution in #446
Full Changelog: 0.6.1...0.7
Correct Azure Bicep / ARM template for build 0.6
Why is this necessary
The Bicep and Arm templates were referring to one of the plugin settings ManifestDomain
by Url
. This would result in misconfiguration of the WebApi, which would prevent the WebApi from communicating to plugin endpoints and consequently prevent successful registration of plugins.
What's Changed
- Update deployment template with the correct param name by @TaoChenOSU in #451
Full Changelog: 0.6...0.6.1
0.6
BREAKING CHANGE
Plugin Update
The Chat Copilot WebApi now can manage OpenAI plugins natively. The WebApi manages the states (enabled & disabled) of the registered plugins as well as the communications to the plugins. These plugins can be hosted by you or by third parties as long as they follow the OpenAI plugin standards: https://platform.openai.com/docs/plugins/introduction.
What Else Changed
- Revert deployment asp name change by @TaoChenOSU in #375
- Update e2e test action for new settings by @TaoChenOSU in #376
- Add support for loading native skills from a local directory and refactor skill registration by @teresaqhoang in #347
- Update scripts\Start.ps1 by @crickman in #385
- Update approach for skipping "summarize" step for memory pipeline by @crickman in #397
- Add option to manually build memory pipeline executable by @glahaye in #398
- Bump eslint from 8.48.0 to 8.50.0 in /webapp by @dependabot in #395
- Bump @reduxjs/toolkit from 1.9.5 to 1.9.6 in /webapp by @dependabot in #396
- Bump @typescript-eslint/eslint-plugin from 6.4.1 to 6.7.2 in /webapp by @dependabot in #394
- Bump @fluentui/react-icons from 2.0.216 to 2.0.218 in /webapp by @dependabot in #393
- Bump actions/setup-dotnet from 1 to 3 by @dependabot in #390
- Bump actions/checkout from 3 to 4 by @dependabot in #391
- Bump @fluentui/react-components from 9.31.1 to 9.32.1 in /webapp by @dependabot in #392
- Update readme for PowerShell Core 6+ by @dehoward in #401
- Bump @typescript-eslint/eslint-plugin from 6.4.1 to 6.7.3 in /webapp by @dependabot in #399
- Stop adding "PR: ready for review" to all PRs by @dehoward in #405
- Keep hidden conversations invisible by @TaoChenOSU in #373
- Fix list of file import types by @crickman in #402
- Fix CORS issue for custom plugins by @dehoward in #403
- Serve static files and frontend config from backend by @glahaye in #411
- Using semantic memory type enum instead of string in API contract. by @alliscode in #410
- 🚀 Feature: Re-run saved plans by @teresaqhoang in #409
- Fix packaging bash scripts by @TaoChenOSU in #413
- Minor updates before removing auth env variables by @dehoward in #415
- Fix repository TryFindByIdAsync by @glahaye in #416
- Sanitize log entry for memoryType by @gitri-ms in #420
- Bump @types/react from 18.2.21 to 18.2.24 in /webapp by @dependabot in #432
- Bump @fluentui/react-components from 9.32.1 to 9.33.0 in /webapp by @dependabot in #433
- Bump Microsoft.Identity.Web from 2.13.4 to 2.14.0 in /webapi by @dependabot in #437
- Bump react-redux from 8.1.2 to 8.1.3 in /webapp by @dependabot in #434
- Bump @typescript-eslint/parser from 6.7.0 to 6.7.3 in /webapp by @dependabot in #435
- Bump @types/node from 20.6.0 to 20.8.0 in /webapp by @dependabot in #436
- Fix null dereference from empty intent/input by @gitri-ms in #442
- Plugin refactor by @TaoChenOSU in #424
- Update plugin deploy workflow name by @TaoChenOSU in #445
- Fix Copy and Paste error in plugins deployment scripts by @TaoChenOSU in #447
- Make deploy-plugins.sh executable by @TaoChenOSU in #448
- Adding plan error as bot response message by @teresaqhoang in #443
- Fix artifact path in plugin deployment workflow by @TaoChenOSU in #449
- Miscellaneous fixes by @gitri-ms in #450
Full Changelog: 0.5...0.6
Semantic Memory Integration into Copilot Chat
BREAKING UPDATE
This change introduces semantic-memory to copilot-chat:
- https://github.com/microsoft/chat-copilot/blob/main/README.md
- https://github.com/microsoft/chat-copilot/blob/main/webapi/README.md
- https://github.com/microsoft/chat-copilot/blob/main/memorypipeline/README.md
This change represents a signifant shift our memory architecture with the promise to support use-cases beyond what is possible with the semantic-kernel connectors.
To maintain continuity of service for a existing deployments, we highly recommend upgrading to Release 0.4 prior to deploying this release for the application to support "maintenance mode".
As part of this shift, existing chat memories will be automatically migrated: however, any documents previously imported must be re-imported. For additional details, please refer to migration section at the end of these release notes.
An immediate benefit to this switch is that chat-copilot will no longer create 3 indexes (or containers) per chat in the vector database. Only a single index is utilized for the application. This removes the maximum-index constraint for copilot chat
A downside to this shift is that support for Postgres and Chroma have been temporarily removed.
Co-authored-by: Tao Chen [email protected]
Co-authored-by: Teresa Hoang [email protected]
What's Changed
Please sync to the current state of
main
to realize subsequent stabilization updates.
Full Changelog: 0.4...0.5
Memory Migration
Migration of existing chat memories is automatically triggered when the expected index (default: chatmemory
) does not exist. During migration, the application will be held in maintenance-mode (no chats) and once completed, the previous indexes may be removed.
Note: Chat history is always preserved. Memory migration affects only the short-term and long-term memory extractions for each chat.
Migrate existing memories:
- Ensure capacity exist to create one new index (chatmemory) and also create "global-documents" index, if it doesn't already exist.
- Deploy updated API service
- Deploy updated APP site
- Any request will trigger migration (/healthz)
- Verify webapp functioning (chat)
- Verify `chatmemory`` index exists
- Remove all indexes that are not chatmemory
Reset memory migration
If for some reason migration is not successful or needs to be reset:
- Stop API service
- Remove
chatmemory
andglobal-documents
indexes. - Start API service
- Any request will trigger migration (/healthz)
- Verify webapp functioning (chat)
- Verify `chatmemory`` index exists
Opt-out of migration:
To avoid memory migration, remove the existing indexes ahead of time:
- Stop API service
- Delete all existing indexes.
- Deploy updated API
- Deploy updated APP
0.4 - Last release before integration with Semantic Memory
Highlighted Changes
- Refactor ChatSkill to use new Chat Completions prompt format by @teresaqhoang in #337
- Maintenance framework by @crickman in #316
- Maintenance and memory fixes by @crickman in #365
What's Changed
- Integration tests workflow by @glahaye in #285
- doc: ✏️ Update README.md clarifying install script. by @m2web in #286
- Delete-chat fix to also remove document index by @crickman in #288
- Clarify requirements before deploying to Azure by @alliscode in #291
- Bump prettier from 3.0.1 to 3.0.3 in /webapp by @dependabot in #298
- Bump serve from 14.2.0 to 14.2.1 in /webapp by @dependabot in #297
- Adding Timeout Limit option for /chat requests by @teresaqhoang in #304
- Update SK from 0.19.230804.2-preview to 0.21.230828.2-preview by @TaoChenOSU in #305
- Bump actions/checkout from 3 to 4 by @dependabot in #299
- Bump @fluentui/react-components from 9.29.4 to 9.30.1 in /webapp by @dependabot in #296
- Fix formatting of Aad url in react env variables by @jimmystridh in #303
- Bump @azure/msal-react from 1.5.9 to 1.5.10 in /webapp by @dependabot in #295
- Bump @azure/msal-browser from 2.38.1 to 2.38.2 in /webapp by @dependabot in #294
- Adding option for plugin timeout + using proper userId for guest accounts by @teresaqhoang in #314
- Updating SK packages to 0.23.230906.2-preview by @teresaqhoang in #329
- Verify backend is up before running frontend in start scripts by @m2web in #319
- Maintenance framework by @crickman in #316
- Bump System.IdentityModel.Tokens.Jwt from 6.32.2 to 6.32.3 in /webapi by @dependabot in #328
- Bump Microsoft.Identity.Web from 2.13.3 to 2.13.4 in /webapi by @dependabot in #327
- Fix async signature by @crickman in #334
- Fix Exception catch block for vector-storage connector by @crickman in #343
- Bump @typescript-eslint/parser from 6.4.0 to 6.6.0 in /webapp by @dependabot in #322
- Bump microsoft-cognitiveservices-speech-sdk from 1.31.0 to 1.32.0 in /webapp by @dependabot in #323
- Bump @azure/msal-react from 1.5.10 to 1.5.11 in /webapp by @dependabot in #324
- Bump @types/node from 20.5.1 to 20.6.0 in /webapp by @dependabot in #326
- Update sub-readmes for getting started by @momuno in #345
- Fix multi-user chat feature toggle behavior by @TaoChenOSU in #336
- Querying chat messages with partition key by @teresaqhoang in #346
- Bump Microsoft.Azure.Cosmos from 3.35.3 to 3.35.4 in /webapi by @dependabot in #354
- Bump @microsoft/signalr from 7.0.10 to 7.0.11 in /webapp by @dependabot in #363
- Bump @fluentui/react-icons from 2.0.209 to 2.0.216 in /webapp by @dependabot in #361
- Bump @typescript-eslint/parser from 6.6.0 to 6.7.0 in /webapp by @dependabot in #359
- Bump @fluentui/react-components from 9.30.1 to 9.31.1 in /webapp by @dependabot in #360
- Bump docker/login-action from 2 to 3 by @dependabot in #358
- Bump docker/build-push-action from 4 to 5 by @dependabot in #356
- Bump docker/metadata-action from 4 to 5 by @dependabot in #357
- Refactor ChatSkill to use new Chat Completions prompt format by @teresaqhoang in #337
- Remove unused webapi packages by @dehoward in #364
- Maintenance and memory fixes by @crickman in #365
- Dev UX - Redirect root path to swagger by @crickman in #368
- Updating SK to dotnet-0.24.230918.1-preview by @teresaqhoang in #369
New Contributors
- @m2web made their first contribution in #286
- @jimmystridh made their first contribution in #303
Full Changelog: 0.3...0.4
0.3
Breaking Changes
- E2E AAD authentication - This change removes the key based authentication between the webApp and the webApi and replaces it with E2E AAD user based authentication when deployed to Azure. This drastically improves the security of the deployed resources but does require some additional AAD setup. This change also removes the need for an AAD Application when running locally which greatly simplifies things. #126
- Cosmos Db schema changes - This change improves the performance of Chat-Copilot by redesigning the partition keys used in Cosmos Db collections. This is a breaking change and will require special attention when deploying over existing resources, this blog post has all the details. #240
What else changed
- Integration with Azure Content Moderation Service by @teresaqhoang in #143
- Added ability to delete chats by @teresaqhoang in #193
- Add dockerfile and docker-compose support by @huangyingting in #184
- Fix scenario tests by @TaoChenOSU in #265
- WebApi integration tests by @glahaye in #268
- Encapsulate signalR hub connection instance by @TaoChenOSU in #144
- Add community sections to the main ReadMe by @TaoChenOSU in #195
- Adding the branch name to the concurrency group to separate deploymen… by @alliscode in #205
- Re-ordered plug-in result to be included after chat-history by @crickman in #182
- Fix problem when sqlAdminPassword is not provided by @glahaye in #207
- added more generic exception message and summary by @ashishwebt in #219
- Fix Null Reference on Content-Saftey service by @crickman in #222
- Tweak ContentSafetyOptions.Enabled attribution and stream-line ServiceExtensiosn by @crickman in #234
- Add a dotnet format check workflow by @TaoChenOSU in #216
- Add missing step to README instructions for enabling auth by @gitri-ms in #235
- Update import document tool to new auth model by @gitri-ms in #239
- Fix incorrect tab mentioned for frontend app registration by @Rainson12 in #248
- Building main.json from main.bicep to get latest changes. by @alliscode in #262
- Render chat messages as markdown by @Rainson12 in #263
- Update Dockerfile.nginx by @huangyingting in #269
- Add scenario test readme by @TaoChenOSU in #272
- *nix codestyle by @dluc in #282
- Updating broken links and links to wrong repository. by @alliscode in #278
- Lot's of docs and README fixes and improvements!
New Contributors
- @gitri-ms made their first contribution in #126
- @ashishwebt made their first contribution in #219
- @huangyingting made their first contribution in #184
- @Rainson12 made their first contribution in #248
- @dluc made their first contribution in #282
Full Changelog: 0.2...0.3
0.2
Switching release numbering system
What's Changed
- Fix typo in README.md by @eltociear in #109
- Readme: Provide instructions if used custom model naming for Azure OpenAI by @momuno in #98
- Bump Roslynator.Analyzers from 4.3.0 to 4.4.0 in /webapi by @dependabot in #119
- Bump Roslynator.Formatting.Analyzers from 4.3.0 to 4.4.0 in /webapi by @dependabot in #118
- Bump Roslynator.CodeAnalysis.Analyzers from 4.3.0 to 4.4.0 in /webapi by @dependabot in #117
- Bump @typescript-eslint/parser from 6.2.0 to 6.2.1 in /webapp by @dependabot in #112
- Bump prettier from 3.0.0 to 3.0.1 in /webapp by @dependabot in #115
- Bump @types/react from 18.2.17 to 18.2.18 in /webapp by @dependabot in #116
- Bump @typescript-eslint/eslint-plugin from 6.2.0 to 6.2.1 in /webapp by @dependabot in #113
- Bump @fluentui/react-components from 9.27.1 to 9.27.4 in /webapp by @dependabot in #114
- Upload documents in parallel + truncate text for long document names by @dehoward in #83
- Refactor webapi directory structure by @dehoward in #100
- Update SK packages by @crickman in #120
- 🔧 Update OpenApiPlugin paths by @teresaqhoang in #127
- Run formatting scripts during PR builds by @dehoward in #124
- Integrating Stepwise planner by @teresaqhoang in #121
- Update permissions on deploy scripts + only run Github build workflows on relevant paths by @dehoward in #135
- Fix relative paths in deploy scripts by @dehoward in #136
- 🐛 Fix connection error handling + uncaught exceptions by @teresaqhoang in #134
- Fix app registration link in README by @crickman in #142
- Rename "MemoriesStore" to "MemoryStore" by @glahaye in #138
- Update Chat Copilot gif on primary Readme.md by @momuno in #147
- Fix C# CodeQL alerts + add JS/TS to CodeQL by @dehoward in #139
- 🚀 Adding new app state to handle user info by @teresaqhoang in #145
- Updating template hash. by @alliscode in #162
- Update Readme with note on execution policy. by @momuno in #161
- Bump eslint from 8.46.0 to 8.47.0 in /webapp by @dependabot in #167
- Bump @azure/msal-browser from 2.38.0 to 2.38.1 in /webapp by @dependabot in #168
- Bump @types/node from 20.4.5 to 20.5.0 in /webapp by @dependabot in #171
- Bump Microsoft.Azure.Cosmos from 3.35.2 to 3.35.3 in /webapi by @dependabot in #173
- Bump Microsoft.VisualStudio.Threading.Analyzers from 17.6.40 to 17.7.30 in /webapi by @dependabot in #174
- Bump @typescript-eslint/parser from 6.2.1 to 6.3.0 in /webapp by @dependabot in #169
- Bump microsoft-cognitiveservices-speech-sdk from 1.30.1 to 1.31.0 in /webapp by @dependabot in #170
- Bump Azure.AI.FormRecognizer from 4.0.0 to 4.1.0 in /webapi by @dependabot in #172
- Functional improvements + bug squashing by @teresaqhoang in #153
- Adding option to view full stepwise context after every run by @teresaqhoang in #149
- Handling unable to create plan error by @teresaqhoang in #176
- Tuned: Document chunking parameters and debug output (customer input) by @crickman in #178
- Add postgresql memory store by @kbeaugrand in #175
- UX improvements: A11y labels, fixing space input bug, enabling RLFH, etc. by @teresaqhoang in #179
- Clean deployment scripts usage descriptions by @TaoChenOSU in #181
New Contributors
- @eltociear made their first contribution in #109
- @crickman made their first contribution in #120
- @kbeaugrand made their first contribution in #175
Full Changelog: 0731234...0.1