feat: mirror bound conversation task state (completed/pending) onto project cards as glowing green/yellow dots with click-to-ack

This commit is contained in:
Aisland
2026-08-19 22:30:25 +08:00
parent 9975e889f8
commit ca88b6840d
8 changed files with 266 additions and 7 deletions
+5
View File
@@ -354,6 +354,11 @@ type SplitPane = {
- **对话绑定**:每个项目卡片(布局卡 + 入驻卡)中间偏右有 ○○/●● 按钮,点击弹面板(按工作区
分组、与发送到会话同源),绑定后打开该项目时右侧对话窗自动切换(sessions.open);解绑即
不再切换;绑定关系存 projects.v1.bindings(项目 id → 会话 id)。
- **任务完成/待决提醒镜像**(2026-08-18):绑定会话在宿主快照 byId 里 completed=true → 项目卡
双圆点绿色发光(data-bound=done);pendingInteraction != null → 黄色发光(data-bound=need),
与原生对话小绿点/小黄点同步;点开项目即确认(ack,notifyAck.v1 按会话存状态)恢复常态实心;
状态切换(完成↔待决)会重新点亮。数据源 sessionsSnapshotStore(syncSessionScope 推送完整
快照并通知监听)。
- **项目×对话联动**(2026-08-18):① 打开项目时记录「打开前会话」;② 项目打开期间切到非该
项目绑定的会话 → 自动关闭项目(保留用户新选的会话);③ ✕/反选关闭项目 → 自动回切「打开前
会话」。未绑定项目以「打开前会话」为归属会话(任何切换都会关掉它)。
@@ -927,6 +927,22 @@
functional-diag 全 20 STEP(groupHeaders 3 / itemCount 19)ERROR_COUNT: 0。
- 备注:纯客户端改动,F5 即生效。
## 补记(任务完成/待决提醒镜像到项目卡)
- 用户要求:绑定对话出现原生小绿点(任务完成)/小黄点(需要判断)时,项目卡上的两个圆点
同步变绿/变黄并发光;点一下项目恢复常态实心。
- 实现:syncSessionScope 额外把完整会话快照写入 sessionsSnapshotStore 并通知监听;
组件按 bindings × byId.completed/pendingInteraction(含 notifyAck.v1 ack 过滤)算出
bindNotifyMap;卡片 data-bound 扩展 done/need 两态(CSS 绿 #3fb950 / 黄 #d29922 + 实心 +
drop-shadow 发光);点开项目(openSplit / DOM 桥)ack 当前状态恢复实心;hover 气泡追加
「任务已完成,点击项目查看」「需要你的决定,点击项目处理」。
- 验证(probe-batch10.cjs,桩注入快照状态):completed→data-bound=done、色 rgb(63,185,80)、
实心、drop-shadow 发光、tip 含「已完成」✓;点项目→ack=done、恢复 data-bound=true ✓;
pendingInteraction→need、黄 rgb(210,153,34)、发光、tip 含「决定」✓;functional-diag
全 20 STEP ERROR_COUNT: 0。
- 备注:纯客户端改动,F5 即生效。