> For the complete documentation index, see [llms.txt](https://docs.zerowork.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zerowork.io/release-notes/version-1.1.76.md).

# Version 1.1.76

This release adds timezone and locale controls for browser launches, significantly expands `zw.import()` package support in Write JS, and brings a large set of reliability improvements across browser automation, scheduled runs, data handling, and the TaskBot builder.

Here are some of the major highlights:

* **Much broader package support in Write JS**\
  More ESM and Node packages now work with `zw.import()`.
* **Timezone and locale controls**\
  Set the browser locale and timezone directly in Launch Browser, Browser Launch Settings, or `zw.browserContext.launch()`.
* **More reliable browser automation**\
  Improvements to human clicks, navigation handling, browser launches, browser connections, shutdown, proxy timezone handling, and more.
* **More robust handling of large amounts of TaskBot data.**
* **Instant loading of building block dialogs in the TaskBot builder.**
* **Many clearer errors and smaller UX improvements throughout ZeroWork.**

Dive into the full notes below. 👇

***

#### 📦 Broader Package Support in Write JS

`zw.import()` now supports a wider range of npm packages.

Improvements include:

* Broader support for ESM packages.
* Broader support for native packages.
* Improved installation and import errors to make the underlying problem easier to identify.
* Improved handling of incomplete package installations.
* Disabled npm's default package caching.

See the updated documentation here: [Imports and Package Management](/using-zerowork/using-building-blocks/write-javascript/imports-and-package-management.md).

***

#### 🌍 Locale and Timezone Controls

You can now set the browser's timezone and locale.

The new options are available in:

* Launch Browser
* Browser Launch Settings
* `zw.browserContext.launch()`

This is mostly relevant when your TaskBot runs with a proxy — you can now match the timezone and locale to the proxy location.

***

#### **🛠️ Reliability Improvements**

A number of browser actions, data management operations, and other parts of the application have been improved or hardened.

Among the improvements:

* More reliable human clicks.
* More robust handling of large TaskBot data. This is especially relevant for TaskBots that contain more than a few hundred building blocks with lots of data inside each.
* Schedule- and webhook-related failures to get their initial state on Agent startup are now handled more robustly to accommodate temporary local environment or network issues.
* Pending runs left behind from a previous Agent session are cleaned up when the Agent starts.
* Agent shutdown now prevents a stuck TaskBot process from blocking the app from quitting indefinitely.
* Auto-updater and Agent startup errors are now more actionable.
* When a page navigates or reloads while certain actions are running, ZeroWork now retries the action.
* Added handling for cases where browser contexts could hang.
* Improved automatic timezone identification when a proxy is provided. When Bypass Bot Detection Mode is enabled, the run now stops if timezone identification fails instead of continuing with a potentially mismatched timezone.
* Improved browser launch validation and classification of launch errors. Unsupported non-Chromium browsers now also produce a clear error instead of failing later during launch.
* Critical end-of-run requests now retry more aggressively to avoid unfinished runs.
* Fixed certain input values causing database errors.
* Fixed stale DNS information causing request failures.
* Improved Google OAuth refresh handling.
* Improved handling and error messages for invalid selectors.
* Improved errors when downloading files.
* Improved Insert Text or Data errors.
* Improved errors when cloning Chrome profiles.
* Improved handling when no active browser page can be found.
* Fixed several edge cases related to undoing critical actions and moving or duplicating building blocks.
* ...and many more.

***

#### **✨ TaskBot Builder and UX Improvements**

**Highlights**

* Most TaskBot building block dialogs now load instantly.
* The Write JS building block now accepts up to 1M characters.

**Other improvements:**

* Added search to the Variables dialog.
* TaskBots with an active description, scheduler, or webhook are now visually highlighted.
* The sidebar UX has been improved on both desktop and mobile.
* Numeric fields now enforce their maximum supported values directly in the UI.
* Fixed a case where exporting logs could accidentally be triggered twice.
* Improved reliability when sorting and repositioning building blocks.
* Fixed several smaller layout, tooltip, help text, copy-feedback, input reset, and loading-state issues.

***

#### ⚠️ Behavior Changes

* **`zw.browserContext.launch()` now passes a custom-defined user agent in non-headless mode**

  Previously, `zw.browserContext.launch()` accepted a custom user agent (from `launchConfig.launchOptions.args`, e.g. ``[`--user-agent=${myCustomUserAgent}`]``) but only passed it in headless mode. This behavior was originally intended to provide better stealth defaults, but it also meant explicitly provided user input was ignored.
* **In Bypass Bot Detection Mode, a failed automatic timezone lookup now stops the run**

  If you provide a proxy but do not provide a timezone, ZeroWork automatically identifies the timezone based on the proxy. Previously, the run could continue if that lookup failed. It now stops instead. This is intentional: with Bypass Bot Detection Mode enabled, continuing with an incorrect timezone could make the browser environment inconsistent with the proxy location.  To avoid the automatic lookup and the possibility of it failing, you can now set the timezone explicitly in Launch Browser, Browser Launch Settings, or `zw.browserContext.launch()`.

#### **🚨 Breaking Changes**

* **Save Web Element when saving as HTML now uses the configured selector timeout**

  This is considered a bug fix. Until now, the Save Web Element building block — only when saving as HTML — always timed out after 30 seconds and ignored the timeout configured in Selector Options. There is a possibility of a breaking change here if you unknowingly relied on the 30-second timeout. If your configured timeout is shorter, this could now lead to more selector-not-found errors.
