news 2026/9/11 4:54:45

CodeWhale 断网后如何恢复:用 /queue 查看并重新发送离线队列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CodeWhale 断网后如何恢复:用 /queue 查看并重新发送离线队列

CodeWhale 断网后如何恢复:用 /queue 查看并重新发送离线队列

【免费下载链接】CodewhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/Codewhale

Codewhale 是一个运行在终端里的开源编码代理。当 TUI 会话断网或进入降级/离线状态时,你输入的新提示不会丢失,而是被排入离线队列并持续写到磁盘。这篇文章说明如何在断网恢复后,用/queue命令查看队列内容、逐条重新发送,并确认队列文件被正常清除。适用环境是本地 Codewhale CLI/TUI 会话,依据来自项目运维手册 docs/OPERATIONS_RUNBOOK.md 的 “Incident: Network Outage / Offline Behavior” 一节。

断网期间会发生什么

根据 docs/OPERATIONS_RUNBOOK.md 对离线场景的预期行为描述:

  • 离线模式激活期间,新提示词会被排队(queued),而不是直接发送失败;
  • 队列状态会持久化到~/.codewhale/sessions/checkpoints/offline_queue.json
  • 队列的每次编辑(/queue ...)都会持续落盘,因此草稿和已排队提示在重启后仍然存在(见 docs/ARCHITECTURE.md 的 Crash Recovery + Offline Queue 一节)。

这意味着恢复操作的目标很明确:确认队列里到底排了什么,然后把它重新发出去,最后确认持久化文件随之清空。

第一步:用 /queue list 查看离线队列

在 Codewhale TUI 的输入框中直接输入:

/queue list

TUI 会以Queued messages ({count}):的标题列出已排队的消息;如果没有任何条目,显示No queued messages/queue支持的子命令为listsend <n>edit <n>drop <n>clear<n>是队列条目的编号,从 1 开始。

在另一个终端中,用运维手册 “Quick Triage” 一节给出的方式确认持久化文件确实存在、时间戳在更新:

ls ~/.codewhale/sessions/checkpoints

队列文件存在且随排队/编辑动作刷新,说明队列状态没有丢,可以进入下一步。

第二步:恢复连接

运维手册给恢复动作定的顺序是:先恢复连通性,再重发队列(见 docs/OPERATIONS_RUNBOOK.md)。

如果怀疑不是本机网络问题,而是端点本身不可达,可以参考手册 “Turn Hangs or Stream Stops” 一节中的连通性检查命令,以 DeepSeek 端点为例:

curl -sS https://api.deepseek.com/beta/models -H "Authorization: Bearer $DEEPSEEK_API_KEY"

其中$DEEPSEEK_API_KEY是环境中已配置的 API key 变量名,来自文档原文;该命令只是验证端点可达,不会修改任何本地状态。

第三步:重新发送队列条目

连通性恢复后,按队列编号逐条重发。运维手册给出的主路径是:

  1. 输入/queue edit <n>打开第n条排队消息的编辑,然后按 Enter 发送;
  2. 或者通过正常输入流程把这条提示重新发出去。

TUI 在队列提示中还会给出这两条命令的用法提示:/queue send <n>立即发送第n条,/queue drop <n>删除第n条。如果整批排队内容都不需要了,用/queue clear清空队列。

验证恢复完成

按运维手册的检查项确认两件事:

  1. 再执行一次/queue list,确认队列已空(显示No queued messages);
  2. 队列清空后,持久化的队列文件应当被清除。再次执行ls ~/.codewhale/sessions/checkpoints,确认offline_queue.json已不在。

两个条件都满足,说明离线队列已完整重发并被正常回收。

残留旧队列文件时的清理

如果队列已经清空、但 checkpoints 目录里仍留着旧的offline_queue.json(例如旧版本遗留),可以用 setup 的--clean标志处理(见 docs/CONFIGURATION.md):

codewhale setup --clean

它会先列出~/.codewhale/sessions/checkpoints/latest.jsonoffline_queue.json(若存在);加上--force才会实际删除匹配文件。该操作只针对可再生的检查点文件,不会触碰真实会话历史或任务队列。副作用是删除 checkpoints 目录中的检查点文件,因此只应在确认队列已重发完毕、且你接受放弃这些检查点后使用。对于旧版~/.deepseek/sessions/checkpoints/下的文件不会自动扫描,需要一次性清理时设置CODEWHALE_HOME=~/.deepseek再执行。

如果重发时连接仍然失败,或断网伴随流式输出中断等其他症状,回到 docs/OPERATIONS_RUNBOOK.md 中的 “Turn Hangs or Stream Stops” 与 “Crash Recovery Needed” 两节继续排查。

【免费下载链接】CodewhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/Codewhale

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 4:50:51

持续更新的Wayland客户端开发指南:从裸协议到实战源码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 4:48:50

免费邮件营销平台BillionMail:从零到群发指南

免费邮件营销平台BillionMail&#xff1a;从零到群发指南 【免费下载链接】BillionMail BillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg…

作者头像 李华
网站建设 2026/9/11 4:48:47

CAN总线从物理层到协议层:车载与机器人控制实战解析

搞车载和机器人控制这些年&#xff0c;我最大的感受是&#xff1a;CAN总线就是那个绕不过去的"基础设施"。不管是整车电子电气架构里的动力域、车身域、底盘域&#xff0c;还是一条机械臂里的多个关节电机&#xff0c;只要涉及多节点、实时性强、环境又恶劣的通信场景…

作者头像 李华