Skip to content

Expose reusable authenticated browser storage state for recipe probes #963

@chubes4

Description

@chubes4

Problem

Automattic/wpcom-codebox product workflow proofs need a generic WP Codebox recipe/browser primitive for establishing and reusing fixture-authenticated browser state across browser probes.

The domain management proof in Automattic/wpcom-codebox#231 needs to open authenticated WordPress.com domain add/manage routes with deterministic fixture auth and no production cookies, bearer tokens, private browser profiles, or user data. The current wpcom-codebox adapter inventory had this requirement pointing at #731, but #731 tracks PHP version propagation and is closed; it is not the storage-state blocker.

Desired behavior

WP Codebox should expose a generic, reviewer-safe primitive that can:

  • create or import authenticated browser storage state from fixture auth setup;
  • reuse that state in wordpress.browser-probe steps;
  • report auth provenance without exposing cookies, nonces, bearer tokens, callback URLs, browser profile paths, or local filesystem paths;
  • emit structured unsupported/error evidence when storage-state setup cannot complete.

Consumer shape

wpcom-codebox should be able to declare this as an externally delegated generic boundary and consume it from WPCOM-specific recipes without adding WPCOM semantics to WP Codebox.

Relevant WPCOM consumer examples:

  • Automattic/wpcom-codebox#208 logged-in dashboard/home proof
  • Automattic/wpcom-codebox#231 domain search/manage proof

Boundary

This should stay generic in WP Codebox. wpcom-codebox owns WPCOM fixtures, routes, adapters, and evidence semantics, but WP Codebox owns browser storage-state orchestration and safe artifact capture.

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenCode (openai/gpt-5.5)
  • Used for: Filing the precise upstream blocker discovered while implementing Automattic/wpcom-codebox#231; implementation and review remain Chris-owned.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions