v2.12.0 — AI Cost Optimization

- `screenshot` with `diff: true` — sends only changed region instead of full screenshot
- <5% change → text only ("Screen unchanged"), 5-80% → cropped diff region, >80% → full screenshot
- Saves 60-80% tokens on repeat screenshots
- New params: `diff: boolean`, `diffThreshold: number`

- `analyze_screen` now works on **iOS** and **Desktop** (was Android-only)
- New semantic fields: `screenTitle`, `hasDialog`, `dialogTitle`, `navigationState`
- Detects Toolbar/NavigationBar titles, AlertDialog/Modal overlays, back/menu/tabs
- Cross-platform class name handling (iOS TextField/StaticText)
- ~200 tokens vs ~2000 for screenshot

- New `run_flow` tool — execute multi-step automation in a single round-trip
- Conditional logic: `if_not_found` (skip/scroll_down/scroll_up/fail)
- Loops: `repeat` with `times`/`until_found`/`until_not_found`
- Error handling: `on_error` (stop/skip/retry)
- Safety: whitelisted actions only, max 20 steps, 60s hard timeout
- Replaces 3-10 individual tool calls with one command

- `hints: true` on `tap`, `swipe`, `input_text`, `press_key`
- Auto-detects what changed: new/gone elements, screen transitions
- Suggests next actions (focused inputs, dialog buttons, scrollable areas)
- Eliminates need for follow-up screenshot/get_ui after every action

- 104 total tests (31 new, 73 existing — all passing)
Этот тег не содержит заметок к релизу