Skip to content

Feat/desktop todo view - #1061

Merged
xiaomakuaiz merged 8 commits into
chaitin:mainfrom
xiaomakuaiz:feat/desktop-todo-view
Aug 13, 2026
Merged

Feat/desktop todo view#1061
xiaomakuaiz merged 8 commits into
chaitin:mainfrom
xiaomakuaiz:feat/desktop-todo-view

Conversation

@xiaomakuaiz

Copy link
Copy Markdown
Collaborator

No description provided.

rail 导航组末尾新增待办开关(设置同款覆盖视图,不入空间枚举,侧栏保持
原空间列表):主区整页清单支持添加/行内编辑/勾选/右键删除;每条可派发
成本地/会话/云端任务(新建视图预填正文,创建成功回链去向),行尾回显
关联任务状态词并可跳回;完成仍由用户手动勾掉。

壳侧新增 todos_load/todos_save(config_dir/todos.json,全量替换语义,
原子写;损坏如实报错不静默回空表)。
uploads.rs 把 begin/save_from_path 抽出按目录参数化的本体(begin_in_dir/
save_from_path_in_dir,rel 前缀可空),会话通道原样包一层;todos.rs 借此
新增五条不绑 sessionId 的命令:todo_upload_begin(块推送与收尾共用
upload_chunk/finish/abort 的同一张句柄表)、todo_upload_path(路径直拷,
内容零穿越 IPC)、todo_upload_read(data URL 回读,root 钉在 todo-uploads,
canonicalize 防越界且只放行常见图片)、todo_upload_delete(名字必须等于
清洗后原样,不给 ../分隔符解释空间;缺席幂等)、todo_uploads_dir(派发
带图拼 path-backed 源路径用)。TodoItem 显式加 images 字段(裸文件名
列表,文件生命周期归 UI 编排)。

顺手根治 uploads 测试的 TempDir 偶发:纳秒戳在并行测试线程下会同刻
撞名(共用目录互踩/互删),叠一个进程内自增号,唯一性不再赌时钟分辨率。
待办形态三改后的定稿(演进都留档在 LAYOUT §4/§6 与就地注释):rail 独立
开关 → 侧栏钉住行 + 覆盖视图 → **清单本体进本地空间侧栏**,主区待办页
删除(TodoView 及其测试);窗口标题优先级链同步收敛。

侧栏「待办」组 = 项目组同款 details 区块标签(折叠注册 mc.collapsedGroups
哨兵 \0todos)+ hover「+」行内添加(Enter 连续记多条,Esc/失焦收起);
行 = 纯文字安静行(checkbox-xs 与 14px 圆圈钮两版都试过,用户定案去掉
行首勾选件,完成走右键首项)+ 行尾图片角标与要紧态状态点(派发去向回查
会话表,词进 tooltip);行点击 = 已派发跳关联任务、未派发进行内编辑;
「已完成」小节折叠(mc.todoDoneOpen,默认收起);未完成数进概览统计行
(「N 待办」仅 >0 时出现)。chat/云端空间不出组;无会话空态保留。

图片:行右键「添加图片」系统选图(滤非图路径)/添加输入粘贴截图(文字
回执,随 Enter 挂上)/编辑态粘贴立即挂;有图行角标点开 Lightbox 竖排
查看 + × 移除(portal 到 body:.menu 行样式会给 li 直接子节点补悬停底,
modal 留在组里整层被染)。上传编排在 useTodos:逐张上传、失败单张外显
upload 类别、挂载前条目被删则清刚落盘的文件;todos_load 非数组回包判
契约漂移外显,不进常驻渲染态。派发带图:App 把待办图片包成 path-backed
File 经 NewTaskModal 新增的 initialFiles 预填,建完会话按路径直拷进工作
区并入附件行;云端任务不支持附件,图片留在待办条目上。

listKit 抽 StatusDot(会话行/待办行共用点+扩散环),uploads.ts 抽
streamToHandle(会话/待办两个 begin 命令面共用块循环)并加 pickImageFiles。
交互两处按用户定案(2026-08-13)重做:
- 「点击就是修改」不合直觉——点行改开**详情弹窗**:正文编辑(Enter/失焦
  提交;开弹窗即聚焦,粘贴事件才有落点,不聚焦截图贴不进来)、图片管理
  (网格缩略图、悬停 × 移除、点图放大、「添加图片」选图、弹窗内粘贴截图
  直接挂)、底部已派发出状态章点击跳关联任务、未派发给「启动任务」。
  右键的「编辑/添加图片/查看图片」随之退役,菜单只剩 完成/启动任务/
  打开关联/删除;行尾图片角标转纯指示(张数进 tooltip)。
- **未完成段行拖拽排序**(项目组同款:落点指示线绝对定位、原位落点不画线
  不落盘、拖拽中出收尾落区);顺序即 todos.json 数组序,useTodos.reorder
  不动 updated_at——排序是清单的事,不是条目的变更。

文案两易落定:「派发成任务」(行话难懂)→「交给 Agent」(仍别扭)→
「启动任务」,与本地任务/新建任务同一套词汇,过程在词典注释留档。

结构收拾:待办组整体从 1100+ 行的 Sidebar.tsx 拆到
features/todo/TodoSection.tsx;rowTrailing/rowStatusLabel 迁
sidebar/sessionStatus.ts(TodoSection 反向 import 视图组件会成环)。
详情弹窗 portal 到 body(.menu 行样式会染 li 直接子节点,同前批 Lightbox)。
两处视觉定案(2026-08-13 用户):
- composer 区上边线去掉(会话与云端任务两处同款):输入卡自带边框已是
  分界,再压一条通栏线是双重描边。
- 侧栏三列表(本地/对话/云端)加回 menu-sm:行 12px/行距 4px。LAYOUT §6
  写的本就是「menu menu-sm」,实现漂移成了裸 menu(14px/6px);用户定案
  「任务标题字体改小、行距改小」正是这一档,对齐回来。组头与行同 12px,
  层级靠字重/降色与缩进,不靠字号。
@xiaomakuaiz
xiaomakuaiz merged commit 1976f5b into chaitin:main Aug 13, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant