fix(web): hide lifecycle actions for channel chats
This commit is contained in:
parent
61648f1114
commit
5c80fb202b
|
|
@ -5,6 +5,10 @@
|
||||||
> 所以不是每个版本号都有条目。条目格式 `## <版本> — <日期>`,新条目加在最上面。
|
> 所以不是每个版本号都有条目。条目格式 `## <版本> — <日期>`,新条目加在最上面。
|
||||||
> 工程口径的完整记录见 `PROGRESS.md` / git log。
|
> 工程口径的完整记录见 `PROGRESS.md` / git log。
|
||||||
|
|
||||||
|
## 0.60.13 — 2026-07-31
|
||||||
|
|
||||||
|
- 微信和企业微信对话不再显示完成、废弃、重命名和删除操作,避免把常驻渠道会话当作普通任务处理;导出和清空对话仍然保留。
|
||||||
|
|
||||||
## 0.60.12 — 2026-07-29
|
## 0.60.12 — 2026-07-29
|
||||||
|
|
||||||
- 任务列表以及文件、文件夹列表现在支持右键操作,可在鼠标位置直接打开与「⋯」按钮一致的菜单;菜单靠近屏幕边缘时会自动调整位置。
|
- 任务列表以及文件、文件夹列表现在支持右键操作,可在鼠标位置直接打开与「⋯」按钮一致的菜单;菜单靠近屏幕边缘时会自动调整位置。
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
> 配合 `DESIGN.md`。本文件只记 phase 状态、决策偏差、文件量、下一步。每条 1-2 句:做了啥 + 关键判断;细节查 `git log` / `git diff` / `DESIGN §7.9`。
|
> 配合 `DESIGN.md`。本文件只记 phase 状态、决策偏差、文件量、下一步。每条 1-2 句:做了啥 + 关键判断;细节查 `git log` / `git diff` / `DESIGN §7.9`。
|
||||||
|
|
||||||
最后更新:2026-07-29(任务与文件列表右键菜单,bump 0.60.12)
|
最后更新:2026-07-31(渠道常驻会话操作收口,bump 0.60.13)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -21,6 +21,10 @@
|
||||||
|
|
||||||
## 已完成关键能力
|
## 已完成关键能力
|
||||||
|
|
||||||
|
### 2026-07-31
|
||||||
|
|
||||||
|
- **07-31 / 0.60.13 / 渠道常驻会话操作收口**:微信与企业微信的 web 只读镜像只保留导出和清空对话,隐藏普通任务才适用的完成、废弃、重命名和删除操作,顶部独立完成按钮同步隐藏;普通任务菜单不变。纯前端行为修正,无 API、schema、migration 或依赖变化;JavaScript 语法及 diff 格式检查通过。
|
||||||
|
|
||||||
### 2026-07-29
|
### 2026-07-29
|
||||||
|
|
||||||
- **07-29 / 0.60.12 / 任务与文件列表右键菜单**:任务行、文件行和目录行增加原生 `contextmenu` 入口,直接复用既有 `taskMenuItems` / `fileMenuItems`,因此与「⋯」按钮保持相同权限、状态禁用、确认弹框和后端调用;单例浮层菜单增加按鼠标坐标定位及视口双向钳制,右键任务不切换当前会话、右键文件不触发打开。纯前端加法,无 API、schema、migration 或依赖变化;3 个 JS 文件语法及 diff 格式检查通过,浏览器实例不可用故真实鼠标回放留页面复核。
|
- **07-29 / 0.60.12 / 任务与文件列表右键菜单**:任务行、文件行和目录行增加原生 `contextmenu` 入口,直接复用既有 `taskMenuItems` / `fileMenuItems`,因此与「⋯」按钮保持相同权限、状态禁用、确认弹框和后端调用;单例浮层菜单增加按鼠标坐标定位及视口双向钳制,右键任务不切换当前会话、右键文件不触发打开。纯前端加法,无 API、schema、migration 或依赖变化;3 个 JS 文件语法及 diff 格式检查通过,浏览器实例不可用故真实鼠标回放留页面复核。
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。
|
# zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。
|
||||||
# 改版本只动这一行。
|
# 改版本只动这一行。
|
||||||
__version__ = "0.60.12"
|
__version__ = "0.60.13"
|
||||||
|
|
|
||||||
|
|
@ -348,7 +348,7 @@ function taskMenuItems(t) {
|
||||||
const hasMsg = (t.n_messages || 0) > 0;
|
const hasMsg = (t.n_messages || 0) > 0;
|
||||||
// run_status 列表行与 taskMeta 都带(_task_dict 统一出);running/cancelling 时禁清空
|
// run_status 列表行与 taskMeta 都带(_task_dict 统一出);running/cancelling 时禁清空
|
||||||
const running = taskRunState(t) === "running" || taskRunState(t) === "cancelling";
|
const running = taskRunState(t) === "running" || taskRunState(t) === "cancelling";
|
||||||
return [
|
const items = [
|
||||||
{ act: "complete", label: "完成", cls: "act-complete", disabled: !isActive,
|
{ act: "complete", label: "完成", cls: "act-complete", disabled: !isActive,
|
||||||
onclick: () => setTaskStatus(t.task_id, "completed", t.name || "(未命名)") },
|
onclick: () => setTaskStatus(t.task_id, "completed", t.name || "(未命名)") },
|
||||||
{ act: "abandon", label: "废弃", cls: "act-abandon", disabled: !isActive,
|
{ act: "abandon", label: "废弃", cls: "act-abandon", disabled: !isActive,
|
||||||
|
|
@ -362,6 +362,12 @@ function taskMenuItems(t) {
|
||||||
{ act: "delete", label: "删除", cls: "act-delete",
|
{ act: "delete", label: "删除", cls: "act-delete",
|
||||||
onclick: () => deleteTask(t.task_id, t.name || "(未命名)", t.n_messages || 0) },
|
onclick: () => deleteTask(t.task_id, t.name || "(未命名)", t.n_messages || 0) },
|
||||||
];
|
];
|
||||||
|
// 渠道镜像是每用户每渠道唯一的常驻会话,不开放普通 task 生命周期操作。
|
||||||
|
// 导出和清空仍有明确用途:前者留档,后者删除消息并从空上下文重新开始。
|
||||||
|
if (channelCfg(t.channel)) {
|
||||||
|
return items.filter((item) => item.act === "export" || item.act === "clear");
|
||||||
|
}
|
||||||
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 筛选 / 排序 / 刷新 一律 reset(loadTaskList 默认 append=false);追加由 sentinel observer 触发
|
// 筛选 / 排序 / 刷新 一律 reset(loadTaskList 默认 append=false);追加由 sentinel observer 触发
|
||||||
|
|
@ -786,9 +792,11 @@ function renderChatMeta() {
|
||||||
const active = t.status === "active";
|
const active = t.status === "active";
|
||||||
$("chat-form").style.display = active ? "flex" : "none";
|
$("chat-form").style.display = active ? "flex" : "none";
|
||||||
syncOptimizeBtn();
|
syncOptimizeBtn();
|
||||||
$("btn-done").disabled = !active;
|
const isChannelTask = !!channelCfg(t.channel);
|
||||||
// ⋯ 菜单:选中即可用;各项 enable/disable(完成/废弃按 status、清空按 run_status+n_messages)
|
$("btn-done").hidden = isChannelTask;
|
||||||
// 全在 taskMenuItems 内部判定,这里只管整体可用性。
|
$("btn-done").disabled = !active || isChannelTask;
|
||||||
|
// ⋯ 菜单:选中即可用;普通任务的生命周期项及渠道任务的精简项均由
|
||||||
|
// taskMenuItems 判定,这里只管整体可用性。
|
||||||
$("btn-task-menu").disabled = false;
|
$("btn-task-menu").disabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue