|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [0.10.0] - 2026-02-09 |
| 4 | + |
| 5 | +This release focuses on **API Naming Simplification Phase 2** in the Computer module, the new **policy_id** parameter for session creation, and **OpenClaw examples** for Slack, Discord, and Telegram. |
| 6 | + |
| 7 | +### Breaking Changes |
| 8 | + |
| 9 | +- **API Naming Simplification Phase 2 (Computer Module)**: Interfaces previously flat in `session.computer` are now organized by sub-module (`mouse`, `keyboard`, `screen`, `window`, `app`). The legacy single `computer.py` has been removed. API mapping: |
| 10 | + - `session.computer.click_mouse(x, y)` → `session.computer.mouse.click(x, y)` |
| 11 | + - `session.computer.move_mouse(x, y)` → `session.computer.mouse.move(x, y)` |
| 12 | + - `session.computer.drag_mouse(x1, y1, x2, y2)` → `session.computer.mouse.drag(x1, y1, x2, y2)` |
| 13 | + - `session.computer.scroll(x, y, direction, amount)` → `session.computer.mouse.scroll(x, y, direction, amount)` |
| 14 | + - `session.computer.get_cursor_position()` → `session.computer.mouse.get_position()` |
| 15 | + - `session.computer.input_text(text)` → `session.computer.keyboard.type(text)` |
| 16 | + - `session.computer.press_keys(keys)` → `session.computer.keyboard.press(keys)` |
| 17 | + - `session.computer.release_keys(keys)` → `session.computer.keyboard.release(keys)` |
| 18 | + - `session.computer.list_root_windows()` → `session.computer.window.list_root_windows()` |
| 19 | + - `session.computer.get_active_window()` → `session.computer.window.get_active_window()` |
| 20 | + - `session.computer.activate_window(window_id)` → `session.computer.window.activate(window_id)` |
| 21 | + - `session.computer.close_window(window_id)` → `session.computer.window.close(window_id)` |
| 22 | + - `session.computer.maximize_window(window_id)` → `session.computer.window.maximize(window_id)` |
| 23 | + - `session.computer.minimize_window(window_id)` → `session.computer.window.minimize(window_id)` |
| 24 | + - `session.computer.restore_window(window_id)` → `session.computer.window.restore(window_id)` |
| 25 | + - `session.computer.resize_window(window_id, w, h)` → `session.computer.window.resize(window_id, w, h)` |
| 26 | + - `session.computer.fullscreen_window(window_id)` → `session.computer.window.fullscreen(window_id)` |
| 27 | + - `session.computer.focus_mode(on=True)` → `session.computer.window.focus_mode(on=True)` |
| 28 | + - `session.computer.get_installed_apps()` → `session.computer.app.list_installed()` |
| 29 | + - `session.computer.list_visible_apps()` → `session.computer.app.get_visible()` |
| 30 | + - `session.computer.start_app(name)` → `session.computer.app.start(name)` |
| 31 | + - `session.computer.stop_app_by_pname(pname)` → `session.computer.app.stop_by_pname(pname)` |
| 32 | + - `session.computer.stop_app_by_pid(pid)` → `session.computer.app.stop_by_pid(pid)` |
| 33 | + - `session.computer.stop_app_by_cmd(stop_cmd)` → `session.computer.app.stop_by_cmd(stop_cmd)` |
| 34 | + - `session.computer.get_screen_size()` → `session.computer.screen.get_size()` |
| 35 | + - `session.computer.screenshot()` → `session.computer.screen.capture()` |
| 36 | +- Implementation aligned with original behavior: unified log operation names, restored return types, and corrected mouse button validation and screen capture return types. |
| 37 | + |
| 38 | +### New Features |
| 39 | + |
| 40 | +- **policy_id**: `CreateSessionParams` adds `policy_id`; the create-session request supports `mcpPolicyId` for policy-scoped sessions. |
| 41 | +- **OpenClaw examples**: Three example configurations for IM integrations: |
| 42 | + - **Slack** – configuration and usage with OpenClaw |
| 43 | + - **Discord** – configuration and usage with OpenClaw |
| 44 | + - **Telegram** – configuration and usage with OpenClaw (including README mention) |
| 45 | + |
| 46 | +### Other Enhancements |
| 47 | + |
| 48 | +- API call log level changed from info to debug |
| 49 | +- aiohttp uses certifi for SSL context (macOS/Windows) |
| 50 | +- Screenshot examples add retry and better SSL error handling |
| 51 | +- Screen module: improved `result.data` parsing for string and dict |
| 52 | +- App/window error handling improved; `get_active_window` raises `RuntimeError` on failure; window JSON errors return None |
| 53 | + |
| 54 | +### Bug Fixes |
| 55 | + |
| 56 | +- Added missing `request_id` on `AppOperationResult` / `ApplicationManager` |
| 57 | +- Fixed example indentation and return types (`app.start()`, `screen.capture()`) |
| 58 | +- Keyboard `combo` letter keys normalized to lowercase |
| 59 | +- Fixed pytest imports (pythonpath, project root, `functional_helpers`) |
| 60 | +- Integration test fixes for `list_installed`, cursor validation, scroll API, and `window_operations.py` app selection |
| 61 | + |
| 62 | +### Documentation, Testing & Chore |
| 63 | + |
| 64 | +- Docs auto-generated and aligned with 26 API specification; example formatting and comments updated. |
| 65 | +- Browser fingerprint and computer integration tests improved; timeout test for 1s minimum; added Playwright connect test. |
| 66 | +- Website host changed to agb.cloud. |
| 67 | + |
3 | 68 | ## [0.9.0] - 2026-01-23 |
4 | 69 |
|
5 | 70 | ### Breaking Changes |
|
154 | 219 | - Added integration test job to CI/CD pipeline with comprehensive test coverage |
155 | 220 | - Improved test stability with proper wait times and resource cleanup |
156 | 221 | - Added CI bot guard to prevent infinite loops and enhanced error detection |
157 | | -- Fixed AONE documentation pipeline configuration and optimized documentation workflow |
| 222 | +- Fixed documentation pipeline configuration and optimized documentation workflow |
158 | 223 |
|
159 | 224 | ## [0.5.0] - 2025-11-20 |
160 | 225 |
|
|
0 commit comments