Replies: 2 comments
|
2026-09-09 源码复读( 冻结: 必须绑执行事实,不能绑裸
OpenPI 对照:
OSC / 浏览器通知是展示适配,不能当新的执行状态源。保持唤醒的 owner 应是「进程内仍被需要的运行集合」。不默认发摘要、不默认常亮。#196 继续拥有 settlement 合同。 |
|
2026-09-09 源码复检(未安装、未运行)。记录: 对照比 #476 开帖时多读了一份官方 example 的当前 HEAD(Pi
OpenPI 源码里,父回合可以已经 idle,同时仍有: OSC / toast / 浏览器通知仍只是展示适配;不要变成第二份状态源。若做 opt-in companion,应对齐 OpenPI 已有的 running-set / settle / watch / ask-user,默认只带 Session/任务名和状态,不要默认塞回答正文。 |
Uh oh!
There was an error while loading. Please reload this page.
OpenPI 已经允许后台 Terminal、Subagent 和 Workflow 继续工作。用户离开页面后,仍需要知道何时该回来;本机也可能在任务期间休眠。社区已有小插件覆盖这些需求,但它们通常以单个 Pi agent run 为单位。值得讨论的是如何复用它们的机制,又不把
agent_end误报成整个任务完成。本帖探索可选的外部用户体验,不承诺默认保持屏幕常亮、发送系统通知,或引入一个后台调度器。
两个具体参考
mitsupi的 notify 扩展 在 Piagent_end发 OSC 777 通知,把回答转成纯文本、去除终端控制序列并限制长度。机制很小,但依赖终端支持,也没有区分后台 child、父回合、Goal 或 Workflow 的完整终态。它会把回答摘要放进系统通知,隐私选择也需要明确。仓库为 Apache-2.0;manifest 的 Pi peer 为*,本轮未进行运行验证。@narumitw/pi-caffeinate在agent_start获取系统抑制器,回合结束或 Session shutdown 时释放;有计数、generation 与 AbortSignal 来处理异步获取和迟到回写。文档 区分 system-awake 与 display-awake,说明部分生效和不可用情形。源码 manifest 为 0.49.7、MIT、开发 Pi 0.85.0。它有模块级共享状态,尚未验证 OpenPI 同进程多 Session/child 加载的语义;不能仅凭单 Session 功能就宣称可直接组合。建议先确定的行为
agent_end不代表仍在运行的 child 已结束通知可以先默认只含 Session/任务名称和状态,摘要由用户选择。权限拒绝、不支持终端、页面关闭时不能保证送达,应明确区分“事件发生”“通知已请求”“送达不可确认”。浏览器通知和终端 OSC 是展示适配层,不能成为新的执行状态来源。
保持唤醒也应由明确 owner 获取并释放,范围可能是进程内活跃运行集合。它不应唤醒已经关闭的进程,不应假装让远程主机保持运行,也不应默认阻止锁屏。
最小可证伪实验
先做 opt-in 原型或独立 companion 兼容试点,验证:父空闲但 child 活跃、两个并发 Session、失败/取消/uncertain、确认等待、切换 Session、reload/shutdown、抑制器获取未完成就取消、通知权限拒绝、后台标签页重连。判断标准是通知不失真/不重复、owner 退出不遗留抑制器、前台延迟与待机耗电可接受;不用额外模型调用生成通知。
希望讨论的问题
#196 已跟踪后台 ownership、settlement 和 delivery 合同;这里限定为用户离开页面之后的注意力和本机电源行为,不重复执行调度设计。
研究记录:Pi 社区能力研究与候选清单(2026-09-08)。源码证据、运行验证与采用决策分别记录。
All reactions