[Bug] Claude Code displays raw API response without formatting in CLI output

Open 💬 0 comments Opened Jul 14, 2026 by M1nt-Ch0c0

Bug Description
Claude Code shows model's original output without format in CLI

Environment Info

  • Platform: linux
  • Terminal: wsl-archlinux
  • Version: 2.1.209
  • Feedback ID: cb92c83d-e562-48a4-a461-1515670957c4

Errors

[
  {"file": "src/bot/channel.ts", "line": 493, "summary": "deps.eventHooks?.close?.() 在 Promise.allSettled 数组字面量中求值,同步抛异常会在 allSettled 执行前中断 disconnect,跳过全部 store flush 并产生 unhandled rejection", "failure_scenario": "adapter 的 close() 同步 throw(或 close 为非函数 truthy 值)→ Ctrl-C 时 disconnect() 在数组构造阶段抛出 → sessions/sessionCatalog/callbackNonceStore/workspaces 均未 flush → process.exit(0) 丢失内存态数据"},
  {"file": "src/cli/commands/start.ts", "line": 267, "summary": "restart 路径在 startChannel 之前加载 nextEventHooks,startChannel 抛出时 finally 只释放锁、从不调用 nextEventHooks.close()", "failure_scenario": "断网触发 keepalive 每 ~15s 重试 restart → 每次重试都执行工厂并遗弃上一个 adapter → 工厂持有的 DB 连接/定时器/端口无限累积泄漏"},
  {"file": "src/bot/event-hooks.ts", "line": 9, "summary": "BUILT_IN_EVENT_KEYS 硬编码 SDK 内部清单且经私有 dispatcher 字段注册;SDK register 对重复 key 静默覆盖,内置 handler 在 connect 时(晚于 hook)注册", "failure_scenario": "@larksuite/channel 升级新增第 7 个内置事件 → 清单过时 → 该 key 的用户 hook 在 connect 时被 SDK 静默覆盖、永不触发但日志显示 registered;hook 注册未受保护的 app_ticket 则反向覆盖 SDK 内部 token 缓存 handler 且诊断被抑制"},
  {"file": "src/cli/commands/start.ts", "line": 127, "summary": "initialEventHooks 在 agent 预检 exit(1)、同应用冲突 exit(0)、锁冲突 cancel return 之前创建,所有早退路径均不调用 close()", "failure_scenario": "锁冲突用户选取消 → runStart 普通 return → 工厂创建的 server/timer 撑住事件循环 → CLI 打印取消消息后挂住不退出"},
  {"file": "src/cli/commands/start.ts", "line": 301, "summary": "重连成功后旧 bridge.disconnect() 调用旧 adapter 的 close(),但若工厂 memoize 返回单例,新旧 bridge 持有同一实例", "failure_scenario": "export default () => sharedAdapter 的模块 → /account 重连后旧 bridge 关闭共享 adapter 的 DB 池 → 新 bridge 的每次 hook 调用都打在已关闭资源上持续报错"},
  {"file": "tests/integration/commands/reconnect-profile.test.ts", "line": 51, "summary": "断言从钉死 makeControls 完整实参削弱为只匹配 'const nextControls = makeControls(',不再验证替换 controls 使用新 runtime", "failure_scenario": "未来重构误传旧作用域参数 makeControls(appPaths, cfg, profileConfig) → 测试仍绿 → /reconnect 换 profile 后新 bridge 用旧 profile 的路径与配置"},
  {"file": "src/core/event-hooks.ts", "line": 53, "summary": "loadEventHookAdapter 整体复制 telemetry.ts 的可选模块加载器:normalizeModuleSpecifier 逐字节相同(含 %7E 修复)、diag/校验/诊断流程平行,isRecord 是 src/ 第三份拷贝", "failure_scenario": "file: URL 转义修复只落在 telemetry.ts → 同一模块路径 telemetry 能加载而 event hook 报 ERR_MODULE_NOT_FOUND,运维排查一整天"},
  {"file": "src/bot/channel.ts", "line": 277, "summary": "startChannel 将传入的 eventHookMeta spread 后立即覆盖 appId/tenant/profile/configPath,6 字段中 4 个死值;start.ts 还把 eventHookMeta() 每次启动算两遍", "failure_scenario": "工厂侧 meta(start.ts 构建)与 handler context(channel.ts 重建)是两份独立对象,任一构建点被单独修改即静默分歧;新增 EventHookMeta 字段时维护者需记住哪层生效"},
  {"file": "src/core/event-hooks.ts", "line": 41, "summary": "diag() 用 console.warn 而非 log.warn,但此处不存在 telemetry 那样的 logger 循环依赖约束", "failure_scenario": "bad_module/load_fail 不进结构化 JSON 日志与 telemetry 管道 → 运维 tail 日志文件看不到任何记录,hook 配置错误表现为静默不生效"},
  {"file": "src/core/event-hooks.ts", "line": 75, "summary": "加载器校验 handlers 形状但不校验 close 是否为函数,非函数 truthy close 通过校验后在 disconnect 时同步引爆", "failure_scenario": "模块返回 { handlers: {...}, close: true } → 启动正常运行正常 → 关闭/重连时 close?.() 抛 TypeError,触发第 1 条的 flush 跳过路径"}
]

View original on GitHub ↗