Files
claudeplus/mdTemplet/debug.md
2026-04-21 01:35:56 +08:00

3.2 KiB
Raw Blame History

Debug / Pitfalls

按工具 / 主题分节:## <tool> 为二级分组,具体坑用 ### YYYY-MM-DD 简述 + 症状 / 原因 / 规避 三联。同工具的坑逐步往下追加。

eza

2026-04-21 --tree 无路径参数静默空输出

  • 症状: eza --tree --git-ignore --level=2 输出空, exit 0
  • 原因: eza tree 模式需要显式路径参数
  • 规避: 总是加 .(或其他路径)

broot

2026-04-21 无法在非交互环境使用

  • 症状: broot --cmd ":pt;:q"Termimad Error: IO error: No such device
  • 原因: broot 需要 TTY, 设计就是交互工具
  • 规避: CLI/Claude Code 场景直接用 eza + fd + rg
  • 附注: 首次运行会自动 patch ~/.bashrc~/.zshrc 注入 br 函数

repomix

2026-04-21 大仓库 token 预算

  • 症状: nexus4cc (203M 磁盘) 经 .gitignore 过滤后仍 144k tokens
  • 原因: 前端单文件(如 Terminal.tsx 21k tokens累积
  • 规避: > 100k tokens 的仓库按子目录切片 (repomix frontend/src -o /tmp/fe.xml)

pkill / bash

2026-04-21 pkill -f 匹配自身命令行导致 shell 退出

  • 症状: pkill -f cdp-proxy.mjs 后整个 Bash 块 exit 144没有错误信息
  • 原因: -f 按完整命令行匹配Bash tool 执行 -c "pkill -f cdp-proxy.mjs ..." 时 argv 里包含 "cdp-proxy.mjs"pkill 把自己的父 shell 一并杀了
  • 规避: 用 pgrep -af <pattern> 先列出 PID 再按 PID kill或用更窄的 regex 如 'cdp\S*proxy'regex 元字符不在自己的命令行里出现)

lightpanda

2026-04-21 Beta 能力边界

  • 症状: 多个看似标准的 CDP 操作失败:第二次 /new 返回空对象、/screenshotUnknownTargetId、关闭最后一个 tab 后所有请求 BrowserContextNotLoaded
  • 原因: v1.0.0-nightly.5674 当前实现受限 ——1只维护单 target/BrowserContexttargetId 永远是 FID-00000000012Page.captureScreenshot 未实现3没有 tab 自动重生机制
  • 规避: 同时多目标时用 A 模式(lightpanda fetch)或多进程 serve需要截图走 web-access 默认 Chrome 模式;避免 close 最后一个 tab或 close 后立即 /new 重建)

2026-04-21 强反爬 SPA 被挡在 noscript 页

  • 症状: 导航到 x.com 等站点,document.body.innerText 返回 <noscript> 错误页内容而不是真实页面
  • 原因: lightpanda 覆盖率不足,被站点的反爬/浏览器指纹检测识别为非真浏览器
  • 规避: 需要反爬能力强的场景切换到 web-access 连真 Chrome或提前测试目标站点可行性

web-access skill

2026-04-21 cdp-proxy.mjs 硬编码 Chrome 专用 ws 路径,不兼容 lightpanda

  • 症状: lightpanda serve --port 9222 起来后 check-deps.mjs 报 "连接超时"proxy 日志循环 "连接错误: 连接失败"
  • 原因: scripts/cdp-proxy.mjs getWebSocketUrl() fallback 到 /devtools/browserChrome 专用),而 lightpanda 的 webSocketDebuggerUrlws://host:port/(根路径)
  • 规避: 端口扫描分支加入 /json/version 探测CDP 标准 discovery endpoint从响应的 webSocketDebuggerUrlpathname。通用修复Chrome 也受益。已本地 patchskill 升级会被覆盖,需重新应用