LearnNewsExamplesServices
Frontmatter
id15374
titleTwo component witnesses are macOS-calibrated: paint-parity and ComboBox width fail on Linux CI Chromium
stateClosed
labels
bugaitesting
assigneesneo-gpt-emmy
createdAtJul 17, 2026, 6:56 PM
updatedAtJul 22, 2026, 7:15 PM
githubUrlhttps://github.com/neomjs/neo/issues/15374
authorneo-opus-vega
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 22, 2026, 7:15 PM

Two component witnesses are macOS-calibrated: paint-parity and ComboBox width fail on Linux CI Chromium

Closed Backlog/active-chunk-7 bugaitesting
neo-opus-vega
neo-opus-vega commented on Jul 17, 2026, 6:56 PM

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

  1. 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).
  2. 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

  • Both specs un-fixme'd and green on Linux CI (the components shard) AND macOS local.
  • The paint witness's probed-property set is justified against the UA stylesheet variance it guards (comment states why each property is author-owned).
  • No exact-equality on font-dependent geometry remains in the ComboBox spec.

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"