@rtc-agent/component 0.2.7-rc.4 → 0.2.8-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +109 -13
  2. package/dist/.generated/locales/en-US.d.ts +55 -7
  3. package/dist/.generated/locales/en-US.d.ts.map +1 -1
  4. package/dist/assets/{shared-worker-BQv441O7.js → shared-worker-CXyjL7E6.js} +210 -210
  5. package/dist/components/activity-bar/rtc-activity-bar.d.ts +23 -21
  6. package/dist/components/activity-bar/rtc-activity-bar.d.ts.map +1 -1
  7. package/dist/components/activity-bar/rtc-activity-bar.styles.d.ts +2 -2
  8. package/dist/components/chat-layout/rtc-chat-layout.d.ts +87 -80
  9. package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -1
  10. package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts +5 -5
  11. package/dist/components/content-area/rtc-error-message.d.ts +1 -1
  12. package/dist/components/content-area/rtc-message-more-menu.d.ts +4 -4
  13. package/dist/components/content-area/rtc-message-more-menu.d.ts.map +1 -1
  14. package/dist/components/content-area/rtc-message.d.ts +82 -76
  15. package/dist/components/content-area/rtc-message.d.ts.map +1 -1
  16. package/dist/components/content-area/rtc-message.styles.d.ts.map +1 -1
  17. package/dist/components/content-area/rtc-toolcall-card.d.ts +10 -5
  18. package/dist/components/content-area/rtc-toolcall-card.d.ts.map +1 -1
  19. package/dist/components/content-area/rtc-toolcall-card.styles.d.ts.map +1 -1
  20. package/dist/components/content-area/rtc-toolcall-reply.d.ts +12 -0
  21. package/dist/components/content-area/rtc-toolcall-reply.d.ts.map +1 -1
  22. package/dist/components/content-area/rtc-toolcall-reply.styles.d.ts.map +1 -1
  23. package/dist/components/content-area/rtc-user-message.d.ts +10 -10
  24. package/dist/components/drawer/rtc-drawer.d.ts +29 -27
  25. package/dist/components/drawer/rtc-drawer.d.ts.map +1 -1
  26. package/dist/components/drawer/rtc-drawer.styles.d.ts +9 -9
  27. package/dist/components/editor-area/rtc-editor-area.d.ts +29 -29
  28. package/dist/components/editor-area/rtc-editor-area.d.ts.map +1 -1
  29. package/dist/components/editor-area/rtc-editor-area.styles.d.ts +3 -3
  30. package/dist/components/editor-area/rtc-editor-tab.d.ts +27 -27
  31. package/dist/components/editor-area/rtc-editor-tab.d.ts.map +1 -1
  32. package/dist/components/editor-area/rtc-editor-tab.styles.d.ts +3 -3
  33. package/dist/components/editor-area/rtc-editor-toolbar.d.ts +19 -19
  34. package/dist/components/editor-area/rtc-editor-toolbar.d.ts.map +1 -1
  35. package/dist/components/editor-area/rtc-editor-toolbar.styles.d.ts +3 -3
  36. package/dist/components/file-explorer/rtc-file-explorer.d.ts +28 -28
  37. package/dist/components/file-explorer/rtc-file-explorer.d.ts.map +1 -1
  38. package/dist/components/file-explorer/rtc-file-explorer.styles.d.ts +3 -3
  39. package/dist/components/file-explorer/rtc-file-tree-item.d.ts +19 -19
  40. package/dist/components/file-explorer/rtc-file-tree-item.d.ts.map +1 -1
  41. package/dist/components/file-explorer/rtc-file-tree-item.styles.d.ts +3 -3
  42. package/dist/components/function-console/rtc-function-console.d.ts +32 -0
  43. package/dist/components/function-console/rtc-function-console.d.ts.map +1 -0
  44. package/dist/components/function-console/rtc-function-console.styles.d.ts +8 -0
  45. package/dist/components/function-console/rtc-function-console.styles.d.ts.map +1 -0
  46. package/dist/components/function-debugger/rtc-function-debugger.d.ts +39 -0
  47. package/dist/components/function-debugger/rtc-function-debugger.d.ts.map +1 -0
  48. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts +8 -0
  49. package/dist/components/function-debugger/rtc-function-debugger.styles.d.ts.map +1 -0
  50. package/dist/components/function-history/rtc-function-history.d.ts +49 -0
  51. package/dist/components/function-history/rtc-function-history.d.ts.map +1 -0
  52. package/dist/components/function-history/rtc-function-history.styles.d.ts +8 -0
  53. package/dist/components/function-history/rtc-function-history.styles.d.ts.map +1 -0
  54. package/dist/components/function-params/rtc-function-params.d.ts +29 -0
  55. package/dist/components/function-params/rtc-function-params.d.ts.map +1 -0
  56. package/dist/components/function-params/rtc-function-params.styles.d.ts +8 -0
  57. package/dist/components/function-params/rtc-function-params.styles.d.ts.map +1 -0
  58. package/dist/components/function-tree/rtc-function-tree.d.ts +59 -0
  59. package/dist/components/function-tree/rtc-function-tree.d.ts.map +1 -0
  60. package/dist/components/function-tree/rtc-function-tree.styles.d.ts +2 -0
  61. package/dist/components/function-tree/rtc-function-tree.styles.d.ts.map +1 -0
  62. package/dist/components/functions-layout/rtc-functions-layout.d.ts +45 -0
  63. package/dist/components/functions-layout/rtc-functions-layout.d.ts.map +1 -0
  64. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts +8 -0
  65. package/dist/components/functions-layout/rtc-functions-layout.styles.d.ts.map +1 -0
  66. package/dist/components/input-area/rtc-input-area.d.ts +15 -15
  67. package/dist/components/input-area/rtc-input-area.d.ts.map +1 -1
  68. package/dist/components/login/rtc-login-page.d.ts +8 -8
  69. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts +23 -19
  70. package/dist/components/markdown-editor/rtc-markdown-editor.d.ts.map +1 -1
  71. package/dist/components/overlay/rtc-command-panel.d.ts.map +1 -1
  72. package/dist/components/overlay/rtc-export-dialog.d.ts +59 -0
  73. package/dist/components/overlay/rtc-export-dialog.d.ts.map +1 -0
  74. package/dist/components/overlay/rtc-export-dialog.styles.d.ts +11 -0
  75. package/dist/components/overlay/rtc-export-dialog.styles.d.ts.map +1 -0
  76. package/dist/components/overlay/rtc-scenario-panel.d.ts +1 -1
  77. package/dist/components/overlay/rtc-scenario-panel.d.ts.map +1 -1
  78. package/dist/components/overlay/rtc-session-panel.d.ts +1 -1
  79. package/dist/components/overlay/rtc-session-panel.d.ts.map +1 -1
  80. package/dist/components/overlay/rtc-toast.d.ts +8 -8
  81. package/dist/components/rtc-agent/helpers/bus-handler.d.ts +32 -1
  82. package/dist/components/rtc-agent/helpers/bus-handler.d.ts.map +1 -1
  83. package/dist/components/rtc-agent/helpers/command-handler.d.ts +8 -0
  84. package/dist/components/rtc-agent/helpers/command-handler.d.ts.map +1 -1
  85. package/dist/components/rtc-agent/helpers/connection-setup.d.ts +5 -8
  86. package/dist/components/rtc-agent/helpers/connection-setup.d.ts.map +1 -1
  87. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts +12 -0
  88. package/dist/components/rtc-agent/helpers/dialog-helpers.d.ts.map +1 -1
  89. package/dist/components/rtc-agent/helpers/session-loader.d.ts +2 -0
  90. package/dist/components/rtc-agent/helpers/session-loader.d.ts.map +1 -1
  91. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts +22 -3
  92. package/dist/components/rtc-agent/helpers/vfs-operations.d.ts.map +1 -1
  93. package/dist/components/rtc-agent/rtc-agent.d.ts +22 -47
  94. package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -1
  95. package/dist/components/session-tree/rtc-session-tab-bar.d.ts +8 -8
  96. package/dist/components/session-tree/rtc-session-tab-bar.d.ts.map +1 -1
  97. package/dist/components/session-tree/rtc-session-tab-bar.styles.d.ts +5 -5
  98. package/dist/components/session-tree/rtc-session-tab.d.ts +6 -6
  99. package/dist/components/session-tree/rtc-session-tab.d.ts.map +1 -1
  100. package/dist/components/session-tree/rtc-session-tab.styles.d.ts +6 -6
  101. package/dist/components/session-tree/rtc-session-tree-item.d.ts +10 -10
  102. package/dist/components/session-tree/rtc-session-tree-item.d.ts.map +1 -1
  103. package/dist/components/session-tree/rtc-session-tree-item.styles.d.ts +6 -6
  104. package/dist/components/session-tree/rtc-session-tree.d.ts +15 -15
  105. package/dist/components/session-tree/rtc-session-tree.d.ts.map +1 -1
  106. package/dist/components/session-tree/rtc-session-tree.styles.d.ts +5 -5
  107. package/dist/components/settings-layout/rtc-settings-layout.d.ts +23 -23
  108. package/dist/components/settings-layout/rtc-settings-layout.d.ts.map +1 -1
  109. package/dist/components/settings-layout/rtc-settings-layout.styles.d.ts +3 -3
  110. package/dist/components/settings-layout/rtc-settings-nav.d.ts +17 -17
  111. package/dist/components/settings-layout/rtc-settings-nav.d.ts.map +1 -1
  112. package/dist/components/settings-layout/rtc-settings-nav.styles.d.ts +2 -2
  113. package/dist/components/status-bar/rtc-status-bar.d.ts +10 -10
  114. package/dist/components/status-bar/rtc-status-bar.d.ts.map +1 -1
  115. package/dist/components/status-bar/rtc-status-bar.styles.d.ts +5 -5
  116. package/dist/components/title-bar/rtc-title-bar.d.ts +4 -4
  117. package/dist/components/title-bar/rtc-title-bar.d.ts.map +1 -1
  118. package/dist/components/token-usage/rtc-token-usage.d.ts +21 -21
  119. package/dist/components/token-usage/rtc-token-usage.d.ts.map +1 -1
  120. package/dist/config/auth.d.ts +12 -6
  121. package/dist/config/auth.d.ts.map +1 -1
  122. package/dist/contexts/activity.d.ts +13 -13
  123. package/dist/contexts/activity.d.ts.map +1 -1
  124. package/dist/contexts/auth.d.ts +5 -4
  125. package/dist/contexts/auth.d.ts.map +1 -1
  126. package/dist/contexts/editor.d.ts +13 -13
  127. package/dist/contexts/editor.d.ts.map +1 -1
  128. package/dist/contexts/file-explorer.d.ts +15 -15
  129. package/dist/contexts/file-explorer.d.ts.map +1 -1
  130. package/dist/contexts/function-debug.d.ts +52 -0
  131. package/dist/contexts/function-debug.d.ts.map +1 -0
  132. package/dist/contexts/functions.d.ts +43 -0
  133. package/dist/contexts/functions.d.ts.map +1 -0
  134. package/dist/contexts/message.d.ts +3 -3
  135. package/dist/contexts/notification.d.ts +4 -4
  136. package/dist/contexts/notification.d.ts.map +1 -1
  137. package/dist/contexts/settings.d.ts +2 -2
  138. package/dist/contexts/skill.d.ts +5 -5
  139. package/dist/contexts/skill.d.ts.map +1 -1
  140. package/dist/contexts/turn-count.d.ts +7 -7
  141. package/dist/controllers/activity.controller.d.ts +11 -11
  142. package/dist/controllers/activity.controller.d.ts.map +1 -1
  143. package/dist/controllers/auth.controller.d.ts +5 -0
  144. package/dist/controllers/auth.controller.d.ts.map +1 -1
  145. package/dist/controllers/editor-area.controller.d.ts +42 -41
  146. package/dist/controllers/editor-area.controller.d.ts.map +1 -1
  147. package/dist/controllers/editor.controller.d.ts +3 -3
  148. package/dist/controllers/event-binding.controller.d.ts +204 -0
  149. package/dist/controllers/event-binding.controller.d.ts.map +1 -0
  150. package/dist/controllers/file-explorer.controller.d.ts +6 -6
  151. package/dist/controllers/function-debug.controller.d.ts +67 -0
  152. package/dist/controllers/function-debug.controller.d.ts.map +1 -0
  153. package/dist/controllers/functions.controller.d.ts +31 -0
  154. package/dist/controllers/functions.controller.d.ts.map +1 -0
  155. package/dist/controllers/message.controller.d.ts +11 -1
  156. package/dist/controllers/message.controller.d.ts.map +1 -1
  157. package/dist/controllers/notification.controller.d.ts +34 -30
  158. package/dist/controllers/notification.controller.d.ts.map +1 -1
  159. package/dist/controllers/persistence.controller.d.ts +31 -14
  160. package/dist/controllers/persistence.controller.d.ts.map +1 -1
  161. package/dist/controllers/session-tab.controller.d.ts +32 -29
  162. package/dist/controllers/session-tab.controller.d.ts.map +1 -1
  163. package/dist/controllers/session-tree.controller.d.ts +10 -10
  164. package/dist/controllers/session-tree.controller.d.ts.map +1 -1
  165. package/dist/controllers/session.controller.d.ts +6 -6
  166. package/dist/controllers/settings.controller.d.ts +1 -1
  167. package/dist/controllers/skill.controller.d.ts +21 -21
  168. package/dist/controllers/skill.controller.d.ts.map +1 -1
  169. package/dist/controllers/status-bar.controller.d.ts +11 -11
  170. package/dist/controllers/toast.controller.d.ts.map +1 -1
  171. package/dist/controllers/tool-call.controller.d.ts +4 -4
  172. package/dist/controllers/window-interaction.controller.d.ts +14 -12
  173. package/dist/controllers/window-interaction.controller.d.ts.map +1 -1
  174. package/dist/controllers/window-state.controller.d.ts +5 -5
  175. package/dist/controllers/window-state.controller.d.ts.map +1 -1
  176. package/dist/core/builtin-system-group.d.ts +26 -19
  177. package/dist/core/builtin-system-group.d.ts.map +1 -1
  178. package/dist/core/event-bus.d.ts +31 -31
  179. package/dist/core/function-registry.d.ts +82 -71
  180. package/dist/core/function-registry.d.ts.map +1 -1
  181. package/dist/core/i18n.d.ts +2 -2
  182. package/dist/core/locale-controller.d.ts +2 -2
  183. package/dist/core/markdown-generator.d.ts +20 -10
  184. package/dist/core/markdown-generator.d.ts.map +1 -1
  185. package/dist/core/ready.d.ts +9 -9
  186. package/dist/core/scenario-loader.d.ts +29 -25
  187. package/dist/core/scenario-loader.d.ts.map +1 -1
  188. package/dist/elements.d.ts +6 -6
  189. package/dist/{en-US-BK61Z8gy.js → en-US-9e1nrE9Q.js} +56 -8
  190. package/dist/factory.d.ts.map +1 -1
  191. package/dist/{highlight-languages-8EK0uwTA.js → highlight-languages-BcRFTMSx.js} +1 -1
  192. package/dist/icons/logo.d.ts +5 -5
  193. package/dist/{index-Bd4j91y1.js → index-CEn11pPK.js} +26829 -22588
  194. package/dist/index.d.ts +17 -15
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/index.js +39 -36
  197. package/dist/index.umd.js +3303 -1120
  198. package/dist/master-lock.d.ts +27 -27
  199. package/dist/master-lock.d.ts.map +1 -1
  200. package/dist/stats.html +1 -1
  201. package/dist/types/activity-bar-config.d.ts +14 -14
  202. package/dist/types/activity-bar-config.d.ts.map +1 -1
  203. package/dist/types/agent-config.d.ts +18 -18
  204. package/dist/types/agent-config.d.ts.map +1 -1
  205. package/dist/types/events.d.ts +75 -19
  206. package/dist/types/events.d.ts.map +1 -1
  207. package/dist/types/factory.d.ts +13 -5
  208. package/dist/types/factory.d.ts.map +1 -1
  209. package/dist/types/functions-debug.d.ts +48 -0
  210. package/dist/types/functions-debug.d.ts.map +1 -0
  211. package/dist/types/index.d.ts +97 -102
  212. package/dist/types/index.d.ts.map +1 -1
  213. package/dist/types/skill.d.ts +95 -83
  214. package/dist/types/skill.d.ts.map +1 -1
  215. package/dist/types/window-config.d.ts +37 -37
  216. package/dist/types/window-config.d.ts.map +1 -1
  217. package/dist/utils/clipboard.d.ts +6 -6
  218. package/dist/utils/command-parser.d.ts +9 -9
  219. package/dist/utils/command-parser.d.ts.map +1 -1
  220. package/dist/utils/highlight-languages.d.ts +3 -3
  221. package/dist/utils/relative-time.d.ts +7 -7
  222. package/dist/utils/session-exporter.d.ts +65 -0
  223. package/dist/utils/session-exporter.d.ts.map +1 -0
  224. package/dist/utils/skeleton-tracker.d.ts +56 -56
  225. package/dist/utils/skeleton-tracker.d.ts.map +1 -1
  226. package/dist/utils/visibility-manager.d.ts +42 -42
  227. package/dist/utils/visibility-manager.d.ts.map +1 -1
  228. package/dist/validation/index.d.ts +16 -16
  229. package/dist/validation/index.d.ts.map +1 -1
  230. package/dist/validation/openapi-to-zod.d.ts +5 -5
  231. package/dist/validation/zod-to-openapi.d.ts +24 -14
  232. package/dist/validation/zod-to-openapi.d.ts.map +1 -1
  233. package/dist/worker-bridge.d.ts +11 -0
  234. package/dist/worker-bridge.d.ts.map +1 -1
  235. package/package.json +5 -5
package/README.md CHANGED
@@ -133,7 +133,7 @@ RTC Agent 使用 SharedWorker + Comlink 架构实现多 Tab 共享:
133
133
  - 共享 IndexedDB 存储
134
134
  - Master Tab 选举(Web Locks API)
135
135
 
136
- 详细设计见 [docs/shared-worker-proposal.md](../../docs/shared-worker-proposal.md)。
136
+ 详细配置见 [SharedWorker 配置指南](./SHARED-WORKER-SETUP.md)。
137
137
 
138
138
  ### 公开属性
139
139
 
@@ -142,39 +142,41 @@ RTC Agent 使用 SharedWorker + Comlink 架构实现多 Tab 共享:
142
142
  | `theme` | `'light' \| 'dark' \| 'system'` | `'system'` | 主题 |
143
143
  | `app-label` | `string` | `'RTC Agent'` | 标题栏 / 气泡 tooltip 文本 |
144
144
  | `bubble-icon` | `string` | `''` | 最小化气泡内的 SVG / HTML |
145
+ | `logo` | `{ light?: string; dark?: string } \| null` | `null` | 自定义 Logo(light/dark 两套) |
146
+ | `worker-url` | `string` | `''` | SharedWorker 文件 URL |
145
147
  | `scenarios-url` | `string` | `''` | Scenario 文档 URL |
146
148
  | `agentConfig` | `AgentConfig \| null` | `null` | 声明式函数注册 |
147
149
  | `registry` | `FunctionRegistry \| null` | `null` | 命令式函数注册(高级) |
148
150
 
149
151
  ### 公开事件
150
152
 
151
- 所有公开事件遵循 `rtc-agent-<event>` 命名模式:
153
+ 所有公开事件遵循 `rtc-<event>` 命名模式:
152
154
 
153
155
  **生命周期事件:**
154
156
 
155
157
  - `rtc-agent-ready` — 组件就绪
156
- - `rtc-agent-beforeDestroy` — 组件即将销毁
157
- - `rtc-agent-themeChange` — 主题变化
158
+ - `rtc-before-destroy` — 组件即将销毁
159
+ - `rtc-theme-change` — 主题变化
158
160
 
159
161
  **消息拦截事件:**
160
162
 
161
- - `rtc-agent-beforeMessageSend` — 消息发送前(可取消或修改)
163
+ - `rtc-before-message-send` — 消息发送前(可取消或修改)
162
164
 
163
- **工具调用事件:**
165
+ **工具调用事件(EventBus 桥接,通过 `on` 配置注册):**
164
166
 
165
- - `rtc-agent-toolCallStart` — 工具调用开始
166
- - `rtc-agent-toolCallSuccess` — 工具调用成功
167
- - `rtc-agent-toolCallError` — 工具调用失败
168
- - `rtc-agent-toolCallProgress` — 工具调用进度
167
+ - `toolCallStart` — 工具调用开始
168
+ - `toolCallSuccess` — 工具调用成功
169
+ - `toolCallError` — 工具调用失败
170
+ - `toolCallProgress` — 工具调用进度
169
171
 
170
172
  **会话和消息事件:**
171
173
 
172
- - `rtc-session-created` / `rtc-session-switched`
173
- - `rtc-message-sent`
174
+ - `rtc-session-created` / `rtc-session-switched` / `rtc-session-renamed` / `rtc-session-deleted`
175
+ - `rtc-message-sent` / `rtc-message-received`
174
176
 
175
177
  **认证事件:**
176
178
 
177
- - `rtc-auth-login-requested`
179
+ - `rtc-auth-login-requested` / `rtc-auth-login` / `rtc-auth-refresh-failed` / `rtc-auth-logout`
178
180
 
179
181
  ### 控制器访问
180
182
 
@@ -186,6 +188,100 @@ agent.messageController.actions.sendMessage(content);
186
188
  agent.skillController.actions.setRegistry(registry);
187
189
  ```
188
190
 
191
+ ## 代码高亮
192
+
193
+ 消息中的代码块使用 highlight.js 进行语法高亮。为控制包体积,组件按需注册了 15 种常用语言(含别名):
194
+
195
+ | 类别 | 语言 | 别名 |
196
+ | --- | --- | --- |
197
+ | Web 开发 | JavaScript, TypeScript, XML, CSS, JSON | `js`, `ts`, `html`, `yml` |
198
+ | 后端/系统 | Python, Go, Bash, YAML, SQL | `py`, `golang`, `sh`, `shell` |
199
+ | 配置/标记 | Markdown, Diff, Plaintext | `md`, `text` |
200
+
201
+ 未注册的语言将回退到无高亮纯文本渲染。如需扩展支持的语言,可在宿主应用中通过 `hljs.registerLanguage()` 注册额外语言包(需自行引入 highlight.js)。
202
+
203
+ ## 稳定性与已知问题
204
+
205
+ ### v0.2.8-rc.0 会话导出与 Function Debugger
206
+
207
+ 本次发布引入会话导出功能和 Function Debugger 面板,并包含多项稳定性修复。
208
+
209
+ **会话导出功能**:
210
+
211
+ - 新增 `/export` 斜杠命令,支持将当前会话导出为静态 HTML 文件
212
+ - 导出选项对话框支持配置:消息数量限制、是否包含 tool calls、是否包含 thinking
213
+ - HTML 导出使用 highlight.js 代码高亮,支持离线阅读和分享
214
+ - 消息分类渲染:用户/助手消息展开显示,tool calls/thinking 等折叠显示
215
+
216
+ **Function Debugger**:
217
+
218
+ - 新增 Function Debugger 面板,支持查看函数调用历史
219
+ - 历史记录迁移到 IndexedDB,支持分页加载
220
+ - Activity Bar 配置重构,functions 显隐统一到 `disabledActivities` 数组
221
+
222
+ **Tool Call 增强**:
223
+
224
+ - `todoWrite` 工具支持专门的渲染卡片
225
+ - Tool call 卡片支持点击复制 function name
226
+
227
+ **稳定性修复**:
228
+
229
+ - 修复 AuthProvider 未传递 `getUserId` 导致数据库隔离问题
230
+ - 修复 Vite HMR 时 React StrictMode 下的登出问题
231
+ - 修复 SharedWorker 连接在 tab 强制关闭后的 stale 连接问题
232
+ - 修复 JSON console output 的双重序列化问题
233
+
234
+ **文档更新**:
235
+
236
+ - 添加代码高亮文档,说明支持的 15 种语言
237
+ - 更新 SharedWorker 设置指南
238
+ - 同步事件系统文档与实现
239
+
240
+ ### v0.2.7-rc.3 稳定性改进
241
+
242
+ 本次发布包含多项稳定性和数据一致性修复:
243
+
244
+ **Worker 连接稳定性**:
245
+
246
+ - 开发模式下使用带时间戳的 Worker 名称(`rtc-agent-worker-dev-{timestamp}`),避免连接到调试会话残留的 stale Worker
247
+ - 改进 Worker 验证超时错误信息,提供清晰的 `chrome://inspect/#workers` 手动清理指引
248
+ - 动态模块加载(DOMPurify、highlight.js)增加自动重试机制(2 次尝试),处理 chunk hash 过期问题
249
+
250
+ **数据一致性保护**:
251
+
252
+ - VirtualFS 读-改-写操作包装在事务中,防止并发写入导致数据损坏
253
+ - `handleEditorSave` 增加 per-file 并发锁,防止 Ctrl+S 与自动-save 并行写入时旧内容覆盖新内容
254
+ - `flushGapFillBuffer` 延迟 offset 推进,确保数据持久化成功后才移动游标,防止永久数据丢失
255
+
256
+ **React StrictMode 兼容**:
257
+
258
+ - 修复 `connectedCallback → disconnectedCallback → connectedCallback` 生命周期竞态
259
+ - `RtcProcessor` 增加 `cancel()` 方法,支持组件卸载时优雅关闭 RTC 循环
260
+ - Master Tab 切换时立即退出处理循环,防止与新 Master 并发执行
261
+
262
+ **UI 与事件系统**:
263
+
264
+ - 提取 `EventBindingController`,集中管理 30+ DOM 事件监听器
265
+ - 验证错误消息翻译为英文,与 Agent 提示语言保持一致
266
+
267
+ ### 开发环境注意事项
268
+
269
+ **SharedWorker 残留问题**:
270
+
271
+ 如果在调试过程中遇到无限递归或其他严重错误导致 Tab 强制终止,SharedWorker 可能处于不一致状态。解决方法:
272
+
273
+ 1. 访问 `chrome://inspect/#workers`
274
+ 2. 终止名为 `rtc-agent-worker` 的 SharedWorker 实例
275
+ 3. 刷新页面
276
+
277
+ 开发模式下会自动避免此问题(每次加载创建新的 Worker 实例)。
278
+
279
+ **动态模块加载失败**:
280
+
281
+ 组件库热重载后,如果遇到 "Failed to fetch dynamically imported module" 错误,组件会自动重试 2 次。如果仍然失败,清除浏览器缓存并重启开发服务器。
282
+
283
+ 详细故障排除指南见 [SharedWorker 配置指南](./SHARED-WORKER-SETUP.md#故障排除)。
284
+
189
285
  ## License
190
286
 
191
287
  [MIT](../../LICENSE)
@@ -2,35 +2,45 @@ export declare const templates: {
2
2
  s0016a70887124d70: string;
3
3
  s01366f0961abde4c: string;
4
4
  s013e9b380fa77bee: import("@lit/localize").StrResult;
5
- s028df6915f235766: string;
6
5
  s0293d842f6e611ae: string;
7
- s03259582cecb7f6f: string;
8
6
  s035e62088a8f0790: string;
9
7
  s041e26088b672986: string;
10
8
  s056efa20c6a8b2e7: string;
11
9
  s0649af088d321069: string;
12
10
  s072cdcb911e30e5a: string;
13
11
  s099e7a9f8436eb13: string;
12
+ s09f39e7686bc7b12: string;
14
13
  s0df0b8096c673ba1: string;
14
+ s0e2db60893d059e4: string;
15
+ s0e4e4c846c34f036: string;
15
16
  s0f4f1bba95d2298b: string;
16
17
  s1030030894d624c7: string;
17
18
  s1031140894dad7d3: string;
19
+ s105944089541c74f: string;
18
20
  s112886089625cc92: string;
19
21
  s116379089658e1c2: string;
22
+ s11655be4b30fede6: string;
20
23
  s116b640896bcf4e1: string;
24
+ s116cee0896181b15: string;
21
25
  s116ef308966c6210: string;
22
26
  s1240310896b4f8b8: string;
27
+ s131c338472a22911: string;
28
+ s135bde3870514299: import("@lit/localize").StrResult;
29
+ s14a1840024c09831: import("@lit/localize").StrResult;
23
30
  s1511980899235644: string;
24
31
  s1513b208992f91ed: string;
32
+ s15a3e0089a35e30d: string;
25
33
  s15a45bb12c36294e: string;
26
34
  s15e8bb089a90e6bd: string;
27
35
  s169b937d864e2dd9: string;
36
+ s17284a089b388be8: string;
28
37
  s17cbdcb3d08e1faa: string;
29
38
  s19575e089d1dae1b: string;
39
+ s1aac76f0f5345d7c: string;
40
+ s1b3be8769609cc19: string;
30
41
  s1b4a39089e8e0ba6: string;
31
42
  s1b8b53f0f6b4d555: string;
32
43
  s1cc47dc4d80a1842: string;
33
- s1e3b8c46001e3962: string;
34
44
  s2046a88742040df7: import("@lit/localize").StrResult;
35
45
  s21bea120f4f64d80: import("@lit/localize").StrResult;
36
46
  s222bafc5622c3fd0: string;
@@ -38,10 +48,13 @@ export declare const templates: {
38
48
  s234934e1656e53a4: string;
39
49
  s239712be1485333a: string;
40
50
  s23e84510a641ea77: string;
51
+ s253cca08a6b1c098: string;
41
52
  s2611be08a7910384: string;
42
53
  s28af5a8fabdda335: string;
43
54
  s28bbcff0ca38cbfa: string;
55
+ s2b24c608abd8b973: string;
44
56
  s2bf07bb911ff2d3d: string;
57
+ s2e5c781bb630d349: string;
45
58
  s2f834ec7550c9db3: string;
46
59
  s2f94de08af7c2cd1: string;
47
60
  s2fa45d68e8e7c9db: string;
@@ -50,15 +63,20 @@ export declare const templates: {
50
63
  s34169a7f5e3cb214: string;
51
64
  s356dec08b50028d3: string;
52
65
  s3712d672f4315799: string;
66
+ s387bc87d440bc5ad: string;
53
67
  s38a3347d83d583d3: string;
68
+ s395c3508b86010f1: string;
54
69
  s3bd3f018e0432f30: string;
55
70
  s3bf2e6dab30ef3f6: string;
56
71
  s3d70bc709c396bfd: string;
72
+ s3db3bf246500402c: string;
57
73
  s3faeacd5ca504f5d: string;
58
74
  s4005447f5c22615f: string;
59
75
  s40ed993dc74df287: string;
60
76
  s42226a08bfe2c3f0: string;
77
+ s4234dfe5c862ffeb: string;
61
78
  s43fefc62381b84ab: string;
79
+ s46e8259bbcd7df58: string;
62
80
  s47960b97d8d2ef8c: string;
63
81
  s486b44ffdbc324a4: string;
64
82
  s48d771522e54d62f: string;
@@ -66,31 +84,39 @@ export declare const templates: {
66
84
  s49a0df2ed77024c0: string;
67
85
  s4ac9679f256d437d: import("@lit/localize").StrResult;
68
86
  s4c5ab7fb1d23cc62: string;
87
+ s4fc0d048d8433bde: string;
69
88
  s5007a4b7896f1b7a: string;
70
89
  s517d88be67d6e3a1: string;
71
90
  s51b507b884967f54: string;
72
91
  s53d0584edced7d5f: import("@lit/localize").StrResult;
92
+ s54ac4b7ff12547c5: string;
73
93
  s5534ea14f2cc2b87: string;
74
94
  s56afba1902e970ea: string;
75
95
  s57fed4463f34bb30: string;
76
96
  s58001194e857ab9e: string;
97
+ s5a4967f99deadf5f: string;
98
+ s5c645b6e9f52886d: string;
99
+ s5d3c3f3c60ffc0c1: string;
77
100
  s5ecd97c510a4f3de: string;
78
101
  s60571c91c53b82fd: string;
79
- s61b232fc4d1f652a: string;
80
102
  s6230bbe9df46da66: string;
81
103
  s642cc600292d5ea7: string;
82
104
  s66f8df91e53055b9: string;
83
105
  s69d4b7b972b239d4: string;
106
+ s6a580dd9b55d003e: string;
84
107
  s6beb126e6d1c828e: string;
85
108
  s6c43bf7ffc56685f: string;
86
109
  s6d4e9348f09b8cd1: string;
87
110
  s6d5204080aabb951: string;
111
+ s6dd2d6080ba660ea: string;
88
112
  s6e6fcdcdc7f1d8ed: string;
113
+ s6e9e88739bc12d4c: string;
89
114
  s6f5e80d8df78807c: string;
90
115
  s6f6ff6080ce73d26: string;
91
116
  s6ffdf1b6d6afe7b5: string;
92
117
  s7005b25019cc68ec: import("@lit/localize").StrResult;
93
118
  s74d863b5dab8f5a3: string;
119
+ s751d17081136b578: string;
94
120
  s756e3761c6bda497: string;
95
121
  s783adf081440d848: string;
96
122
  s7a3a550815a6de71: string;
@@ -100,25 +126,29 @@ export declare const templates: {
100
126
  s7fbb7359d395acdc: string;
101
127
  s8113c0081bda9c10: string;
102
128
  s813535081c1375df: string;
103
- s814dfb26b607cdf3: string;
104
129
  s81522d081c024698: string;
130
+ s8162a1081c0a0595: string;
105
131
  s825b1a7334e42ce8: string;
106
132
  s835830081d3105a9: string;
107
133
  s85677cf9448ac90e: string;
108
134
  s87df31162aa2c32d: string;
109
135
  s88a3ac78fc8c5c69: string;
136
+ s89cc810afc952547: import("@lit/localize").StrResult;
137
+ s8a88dde2b0e3d4e2: string;
110
138
  s8baa4f887fe090f0: import("@lit/localize").StrResult;
111
139
  s8d10f47b7be30353: string;
112
140
  s8e904bba6bce5305: string;
113
141
  s8f39c831592be416: string;
114
142
  s90ec41e502050332: string;
115
143
  s912a87b19f6ee361: string;
144
+ s9259c59fc1ab601b: string;
116
145
  s95203a8a3bd01de5: import("@lit/localize").StrResult;
117
146
  s956e8dd8b5855dee: string;
118
147
  s962bdbdeeca87ed7: string;
148
+ s974744082ed5612e: string;
119
149
  s98c96ddda9eb32e5: string;
120
- s999e1da626842b8c: string;
121
150
  s9a3854a632c60986: string;
151
+ s9af1764f80413fbb: string;
122
152
  s9b36eca633645997: string;
123
153
  s9b9f3c08329ae856: string;
124
154
  s9c255408322fd48a: string;
@@ -130,26 +160,30 @@ export declare const templates: {
130
160
  sa062c958bd25c534: string;
131
161
  sa0ed14fd850830c6: string;
132
162
  sa1230a5be083ab6a: string;
133
- sa33d70ea05452700: string;
134
163
  sa74001c408f0c766: string;
164
+ sa752a6d9e9728b78: string;
135
165
  sa75dc5fb5e59f435: string;
136
166
  sa7aa088d79fc05bb: string;
137
167
  sa89c48e09a724a1a: import("@lit/localize").StrResult;
138
168
  sa8a184ccbfdd1145: string;
139
169
  sa99214edf2192eb6: string;
170
+ sac0458d68b5c8b73: string;
140
171
  sac9eec7e70455963: string;
141
172
  sadea7069d35b5725: string;
173
+ sadeb4474860a6375: string;
142
174
  saf85a24c863b4ffe: string;
143
175
  safb79b4c86903a19: string;
144
176
  sb32373084660391d: string;
145
177
  sb330c4084676d9c0: string;
146
178
  sb3ce019fa1dd0ac1: import("@lit/localize").StrResult;
147
179
  sb413b6091ff8ea35: string;
180
+ sb9775a7db22f4988: string;
148
181
  sba5f9c092611d8af: string;
149
182
  sba8df9c0de68d224: string;
150
183
  sbc25ddf9669f1a6e: string;
151
184
  sbc651b0927b335dc: string;
152
185
  sbde5411128e19ff9: string;
186
+ sbf288fc6928ca3de: string;
153
187
  sbfd8fcb2d22028e7: string;
154
188
  sc0ea59c46f0381fa: import("@lit/localize").StrResult;
155
189
  sc4fc0e6eb8473f10: string;
@@ -160,6 +194,7 @@ export declare const templates: {
160
194
  sc78f100857f6faef: string;
161
195
  sc81820b7ef327434: string;
162
196
  sc8642c233baa3709: string;
197
+ sc98997e0e9944d8d: import("@lit/localize").StrResult;
163
198
  sc992ab0858c53e28: string;
164
199
  sca6fb271b73ed1e1: string;
165
200
  scad05556becd2c42: string;
@@ -171,19 +206,29 @@ export declare const templates: {
171
206
  sce1b842370d4db0c: string;
172
207
  scf9e1bf93156a843: string;
173
208
  sd0236d545cb80b16: string;
209
+ sd03a6a085efe167a: string;
174
210
  sd06ce7085f313af5: string;
211
+ sd07f7841388d4f68: string;
175
212
  sd14166351f66ba7a: string;
176
213
  sd1fbeecd54907e11: string;
177
214
  sd3263a7a96df83b8: string;
178
215
  sd32c4c18db924931: string;
179
216
  sd3f11dfa2287048c: string;
217
+ sd52ab5086352f443: string;
180
218
  sd6033e5780676c2b: string;
219
+ sd6edb44c5859c745: string;
220
+ sd76245f332c51ea2: string;
221
+ sd7c5a28b8e06a0fc: string;
181
222
  sd8bf93698cb1b49e: string;
182
223
  sd959e77c2a48c8e5: string;
224
+ sdae148f01d938da7: string;
183
225
  sdaf29b61b062ec42: string;
226
+ sdb3c0da90bf80180: string;
184
227
  sdc04230409cbaa04: string;
228
+ sdc131c0942088919: string;
185
229
  sdce945c24ad44e16: string;
186
230
  sdd5a7cb7d074a219: import("@lit/localize").StrResult;
231
+ sdd83a682a05ea0b1: string;
187
232
  sdd9f19f38158a338: import("@lit/localize").StrResult;
188
233
  sddd11705d58eb498: string;
189
234
  sded54abab00e3aa8: string;
@@ -203,12 +248,15 @@ export declare const templates: {
203
248
  seac90f283e7fd6c7: string;
204
249
  sec24c2a678528b50: string;
205
250
  sec6e6ce73af02035: string;
251
+ sedc12275baa03e2c: string;
206
252
  seec4d689a0c51623: string;
207
253
  sf1136409548a9686: string;
208
254
  sf1380a0954b4a679: string;
209
255
  sf14eef0954efc3b7: string;
210
256
  sf23abf0955854338: string;
257
+ sf3925ca5791c14d2: string;
211
258
  sf48abfbac2896b17: string;
259
+ sf517c24157589a6f: string;
212
260
  sf9233eede445eae0: string;
213
261
  sfb9613db0964d8c0: string;
214
262
  sfb96d9095ccbf1e1: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/.generated/locales/en-US.ts"],"names":[],"mappings":"AAUI,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0NrB,CAAC"}
1
+ {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/.generated/locales/en-US.ts"],"names":[],"mappings":"AAUI,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0QrB,CAAC"}