Files
moeka-project/services/computer-use-mcp/validation/browser-repair-contract.md
T
刘梓恒 d86c502f04 feat(computer-use-mcp): add browser repair suggestions (#1920)
## Summary

Adds browser DOM repair suggestions inside `services/computer-use-mcp`.

Known browser DOM action failures now get structured, advisory-only
repair suggestions for selector misses, hidden elements, timeouts,
detached frames, and stale elements. The registration path uses the
suggestions for `browser_dom_click` and `browser_dom_wait_for_element`
thrown-error responses.

## Boundary

- Only touches `services/computer-use-mcp`.
- Does not touch app, renderer, overlay, extension assets, desktop v3
files, or root project governance files.
- Does not import preview changes that delete current upstream
Chrome/desktop files.
- Does not include local AI config, screenshots, tokens, account
identifiers, or raw environment dumps.

## Validation

Sanitized evidence is committed in
`services/computer-use-mcp/validation/browser-repair-contract.md`.

Ran:

- `pnpm install --ignore-scripts --frozen-lockfile`
- `pnpm -F @proj-airi/computer-use-mcp exec vitest run
src/browser-dom/browser-repair-contract.test.ts
src/server/register-tools-pty-approval.test.ts --config
./vitest.config.ts`
- `pnpm exec moeru-lint --fix
services/computer-use-mcp/validation/browser-repair-contract.md
services/computer-use-mcp/src/browser-dom/browser-repair-contract.ts
services/computer-use-mcp/src/browser-dom/browser-repair-contract.test.ts
services/computer-use-mcp/src/server/register-tools.ts
services/computer-use-mcp/src/server/register-tools-pty-approval.test.ts`
- `git diff --check`

`pnpm -F @proj-airi/computer-use-mcp typecheck` is currently blocked by
existing baseline errors in `chrome-session-manager` and
`desktop-grounding`, outside this patch. The validation note lists the
error classes without local paths or raw logs.
2026-06-02 10:50:34 +08:00

63 lines
1.9 KiB
Markdown

# Browser Repair Contract Validation
Date: 2026-06-01
Scope:
- `services/computer-use-mcp/src/browser-dom/browser-repair-contract.ts`
- `services/computer-use-mcp/src/browser-dom/browser-repair-contract.test.ts`
- `services/computer-use-mcp/src/server/register-tools.ts`
- `services/computer-use-mcp/src/server/register-tools-pty-approval.test.ts`
Privacy note:
- Evidence is sanitized for a public repository.
- No local absolute paths, tokens, account identifiers, screenshots, or raw environment dumps are included.
Commands run:
```sh
pnpm install --ignore-scripts --frozen-lockfile
```
Result: passed. Lockfile stayed unchanged; lifecycle scripts were intentionally skipped for local verification setup.
```sh
pnpm -F @proj-airi/computer-use-mcp exec vitest run \
src/browser-dom/browser-repair-contract.test.ts \
src/server/register-tools-pty-approval.test.ts \
--config ./vitest.config.ts
```
Result: passed. 2 test files, 12 tests.
```sh
pnpm exec moeru-lint --fix \
services/computer-use-mcp/validation/browser-repair-contract.md \
services/computer-use-mcp/src/browser-dom/browser-repair-contract.ts \
services/computer-use-mcp/src/browser-dom/browser-repair-contract.test.ts \
services/computer-use-mcp/src/server/register-tools.ts \
services/computer-use-mcp/src/server/register-tools-pty-approval.test.ts
```
Result: passed with 0 warnings and 0 errors when run under Node 24.
```sh
git diff --check
```
Result: passed.
```sh
pnpm -F @proj-airi/computer-use-mcp typecheck
```
Result: failed on existing baseline files outside this change:
- `src/chrome-session-manager.ts`
- `src/chrome-session-manager.test.ts`
- `src/desktop-grounding.ts`
Observed baseline error classes:
- `TS2339` and `TS2353` around `ChromeSessionInfo.ensureOutcome`
- `TS2451` / `TS2304` around duplicated `chromeWindowBounds` and missing `isChromeInFront`
No typecheck errors were reported for the files changed by this patch.