@tea-agent/loop-agent 0.33.6 → 0.34.0

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 (26) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/worker/console/chat/model-resolver.js +17 -0
  3. package/dist/worker/console/chat/pi-runtime.js +397 -132
  4. package/dist/worker/console/chat/routes.js +185 -25
  5. package/dist/worker/console/chat/session-store.js +39 -0
  6. package/dist/worker/console/static/assets/index-BQkhJpV8.css +1 -0
  7. package/dist/worker/console/static/assets/index-CMHovlqG.js +32 -0
  8. package/dist/worker/console/static/index.html +2 -2
  9. package/dist/worker/console/static-src/operator-chat/landing-density.js +23 -0
  10. package/dist/worker/console/static-src/operator-chat/session-title-watcher.js +128 -0
  11. package/dist/worker/console/static-src/operator-chat/sidebar-split.js +90 -0
  12. package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +37 -0
  13. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +109 -22
  14. package/dist/worker/console/static-src/operator-chat/useChatStream.js +6 -1
  15. package/dist/worker/console/static-src/operator-chat/useOverlayFocus.js +84 -0
  16. package/dist/worker/console/static-src/operator-chat/useWorkspaceLayout.js +58 -0
  17. package/dist/worker/console/static-src/operator-chat/workspace-layout-mode.js +31 -0
  18. package/harness.json +1 -1
  19. package/package.json +1 -1
  20. package/skills/local-jacoco-coverage/SKILL.md +281 -0
  21. package/skills/local-jacoco-coverage/references/requirement-to-source-mapping.md +85 -0
  22. package/skills/local-jacoco-coverage/references/runtime-alignment.md +106 -0
  23. package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +148 -0
  24. package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +110 -0
  25. package/dist/worker/console/static/assets/index-BUOLppPr.js +0 -28
  26. package/dist/worker/console/static/assets/index-C1KzazY5.css +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.34.0] - 2026-08-11
6
+
7
+ ### 重点更新
8
+
9
+ - Operator Chat 会话创建实现即时响应,Landing 页面与创建请求延迟从秒级降至毫秒级
10
+ - 新增桌面端紧凑响应式布局,根据工作区宽度自动适配 comfortable/compact/narrow 三档显示模式
11
+ - 新增自动会话标题功能,基于首条用户消息生成临时标题,并在首轮对话完成后异步生成正式标题
12
+ - 新增 local-jacoco-coverage 技能,将本地 Java 服务挂载、测试执行与覆盖率切片分析串成标准化链路
13
+
14
+ ### 新增
15
+
16
+ - Operator Chat 桌面紧凑响应式布局:按工作区宽度切换 comfortable(≥1450px)/ compact(1100–1449px)/ narrow(<1100px)三档;compact 档使用图标窄栏与覆盖抽屉,narrow 档使用顶栏入口;会话与仓库面板支持拖拽分栏并记忆比例
17
+ - Operator Chat 自动会话标题:首条用户消息持久化后生成清洗有界的临时标题,首轮对话成功完成后异步生成正式标题;手工重命名、归档和删除操作可拒绝迟到的自动标题覆盖
18
+ - local-jacoco-coverage 技能:将本地启动 Java 服务挂载 jacocoagent、运行 backend-test DAG、按需求文档做覆盖率切片分析三步串联为可审计、可重复的本地链路,包含强制流程手册、runtime 对齐参考、需求映射规范与编排脚本
19
+
20
+ ### 改进
21
+
22
+ - Operator Chat 会话创建改为即时响应:先落盘会话骨架与持久记录后立即返回成功,完整 AgentSession 在后台异步初始化,真实 Chrome 测试中 Landing 延迟从 1346ms 降至 22ms、创建请求从 1269ms 降至 16ms
23
+ - 会话创建期间侧栏与 Landing 页共享 busy 状态反馈,抑制双击导致的重复创建
24
+ - 删除正在初始化的会话不会被迟到的后台初始化任务复活,初始化失败统一返回 HTTP 503 错误码
25
+
5
26
  ## [0.33.6] - 2026-08-11
6
27
 
7
28
  ### 新增
@@ -171,6 +171,23 @@ export function mapSnapshotAvailableModels(snapshot) {
171
171
  * @param available SDK snapshot.available (already mapped to AvailableModelEntry)
172
172
  * @param options.tier harness tier to read (default MED)
173
173
  */
174
+ /** Resolve only the explicitly configured LOW tier; never fall back to MED/HIGH. */
175
+ export async function resolveLowChatModel(repoRoot, available) {
176
+ const pi = await readHarnessExecutorsPi(repoRoot);
177
+ const configured = pi ? normalizeExecutorTierValue(pi.LOW) : undefined;
178
+ if (!configured)
179
+ return undefined;
180
+ const selection = {
181
+ modelId: configured.model,
182
+ ...(configured.provider ? { provider: configured.provider } : {}),
183
+ };
184
+ const entry = findProviderForModelId(selection.modelId, available, {
185
+ preferredProvider: selection.provider,
186
+ });
187
+ if (!entry || entry.hasCredentials === false)
188
+ return undefined;
189
+ return { provider: entry.provider, modelId: selection.modelId, label: entry.name };
190
+ }
174
191
  export async function resolveDefaultChatModel(repoRoot, available, options) {
175
192
  const selection = await readHarnessPiTierSelection(repoRoot, options?.tier ?? "MED");
176
193
  if (!selection)