Skip to content

Playwright diagnostic retention imposes an unintended lifetime browser cutoff #772

Description

@kamilio

The native browser network still encounters an unintended lifetime cutoff in the safe-bash diagnostic observer.

In observePlaywrightCapabilities, monotonically increasing bytes and count charge request postData and response/console metadata against maxCommandBytes and 4,096 events. Navigation clears some displayed records but never restores this budget. Exceeding the diagnostic budget sets permanent state.failure; subsequent console flushes fail otherwise successful browser commands.

Concrete evidence from the consumer native conformance fixture:

  • Direct @cloudflare/playwright@1.3.6, without the safe-bash controller, successfully sends 33 printable 2 MiB requests to a local HTTP server: 69,206,016 bytes in about 6.1 seconds.
  • The same browser flow through the public safe-bash controller fails with Playwright event retention limit exceeded.
  • This is independent of the removed Worker request proxy and is not a Cloudflare traffic limit.

Required correction: bound retained diagnostic history through rolling eviction, retaining standard request/console behavior and per-command output limits. Recording history must not permanently poison the session or stop normal browser traffic. Cover navigation, oversized diagnostic entries, request/response pairs, closed pages and sustained event streams.

This task is implementing the fix in its existing isolated poe-code worktree. The previous release is already publishing, so this correction will require a follow-up verified public release before consumer delivery.

Activity

  1. kamilio commented on Sep 18, 2026

    @kamilio
    MemberAuthor

    Fixed on remote main in b685f7f and published in @poe-platform/safe-bash@0.1.683.

    Release and fresh public verification succeeded. Independent archive verification matched registry integrity, SLSA provenance and the exact compiled capability-events source. The consumer now uses the public package without source aliases: its six native Chromium main conformance cases pass, including 33 × 2 MiB uploads (66 MiB aggregate). Request bodies are read lazily for explicit inspection; diagnostic history evicts older records and console artifacts rotate instead of expiring the browser.

  2. poe-code-agent commented on Sep 18, 2026

    @poe-code-agent
    Contributor

    Issue was resolved by #ae1c98a

    Update poe-code via npm install -g poe-code@17.0.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions