Skip to content

safe-bash Playwright: implement Cloudflare-supported standard CLI capabilities and output parity #769

Description

@kamilio

The current public Cloudflare consumer uses safe-bash 0.1.669. A fresh differential check against the official @playwright/cli@0.1.20 confirms that only 14 built-in commands are implemented by default. Most official commands exist only as catalog metadata or host hooks. The user now explicitly requires all Cloudflare-supported capabilities and standard help/behavior, superseding the earlier subset-only direction in #735.

Concrete mismatches:

  • --help removes most original commands and appends internal Client capabilities, lifecycle and host-limit explanations. Several implemented forms are marked [limited].
  • Global --json, --raw, and --version are not implemented.
  • State, cookies, local/session storage, mouse actions, most element actions/navigation, eval/code, PDF, request inspection/routing and tracing are absent from the built-in implementation despite relevant Cloudflare browser APIs.
  • Output/artifact behavior also diverges: the default screenshot emits raw PNG on stdout, while the standard CLI reports a saved artifact. Cosmetic help edits alone do not establish compatibility.

Required implementation and verification:

  1. Inventory every command and option from the pinned official CLI; implement every capability the current Cloudflare provider can execute. Keep one standard parser/command interface, with differential help, result, error, artifact and session tests.
  2. Implement standard state-save/state-load, cookies, localstorage and sessionstorage commands with exact replacement semantics. Provide host-side hooks needed for owner-scoped Workers KV persistence; provider IDs, credentials and user/agent ownership remain controlled by the consumer. IndexedDB behavior must match the selected standard options rather than being silently assumed.
  3. Preserve bounded input/output, cancellation, owned-browser retirement and authenticated user-and-agent isolation. Updated user direction: remove custom URL/domain/scheme blocking, browser HTTP proxies, deny-all guardrails and WebSocket/service-worker bans. Use normal Cloudflare browser networking and standard Playwright request APIs; do not impose lifetime network or invocation quotas. Scripts must not access another owner's sessions/storage.
  4. Expose required native browser capabilities through a coherent adapter. Do not require every consumer to reimplement the standard CLI as custom abilities.
  5. Test actual Chromium and the actual Cloudflare adapter and published standalone package. Distinguish provider-unsupported desktop/test/video functionality from missing library implementation; do not advertise fabricated success for unsupported effects.

Root task ownership: this Codex task is handling CLI parity/capabilities and the Poe consumer's KV integration in isolated worktrees. Existing #746/#763 work remains with its current owners. Browser snapshot fix #762 is being qualified from its public release separately.

The next comment contains the exact official global help output captured from @playwright/cli@0.1.20; the current source diff and command-by-command audit are being retained with consumer evidence.

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions