决策 0045 · accepted · 2026-11-10
任务页面先列出这个人自己的工作,在列表旁边打开任务,创建的任务都有所属的地方
汇集多个地方任务的页面有 Mine 和 All;默认视图是按这个人和每个任务的关系分组的列表;可以选择任务,配一个浮动的工具栏;任务作为页面这一行的一列打开;New task 带一个频道字段;没有完成控件。
背景
Raft Chat 原来的任务页面列出服务器里所有的频道任务:桌面端是按状态分栏的看板,手机上是按状态分组的列表,上面有三个筛选,任务详情在居中的对话框里。设计系统原来写的是这个页面没有创建按钮,因为任务属于一个地方;决策 0042 则在每个任务行和卡片的开头放了一个圆形的完成控件。
有了任务对话以后,大部分工作由 Agent 来做,人主要是把工作交出去、做决定、接受工作成果。打开这个页面的人会按这个顺序问:有没有什么在等我,我交出去的工作进展如何,其他人手上都有什么工作。状态对这几个问题都回答得不好:谁负责一个任务、它有没有推进,说明得更多。
Noel 在 2026-11-09 到 2026-11-10 期间,于 #wg-task-v2(消息列 8a7ae237)重新设计了这个页面,stdrc 在一个用 raft-ui 搭的、可点击的高保真设计稿(Artifact 4ijP1hMNwQm5MtV6dmVhkc,v16)上审阅了每一步;Noel 随后在 slock #13852 里把它做了出来,放在 task v2 功能开关后面。线上的任务面板已经有 New task 和 "3 / 12" 这样的计数,而设计系统没有写到它们。
决定
- 页面有两个标签页,Mine 和 All。Mine 是默认的,先列出指派给这个人的任务,然后是这个人发起的、由别人负责或没有人负责的任务。已经结束的任务不列出,但第二个分区保留最近一天内完成的任务。All 是一个平铺的列表。两者都不按状态分组。
- 列表是默认视图,桌面端和手机上都一样;按状态分栏的看板,按一下就能切过去。看板上只有 Closed 默认收起。一栏里的卡片按页面的排序排列,所以一栏是一个放置目标。
- 每个筛选(Channel、Status、Creator、Assignee)和排序在两个标签页里都能用。有筛选或搜索缩小列表时,计数写成 "3 / 12"。在手机上,筛选在一行里横向滚动。
- 行可以选择,选中的任务用选中消息时用的那个 SelectionToolbar 批量修改。悬停和按下时铺满整行,选择复选框在填充里面。
- 任务在页面这一行的一列里打开,列表就是这一行的对话,宽度、裁切、Expand 和 Esc 都和消息列一样。在手机上,它是推入页面。
- 页面有 New task,它的 Create task 会问是哪个频道。
- 页面上的行和卡片没有完成控件。
stdrc 在 2026-11-10 批准了这个设计(「按设计来」),并在当天同一个消息列里给出了关于页面这一行、任务那一列、Expand、换行和看板放置目标的规则。2026-11-09,stdrc 问为什么任务前面还有一个复选框,于是完成控件从这个页面的设计里去掉了。
影响
- 规则写在任务、Raft Chat — 任务、响应式布局、拖放和任务组件的文档里。
- 任务详情有两种形式:从一个地方的视图(频道的 Tasks 分区、一条消息、一个引用)打开的居中对话框,以及任务页面上这一行的一列。频道的 Tasks 分区保留对话框:分区就在频道的对话旁边,而任务有自己的讨论,所以不是放在那段对话旁边读的。
- 决策 0042 的完成控件仍然是一个地方的视图里的规则。slock 和移动 App 都还没有把它做出来。
- 每个任务仍然属于一个地方:页面上的 Create task 没有频道就不能提交,页面也没有快速添加。
- 没有开启任务对话的服务器,保留以前的任务面板。
- 撤销这个决定:把状态分组放回列表,把看板恢复为桌面端的默认视图,页面上的任务改回用对话框打开。其余部分(Mine 和 All、筛选、选择)各自独立成立。
考虑过的其他方案
- 把页面分成三块:在等你的,你交出去的(在推进的、卡住的、你上次来过之后完成的),以及按人列出的每个人在做的。 stdrc 觉得这几块的名字和说明难读,最后一块也没什么用(2026-11-10)。两个标签页保留了前两个回答,其余的由筛选和排序给出。
- 给管理员的第二个标签页,列出没有负责人的任务和最久没有更新的任务。 stdrc 起初要求第二个标签页是管理员的视图(2026-11-10)。All 有了所有筛选和排序以后,把 Assignee 设为 Unassigned、按最久未更新排序,就能得到同样的列表,所以 All 对每个人都显示,和以前的页面一样。
- 桌面端默认用看板。 看板按状态排列,而状态是人们来这里要看的信号里最弱的一个。
- 和别处一样,任务在居中的对话框里打开。 这个页面没有自己的对话需要留在视野里,而对话框会挡住人们要回去找下一个任务的列表。一列能同时留住两者,用起来就像聊天里的消息列。
- 按设计系统原来的写法,不放创建按钮。 以前的页面有创建按钮,stdrc 要求这个页面不丢掉它能做的任何事。Create task 里的 Channel 字段让每个任务都属于一个地方。
- 在选择复选框前面放圆形的完成控件。 一行开头的两个框,一个圆一个方,看起来很像,作用却不同。