Claude Code 和 Codex 已经把会话活动写到本机。状态伴侣不需要代理请求或包裹 CLI,只需要可靠地找到文件、增量解析事件,并对新鲜证据做保守判断。
数据源留在本地
扫描器读取工具已经生成的 JSONL 或会话元数据,提取会话身份、事件类型和时间。原始 prompt、代码与工具输出不需要上传到 Agent Island 服务。
刻意保持小型状态模型
用户真正需要的是正在工作、等待用户、结束、受阻或未知等少量状态。供应商错误码和权限类型作为原因附加,不把界面扩展成一张难懂的协议表。
停滞不等于安静
只有一个此前处于运行状态的回合,在超过明确静默阈值且没有终止或错误证据时,才可推断为停滞。没有运行历史的安静会话应是未活动或未知。
后来发生的事情可以推翻旧结论
完成事件之后出现用户输入或新回合,旧“轮到你”就失效。应用重启后也应从持久记录重建,而不是把内存里的旧提示恢复出来。
这个信号不能证明什么
会话状态不验证代码质量、测试结果或业务目标。它只陈述本地证据支持的运行情况。完整状态定义见七状态分类与测试清单。
从发现到展示的四层结构
- 发现层找到本地会话文件及其稳定身份。
- 解析层把供应商记录转成统一事件。
- 状态层应用新鲜度、覆盖和错误规则。
- 聚合层决定共享状态栏与提醒展示。
分层的价值在于每一步都能用固定样本测试。供应商格式变化时主要修改解析层,不需要重新发明提醒规则。
恢复比实时更容易被忽略
文件监听让状态变化很快,但监听器可能在休眠、重启或目录变化时漏事件。启动时完整扫描、运行中增量监听、低频一致性重扫三者结合,才能让“现在的状态”不依赖应用从头在线。