codebee 0.1.38 → 0.1.39

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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ README 元数据带回,供老版本在「发现新版本」时展示新版更
6
6
 
7
7
  ## 未发布
8
8
 
9
+ ## v0.1.39(2026-09-21)
10
+
11
+ ### 🛠 问题修复
12
+
13
+ - 修复长任务上下文撑爆后重试仍失败:压缩生成的会话摘要此前只写日志、没有真正替换发往模型的上下文;现在重试改用「压缩摘要 + 最近消息」重建请求并放弃膨胀的旧会话,超长连载/代码任务能真正续跑而不是再爆一次。
14
+
9
15
  ## v0.1.38(2026-09-21)
10
16
 
11
17
  ### ✨ 新功能
package/README.md CHANGED
@@ -21,6 +21,11 @@ Kimi Code、MiMo Code、Grok Build、Pi、DeepSeek Harness……),提供
21
21
  不会把你的任务内容交给任何第三方。
22
22
 
23
23
  <!-- relnotes:start -->
24
+ ### 🛠 问题修复 · Fixes
25
+
26
+ - 修复长任务上下文撑爆后重试仍失败:压缩摘要此前只写日志、没真正替换发往模型的上下文;现在重试用「压缩摘要+最近消息」重建请求并放弃膨胀的旧会话,超长任务能真正续跑。
27
+ - Fixed long-task overflow retries failing again: compaction summaries used to go only to logs. Retries now rebuild the request from the summary plus recent messages and drop the bloated old session.
28
+
24
29
  ### ✨ 新功能 · New
25
30
 
26
31
  - 新建任务输入框焕新:编排模式、思考程度、「厂商/模型」选择器收进输入框工具行右侧(左附件、右偏好+发送的主流布局);对话模型点开是「厂商 → 模型」两级菜单,选中打勾、底部「管理模型」直达,pill 显示「厂商/模型」组合名。
package/app/ui/app.js CHANGED
@@ -158,34 +158,34 @@ window.toggleModelMenu = toggleModelMenu;
158
158
  if (!menu || menu.dataset.cmpBound) return;
159
159
  menu.dataset.cmpBound = "1";
160
160
  menu.addEventListener("click", (e) => {
161
+ // 钻取/选定都在菜单内完成:阻止冒泡到 document 的「点外面收起」——
162
+ // innerHTML 重写后 e.target 是已脱离 DOM 的旧节点,wrap.contains 会误判
163
+ // false 而把刚钻取的菜单收掉(真机「点厂商没反应」根因)
164
+ e.stopPropagation();
161
165
  const b = e.target.closest("[data-p],[data-back],[data-manage]");
162
166
  if (!b) return;
163
167
  if (b.dataset.manage) { toggleModelMenu(false); switchTab("models"); return; }
164
168
  if (b.dataset.back) { cmpModelProv = ""; cmpModelMenuRender(); return; }
165
169
  if (b.dataset.m === undefined) {
166
- // 点厂商 = 厂商+推荐模型一起定(用户反馈「只选了厂商」):带出该厂商
167
- // 排序最前的模型并展开模型级菜单,可立即改选;已是当前厂商则只钻取。
168
- // 顺序关键:先 picker 重建 options 再赋值——select.value 对不存在的
169
- // option 会静默忽略(真机「没法选模型」根因之一)
170
- const pid = b.dataset.p;
171
- if ($("f-direct-provider").value !== pid) {
172
- renderDirectModelPicker();
173
- $("f-direct-provider").value = pid;
174
- renderDirectModelPicker();
175
- const p = directProviders().find((x) => x.id === pid);
176
- const names = p ? (p.models || []).filter((m) => !m.hidden)
177
- .map((m) => m.name).filter(Boolean) : [];
178
- const ms = $("f-direct-model-name");
179
- if (names.length && names[0]) ms.value = names[0];
180
- cmpDirectBtnSync();
181
- }
182
- cmpModelProv = pid;
170
+ // 点厂商 = 只钻取到模型级(用户拍板 2026-09-21:模型必须亲手点,
171
+ // 不要自动带推荐)。真源不动——用户点了具体模型才写 provider/model。
172
+ cmpModelProv = b.dataset.p;
183
173
  cmpModelMenuRender();
184
174
  return;
185
175
  }
186
- // 选定:写回隐藏 select 真源(提交流/回归测试全走原路径)
176
+ // 选定:写回隐藏 select 真源(提交流/回归测试全走原路径)。顺序关键:
177
+ // 先让 provider 的 option 就位再赋值,否则 select.value 静默失效(真机
178
+ // 「没法选模型」根因:options 由 poll 重建,可能仍是残缺态)
179
+ renderDirectModelPicker();
187
180
  $("f-direct-provider").value = b.dataset.p;
181
+ renderDirectModelPicker();
188
182
  $("f-direct-model-name").value = b.dataset.m;
183
+ if ($("f-direct-model-name").value !== b.dataset.m) {
184
+ const opt = document.createElement("option");
185
+ opt.value = b.dataset.m;
186
+ $("f-direct-model-name").appendChild(opt);
187
+ $("f-direct-model-name").value = b.dataset.m;
188
+ }
189
189
  cmpDirectBtnSync();
190
190
  toggleModelMenu(false);
191
191
  });
package/app/ui/style.css CHANGED
@@ -5632,8 +5632,11 @@ button.request-busy > * { opacity: .18; }
5632
5632
  font: inherit; color: inherit; cursor: pointer; }
5633
5633
  /* 「厂商/模型」组合名比单档选项长:放宽截断(其他 pill 保持 88px 短名) */
5634
5634
  #f-direct-wrap .cmp-sel-btn { max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
5635
- /* 厂商/模型钻取菜单:脱离 pill 宽度限制(type-menu 默认 left/right 撑满父级) */
5636
- #cmp-model-menu { left: 0; right: auto; min-width: 250px; }
5635
+ /* 厂商/模型钻取菜单:脱离 pill 宽度限制(type-menu 默认 left/right 撑满父级)。
5636
+ * 向上弹+z-index 提到 95:composer 靠页面底部,向下展开会被右栏 aside 盖住
5637
+ * (真机实测 elementFromPoint 命中 ASIDE——2026-09-21「选不了模型」) */
5638
+ #cmp-model-menu { left: 0; right: auto; min-width: 250px; z-index: 95;
5639
+ top: auto; bottom: calc(100% + 6px); }
5637
5640
 
5638
5641
  /* 插件市场:内置/已安装/可安装分区标题与已装启停开关(对齐 ZCode 形态) */
5639
5642
  #mk-grid .sec-title { margin: 14px 0 6px; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebee",
3
- "version": "0.1.38",
3
+ "version": "0.1.39",
4
4
  "description": "CodeBee · 多智能体编排台 — 统一编排本机 AI 编码 CLI(Codex / Claude Code / QwenCode / OpenCode / Aider…):目标→拆解→路由→执行→验证→跨厂商评审→修复→报告。纯 Python 标准库实现,本地 Web UI。",
5
5
  "license": "MIT",
6
6
  "bin": {