playwrightminimize

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 19 Imported by: 0

Documentation

Overview

Package playwrightminimize plans bounded Playwright suite-interaction trials. The separate live profile requires explicit digest-bound execution approval.

Index

Constants

View Source
const LiveSchema = "corvint-playwright-suite-interaction-live/0"
View Source
const Schema = "corvint-playwright-suite-interaction/0"

Variables

This section is empty.

Functions

func DecodeLiveRequest

func DecodeLiveRequest(data []byte, v any) error

DecodeLiveRequest rejects unknown fields and trailing JSON before any command.

Types

type Authorization

type Authorization struct {
	OperatorApproved bool   `json:"operator_approved"`
	PlanDigest       string `json:"plan_digest"`
}

type Baseline

type Baseline struct {
	ReceiptDigest string               `json:"receipt_digest"`
	Identity      RunIdentity          `json:"identity"`
	Outcome       Outcome              `json:"outcome"`
	Failures      []FailureObservation `json:"failures,omitempty"`
}

type Command

type Command struct {
	Argv             []string `json:"argv"`
	ExecutableSHA256 string   `json:"executable_sha256"`
}

Command is operator-owned reset/cleanup code, pinned before authorization. Its successful exit is evidence of execution, not proof of reset semantics.

type EvidenceRef

type EvidenceRef struct {
	Digest string `json:"digest"`
	Detail string `json:"detail"`
}

type FailureClass

type FailureClass string
const (
	FailureAssertion          FailureClass = "assertion"
	FailureSynchronization    FailureClass = "synchronization"
	FailureFixture            FailureClass = "fixture"
	FailureProduct            FailureClass = "product"
	FailureInfrastructure     FailureClass = "infrastructure"
	FailureRestart            FailureClass = "restart"
	FailureResourceExhaustion FailureClass = "resource-exhaustion"
)

type FailureObservation

type FailureObservation struct {
	Class          FailureClass `json:"class"`
	EvidenceDigest string       `json:"evidence_digest"`
	Summary        string       `json:"summary"`
}

type Finding

type Finding struct {
	Kind           TrialKind          `json:"kind"`
	Smallest       []string           `json:"smallest"`
	Members        []MemberAssessment `json:"members"`
	ReceiptDigests []string           `json:"receipt_digests"`
	SearchComplete bool               `json:"search_complete"`
	Minimality     string             `json:"minimality"`
}

type FixedIdentity

type FixedIdentity struct {
	TestRevision                 string `json:"test_revision"`
	ApplicationRevision          string `json:"application_revision"`
	ConfigDigest                 string `json:"config_digest"`
	Runner                       string `json:"runner"`
	RunnerVersion                string `json:"runner_version"`
	Browser                      string `json:"browser"`
	BrowserVersion               string `json:"browser_version"`
	Project                      string `json:"project"`
	FixtureSchema                string `json:"fixture_schema"`
	FixtureDigest                string `json:"fixture_digest"`
	SeedIdentity                 string `json:"seed_identity"`
	ApplicationAttestationDigest string `json:"application_attestation_digest"`
}

type Limits

type Limits struct {
	MaxTrials   int           `json:"max_trials"`
	WallClock   time.Duration `json:"wall_clock"`
	Repetitions int           `json:"repetitions"`
}

type LivePlan

type LivePlan struct {
	Schema string      `json:"schema"`
	Input  LiveRequest `json:"input"`
	Plan   Plan        `json:"plan"`
	Digest string      `json:"digest"`
}

func LivePlanRequest

func LivePlanRequest(ctx context.Context, input LiveRequest) (LivePlan, error)

type LiveRequest

type LiveRequest struct {
	Request      Request                  `json:"request"`
	Repository   string                   `json:"repository"`
	Corpus       []byte                   `json:"corpus"`
	StabilityIDs []string                 `json:"stability_ids"`
	Original     []byte                   `json:"original"`
	Isolated     []byte                   `json:"isolated"`
	Config       jstestprovider.E2EConfig `json:"config"`
	Reset        Command                  `json:"reset"`
	Cleanup      Command                  `json:"cleanup"`
}

type LiveTrialEvidence

type LiveTrialEvidence struct {
	ResetGeneration string                 `json:"reset_generation"`
	Reset           ProcessEvidence        `json:"reset"`
	Cleanup         ProcessEvidence        `json:"cleanup"`
	Receipt         jstestprovider.Receipt `json:"receipt"`
}

type MemberAssessment

type MemberAssessment struct {
	Member string `json:"member"`
	Status string `json:"status"`
}

type ObservedFailure

type ObservedFailure struct {
	TrialID       string             `json:"trial_id"`
	ReceiptDigest string             `json:"receipt_digest"`
	Observation   FailureObservation `json:"observation"`
}

type Outcome

type Outcome string
const (
	OutcomePassed Outcome = "passed"
	OutcomeFailed Outcome = "failed"
)

type Plan

type Plan struct {
	Schema          string   `json:"schema"`
	Request         Request  `json:"request"`
	Trials          []Trial  `json:"trials"`
	OrderedComplete bool     `json:"ordered_complete"`
	LoadComplete    bool     `json:"load_complete"`
	Complete        bool     `json:"complete"`
	Blockers        []string `json:"blockers,omitempty"`
	Digest          string   `json:"digest"`
}

func BuildPlan

func BuildPlan(request Request) (Plan, error)

type ProcessEvidence

type ProcessEvidence struct {
	Descendants *procgroup.DescendantObservation `json:"descendants"`
	Error       string                           `json:"error,omitempty"`
	Stdout      []byte                           `json:"stdout"`
	Stderr      []byte                           `json:"stderr"`
	Exit        int                              `json:"exit"`
	Started     bool                             `json:"started"`
	Completed   bool                             `json:"completed"`
	Cleanup     bool                             `json:"cleanup"`
	Cancelled   bool                             `json:"cancelled"`
	TimedOut    bool                             `json:"timed_out"`
	Overflow    bool                             `json:"overflow"`
	Usage       *procgroup.ResourceUsage         `json:"usage"`
}

type Qualification

type Qualification struct {
	RunnerQualified          bool   `json:"runner_qualified"`
	RunnerReceiptDigest      string `json:"runner_receipt_digest,omitempty"`
	StabilityQualified       bool   `json:"stability_qualified"`
	StabilityReceiptDigest   string `json:"stability_receipt_digest,omitempty"`
	ApplicationAttested      bool   `json:"application_attested"`
	ApplicationReceiptDigest string `json:"application_receipt_digest,omitempty"`
}

type Report

type Report struct {
	Schema           string            `json:"schema"`
	PlanDigest       string            `json:"plan_digest"`
	Status           string            `json:"status"`
	Diagnosis        string            `json:"diagnosis"`
	Confident        bool              `json:"confident"`
	Blockers         []string          `json:"blockers,omitempty"`
	Trials           []TrialResult     `json:"trials"`
	ObservedFailures []ObservedFailure `json:"observed_failures"`
	Ordered          *Finding          `json:"ordered,omitempty"`
	Load             *Finding          `json:"load,omitempty"`
	Limitations      []string          `json:"limitations"`
}

func Execute

func Execute(ctx context.Context, plan Plan, authorization Authorization, runner Runner) (Report, error)

func ExecuteLive

func ExecuteLive(ctx context.Context, plan LivePlan, approvedDigest string) (Report, error)

type Request

type Request struct {
	Target          string         `json:"target"`
	Predecessors    []string       `json:"predecessors"`
	LoadMembers     []string       `json:"load_members"`
	OriginalFailure Baseline       `json:"original_failure"`
	IsolatedPass    Baseline       `json:"isolated_pass"`
	LoadTopology    WorkerTopology `json:"load_topology"`
	ResetPolicy     ResetPolicy    `json:"reset_policy"`
	Limits          Limits         `json:"limits"`
	Qualification   Qualification  `json:"qualification"`
}

type ResetPolicy

type ResetPolicy struct {
	Name               string `json:"name"`
	Digest             string `json:"digest"`
	RestartApplication bool   `json:"restart_application"`
	ClearBrowserState  bool   `json:"clear_browser_state"`
}

type RunIdentity

type RunIdentity struct {
	Fixed          FixedIdentity  `json:"fixed"`
	Order          []string       `json:"order"`
	WorkerTopology WorkerTopology `json:"worker_topology"`
}

type Runner

type Runner interface {
	Run(context.Context, Trial) (TrialReceipt, error)
}

type RunnerFunc

type RunnerFunc func(context.Context, Trial) (TrialReceipt, error)

func (RunnerFunc) Run

func (f RunnerFunc) Run(ctx context.Context, trial Trial) (TrialReceipt, error)

type Trial

type Trial struct {
	ID          string      `json:"id"`
	Ordinal     int         `json:"ordinal"`
	CandidateID string      `json:"candidate_id"`
	Repetition  int         `json:"repetition"`
	Kind        TrialKind   `json:"kind"`
	Context     []string    `json:"context"`
	Identity    RunIdentity `json:"identity"`
	ResetPolicy ResetPolicy `json:"reset_policy"`
}

type TrialEvidence

type TrialEvidence struct {
	Setup          []EvidenceRef `json:"setup"`
	PageAssertions []EvidenceRef `json:"page_assertions"`
	Retries        []EvidenceRef `json:"retries"`
	Cleanup        []EvidenceRef `json:"cleanup"`
	ServerHealth   []EvidenceRef `json:"server_health"`
	Resources      []EvidenceRef `json:"resources"`
}

type TrialKind

type TrialKind string
const (
	TrialReproduction TrialKind = "reproduce-original"
	TrialIsolation    TrialKind = "verify-isolated"
	TrialOrdered      TrialKind = "ordered-predecessor"
	TrialLoad         TrialKind = "unordered-load"
)

type TrialReceipt

type TrialReceipt struct {
	Live                          *LiveTrialEvidence   `json:"live,omitempty"`
	Digest                        string               `json:"digest"`
	TrialID                       string               `json:"trial_id"`
	Identity                      RunIdentity          `json:"identity"`
	ResetPolicy                   ResetPolicy          `json:"reset_policy"`
	ResetSucceeded                bool                 `json:"reset_succeeded"`
	CleanupSucceeded              bool                 `json:"cleanup_succeeded"`
	ApplicationAttestationStart   string               `json:"application_attestation_start"`
	ApplicationAttestationPublish string               `json:"application_attestation_publish"`
	Outcome                       Outcome              `json:"outcome"`
	Evidence                      TrialEvidence        `json:"evidence"`
	Failures                      []FailureObservation `json:"failures,omitempty"`
}

type TrialResult

type TrialResult struct {
	Trial          Trial         `json:"trial"`
	Receipt        *TrialReceipt `json:"receipt,omitempty"`
	Valid          bool          `json:"valid"`
	InvalidReasons []string      `json:"invalid_reasons,omitempty"`
	ExecutionError string        `json:"execution_error,omitempty"`
}

type WorkerTopology

type WorkerTopology struct {
	Workers       int    `json:"workers"`
	FullyParallel bool   `json:"fully_parallel"`
	Shard         string `json:"shard,omitempty"`
	Policy        string `json:"policy"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL