feat(editor): extract chat runtime (#14937)

#### PR Dependency Tree


* **PR #14937** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Centralized AI event system and a runtime powering chat sessions and
actions.

* **Improvements**
* Chat UI (composer, messages, toolbar, tabs, panels) now syncs with
runtime snapshots for more consistent state.
* Improved session/tab lifecycle (create, fork, delete), context
embedding status, and history handling.
* More reliable send/stop/retry flows, better telemetry scoping, and
clearer upgrade/login/insert-template prompts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-05-13 21:57:50 +08:00
committed by GitHub
parent 322f2ba986
commit e222f06e94
64 changed files with 5348 additions and 4510 deletions
@@ -226,8 +226,8 @@ export class SettingsPanelUtils {
timeout: number,
status = 'synced'
) {
await cleanupWorkspace(page.url().split('/').slice(-2)[0] || '');
await expect(async () => {
await cleanupWorkspace(page.url().split('/').slice(-2)[0] || '');
await this.openSettingsPanel(page);
const title = page.getByTestId('embedding-progress-title');
// oxlint-disable-next-line prefer-dom-node-dataset