dsh-zentao-panel 0.2.0 → 0.4.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.
- package/CHANGELOG.md +167 -0
- package/README.md +81 -16
- package/client/client.js +3639 -244
- package/lib/rpc.mjs +16 -1
- package/lib/service.mjs +105 -15
- package/lib/store.mjs +13 -2
- package/lib/zentao-client.mjs +5 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,173 @@
|
|
|
2
2
|
|
|
3
3
|
本项目所有显著变更记录于此。版本号遵循 SemVer。
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.4.0] - 2026-10-27
|
|
8
|
+
|
|
9
|
+
### 新增
|
|
10
|
+
|
|
11
|
+
- **「新建对话」单一入口 + 自动带入开关**:卡片动作行原来的「插入对话」改为「新建对话」——
|
|
12
|
+
弹层里多一个**「自动带入任务背景」**勾选框(默认勾选,记住上次选择):勾选时把标题、描述、
|
|
13
|
+
最近动态与截图填进新会话草稿并跳转(不自动发送);取消则只新建一个**空白会话**并跳转,
|
|
14
|
+
并且确认后才去读禅道详情(不想带内容时不再白拉一次)。批量入口同步改名「批量新建对话」。
|
|
15
|
+
- **界面整理**:卡片动作行拆成「工具组(状态下拉 + 极速重发/旗标/隐藏/复制)+ 分隔线 +
|
|
16
|
+
主操作」,图标按钮收紧到 24×24,窄面板换行时整组不散;「新建对话 / 处理」加图标;
|
|
17
|
+
标签行右侧视图切换改为胶囊分段、搜索框聚焦高亮,卡片 hover 加阴影;下发弹层加宽并支持
|
|
18
|
+
内容超高时滚动。
|
|
19
|
+
- **处理状态可手动修正**:自动检测偶尔会丢(关联会话被删、DSH 重启、正看着的会话跑完宿主
|
|
20
|
+
不置完成未读),现在卡片动作行的「状态」下拉与详情页的「处理状态」chip 组可以直接改
|
|
21
|
+
(处理中 / 等你决策 / 已完成),选「自动」恢复跟随关联会话。手动状态落 states.v1
|
|
22
|
+
(`manual` 标记),自动评估不再覆盖、关联会话被删也不动,重开面板 / 重启后仍在;卡片
|
|
23
|
+
离开「指派给我」列表超过宽限期后仍按原规则清理。手动状态同样参与徽标、快捷筛选计数与
|
|
24
|
+
过滤、智能排序、流程看板分列以及「去禅道标记完成」闭环。
|
|
25
|
+
- **「已结束」人工终态**:新增一个**只能手动标记**的最终状态「已结束」(灰色封存章)——
|
|
26
|
+
会话跑完是「已完成」(agent 干完了),你验收/收摊后再标「已结束」,两者分开表达。已结束
|
|
27
|
+
覆盖自动检测作为最终状态:列表里沉到最底并整体灰化(hover / 选中 / 详情恢复可读),
|
|
28
|
+
不再参与「逾期 / 今天到期」筛选与计数、截止日期不再标红,流程看板不再显示;卡片「状态」
|
|
29
|
+
下拉与详情 chip 里都能标记,选「自动」可恢复跟随会话。状态落 states.v1(`manual`),重启后仍在。
|
|
30
|
+
- **「新建对话」带上最近动态**:带入新会话的任务背景现在除标题与描述外,还包含该事项的
|
|
31
|
+
「最近动态」——同事备注、流转记录(创建/指派/解决/激活/关闭)、字段新旧值对照,按时间正序
|
|
32
|
+
以列表呈现(最多最近 30 条,更早的只在标题里报总数)。备注里的截图同样变成真实图片附件,
|
|
33
|
+
与描述截图一起去重后附加(上限 20 张)。从列表卡直接新建时会先读取一次详情,
|
|
34
|
+
顺带补全完整描述(此前只有 300 字摘要);读取失败不挡插入,只是本次不含最近动态。
|
|
35
|
+
注:「处理」、批量下发、复制 Markdown 仍保持原来的精简模板。
|
|
36
|
+
|
|
37
|
+
### 修复
|
|
38
|
+
|
|
39
|
+
- **页脚「显示已隐藏 N」不随禅道状态更新**:隐藏计数原先按本地隐藏标记全量统计,卡片在禅道里
|
|
40
|
+
完成/转派离开「指派给我」列表后仍占着数字(点开却找不到那张卡)。现只数当前列表里实际存在的
|
|
41
|
+
隐藏卡,数字与点开看到的卡片数一致;隐藏标记本身仍按 72h 宽限保留(重新指派回来仍然隐藏),
|
|
42
|
+
到期由 `cleanupStaleLinks` 清理。
|
|
43
|
+
|
|
44
|
+
### 界面
|
|
45
|
+
|
|
46
|
+
- **流程看板视觉与动效重做**:四列不再是四个带边框的卡片盒子,而是同一张满幅工作面上的四个站——
|
|
47
|
+
顶部 2px 色带连成一根四段状态条(灰=排队 / 蓝=在跑 / 琥珀=等你 / 绿=待闭环),站头用状态字形
|
|
48
|
+
(空心圈 / 均衡器 / 琥珀点+扩散环 / 对勾)+ 右对齐 tab 计数。**动画只表达「刚发生了什么」**:
|
|
49
|
+
卡片换列时从原方向滑入、一颗光点沿状态条走到新站、站头闪一下、计数落一下;新卡落位;在跑的
|
|
50
|
+
卡片左彩条有一道缓慢下滑的高光;等你决策的站头琥珀呼吸。打开面板只有四条车道依次落下
|
|
51
|
+
(卡片不逐张淡入),静止时没有装饰动画;`prefers-reduced-motion` 下全部关闭。
|
|
52
|
+
- **看板缩略卡信息重排**:类型标签从每张卡上移除(列内已有「任务 / Bug / 需求」吸顶分组,不再
|
|
53
|
+
重复),左彩条保留类型色;元信息行改为 `#id` + P1/P2 + 相对截止(今天 / 明天 / N 天后 /
|
|
54
|
+
逾期 N 天,跨年才带年份);「已完成待闭环」列每张卡带对勾;hover / 键盘聚焦时滑入打开箭头,
|
|
55
|
+
整张卡可 Tab 聚焦。
|
|
56
|
+
- **视图切换滑块**:「列表 / 流程」改为胶囊里的滑动指示器,切换时 thumb 自己滑过去。
|
|
57
|
+
- **列表卡片重做**:卡片改为与看板同一套的平铺表面 + 发丝边框 + 类型彩条(去掉浮起阴影);
|
|
58
|
+
顶行「类型 + #ID」固定成身份列,活性徽标不再把 ID 推来推去;截止改成相对说法(今天 / 明天 /
|
|
59
|
+
N 天后 / 逾期 N 天,完整日期进 title),优先级只给 P1/P2 彩色徽标,创建人下沉详情;动作行加
|
|
60
|
+
发丝线与内容分开,「处理」静息是描边、hover / 键盘聚焦才填实(一屏二十张卡不再是一堵蓝按钮墙);
|
|
61
|
+
选中态改用业务蓝描边 + 顶行「查看中」小标签(旧角标会盖住截止);选中态的左彩条改用 inset 阴影画,跟随卡片圆角,不再从圆角处戳出方形竖条。
|
|
62
|
+
|
|
63
|
+
## [0.3.0] - 2026-10-25
|
|
64
|
+
|
|
65
|
+
### 新增
|
|
66
|
+
|
|
67
|
+
- **账号别名**:每个禅道账号可设置别名方便区分——账号菜单里点 ✎ 行内编辑(回车或 ✓ 保存、
|
|
68
|
+
Esc 取消,留空即清除),添加账号时也可顺手填写;头部账号 chip 与页脚优先显示别名,
|
|
69
|
+
账号菜单里原账号 + 实例地址下沉为副行。别名只存本机(config.json `alias` 字段,≤30 字),
|
|
70
|
+
重新登录/upsert 不会抹掉已设别名。新增 `zentao.rename` RPC(空串 = 清除)。
|
|
71
|
+
- **列表搜索与排序**:tab 行右侧新增搜索框(标题 / #ID / 状态 / 创建人/指派人,多关键词空格分隔、
|
|
72
|
+
全命中才显示)与排序下拉——「智能排序」(逾期 > 临期 > 按截止 > 按优先级,已完结沉底,默认)、
|
|
73
|
+
按截止、按优先级、默认顺序;截止时间**临期(≤3 天)橙色、逾期红色**高亮,悬停显示逾期天数。
|
|
74
|
+
- **列表快照秒开**:卡片列表按账号快照在本机(mine.v1),DSH 重启或重开面板先用上次列表渲染
|
|
75
|
+
(页脚带「HH:mm 缓存」)再后台静默刷新;禅道暂时连不上时旧数据 + 时间戳即兜底视图,
|
|
76
|
+
不再是一片骨架/错误页。登出或移除账号时快照一并清除。
|
|
77
|
+
- **处理结果回读**:详情页新增「处理结果(关联会话最新回复)」区——不出面板直接看关联 DSH 会话里
|
|
78
|
+
agent 的最后一条回复。点开详情且卡片「已完成」时自动读取并缓存(10 分钟内不重复拉,失败 60 秒
|
|
79
|
+
防抖冷却),处理中/等决策状态也可手动「重新读取」;再处理换会话、会话被删、卡片离开列表超宽限期
|
|
80
|
+
时缓存联动清理。
|
|
81
|
+
- **回复 Markdown 渲染**:处理结果按 markdown 排版渲染(标题/段落/粗斜体/行内代码/链接/代码块/
|
|
82
|
+
引用/分级列表/分隔线/表格;自研轻量渲染器,元素树直出无 innerHTML),限高 360px 内部滚动,
|
|
83
|
+
完整内容不截断(缓存上限 20000 字仅防炸兜底;旧版截 500 字的缓存自动判定不完整并重拉)。
|
|
84
|
+
- **智能排序感知处理状态**:「智能排序」把卡片的实时处理状态排进优先级——**等你决策**的卡片
|
|
85
|
+
永远第一屏置顶(哪怕截止还远),**处理中**紧随其后,**已完成**(禅道侧未完结)沉到普通卡片
|
|
86
|
+
之后、终态之前;状态来自实时监控 + 持久化进度,重启后依然生效。按截止 / 按优先级 / 默认顺序
|
|
87
|
+
不受影响(显式选了维度就尊重它)。
|
|
88
|
+
- **会话头部反向跳转**:处理过的 DSH 会话,头部出现「禅道」小按钮——点击切回禅道面板并**自动
|
|
89
|
+
选中该卡片**打开详情(面板 → 会话 → 面板闭环打通)。卡片属于其他账号时先自动切换账号再定位;
|
|
90
|
+
卡片已离开「指派给我」列表则停在对应分类页。未关联禅道卡片的会话不显示该按钮。
|
|
91
|
+
- **详情页「最近动态」**:同事备注 / 流转记录(指派、转派、优先级与截止日变更)/ 字段新旧值对照
|
|
92
|
+
以时间线显示在详情里(默认折叠显示最近 5 条,可展开全部;备注里的截图也以真实图片渲染),
|
|
93
|
+
不用切回禅道网页看讨论。
|
|
94
|
+
- **自动轮询与在线状态**:面板打开时每 5 分钟静默刷新列表;头部标题旁有连接状态小点
|
|
95
|
+
(绿 = 已连 / 红 = 不可达 / 灰 = 未知),禅道不可达时列表上方常驻提示条展示缓存时间并可一键重试。
|
|
96
|
+
- **新指派提醒**:轮询发现「指派给我」的**新增**事项时弹 toast(「禅道新指派 2 条(任务×1 · Bug×1)」),
|
|
97
|
+
基线按账号记忆、面板重开不重复提醒。
|
|
98
|
+
- **批量处理 / 批量插入**:列表进入多选模式后可跨分类勾选一批事项,合并为一份任务背景
|
|
99
|
+
(图片合并上限 20 张 = DSH 单消息上限)一次下发给 agent;成功后每张卡片都关联同一会话,
|
|
100
|
+
徽标 / chip / 反向跳转照常工作。
|
|
101
|
+
- **详情图片双层缓存**:看过的截图在 client(40 张 / 24MB)与 host(10 分钟 TTL / 32MB)各缓存一份,
|
|
102
|
+
重开详情、面板切走再切回、详情看过的图点「处理」都不再重新下载转圈。
|
|
103
|
+
- **下发弹层「附加指令」**:「处理 / 插入」弹层新增可选输入框(如「只分析定位原因,先不要改代码」),
|
|
104
|
+
以「## 处理要求」拼到任务背景末尾,单卡与批量共用;记住上次输入,下次打开自动带出。
|
|
105
|
+
- **流程看板**:新增「流程」视图——待处理 / 处理中 / 等你决策 / 已完成待闭环 四列泳道
|
|
106
|
+
同屏展示全局态势(跨任务/Bug/需求,逾期红标、临期橙标、旗标点),列内再按 任务/Bug/需求
|
|
107
|
+
分组;点缩略卡回列表打开详情(列表自动滚动定位),视图选择自动记忆;数据实时联动,零新增请求。
|
|
108
|
+
- **卡片回复摘要行**:处理过的卡片在列表里直接显示 agent 最后回复的一行预览(悬停看全文),
|
|
109
|
+
不用点开详情就知道结论;换会话再处理后旧回复自动不显示。
|
|
110
|
+
- **决策应答台**:卡片「等你决策」时详情页顶部出现应答框——一键「同意,继续执行」或自定义
|
|
111
|
+
答复,直接在禅道面板里拍板,不用跳转会话;agent 的提问同步自动读取。
|
|
112
|
+
- **本地备注**:卡片可写自己的备忘(如「等张三回复后再动」),卡片上一行摘要、详情页编辑,
|
|
113
|
+
仅本机可见不回写禅道;事项离开指派列表超宽限期自动清理。
|
|
114
|
+
- **继续处理**:处理过的卡片在详情页「继续处理…」往**关联的那个会话**追加指令
|
|
115
|
+
(如「按刚才的分析把代码改了」),不开新会话丢上下文;会话在跑时自动排队。
|
|
116
|
+
- **一键复制**:卡片一键复制「#ID 标题」(贴 IM 问同事),详情页一键复制完整 Markdown
|
|
117
|
+
(标题 + 描述/重现步骤);剪贴板带老环境兜底。
|
|
118
|
+
- **旗标与隐藏**:卡片可打旗标(重点关注,快捷筛选新增「已标记」维度)或本地隐藏
|
|
119
|
+
(不回写禅道,默认从列表滤掉;页脚「显示已隐藏」临时查看与找回);标记按账号隔离,
|
|
120
|
+
事项离开指派列表超宽限期自动清理。
|
|
121
|
+
- **极速重发**:卡片上 ⚡ 按钮——记住上次成功下发的工作区/模型/思考强度/附加指令,
|
|
122
|
+
同类问题不用再过弹层直接重发;悬停可看将使用的配置摘要。
|
|
123
|
+
- **快捷筛选条**:列表上方一行筛选 chip——**等你决策 / 处理中 / 逾期 / 今天到期 / 已完成**一键过滤,
|
|
124
|
+
激活时跨任务/Bug/需求合并展示(叠加搜索词),计数实时联动;点分类 tab 即回到分类视图。
|
|
125
|
+
- **指令模板预设**:附加指令支持多套模板——textarea 下方 chip 行一键填入(悬停看全文)、× 删除、
|
|
126
|
+
「+ 存为预设」把当前输入存成模板;全文去重、最多 12 条(超限最旧先出),本机持久化。
|
|
127
|
+
- **完成后一键去禅道闭环**:卡片处理完(绿勾)后,详情页出现「去禅道标记完成」按钮,深链到
|
|
128
|
+
禅道的完成 / 解决 / 关闭操作页(`task-finish` / `bug-resolve` / `story-close`),由你在禅道表单里
|
|
129
|
+
确认提交——插件保持只读,不做任何 API 回写。
|
|
130
|
+
|
|
131
|
+
### 变更
|
|
132
|
+
|
|
133
|
+
- 列表卡片选中态视觉加强:全高类型彩条 + 阴影浮起 + 右移示意 +「查看中」文字角标,
|
|
134
|
+
当前查看的卡片一眼可辨(用户反馈两轮加强)。
|
|
135
|
+
- 会话头部「禅道」按钮跳回面板后,列表自动滚动定位到目标卡片(此前只选中不滚动)。
|
|
136
|
+
- README 补充真实界面截图(Bug 列表页),安装命令中的 DSH 应用路径修正为
|
|
137
|
+
`DeepSeek Harness.app`。
|
|
138
|
+
|
|
139
|
+
### 修复
|
|
140
|
+
|
|
141
|
+
- **需求(story)详情 404**:v1 路径复数是 `stories`,此前误拼成 `storys` 导致需求详情自首个版本起
|
|
142
|
+
一直报「不存在」。
|
|
143
|
+
- host.mjs 端到端测试的凭据解析升级到多账号 schema v2(环境变量 → `$DSH_HOME` 配置激活账号 →
|
|
144
|
+
只读兜底真实 `~/.dsh` 配置),登录失败明确报错退出不再崩栈。
|
|
145
|
+
|
|
146
|
+
## [0.2.1] - 2026-10-25
|
|
147
|
+
|
|
148
|
+
### 新增
|
|
149
|
+
|
|
150
|
+
- **处理进度持久化**:卡片的活性状态(处理中 / 等你决策 / 已完成)落盘 localStorage
|
|
151
|
+
(`states.v1`,按禅道账号隔离),DSH 重启或重开面板后徽标立即恢复——包括 DSH 关闭期间
|
|
152
|
+
后台会话跑完的那些。「已完成」是粘性进度记录:看过关联会话后仍然保留,直到再次处理、
|
|
153
|
+
会话被删或卡片离开列表;徽标悬停可见进度更新时间。
|
|
154
|
+
- **陈旧事项定时清理**:每次拉取「指派给我」列表后顺带清理——已不在列表中(完结 / 转派)
|
|
155
|
+
超过 72 小时的卡片,其会话关联与进度记录一起删除;在线卡片刷新 `lastSeen` 计时基准
|
|
156
|
+
(每小时最多写一次盘)。
|
|
157
|
+
|
|
158
|
+
### 变更
|
|
159
|
+
|
|
160
|
+
- **「插入对话」改版为弹层式新会话**:点击后与「处理」同样先选工作区、接入模型与思考强度,
|
|
161
|
+
确认后新建会话并**自动跳转过去**,任务背景与截图已填入草稿但**不会自动发送**——检查或
|
|
162
|
+
修改后再手动发送;「处理」保持后台发送、不跳转。新会话创建失败时降级为插入当前会话
|
|
163
|
+
输入框(原行为,再兜底剪贴板)。
|
|
164
|
+
|
|
165
|
+
### 修复
|
|
166
|
+
|
|
167
|
+
- **正看着的会话跑完不标记「已完成」**:宿主的完成未读信号只对后台会话置位——用户正在
|
|
168
|
+
看的会话(「插入对话」跳过去手动发送、或中途点 chip 去看过)跑完永远不产生该信号,
|
|
169
|
+
此前被漏成「无状态」。现「处理中」消失且有结束确认信号时直接记为「已完成」;
|
|
170
|
+
「等你决策」消失仍视为已回应(agent 会继续跑)。
|
|
171
|
+
|
|
5
172
|
## [0.2.0] - 2026-10-25
|
|
6
173
|
|
|
7
174
|
### 新增
|
package/README.md
CHANGED
|
@@ -1,27 +1,81 @@
|
|
|
1
1
|
# dsh-zentao-panel
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
DeepSeek Harness(DSH)的禅道(ZenTao)工作台插件:在 DSH **左侧边栏**里以一个**禅道**图标
|
|
4
4
|
作为入口(与「记忆系统」同款形式,位于其下方),点开后禅道面板占据主区域,查看
|
|
5
5
|
**指派给我**的任务 / Bug / 需求,一键把卡片转成 DSH 对话上下文。
|
|
6
6
|
|
|
7
|
+

|
|
8
|
+
|
|
7
9
|
## 功能
|
|
8
10
|
|
|
9
11
|
- 左侧栏全局面板:任务 / Bug / 需求三个分段标签,卡片列表 + 详情;
|
|
12
|
+
- **列表搜索与排序**:tab 行右侧搜索框按标题 / #ID / 状态 / 创建人实时过滤(多词空格分隔、
|
|
13
|
+
全命中才显示),排序可选「智能排序」(逾期 > 临期 > 按截止 > 按优先级,已完结沉底)/
|
|
14
|
+
按截止 / 按优先级 / 默认顺序;**截止临期(≤3 天)橙色、逾期红色**高亮,一眼看到最急的活;
|
|
15
|
+
- **快捷筛选条**:列表上方一键过滤「等你决策 / 处理中 / 逾期 / 今天到期 / 已完成」(跨任务/Bug/需求
|
|
16
|
+
合并展示,计数随搜索联动),比切排序更直接;
|
|
17
|
+
- **秒开与离线兜底**:列表按账号快照在本机,DSH 重启或重开面板先显示上次列表(页脚带
|
|
18
|
+
「HH:mm 缓存」时间)再后台刷新;禅道暂时连不上也能看到旧数据而不是一片空白;
|
|
19
|
+
- **处理结果回读**:处理完的卡片在详情页直接显示**关联会话里 agent 的最新回复摘要**
|
|
20
|
+
(点开详情且已完成后自动读取并缓存,也可手动「重新读取」),不用切过去翻会话;
|
|
10
21
|
- **多账号**:可保存多个禅道账号(同实例换账号、多实例混用都行),头部账号菜单一键切换,
|
|
11
|
-
切换即时生效不用重新登录(每账号独立 cookie
|
|
12
|
-
|
|
22
|
+
切换即时生效不用重新登录(每账号独立 cookie/缓存),也可按账号移除;每个账号可设
|
|
23
|
+
**别名**(账号菜单里点 ✎ 行内编辑,或添加账号时填写),头部账号 chip 与页脚显示别名、
|
|
24
|
+
原账号+实例地址下沉到副行,多个账号一眼区分(别名只存本机,最多 30 字,留空即清除);
|
|
25
|
+
- 卡片拖拽进对话输入框(精简 Markdown:标题 + 描述/重现步骤,不带元信息/原地址/页脚);
|
|
26
|
+
- **「新建对话」按钮**:先弹窗选**工作区**、**接入的模型**与**思考强度**(同「处理」),确认后新建会话、
|
|
27
|
+
**自动跳转过去**,**不会自动发送**——检查/改完再点发送。弹层里的**「自动带入任务背景」**
|
|
28
|
+
(默认勾选,记住上次选择)决定是否把内容填进草稿:勾选时带入标题、描述、**最近动态**
|
|
29
|
+
(同事备注 / 流转记录 / 字段新旧值,最多最近 30 条)与截图(备注里的图也一起);
|
|
30
|
+
取消勾选则只新建一个**空白会话**并跳转(不读禅道详情);服务缺失时降级为插入当前会话输入框;
|
|
13
31
|
- **描述里的截图变成真实图片**:插入时把禅道 `<img>`(含列表接口的 `{35861.png}` 占位符)
|
|
14
|
-
下载下来,作为 DSH
|
|
32
|
+
下载下来,作为 DSH 图片附件挂到草稿,发送后模型真的能看到图;
|
|
15
33
|
- 「处理」按钮:先弹窗选**工作区**、**接入的模型**(按接入方分组)和**思考强度**(默认带出当前会话的
|
|
16
34
|
在用项),确认后新建会话、按所选模型设置并自动下发任务背景提示词(含图片附件);下发**不会跳转视图**,
|
|
17
35
|
你仍留在禅道面板继续挑活,卡片上会亮出该会话的状态与入口(要过去再点 chip);
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
36
|
+
- **关联会话跳转(双向)**:处理过的卡片左侧会出现会话 chip(显示该 DSH 会话标题),点击即可跳回
|
|
37
|
+
那个会话继续跟进;反过来,处理过的会话头部也会有「禅道」小按钮,点击切回禅道面板并**自动定位
|
|
38
|
+
选中该卡片**(列表自动滚动到位,跨账号自动切换)。会话被删除后 chip 显示「会话已删除」,点击清除
|
|
39
|
+
标记。关联按禅道账号隔离,只存本机 localStorage,不落任何远端;
|
|
21
40
|
- **实时状态(处理中的任务一目了然)**:处理过的卡片 chip 前有活性状态点;会话在跑 → 卡片亮蓝色
|
|
22
41
|
「处理中」胶囊(三点跳动);agent 等你拍板 → 琥珀色「等你决策」(呼吸描边);后台会话跑完 →
|
|
23
42
|
绿色「已完成」徽标,同时弹提醒条,点「去看看」直接跳回那个会话。提醒不依赖面板是否打开
|
|
24
43
|
(正开着的会话完成不重复提醒;装了 dsh-notify-me 的话系统通知照发,两条通道独立);
|
|
44
|
+
- **处理状态可手动修正**:自动检测偶尔会丢(关联会话被删 / DSH 重启 / 正看着的会话跑完),
|
|
45
|
+
卡片动作行的「状态」下拉或详情页「处理状态」chip 可直接改成 处理中 / 等你决策 / 已完成,
|
|
46
|
+
选「自动」恢复跟随关联会话;手动状态存本机,重开面板 / 重启后仍在,并照常参与筛选、排序与看板;
|
|
47
|
+
- **「已结束」人工终态**:会话跑完只是「已完成」(agent 干完了),你验收/收摊后可手动标成
|
|
48
|
+
**「已结束」**(灰色封存章)——它是最终状态,列表里沉到最底并灰化,不再参与逾期/今天到期
|
|
49
|
+
提醒,流程看板也不再显示;标记入口同上(卡片「状态」下拉 / 详情 chip),选「自动」可恢复;
|
|
50
|
+
- **详情页「最近动态」**:同事备注 / 流转记录(指派、转派、优先级与截止日变更)/ 字段新旧值对照,
|
|
51
|
+
以时间线直接显示在详情里(默认折叠显示最近 5 条,可展开全部;备注里的截图也以真实图片渲染),
|
|
52
|
+
不用切回禅道网页看讨论;
|
|
53
|
+
- **自动轮询 + 在线状态 + 新指派提醒**:面板打开时每 5 分钟静默刷新;标题旁连接小点
|
|
54
|
+
(绿 = 已连 / 红 = 不可达),禅道连不上时列表上方常驻提示条(展示缓存时间、可重试);
|
|
55
|
+
轮询到**新指派**弹提醒(「禅道新指派 2 条(任务×1 · Bug×1)」),按账号记忆不重复提醒;
|
|
56
|
+
- **流程看板**:head「流程」切换——四站管线(待处理/处理中/等你决策/已完成待闭环)同屏看全局,
|
|
57
|
+
顶部四段状态条 + 站头字形(在跑均衡器 / 等你琥珀环 / 收尾对勾)一眼分清阶段;卡片换列时从原方向
|
|
58
|
+
滑入、一颗光点沿状态条走到新站、新卡落位,其余时候保持安静(遵循系统「减少动态效果」设置);
|
|
59
|
+
缩略卡只留 #ID / 优先级 / 相对截止(今天 / 明天 / N 天后 / 逾期 N 天),列内再按
|
|
60
|
+
任务/Bug/需求 分组,点卡回列表定位(自动滚动到卡片),视图自动记忆;
|
|
61
|
+
- **列表队列样式**:平铺卡片 + 类型彩条,顶行固定「类型 / #ID」身份列(活性徽标不再把 ID 推来推去);
|
|
62
|
+
截止用同一套相对说法,P1/P2 才用彩色徽标,创建人下沉详情;操作行用发丝线与内容分开,「处理」
|
|
63
|
+
静息是描边、悬停/键盘聚焦才填实;选中卡用蓝色描边 + 顶行「查看中」标签;
|
|
64
|
+
- **回复摘要行 / 决策应答台**:处理过的卡片显示 agent 最后回复的一行预览;「等你决策」时
|
|
65
|
+
在详情页直接回复 agent(一键同意或自定义答复),不用跳会话;
|
|
66
|
+
- **本地备注 / 继续处理**:卡片自己的备忘(仅本机可见,卡片摘要 + 详情编辑);处理过的卡片在
|
|
67
|
+
详情页往关联会话**追加指令**继续执行,不开新会话丢上下文;
|
|
68
|
+
- **一键复制 / 旗标隐藏 / 极速重发**:卡片复制「#ID 标题」贴 IM、详情复制完整 Markdown;
|
|
69
|
+
卡片可打旗标(「已标记」一键筛选)或本地隐藏(页脚找回);⚡ 按上次配置直接重发同类任务;
|
|
70
|
+
- **批量处理 / 批量新建对话**:多选模式跨分类勾选一批事项,合并成一份任务背景一次下发
|
|
71
|
+
(图片合并上限 20 张);每张卡片都关联同一会话,徽标 / chip 照常工作;
|
|
72
|
+
- **详情图片双层缓存**:看过的截图 client + host 各缓存一份,重开详情 / 面板切回 /
|
|
73
|
+
详情看过的图点「处理」都不再重新转圈;
|
|
74
|
+
- **下发「附加指令」**:「处理 / 新建对话」弹层可选输入框(如「只分析定位原因,先不要改代码」),
|
|
75
|
+
拼到任务背景末尾,单卡与批量共用;记住上次输入,且支持**多套模板预设**(chip 一键填入、
|
|
76
|
+
× 删除、「存为预设」新增,最多 12 条);
|
|
77
|
+
- **完成后一键去禅道闭环**:卡片绿勾(已完成)后详情页出现「去禅道标记完成」,深链到禅道的
|
|
78
|
+
完成 / 解决 / 关闭操作页,由你确认提交——插件保持只读;
|
|
25
79
|
- 登录态持久化(30 天免登),会话失效自动重登;
|
|
26
80
|
- 全部颜色走 DSH 语义 token(`--dsw-alias-*`),日间 / 夜间自动跟随;
|
|
27
81
|
- 只读,不回写禅道。
|
|
@@ -32,19 +86,29 @@ DeepSeekRuntime 的禅道(ZenTao)工作台插件:在 DSH **左侧边栏**
|
|
|
32
86
|
- **M1** ✅ host 插件:登录(30 天免登 cookie)/ my-work 三接口 / v1 详情 / loopback RPC
|
|
33
87
|
- **M2** ✅ client 入口:左侧栏全局面板(`sidebar.panellist` 图标行 + `main` keyed 面板,
|
|
34
88
|
参照 dsh-mnemon 的「记忆系统」);旧版 DSH 没有这两个 slot 时自动退回悬浮按钮 + 侧滑面板
|
|
35
|
-
- **M3** ✅
|
|
36
|
-
|
|
37
|
-
|
|
89
|
+
- **M3** ✅ 「新建对话」弹层式新会话(选工作区/模型 → 建会话 → 自动跳转 → 只填草稿不自动发送;
|
|
90
|
+
弹层可取消「自动带入」只开空白会话;2026-10-27 起为唯一新建入口;服务缺失时降级:
|
|
91
|
+
服务级 setDraft → composer DOM → 剪贴板)+
|
|
92
|
+
「处理」新会话下发(后台 retain 保活 + 自动发送,不打断当前视图)
|
|
93
|
+
- **M4** ✅ 打磨:自动轮询(5 分钟)+ 在线/离线状态 + 新指派提醒;列表搜索/排序/逾期高亮;
|
|
94
|
+
快照秒开 + 离线兜底;批量处理/批量新建对话;详情图片双层缓存;下发「附加指令」;完成后一键去禅道闭环
|
|
38
95
|
- **M5** ✅ 多账号:配置 schema v2(accounts[] + activeId,旧单账号自动迁移)、
|
|
39
96
|
每账号独立 client/cookie/缓存、账号菜单切换/添加/按账号移除
|
|
40
97
|
- **M6** ✅ 实时状态:卡片活性徽标(处理中/等你决策/已完成)+ 完成/等决策常驻提醒
|
|
41
|
-
(信号来自 DSH 宿主 `uiSession.sessionStatus
|
|
98
|
+
(信号来自 DSH 宿主 `uiSession.sessionStatus`,零轮询)+ 处理进度持久化(重启后徽标恢复)+
|
|
99
|
+
状态可手动修正 / 人工「已结束」终态(灰色封存章,列表沉底灰化、不进看板)
|
|
100
|
+
- **M7** ✅ 详情页「最近动态」时间线(v1 actions:备注/流转/字段变更,折叠展示、备注截图真实渲染);
|
|
101
|
+
修复需求(story)详情自 M3 起一直 404 的问题——v1 路径复数是 `stories`,此前误拼成 `storys`
|
|
102
|
+
- **M8** ✅ 「新建对话」带最近动态:带入模板在描述后追加「最近动态」小节(最多最近 30 条,
|
|
103
|
+
备注/字段变更缩进成子项),备注截图并入真实图片附件;从列表卡新建时确认后才读详情补全内容
|
|
104
|
+
(2026-10-27 起「插入对话」并入「新建对话」,弹层用「自动带入」开关控制是否带内容)
|
|
42
105
|
|
|
43
106
|
## 测试
|
|
44
107
|
|
|
45
108
|
```bash
|
|
46
|
-
node test/client.mjs # client 半边:bundle 装载 +
|
|
109
|
+
node test/client.mjs # client 半边:bundle 装载 + 注册契约 + 纯函数(无需 DSH)
|
|
47
110
|
node test/multi.mjs # 多账号:store 迁移/切换/缓存隔离/移除(mock,不打网络)
|
|
111
|
+
node test/protocol.mjs # 禅道响应信封协议 + actions 映射(stub fetch,不打网络)
|
|
48
112
|
DSH_HOME=/tmp/zt-smoke node test/smoke.mjs # 直连真实禅道验证 client/service(需内网可达)
|
|
49
113
|
DSH_HOME=/tmp/zt-host node test/host.mjs # apply() + RPC wire 协议端到端(mock ctx,真实禅道)
|
|
50
114
|
```
|
|
@@ -57,7 +121,7 @@ DSH_HOME=/tmp/zt-host node test/host.mjs # apply() + RPC wire 协议端到
|
|
|
57
121
|
从 npm 安装(推荐):
|
|
58
122
|
|
|
59
123
|
```bash
|
|
60
|
-
DSH="/Applications/
|
|
124
|
+
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
|
|
61
125
|
"$DSH" plugin --profile desktop add dsh-zentao-panel
|
|
62
126
|
```
|
|
63
127
|
|
|
@@ -65,7 +129,7 @@ DSH="/Applications/DeepSeekRuntime.app/Contents/Resources/runtime/cli/bin/dsh"
|
|
|
65
129
|
|
|
66
130
|
```bash
|
|
67
131
|
git clone https://github.com/big-li99/dsh-zentao-panel.git
|
|
68
|
-
DSH="/Applications/
|
|
132
|
+
DSH="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
|
|
69
133
|
"$DSH" plugin --profile desktop add "$(pwd)/dsh-zentao-panel"
|
|
70
134
|
```
|
|
71
135
|
|
|
@@ -86,12 +150,13 @@ rm -rf ~/.dsh/zentao-panel
|
|
|
86
150
|
```jsonc
|
|
87
151
|
{
|
|
88
152
|
"version": 2,
|
|
89
|
-
"accounts": [ /* { id, baseUrl, account, password(base64 混淆), cookies } */ ],
|
|
153
|
+
"accounts": [ /* { id, baseUrl, account, alias?, password(base64 混淆), cookies } */ ],
|
|
90
154
|
"activeId": "当前激活账号的 id"
|
|
91
155
|
}
|
|
92
156
|
```
|
|
93
157
|
|
|
94
|
-
账号 id 由 `baseUrl + account`
|
|
158
|
+
账号 id 由 `baseUrl + account` 哈希得到,同账号重复登录等于更新凭据(已有别名保留,
|
|
159
|
+
不会被登录覆盖);`alias` 为本机显示别名(可选,≤30 字)。旧版单账号
|
|
95
160
|
格式读取时自动迁移,无需手动处理。卸载插件后文件不会自动删除,需要时手动清理。
|
|
96
161
|
|
|
97
162
|
## 技术说明
|