
Recovery Probe
io.github.BojanKovachki由 GitHub 账号 BojanKovachki 发布v1.0.2更新于 Oct 29, 2026
Fail reads in web and Electron test apps, inspect recovery, and compare before/after evidence.
概览
本地 MCP 服务器,让编码代理向 Web 与 Electron 应用注入故障、观察界面恢复情况并对比证据。
- 可以做什么
- 让界面背后的网络读取失败,并判断数据是否恢复
- 观察界面是否出现陈旧内容或停留在旧状态的行
- 查看保存或发送失败时用户看到什么,并让 SDK 自身的 HTTPS 连接失败
- 找出把失败读取变成“无数据”的代码
- 通过对比、监视与验证运行来证明修复有效
- 生成 HTML 与 JSON 报告,对比故障运行与健康基线
- 适用场景
- 适合在代理准备声称代码已处理错误时,先让它真正制造一次读取失败并查看界面。也适合需要排查静默空状态和恢复路径问题的 Web 或 Electron 应用测试。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js 22 或更高版本;浏览器检查还需安装 Playwright 与 Chromium。目标 Web 应用需已启动,Electron 应用需开启本地远程调试端口;IPC 检查需在主进程加载仅用于开发的钩子。未声明账号、API 密钥或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 Recovery Probe,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Recovery Probe
Stop assuming your code works. Test what actually happens.
Recovery Probe helps developers and AI coding agents discover bugs that ordinary tests can miss. It deliberately triggers failures in web and Electron applications, observes how the UI responds, and produces evidence you can use to reproduce, fix, and verify problems.
A failed request should not silently turn a populated screen into “No items found.” Recovery Probe helps you reproduce that failure and check whether the application recovers as expected.
[Recovery Probe catches a broken retry flow and passes the fixed one]
Try it
You need Node.js 22 or newer.
The demo runs two versions of a small app. Both load fine. Only the fixed one survives a 503, a dropped connection and a broken JSON response.
Check your own app
Web app. Start it, then run:
A browser opens. Sign in, go to the screen you care about, and click something that only shows up once its data has loaded. Recovery Probe finds the request behind it, fails it three ways, and tells you whether the data came back.
Electron app. Start it with --remote-debugging-address=127.0.0.1 --remote-debugging-port=9222, then run npx recovery-probe init.
Electron app that loads data over IPC. Load the small development-only hook in the main process. npx recovery-probe doctor prints the code and the path to load it from. Restart the app with the inspector on, then run npx recovery-probe init: it lists the hook's channels, asks which one loads the screen, and fails it in a few ways.
Each run saves an HTML and JSON report. Run the same command again to repeat the check, or add --fresh to set it up again. If something's missing, npx recovery-probe doctor says what and how to fix it.
More
Use it from a coding agent
recovery-probe mcp is an MCP server. Any agent that supports MCP can use it to fail a read and look at the screen before it claims the code handles errors. Most agents take this config:
Other config formats and the list of tools are in MCP.
Use it in your tests
withFault fails matching requests inside a Playwright test:
If nothing matches, withFault throws FAULT_NOT_TRIGGERED instead of passing. For code that takes a fetch function there's createFaultFetch. See API.
How it decides
- Every faulted run has a healthy run right before it, on the same screen, and the report compares the two.
- A result is a pass, a failure or inconclusive. A fault that never fired, an unstable baseline or a path it can't reach is inconclusive, never a pass.
- Some findings, like
SILENT_EMPTY, are leads. They tell you where to look, not that the code is wrong. - Exit codes: 0 passed, 1 a check failed, 2 needs review or inconclusive, 3 wrong usage or config, 4 couldn't run.
Where it works
- Web apps in Chromium, either launched by Recovery Probe or attached through a local debugging port.
- Electron apps, over HTTP in the renderer or over IPC with the hook.
- Native HTTPS clients that use
HTTPS_PROXY, such as an SDK in the main process. Only whole connections can fail there. - Android WebViews, experimental.
It doesn't simulate a whole device going offline, WebSocket drops, token expiry, sleep or slow networks.
Privacy
Reports stay on your machine and there's no telemetry. Request and response bodies aren't recorded, and discovery and observation keep screen text only as hashes. Reports can still contain endpoint paths, selectors, text you picked as a marker and, with --screenshots, what was on screen, so check them before you share them. Nothing calls an AI service except the opt-in repair workflow.
Failed recovery checks can also save screenText: up to 200 characters of newly visible screen text, included in terminal output, reports, fix briefs and MCP results. These quotes are not redacted and can contain personal or sensitive data even without screenshots. Review these outputs before sharing them or passing them to an agent.
Only test apps and accounts you're allowed to, and keep debugging ports on localhost.
Compatibility in 1.x
The compatibility commitment covers documented, non-experimental package exports, CLI commands and options, exit codes, configuration fields, MCP tools and JSON report fields. Removing or renaming these interfaces, changing their types incompatibly, or changing their documented meaning requires a major version. Backward-compatible additions can ship in minor releases; fixes that restore documented behavior can ship in patch releases.
Consumers should tolerate additional JSON fields. Exact terminal wording, HTML layout, timing measurements and heuristic findings are not fixed contracts. Internal files under dist/ are not public imports; use the package's declared exports. Features explicitly labeled experimental, including Android WebView support and repair, may change in minor releases, with changes recorded in the changelog.
Upgrading to 1.0
1.0 removes the old command spellings desktop, web, ipc, --demo and --config. Each now stops with a usage error that names the commands that replaced it, such as windows, reads, check, discover, action and demo. Usage errors exit with 3 and setup failures with 4, where the old spellings exited with 2, so update CI scripts that read exit codes. demo and the JSON runner's check write report.json into the --out folder. Restart the development app after upgrading so its IPC hook matches the CLI. Public package imports and the hook's path are unchanged. See the changelog.
Docs
Guided start · Desktop and browsers · IPC · Discovery · Observe · Refresh · Network faults · Android · Suspects · Compare · Watch · Verify · MCP · API · JSON runner · CI · Repair · Changelog
Contributing
See CONTRIBUTING.md. Report security issues as described in SECURITY.md.
License
MIT © 2026 Bojan Kovachki
来源:README.md,提交 deed614
工具
0版本历史
1- v1.0.2最新Oct 29, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分