From 417bb7ac8ac1a4266a3393f54a9243f4eca4e9e7 Mon Sep 17 00:00:00 2001 From: sjmiller609 <7516283+sjmiller609@users.noreply.github.com> Date: Sat, 26 Sep 2026 14:53:27 +0000 Subject: [PATCH 1/4] Document pool memory configuration and updates --- browsers/pools.mdx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/browsers/pools.mdx b/browsers/pools.mdx index 525c86c9..ef2c4acb 100644 --- a/browsers/pools.mdx +++ b/browsers/pools.mdx @@ -35,7 +35,7 @@ A few constraints to weigh before moving a workload onto a browser pool: ## Create a browser pool -Create a browser pool with a size and the configuration every browser in it should use. +Create a browser pool with a size and the configuration every browser in it should use. Headful browsers default to 8GiB of memory. Set `memory: "16GiB"` on create or update to request more memory. 16GiB pools run only on eligible Hypeman CPU hosts in the pool's configured region; if none are available, the request fails rather than starting a smaller browser. ```typescript Typescript/Javascript @@ -297,7 +297,21 @@ Browser pools shine at higher concurrency, but even a small one is worth it when ## Update a browser pool -Update the browser pool's configuration. By default, existing idle browsers keep their current configuration and only newly created browsers use the new one. Pass `discard_all_idle: true` to discard all idle browsers and rebuild them immediately with the new configuration. +Update the browser pool's configuration. By default, existing idle browsers keep their current configuration and memory allocation; only newly created browsers use the new one. Pass `discard_all_idle: true` to discard all idle browsers and rebuild them immediately with the new configuration. Acquired browsers keep their original allocation until they're destroyed or replaced. + +To change a 16GiB pool to headless, first set `memory: "8GiB"` while it's still headful. This clears the 16GiB override. Then set `headless: true`, optionally with `discard_all_idle: true` to replace idle browsers immediately. You can't combine `headless: true` and `memory: "8GiB"` in one update because headless browsers use their own default allocation. + + +```typescript Typescript/Javascript +await kernel.browserPools.update("my-pool", { memory: "8GiB" }); +await kernel.browserPools.update("my-pool", { headless: true, discard_all_idle: true }); +``` + +```python Python +kernel.browser_pools.update("my-pool", memory="8GiB") +kernel.browser_pools.update("my-pool", headless=True, discard_all_idle=True) +``` + ```typescript Typescript/Javascript From 4642b3500f74cee7c994c81cfa3147e7ae888ccb Mon Sep 17 00:00:00 2001 From: sjmiller609 <7516283+sjmiller609@users.noreply.github.com> Date: Sun, 27 Sep 2026 21:56:02 +0000 Subject: [PATCH 2/4] Trim pool memory docs to one sentence --- browsers/pools.mdx | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/browsers/pools.mdx b/browsers/pools.mdx index ef2c4acb..98aa9d05 100644 --- a/browsers/pools.mdx +++ b/browsers/pools.mdx @@ -35,7 +35,7 @@ A few constraints to weigh before moving a workload onto a browser pool: ## Create a browser pool -Create a browser pool with a size and the configuration every browser in it should use. Headful browsers default to 8GiB of memory. Set `memory: "16GiB"` on create or update to request more memory. 16GiB pools run only on eligible Hypeman CPU hosts in the pool's configured region; if none are available, the request fails rather than starting a smaller browser. +Create a browser pool with a size and the configuration every browser in it should use. Headful pools can set `memory: "16GiB"`, which requires Hypeman hosts in the pool's region. ```typescript Typescript/Javascript @@ -297,21 +297,7 @@ Browser pools shine at higher concurrency, but even a small one is worth it when ## Update a browser pool -Update the browser pool's configuration. By default, existing idle browsers keep their current configuration and memory allocation; only newly created browsers use the new one. Pass `discard_all_idle: true` to discard all idle browsers and rebuild them immediately with the new configuration. Acquired browsers keep their original allocation until they're destroyed or replaced. - -To change a 16GiB pool to headless, first set `memory: "8GiB"` while it's still headful. This clears the 16GiB override. Then set `headless: true`, optionally with `discard_all_idle: true` to replace idle browsers immediately. You can't combine `headless: true` and `memory: "8GiB"` in one update because headless browsers use their own default allocation. - - -```typescript Typescript/Javascript -await kernel.browserPools.update("my-pool", { memory: "8GiB" }); -await kernel.browserPools.update("my-pool", { headless: true, discard_all_idle: true }); -``` - -```python Python -kernel.browser_pools.update("my-pool", memory="8GiB") -kernel.browser_pools.update("my-pool", headless=True, discard_all_idle=True) -``` - +Update the browser pool's configuration. By default, existing idle browsers keep their current configuration and only newly created browsers use the new one. Pass `discard_all_idle: true` to discard all idle browsers and rebuild them immediately with the new configuration. ```typescript Typescript/Javascript From 5f45bdabfa7c13c6750a6af3db69fdfe93e5f569 Mon Sep 17 00:00:00 2001 From: sjmiller609 <7516283+sjmiller609@users.noreply.github.com> Date: Sun, 27 Sep 2026 22:00:50 +0000 Subject: [PATCH 3/4] Show pool memory in create example --- browsers/pools.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/browsers/pools.mdx b/browsers/pools.mdx index 98aa9d05..5d3833d9 100644 --- a/browsers/pools.mdx +++ b/browsers/pools.mdx @@ -35,7 +35,7 @@ A few constraints to weigh before moving a workload onto a browser pool: ## Create a browser pool -Create a browser pool with a size and the configuration every browser in it should use. Headful pools can set `memory: "16GiB"`, which requires Hypeman hosts in the pool's region. +Create a browser pool with a size and the configuration every browser in it should use. ```typescript Typescript/Javascript @@ -48,6 +48,7 @@ const pool = await kernel.browserPools.create({ size: 10, stealth: true, headless: false, + memory: "16GiB", timeout_seconds: 600, start_url: "https://example.com", viewport: { @@ -69,6 +70,7 @@ pool = kernel.browser_pools.create( size=10, stealth=True, headless=False, + memory="16GiB", timeout_seconds=600, start_url="https://example.com", viewport={ @@ -100,6 +102,7 @@ func main() { Size: 10, Stealth: kernel.Bool(true), Headless: kernel.Bool(false), + Memory: kernel.BrowserMemoryRequest16GiB, TimeoutSeconds: kernel.Int(600), StartURL: kernel.String("https://example.com"), Viewport: shared.BrowserViewportParam{ From 531db56c1bf2948c75723dee62e292f202e16779 Mon Sep 17 00:00:00 2001 From: sjmiller609 <7516283+sjmiller609@users.noreply.github.com> Date: Sun, 27 Sep 2026 22:07:13 +0000 Subject: [PATCH 4/4] Use string literal for Go pool memory example --- browsers/pools.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browsers/pools.mdx b/browsers/pools.mdx index 5d3833d9..d83958ee 100644 --- a/browsers/pools.mdx +++ b/browsers/pools.mdx @@ -102,7 +102,7 @@ func main() { Size: 10, Stealth: kernel.Bool(true), Headless: kernel.Bool(false), - Memory: kernel.BrowserMemoryRequest16GiB, + Memory: "16GiB", TimeoutSeconds: kernel.Int(600), StartURL: kernel.String("https://example.com"), Viewport: shared.BrowserViewportParam{