Skip to content

Add fixed browser preview double buffering - #2364

Merged
chubes4 merged 15 commits into
mainfrom
feature/durable-preview-handles
Aug 25, 2026
Merged

Add fixed browser preview double buffering#2364
chubes4 merged 15 commits into
mainfrom
feature/durable-preview-handles

Conversation

@chubes4

@chubes4 chubes4 commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a product-neutral two-slot browser preview buffer with explicit prepare, activate, navigate, release, and dispose operations
  • keep the active iframe visible while a standby Playground runtime starts and make activation atomic
  • normalize direct local ability materialization results without installing the provider proxy
  • remove released lifecycle replacement iframes and retain bounded, idempotent release receipts

Follow-up to #2175.

Verification

  • npm run test:browser-sdk-facade
  • npm run test:browser-runner-template
  • npm run test:service-worker-preview-proxy

The packaged Playground browser test proves two live slots, atomic activation, explicit runtime replacement, standby replenishment, and bounded teardown.

Remaining Acceptance Work

Downstream end-to-end switching renders the first site, a second site, and the first site again with isolated markers. A repeatable 60-second timeout can still occur while starting the initial second blank Playground runtime, before teardown or navigation. This PR remains draft while that runtime-capacity blocker is isolated; no private evidence URLs or local paths are included here.

AI Assistance

OpenAI gpt-5.6-sol via OpenCode assisted with implementation, regression analysis, test execution, and PR preparation. Chris Huber directed the architecture and reviewed the resulting changes.

@chubes4
chubes4 marked this pull request as ready for review August 25, 2026 00:12
@chubes4
chubes4 merged commit 3f474d3 into main Aug 25, 2026
4 checks passed
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.

1 participant