Context
Found by the first complete CI execution of the components suite (PR #15373, run 2 at f8b362ec59): 41+ specs ran, 39 green, 2 red on Linux that pass on macOS — the exact environment-sensitivity class a CI shard exists to catch, caught on arrival.
The Problem
test/playwright/component/button/Base.spec.mjs:222 — "disabled paint is class-owned — the native attribute contributes no UA styling": expect(withAttribute).toEqual(classOnly) deep-equality fails on Linux headless Chromium. The witness compares computed backgroundColor/borderTopColor/color/opacity with the disabled attribute on vs off (class constant). It was verified red→green on macOS with the &:disabled SCSS pin; on Linux at least one property still diverges — UA system-color resolution (GrayText/-internal-light-dark) and native form-control theming differ per platform, so the pin's coverage is platform-dependent. Error context artifact: button-Base-Neo-button-Bas-3bc3e-e-contributes-no-UA-styling-chromium/error-context.md (run 29597..., job log 16:54:13Z).
test/playwright/component/form/field/ComboBox.spec.mjs:114 — "Input wrapper fills remaining width after a left label": toBe equality on geometry fails — Linux default font metrics differ from macOS, so exact-pixel width math lands elsewhere. Exact-equality on font-dependent layout is the anti-pattern; the assertion needs a tolerance or a font-independent formulation.
The Architectural Reality
Both witnesses encode host-specific rendering facts as exact equalities. The suite ran in no workflow until PR #15373 (#15368), so macOS-local runs were the only oracle and the platform sensitivity was unobservable. PR #15373 marks both test.fixme (visible, greppable, runs-nothing) so the gate lands live for the other 39 witnesses; this ticket owns un-fixme-ing them.
The Fix
- Paint witness: either extend the
:disabled ownership so ALL probed properties are author-owned on every platform (design-adjacent — the pin's owner @neo-fable-clio + design authority @neo-opus-grace own the property set), or scope the probed properties to the author-owned set with the UA-variant properties asserted per-platform.
- ComboBox width: replace exact
toBe with a tolerance-banded comparison or assert the layout INVARIANT (wrapper right edge == container right edge) instead of a font-derived width value.
Acceptance Criteria
Out of Scope
Related
PR #15373 (the run that surfaced both) · #15368 (the shard) · #15327 (the paint witness's origin PR, merged) · #15367 (sibling env-trap, local half).
Live latest-open sweep: checked latest 6 open at 2026-07-17T16:57Z (latest #15370); no equivalent. A2A in-flight: no claim on these two specs; the paint witness's author is being FYI'd directly.
Decision Record impact: none.
Origin Session ID: 2dcbf336-4338-4009-82f3-79f1b1d151f1
Retrieval Hint: "component witness platform sensitive Linux GrayText paint parity ComboBox width fixme"
Context
Found by the first complete CI execution of the components suite (PR #15373, run 2 at
f8b362ec59): 41+ specs ran, 39 green, 2 red on Linux that pass on macOS — the exact environment-sensitivity class a CI shard exists to catch, caught on arrival.The Problem
test/playwright/component/button/Base.spec.mjs:222— "disabled paint is class-owned — the native attribute contributes no UA styling":expect(withAttribute).toEqual(classOnly)deep-equality fails on Linux headless Chromium. The witness compares computedbackgroundColor/borderTopColor/color/opacitywith thedisabledattribute on vs off (class constant). It was verified red→green on macOS with the&:disabledSCSS pin; on Linux at least one property still diverges — UA system-color resolution (GrayText/-internal-light-dark) and native form-control theming differ per platform, so the pin's coverage is platform-dependent. Error context artifact:button-Base-Neo-button-Bas-3bc3e-e-contributes-no-UA-styling-chromium/error-context.md(run29597..., job log 16:54:13Z).test/playwright/component/form/field/ComboBox.spec.mjs:114— "Input wrapper fills remaining width after a left label":toBeequality on geometry fails — Linux default font metrics differ from macOS, so exact-pixel width math lands elsewhere. Exact-equality on font-dependent layout is the anti-pattern; the assertion needs a tolerance or a font-independent formulation.The Architectural Reality
Both witnesses encode host-specific rendering facts as exact equalities. The suite ran in no workflow until PR #15373 (#15368), so macOS-local runs were the only oracle and the platform sensitivity was unobservable. PR #15373 marks both
test.fixme(visible, greppable, runs-nothing) so the gate lands live for the other 39 witnesses; this ticket owns un-fixme-ing them.The Fix
:disabledownership so ALL probed properties are author-owned on every platform (design-adjacent — the pin's owner @neo-fable-clio + design authority @neo-opus-grace own the property set), or scope the probed properties to the author-owned set with the UA-variant properties asserted per-platform.toBewith a tolerance-banded comparison or assert the layout INVARIANT (wrapper right edge == container right edge) instead of a font-derived width value.Acceptance Criteria
fixme'd and green on Linux CI (the components shard) AND macOS local.Out of Scope
Related
PR #15373 (the run that surfaced both) · #15368 (the shard) ·
#15327(the paint witness's origin PR, merged) · #15367 (sibling env-trap, local half).Live latest-open sweep: checked latest 6 open at 2026-07-17T16:57Z (latest #15370); no equivalent. A2A in-flight: no claim on these two specs; the paint witness's author is being FYI'd directly.
Decision Record impact:
none.Origin Session ID:
2dcbf336-4338-4009-82f3-79f1b1d151f1Retrieval Hint:
"component witness platform sensitive Linux GrayText paint parity ComboBox width fixme"