SuperAPI AI 工具集

read-logs

编程与开发

查看项目

更新于 10-15 23:49

技能介绍

用途:把正在运行的 Flutter 应用的 flutter run 输出作为上下文,用于排查认证流程、崩溃、竞态或“运行时为何出现某现象”等任务。它本身不是独立分析器,只负责加载日志,不主动总结或诊断。

主要能力:按项目捕获日志到 /tmp/flutter-<repo>.log,仓库名由共享 .git 的 --git-common-dir 推导,使主检出与各 worktree 指向同一文件;每次启动覆盖,始终是最新一次运行;文件位于 /tmp,无需 gitignore。自动识别两种格式:Zed/终端任务的原始 TTY 文本(含 ANSI 码),以及 VS Code/Cursor 的 dart.dapLogFile(DAP JSON,应用输出在 event:"output" 消息内)。

使用方式:先解析路径并检查是否存在,同时检查新鲜度(运行时间、lib/ 下 Dart 文件是否在日志之后被修改);存在则按格式归一化为纯文本,再以任务为视角读取——小日志(约 ≤600 行)整体读取,大日志按任务 grep 相关窗口并逐步扩大上下文。读取前会提示“reading <path> — its contents go to the model”。若日志缺失,则进入首次配置:判断编辑器、检查是否已接线,经用户同意后修改配置。VS Code/Cursor 写入 .vscode/settings.json 的 dart.dapLogFile 与 dart.maxLogLineLength;Zed/终端任务用 script 包装 flutter run(macOS 与 Linux 参数写法不同,Windows 无 script,建议改用 dapLogFile)。

适用场景:需要结合真实运行日志回答运行时问题的开发任务。

限制:读取日志会把内容发送给模型,日志常含认证/刷新/推送令牌、邮箱和客户数据,除非接受风险,否则不要对生产或真实客户数据运行;dapLogFile 只捕获调试适配器会话(F5/Ctrl+F5),且应用日志仅在模拟器/macOS/Android/chrome 设备上到达编辑器,-d web-server 时应用日志进入浏览器控制台;日志过期或代码已变更时需提示用户重新运行。