fix(browser): harden desktop tool lifecycle
Merged
WA
2mo ago+2788+2788+0123456789012345678901234567890123456789-419-419-012345678901234567890123456789
Summary
- harden desktop browser authorization, exact cancellation, wait-budget consistency, and current-versus-retired tool boundaries
- preserve known native outcomes across renderer unloads with compact beacon and keepalive delivery while marking genuinely indeterminate actions as unsafe to retry
- add privacy-safe queue/execution observability and remove an extra screenshot viewport round trip
- expand focused coverage for lifecycle races, authorization stalls, protocol drift, cross-frame effects, invalid input, and unload delivery
Type of Change
- Bug fix
- New feature
- Breaking change
- Documentation
- Other: ___________
Testing
bun run lintandbun run lint:checkbun run check:audits(39 audits)- Sim focused Vitest suite: 8 files, 200 tests
- Desktop focused Vitest suite: 3 files, 193 tests
- TypeScript:
@sim/app,@sim/desktop,@sim/browser-protocol,@sim/desktop-bridge - Desktop bridge compatibility audit
git diff --check
Review focus: native execution versus confirmation-delivery lifecycle, exact cancellation scoping, timeout hierarchy, and current/retired browser tool classification.
Checklist
- Code follows project style guidelines
- Self-reviewed my changes
- Tests added/updated and passing
- No new warnings introduced
- I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)
Screenshots/Videos
N/A — no UI changes.