## 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.
63 lines
1.9 KiB
Markdown
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.
|