## 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.
1.9 KiB
1.9 KiB
Browser Repair Contract Validation
Date: 2026-06-01
Scope:
services/computer-use-mcp/src/browser-dom/browser-repair-contract.tsservices/computer-use-mcp/src/browser-dom/browser-repair-contract.test.tsservices/computer-use-mcp/src/server/register-tools.tsservices/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.tssrc/chrome-session-manager.test.tssrc/desktop-grounding.ts
Observed baseline error classes:
TS2339andTS2353aroundChromeSessionInfo.ensureOutcomeTS2451/TS2304around duplicatedchromeWindowBoundsand missingisChromeInFront
No typecheck errors were reported for the files changed by this patch.