Document browser memory tiers and page crash recovery by robertjamesprior · Pull Request #700 · kernel/docs · GitHub
Skip to content

Document browser memory tiers and page crash recovery - #700

Merged
robertjamesprior merged 4 commits into
mainfrom
hypeship/docs-memory-tier-and-page-crash
Oct 20, 2026
Merged

robertjamesprior merged 4 commits into
mainfrom
hypeship/docs-memory-tier-and-page-crash

Conversation

@robertjamesprior

@robertjamesprior robertjamesprior commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Two gaps in the browser docs, both of which surface to a user as a page failing with Page crashed.

Memory tiers were a footnote, but they're the constraint that decides whether a workload works. browsers/concurrency-and-limits.mdx now states the tiers (headful 8 GB or 16 GB, headless fixed at 1 GB), that memory is chosen at creation and can't be changed on a running browser, and that a headless browser has no larger tier to move to, so the only route to more memory is recreating it headful. It also inlines the check: run free -m inside the session and watch available. The previous copy said "open a dozen heavy tabs in one and Chromium starts killing renderers", which sets the bar far too high. browsers/headless.mdx, introduction/configure.mdx, and introduction/create.mdx were steering readers toward headless for "simple scraping" and "short-lived or highly concurrent" work without mentioning the 1 GB ceiling, which is the configuration where this fails.

There was no explanation of, or recovery path for, a crashed page. browsers/playwright-execution.mdx gets a new "A crashed page" subsection: what the error means, what survives (cookies, local storage, the logged-in session) and what doesn't (JavaScript state, sessionStorage, in-flight requests), how to recover, and the fact that a crash doesn't tell you whether the step you were running took effect, so writing actions need a result check before they're resent.

Deliberately not covered

  • The pool behavior where a released browser can carry a crashed tab back into the pool. That needs a product fix before it becomes documented behavior.
  • Whether the default (pinned) executor rebinds to a crashed tab or keeps returning the dead one. The named-executor path is documented because it's verified; the default path is left silent rather than guessed.
  • A standalone troubleshooting page. Worth doing once the failure is surfaced in session details, rather than documenting a workaround for a signal users can't currently see.

Notes for review

  • The docs repo's own AGENTS.md governs style here, and it overrides the lowercase brand rule. These edits follow the repo: sentence case headings, second person, no "should", no "please".
  • The one sentence that sits inside a <Card> (introduction/create.mdx) reaches agent consumers as a component tag rather than prose, because llms-full.txt and the per-page .md routes serve the raw MDX. The canonical statement is in plain prose in concurrency-and-limits.mdx, so the card is an echo, but that sentence would read better in the body text below the card grid.

Verification

Ran mintlify dev and loaded every edited page (HTTP 200); confirmed the new anchor targets resolve on the rendered pages. The memory enum, the create-only constraint, and the named-executor tab-replacement behavior were checked against the current API contract and the in-VM executor implementation instead of being inferred from existing docs.


Note

Low Risk
Documentation-only updates; no runtime, API, or auth changes.

Overview
Documentation expands browser memory tiers and ties OOM to Page crashed / Target crashed.

concurrency-and-limits now lists headful 8 GB or 16 GB and headless 1 / 2 / 4 GB, states memory is fixed at create (including pool updates applying only to new browsers), links crashes to kernel OOM kills, and adds free -m plus scaling guidance instead of the old “many tabs” framing.

Introduction and headless pages now surface those tiers when choosing headful vs headless, and headless warns that a single heavy page can exhaust the 1 GB default.

Playwright execution adds “A crashed page”: what the errors mean, what browser state survives vs tab state, recovery (re-navigate; named executors open a new tab), idempotency checks before retrying writes, and telemetry (system_oom_kill) for recurring crashes.

Reviewed by Cursor Bugbot for commit 426374d. Bugbot is set up for automated code reviews on this repo. Configure here.

@mintlify

mintlify Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5aa17ec. Configure here.

Comment thread browsers/concurrency-and-limits.mdx Outdated

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relative API reference create link

Medium Severity

The new memory guidance links to create-a-browser-session with a relative /api-reference/... path. Those pages are generated from the remote OpenAPI spec and are not local MDX, so relative links fail mint broken-links and 404 in-repo. Absolute https://www.kernel.sh/docs/api-reference/... URLs are the working form.

Fix in Cursor Fix in Web

Triggered by learned rule: Use absolute URLs for /api-reference/ links

Reviewed by Cursor Bugbot for commit 5aa17ec. Configure here.

@hiroTamada hiroTamada left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed — useful sizing and retry-safety guidance, with three accuracy fixes:

  • [P1] browsers/concurrency-and-limits.mdx:54–60 — headless now supports 1GiB (default), 2GiB, and 4GiB, per the live API spec (https://api.onkernel.com/spec.json). update the fixed-ceiling claims in browsers/headless.mdx:7, introduction/configure.mdx:65,86, and introduction/create.mdx:77, plus the headful-only recovery recommendation in browsers/playwright-execution.mdx:439.
  • [P2] browsers/playwright-execution.mdx:429 — a renderer crash doesn't establish OOM or mean the tab disappeared. describe OOM as a possible cause and confirm it through telemetry before recommending more memory.
  • [P2] browsers/playwright-execution.mdx:431 — sessionStorage can survive a renderer crash and navigation in the same tab. distinguish recovering the existing tab from creating a replacement tab, which has separate storage.

…tier-and-page-crash

# Conflicts:
#	browsers/concurrency-and-limits.mdx
#	browsers/headless.mdx
@robertjamesprior
robertjamesprior merged commit eebbf1e into main Oct 20, 2026
3 checks passed
@robertjamesprior
robertjamesprior deleted the hypeship/docs-memory-tier-and-page-crash branch October 20, 2026 20:35

This branch was successfully deployed

1 active deployment
staging — 426374d0 Deployed Oct 20, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants