本页译自英文文档。命令、标识符和示例保持原样。运行时 7.24.4 · SDK 2.6.7。 英文原文
稳定性
状态:生效 范围:当前状态 最近审阅:2026-07-18 负责人:ax-code 运行时
AX Code 如何在长时间交互会话和无头运行中保持可靠。
层次
| 层次 | 加固了什么 | 关键模块 |
|---|---|---|
| TUI 生命周期 | 挂起/恢复、崩溃后的终端恢复、离开会话时的内存修剪 | ADR-047;cli/tui/util/* |
| 进程故障 | 忽略中止/取消/管道破裂;真正的崩溃仍然退出 | util/harmless-interrupt、TUI 崩溃处理器、CLI 启动钩子 |
| 超时 | 工具/LSP/MCP 界限,且不会留下未处理的 Promise 拒绝 | util/timeout.withTimeout |
| 流 | 空闲看门狗、有弹性的重新连接 | session/llm-impl 空闲看门狗;resilient-stream |
| 权限 | 双重提交闩锁 + 回复超时 | permission-submit-latch、权限提示 |
| 仓库 wiki | 路径包含、清单最后写入的原子性、受保护内容、写入前验证 | packages/ax-wiki;src/wiki/* |
受支持的 TUI 路径
支持的运行时栈是:
- 运行时:捆绑的 Node
- 界面:AX Code TUI + Solid(主要默认)
- 渲染:Zig(生产);原生库完全在仓库内供应
(供应在独立的 ax-tui 框架内部,由其
vendor/manifest.json做哈希钉住)— 安装或运行时都不涉及上游的@opentui/*npm 包 - Yoga 不是可选模式;AX Code TUI 的原生渲染器仍然是默认
取消与崩溃
| 信号 | 预期行为 |
|---|---|
用户中止 / Esc / 工具取消(AbortError) |
若未处理则以警告记录;不要 退出 TUI |
shell 关闭时的管道破裂(EPIPE) |
当作无害而忽略 |
| 未捕获的应用异常 | 重置终端,以非零退出 |
| 流空闲过久 | 通过流空闲看门狗中止回合(可配置) |
用 AX_CODE_STREAM_IDLE_TIMEOUT_MS 覆盖流空闲超时(0 会禁用)。
权限提示
权限回复是:
- 已闩住 — 每个请求 id 只有一个进行中的回复
- 当下一个排队请求变为活动时 重新武装
- 20 秒后 超时,以免挂起的服务器把“允许”永远卡住