Skip to content

Wait for source resize transitions before sampling browser regression fixtures #592

Description

@chubes4

Findings

Two full-CI attempts on #591 failed in browser regression fixtures before portable media materialization ran:

  • Attempt 1: fluid-capture.test.ts, mixed-unit image height at width 600, delta 20px. The fixture records source heights after setViewportSize() plus a 10ms timer, although its inline custom property changes in a separate resize event handler.
  • Attempt 2: reference.test.ts, fresh-navigation viewport proof, observed 33px instead of the expected resized 29px. It asserts immediately after setViewportSize() without waiting for the fixture's dataset.pose = 'resized' transition.

The mixed-unit fixture passes unchanged on both frozen main and the candidate when run in isolation. The viewport API's completion is not a guarantee that the fixture's resize event callback has run. These tests need explicit source-state readiness before sampling; changing numerical tolerances or retrying assertions would obscure that boundary.

Proposed owning-layer repair

Wait for the authored custom property to match the resized viewport in the mixed-unit fixture, and for the declared resized state in the fresh-navigation fixture. Keep all existing exact height, typography, alignment, source-page preservation and frozen-reference assertions.

Acceptance

  • Deterministic delayed-resize reproduction demonstrates that old sampling precedes the authored transition.
  • Both fixtures prove their expected source state before measurement, including under delayed resize delivery.
  • Focused browser tests and full authoritative CI pass with unchanged assertions.
  • Repair ships independently, then refactor(export): isolate portable media materialization #591 resumes through the repaired gate.

AI assistance

OpenAI openai/gpt-6.1-sol via OpenCode inspected the CI failures and test sources, diagnosed the missing readiness boundary and drafted this tracker under Chris Huber's direction. Direct execution outside Homeboy is operator-authorized.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions