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

1.9 KiB

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:

pnpm install --ignore-scripts --frozen-lockfile

Result: passed. Lockfile stayed unchanged; lifecycle scripts were intentionally skipped for local verification setup.

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.

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.

git diff --check

Result: passed.

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.