0.3.7
calesthio/OpenMontage0.3.7Aug 16, 2026by github-actions[bot]
AI Summary
Focuses on expanding SVG support, improving DOM handling, and implementing a SQLite cache backend. The update refactors the HttpClient and introduces a new Scheduler API.
Key Highlights
- Full SVG DOM support including geometry, structural elements, and text DOM
- SQLite cache backend implementation with HTTP cache entry limits
- Refactored HttpClient with improved header handling and referrer policies
- New Scheduler API for window and worker contexts
New Features
- Full SVG DOM support
- SQLite cache backend
- New `Scheduler` API (window and worker)
- New `Request#formData` and `Response#formData`
- New `URL.isSameOrigin`
- New `iframe` `srcdoc` support
- New `Element.webkitMatchesSelector` alias
- Agent/Tools: Brave search support and `/searchEngine` metacommand
- Improved `getComputedStyle` with pseudo-elements
- Custom element creation and reactions pierce Shadow DOM
Full Release Notes
## New Web APIs - `Scheduler` (window and worker) - Full SVG DOM: geometry, structural elements, text DOM, resource elements, live collections, live scalar values - `Element`/`ShadowRoot` `getHTML` - `Request#formData` and `Response#formData` - `URL.isSameOrigin` - `iframe` `srcdoc` support - `Element.webkitMatchesSelector` (alias of `matches`) ## Web API behavior / fixes - Custom element creation and reactions now pierce the Shadow DOM - Report custom-element errors via `window.reportError` - Iterators given to types with an indexed property - Track node relocation across shadow roots; better events from a `ShadowRoot` - `getComputedStyle` improvements with pseudo-elements - Console conformance improvements - Forms: include `optgroup` children in a select's list of options - Fix `script` `setAttribute` `src`; fix script load/error events - Increase max timer count - Collection bug fixes; keep ascending live-collection reads linear - Fix potential UAF when an option's value is set programmatically ## Rendering / CSS - CSS `width`/`height` are now children-content aware - Fall back to `contentWidth` when `clientWidth` is not explicit ## HTTP / Networking - Enforce `User-Agent` and `Sec-Ch-Ua` header restrictions; improve header overwrite/enforcement - Rework how `HttpClient` headers work - Start of a correct referrer policy; recalculate `Referer` on each redirect - Single-flight request coalescing - `fetch` defaults `--wait-until` to `load` - Redirect even on a missing `close_notify` - Buffer a closed `ReadableStream` body for a `fetch` POST - Rework `Connection.upgrade` with `header_parser` ## Cache - SQLite cache backend - HTTP cache entry limit; cache maintenance moved to startup and `browser.deinit` ## CDP (Chrome DevTools Protocol) - `Origin` and additional `Host` header validation for CDP connections - Fall back to loopback when the `/json/version` bind host is a wildcard - Add request post data; send request-information notifications on redirect - Add `/json/protocol` endpoint - Split `active_conns` from `active_threads` - Avoid creating duplicate isolated worlds - Fix Playwright redirect routing chains and auxiliary CDP session interception - Mask URL fields from crash reports; remove `Target.sendMessageToTarget` `session_id` assertion ## Agent / tools - Support subscription auth via Codex - Add Brave search + `/searchEngine` metacommand - Treat `backendNodeId` 0 as omitted; add recovery hints to errors; surface unknown tool names in-band - Reduce tool output cap to 64KB (except for `extract`) - `goto`: optional `waitUntil` + DOMContentLoaded-gated selector waits ## Memory efficiency - Switch `Node`, `Element`, and `EventTarget` `_type` fields to a bare tag - Remove the `_proto` field from most `Node` types - Optimize the node child list; rework `String` to be `align(8)` - Improve `ArenaPool` usage; move more `call_arena`s to `local_arena`s - Prefer `ensureTotalCapacityPrecise`; improve blob memory efficiency - Reduce V8 memory-pressure notifications; add JS memory gauge and arena allocation metrics ## Stability fixes - Capture and propagate `ExecutionTerminated`; clear the V8 terminating state after a terminated microtask checkpoint - Fix page double-free on navigate failure (UAF) - Propagate worker-thread failures to the exit code ## Build / dev - `-dev_fast` build flag; on by default on Linux; support for a pre-built shared library - Replace `@cImport` with build-system `translateC` - Replace the deprecated `MemoryPool` with the managed memory pool - Rework the scheduler; runner advances idle notifications outside the wait-condition loop - Add `lp.IS_DEBUG` / `lp.IS_TEST`; more consistent clock/timestamp use