跳转到内容

Agent 通知与离线推送

working 状态的 Agent 不需要你做任何事。真正要紧的只有两个时刻:它变成 blocked(等你输入),以及它变成 done(干完了)。SigilTTY 只在这两个时刻提醒你,并且覆盖三个距离层次——从 app 开着,到 app 完全关闭。

只要有已附着的 Agent 会话,SigilTTY 就会盯着它的状态。Agent 变为 blocked 或 done 时,你会收到一条系统通知,会话标签页上的状态点也会变色。其他状态变化一概不打扰——Agent 安静干活时,你也清净。

全局开关在 Settings › General › Agent Notifications(默认开启)。

在配备灵动岛的 iPhone 上,app 在后台时发生的事件会显示在灵动岛上,而不是弹横幅:一枚持续的橙色标记会一直留在岛上,直到你回到 app。详见 Live Activity

离线推送:SigilTTY 关闭时的提醒

Section titled “离线推送:SigilTTY 关闭时的提醒”

App 被挂起后附着会话就结束了——但服务器上的 Agent 还在跑。为服务器开启离线推送后,即使 SigilTTY 完全没有运行,那台服务器也能把消息送到你的锁屏上:“deploy-fix finished”,直接来自你自己的机器。

在该服务器上打开 Herdr Agents…,拨动面板底部的 Offline notifications 开关。它按服务器独立设置、默认关闭,开启需要三个条件:

  • 你在这台服务器上至少附着过一次 Agent。
  • SigilTTY 已获通知权限。
  • 当前正连接着这台服务器。

设置到此为止。SigilTTY 会借助你已有的 SSH 连接,在服务器上放置一个小助手 sigiltty-watcher:按服务器架构从项目的 GitHub Releases 下载二进制、用 app 内钉死的校验和验证、然后拉起——全程无需手动安装任何东西。(主机上需要有 curlwget,以及一个 SHA-256 工具——几乎所有 Linux 机器都有。)

这个小助手刻意设定为 7 天过期;你每次连接服务器时,SigilTTY 都会自动续期。服务器重启后,下次连接时它会被重新拉起。面板上能直接看到它的健康状态——例如 “Deployed 0.1.4 · renews in 6d”

标题就是事件本身——“«agent» finished”“«agent» needs attention”——副标题是服务器名,正文是 pane 的标签。同一个 Agent 的连续事件会互相替换,不会在锁屏上叠一摞。

点按通知的行为符合直觉:如果有活跃的附着会话,直接聚焦它;否则打开 Agents 列表并高亮该 Agent,再点一下就能接回。SigilTTY 绝不会在冷启动时自行发起 SSH 连接——重新附着永远由你主动触发,Face ID 提示和主机密钥校验都发生在你预期的时刻。

把开关拨回去,SigilTTY 就会把小助手从服务器上卸载干净——配置、锁文件和日志一并清除。

离线推送的架构确保:运营中继服务器不等于能读你的通知。

  • **端到端加密。**服务器上的小助手用你设备的公钥(HPKE)加密每一条事件。只有你的设备——确切说,只有你设备上的通知扩展——能解密。
  • **中继零知识。**中继只负责把密文转发给 Apple 的推送服务,它能看到的只有一个匿名路由标识——没有账号、没有邮箱、没有服务器名、没有 Agent 名。
  • **无账号。**设备匿名注册;30 天未活跃的注册会被删除。
  • **密钥不出设备。**解密密钥在你的设备上生成、存于钥匙串、永不同步到任何地方。服务器上只有公钥那一半。
  • **一切可审计。**小助手(sigiltty-watcher,Rust)与中继均已开源,见 github.com/SigilTTY/sigiltty-relay,协议文档也在仓库里。以上说法不必只听我们的——欢迎任何形式的安全审计。
  • **支持自托管。**不想用我们的中继,可以把 SigilTTY 指向你自己的。