> ## Documentation Index
> Fetch the complete documentation index at: https://hub.hcompany.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Notable changes to the Computer-Use Agents API and SDKs.

<Update label="1.0.7" description="July 16, 2026">
  **Session retention controls.** Set `delete_after_min` to delete a finished session after a delay, and `delete_screenshot_after_min` to expire its screenshots sooner. Both default to 30 days; `null` keeps data indefinitely. See [Create a session](/computer-use-agents/sessions/create).

  **Faster local desktop.** Screenshots are downscaled and recompressed on your machine before upload, cutting per-step latency on high-resolution displays. Tune with `--max-width`, `--image-format`, and `--quality` on `hai local desktop`. See [Local desktop](/computer-use-agents/desktop/local-control).

  **Sturdier local control (Python SDK and CLI).** `hai doctor` diagnoses login, platform access, and local-control prerequisites with fix-it hints. `hai local stop` (or double-Esc during a desktop turn) cancels the in-flight local session, sessions auto-cancel when your process exits, and auto-started sessions get default `max_steps` / `max_time_s` budgets. On macOS, missing Accessibility or Screen Recording permissions fail fast at startup instead of silently doing nothing.
</Update>

<Update label="1.0.6" description="July 9, 2026">
  **Local control.** Let an agent drive the browser or desktop on your own machine, not just one H runs in the cloud. Set an environment's `host` to `user_device` and run a session from the Python SDK; it launches Chrome and connects your machine to H automatically. See [Local browser](/computer-use-agents/browser/local-control) and [Local desktop](/computer-use-agents/desktop/local-control).

  **Persistent browser profiles.** Browser environments can now write the session's final browser state (cookies, storage) back into the loaded profile: set `persist_browser_profile: true` alongside `browser_profile_id`, and each run refreshes the profile for the next one instead of starting from an aging snapshot. An exclusive write lock means only one active session at a time may persist a given profile (concurrent read-only use is unaffected); when the lock is held, a new persist session starts read-only instead of failing. See [Persisting state back](/computer-use-agents/browser/profiles#persisting-state-back-into-the-profile).

  **Default browser profiles.** Every user now has a zero-setup browser that remembers them: set `use_default_browser_profile: true` on a Browser environment and the session loads your default profile — auto-creating an empty one on first use — then saves its final state back automatically when it ends (best-effort: concurrent sessions run read-only instead of failing). Log in once, and later sessions start already signed in. Prefer a curated profile? Promote it with [`PUT /browser-profiles/{profile_id}/default`](/computer-use-agents/browser-profiles/set-default); profile objects now report `is_default`, and [get-default](/computer-use-agents/browser-profiles/get-default) and [unset-default](/computer-use-agents/browser-profiles/unset-default) endpoints round out the surface. See [Default profiles](/computer-use-agents/browser/profiles#default-profiles).
</Update>

<Update label="1.0.5" description="July 6, 2026">
  **Scheduled sessions.** Create cron schedules that start a session on each fire: five-field cron expressions evaluated in an IANA timezone, with pause/resume, manual trigger, and a per-schedule run history showing whether each fire created a session or was skipped. See [Schedules](/computer-use-agents/schedules/overview).

  **Managed proxies.** Browser environments can now egress through an H-provisioned proxy: set `network.managed_proxy` with a `pool` (`residential` or `datacenter`), an optional `country`, and `sticky` to keep one exit IP for the session. The platform resolves the provider and credentials server-side, so you never handle them. Mutually exclusive with the existing `network.proxy_url`. See [Proxy](/computer-use-agents/browser/proxy).

  **Webhook delivery health.** The webhook object now reports its delivery state: `last_delivery_status`, `last_delivery_error`, `last_delivery_at`, `last_success_at`, and `consecutive_failures`. Poll [retrieve](/computer-use-agents/webhooks/retrieve) to monitor an endpoint without waiting for it to be disabled. See [Webhooks](/computer-use-agents/webhooks/overview).
</Update>

<Update label="1.0.4" description="July 3, 2026">
  **Queue sessions instead of 429.** Over-quota session creates are now accepted with the new `queued` status instead of rejected. They start automatically, oldest first, as slots free up, fire webhooks on every transition, and can be cancelled while queued. Set `queue: false` on [create](/computer-use-agents/sessions/create) to keep the old 429 behavior. See [Queued sessions](/computer-use-agents/observe-and-steer#queued-sessions).

  **Granular webhook events, retries, ping, secret rotation.** Subscribe to specific event types like `session.completed` or `session.awaiting_tool_results` instead of the `session.status_updated` firehose ([event catalog](/computer-use-agents/webhooks/events)). Failed deliveries now retry with backoff, endpoints that keep failing are disabled automatically, and you can [ping](/computer-use-agents/webhooks/ping) an endpoint or [rotate its secret](/computer-use-agents/webhooks/rotate) without downtime. See [Webhooks](/computer-use-agents/webhooks/overview).

  **Machine-readable failures.** Failed sessions now carry an `error_code` (`environment_error`, `no_answer`, `answer_validation`, `timeout`, `internal`) next to the human-readable `error`, and every answer reports the agent's self-assessed `outcome` (`success`, `partial`, `infeasible`, `blocked`). Build retry logic against codes, not strings. See [Read how the run ended](/computer-use-agents/observe-and-steer#read-how-the-run-ended).
</Update>

<Update label="1.0.3" description="July 1, 2026">
  **Browser `headless` option.** Browser environments accept `headless: true` to run without a visible window (default `false`). See [Configuration](/computer-use-agents/browser/configuration).

  Registry packages skipped this version; its changes shipped in the 1.0.4 packages.
</Update>

<Update label="1.0.2" description="July 1, 2026">
  **Browse the `h/` catalog without an API key.** Listing agents, skills, and environments no longer requires authentication for the reserved `h/` catalog; authenticated calls additionally return your organization's own entries.

  **CLI agent picker.** `hai run` without `--agent` now lists the live agent catalog and prompts for a choice instead of assuming a default agent.
</Update>

<Update label="1.0.1" description="June 29, 2026">
  **Nested Browser `mode`.** A Browser's `mode` is now an object keyed by `type`, so viewport and text settings live with the mode they belong to instead of as flat siblings:

  * `visual` (default): `{"type": "visual", "width": 1200, "height": 1200, "markdown": false}`. Set `markdown: true` to include the page's text alongside each screenshot (this replaces the old `multimodal` mode).
  * `text`: `{"type": "text", "chunk_size": 20000}`, where `chunk_size` replaces the old top-level `page_chars`.

  The old flat shape (`"mode": "visual"` with sibling `width`, `height`, `page_chars`) still parses, so existing integrations keep working. See [Modes](/computer-use-agents/browser/configuration#modes).
</Update>
