Skip to content

会话实时更新

Mantra v0.10.0 引入了会话实时更新功能,让你可以像看直播一样,打开正在进行中的 AI 编程会话,实时看到新消息出现。

什么是会话实时更新?

传统上,Mantra 查看的是已完成的会话记录。现在,当你的 AI 工具(Claude Code、Cursor、Gemini CLI、Codex)正在工作时,你可以同时打开 Mantra,看到每一条新消息实时出现在叙述面板中,无需手动刷新。

这对以下场景特别有用:

  • 在另一台显示器上监控长时间运行的 AI 任务
  • 随时了解 AI 正在做什么,而不用切换窗口
  • 验证 AI 是否按照预期的方向推进

支持的数据源

AI 工具监听机制说明
Claude CodeJSONL 文件监听增量读取,仅处理新增内容
CodexJSONL 文件监听增量读取,仅处理新增内容
CursorSQLite 定时轮询只读轮询,不干扰 Cursor 自身操作
Gemini CLIJSON 文件监听全量重解析后与上次状态对比

核心功能

实时消息渲染

新消息以淡入动画的方式出现在叙述面板中:

  • 滚动跟随:如果你停留在底部,面板会自动跟随新消息向下滚动
  • 悬浮提示:当你向上翻阅历史时,底部会出现「N 条新消息」浮动按钮,点击即可跳回最新位置

实时状态指示器

会话标题旁会显示当前监听状态:

状态含义
🟢 Live正在实时监听,连接正常
已停止监听已停止,点击重新连接
🔄 重连中连接中断,正在自动恢复

自动错误恢复

实时监听支持智能的自动恢复机制:

  • 指数退避重连:连接中断时自动重试,最多 3 次,每次间隔递增
  • 手动重连按钮:自动恢复失败后,提供手动重连按钮
  • 空闲检测:当会话看起来已结束时,自动降低轮询频率,减少资源消耗

如何使用

打开正在进行的会话

  1. 启动 AI 工具开始一个编程任务
  2. 在 Mantra 的项目列表中找到对应项目
  3. 点击项目,Mantra 会自动检测并开启实时监听
  4. 会话标题旁出现 🟢 Live 标识,表示实时更新已激活

自动检测

Mantra 会自动判断当前会话是否正在进行中。如果会话文件最近有写入,就会自动开启实时监听。

跟踪新消息

开启实时监听后,Mantra 会处理以下情况:

  • 正常追加:AI 每次回复后,新消息自动出现
  • 工具调用:工具调用请求和结果会实时显示
  • 错误处理:如果 AI 工具输出了无法解析的内容,Mantra 会跳过并继续监听

远程会话的实时更新

如果你通过 远程 SSH 接入 连接了远程服务器,实时更新同样支持远程会话:

  • Claude Code / Codex:通过 SSH 流式读取远程 JSONL 文件尾部(类似 tail -f
  • Cursor:通过 SSH 远程执行数据库查询
  • Gemini CLI:通过 SSH 远程轮询 JSON 文件变化
  • SSH 断线恢复:断线重连后,从上次读取的偏移量继续,不会遗漏消息

常见问题

为什么没有看到 Live 状态指示器?

可能的原因:

  1. 会话已完成:如果 AI 工具已经结束了该会话,Mantra 不会对其开启实时监听
  2. 导入的是历史会话:通过导入向导手动导入的过去会话不支持实时更新
  3. 文件权限:Mantra 需要有权限监听日志文件,请检查文件访问权限

解决方法:打开 AI 工具开始一个新任务,然后在 Mantra 中刷新项目列表。

实时更新会影响性能吗?

影响极小。Mantra 的实时监听经过专门优化:

  • JSONL 监听:只读取增量内容,不重复解析已有部分
  • SQLite 轮询:只读查询,不写入 Cursor 的数据库
  • 空闲降频:会话结束后自动降低检查频率
  • 单连接复用:远程 SSH 实时监听复用现有连接,不额外建立连接
实时更新会自动停止吗?

会。当 Mantra 检测到以下情况时,会自动暂停或停止监听:

  • AI 工具会话正常结束(文件不再更新超过一段时间)
  • 你切换到其他会话或关闭项目
  • 应用后台运行时会降低检查频率(不完全停止)

你也可以随时手动点击状态指示器旁的停止按钮。

如何区分历史消息和实时新消息?

实时新消息会以淡入动画出现,与已有的历史消息视觉上有短暂的区别。动画结束后,外观与历史消息相同,保持界面的一致性。

下一步