一个收件箱,只放等你处理的事
14:10,你在 Payments API 上启动了一次托管运行,然后回去做自己的事。14:25,代理停在一个问题上:重试是否也要覆盖接收方返回的 4xx 响应,还是只覆盖 5xx 和超时?你在另一个标签页里。正如我们在运行有了评审循环时所写,一个问题如果一小时内没人回答,代理就会按自己的判断继续;一份计划如果一小时内没人审阅,这次运行就会失败。15:25,代理自己做了决定。
没有任何东西出故障。运行页面一直显示着 等待你处理。只是你不在运行页面上。
运行只是其中一例,这件事如今在整个 Archyl 里都成立:有事情在等人。一个架构变更请求会一直开着,直到有编辑权限的人来评审。图上某个元素的评论收到了回复,评论的作者却始终没看到。过去只有两种办法知道。要么自己去看,要么打开邮件通知,而邮件通知会把整个组织的架构变更都转给你,告诉你一大堆并不需要你处理的事。
现在 Archyl 有了第三种:应用页头最右端的一个铃铛,每个页面都有,带未读数。它后面是一个收件箱,里面只放等你处理的事,或者对你做过的事的回应。
面板长什么样
点击铃铛,会打开一个标题为 通知 的面板。每条通知占一行:一句说明谁做了什么的话、一段摘录、项目名称,以及多久之前。下面是一个可能出现的下午。句子是应用实际显示的文字。人名、项目和摘录是示例。
通知 全部标为已读
● 有代理正在等待您的答复
Should retries also cover 4xx responses from receivers, or only
5xx and timeouts?
Payments API · 12分钟前
● Marie Laurent 要求修改 #14
Billing shouldn't call the ledger database directly. Route it
through the Ledger API container.
Billing · 2小时前
● Sam Okafor 在讨论中回复了
That queue was replaced by the outbox table in March, the
diagram is behind.
Checkout · 3小时前
您的代理执行已完成
Document how to set up and run the service locally.
Billing · 昨天
点击某一行会把它标为已读,并打开它所指的页面:运行、变更请求或讨论。全部标为已读 在面板的标题栏里;把鼠标悬停在未读的行上,会出现一个 标为已读 按钮,用来清掉那些你不想打开的通知。什么都没有的时候,面板会直接告诉你:“没有等待您处理的事项”。
什么会发出通知
来源有三个,完整的清单短到可以直接列在这里。
托管代理运行 会通知启动这次运行的人。
| 发生了什么 | 句子 | 摘录 |
|---|---|---|
| 代理提了一个问题 | 有代理正在等待您的答复 | 代理的问题 |
| 代理提出了一份计划,正在等待批准 | 有代理正在等待您的答复 | 你交给它的任务 |
| 运行完成 | 您的代理执行已完成 | 任务 |
| 运行失败 | 您的代理执行失败 | 错误信息 |
被取消的运行什么都不发。是有人决定停掉它的,这个人不需要别人来告诉他。
架构变更请求 朝两个方向通知。请求发起时,所有能编辑该项目的人都会被告知,发起人自己除外。评审需要编辑权限,所以它等的就是这些人。从那以后,发起人会得知它后续发生的事:
| 评审人做了什么 | 句子 | 摘录 |
|---|---|---|
| 批准了它 | {name} 批准了您的变更请求 #14 | 请求的标题 |
| 要求修改 | {name} 要求修改 #14 | 评审评论 |
| 评审并留下评论 | {name} 评审了您的变更请求 #14 | 评审评论 |
| 合并了它 | {name} 合并了您的变更请求 #14 | 请求的标题 |
| 关闭了它 | {name} 关闭了您的变更请求 #14 | 请求的标题 |
讨论 在有回复时通知。一条回复会送达发起讨论的人,以及所有已经在其中回复过的人,摘录就是这条回复。链接打开的是整个讨论,而不是单条回复,所以你会落在完整的讨论串上。
有一条规则对三者都成立:你永远不会收到关于自己操作的通知。你批准了同事的变更请求,同事会知道。你不会收到。
为什么它不是活动流
做这件事最显而易见的办法,是把 Archyl 已经在记录的变更历史拿出来,放到一个铃铛下面。我们没有这么做,是有意的。
一个组织的历史记录,大部分是别人的工作在顺利进行。有人重命名了一个 container,有人加了一条关系,发现功能提出了十二个组件,一位队友批准了它们。这些全都是事实,却几乎没有一件需要你。把它们放到未读数下面,这个数字就不再有任何意义。我们大多数人在别的某个工具里都有这样一个铃铛,上面的数字我们早就不看了。
所以收件箱对能进来的东西有一条很窄的标准。要么这件事在你行动之前一直卡着(代理的问题、一份计划、一个你可以评审的变更请求),要么它是对你发起的某件事的回应(对你的请求的评审、你的运行结束、你的讨论里的回复)。两条标准都不满足的变更,得不到一行。
全局视图仍然存在,也没有变化。邮件通知和 历史记录 页面依然是查看整个组织活动的地方。收件箱是另一半:发给你的那一部分。
几个细节
每个组织都有自己的收件箱。 如果你属于两个组织,铃铛统计并列出的是你当前所在的那一个。
句子跟随你的语言,摘录不跟随。 应用提供九种语言,每一行的句子都以你的界面语言呈现。一条通知存储的是发生了什么,而不是一条写好的英文字符串,所以用法语工作的评审人和用日语工作的发起人,各自用自己的语言读到“要求修改”。摘录是某个人写下的话,会保留在写它时所用的语言里。
通知复制的内容,受到与来源相同的保护。 一行通知会重复变更请求的标题或评论的一部分。在这些内容静态加密的地方,Archyl Cloud 就是如此,收件箱里的副本也以同样的方式加密。
未读数靠轮询,不靠推送。 未读数每 30 秒刷新一次,你回到标签页时还会再刷新一次。因此,一条新通知最多可能要半分钟才会显示在铃铛上。对于“有评审人要求修改”这样的事,这已经够快,而且省去了每个打开的标签页都维持一条长连接。把某条通知标为已读,会立刻更新你自己浏览器里的未读数。
它现在还做不到的事
代理通过 MCP 服务器发起的变更请求不会通知评审人。 在应用里发起的请求会通知。代理通过 MCP 发起的请求会出现在项目的列表里,但没有任何人的铃铛会动。
没有按类型的设置。 你不能关掉某一类通知。上面的清单就是你会收到的全部。
没有 @提及。 在评论里点某个人的名字,不会通知到他。目前只有已经在讨论里的人才会得知回复。提及是收件箱路线图上的下一项,我们不给它定日期。
在哪里找到它
不需要任何设置。铃铛在页头的最右端,在有东西发给你之前,它会一直是空的。看它运作的最快办法:在一个开启了 先审阅计划 的配置上启动一次托管运行,切到别的页面,然后等未读数出现。
如果你是从聊天里启动运行的,它会与话题串里的更新并存,而不是取代它们。从 Slack 或 Teams 启动的运行仍然会在它的话题串里汇报,启动它的人也会在收件箱里收到那一行。