Symptom

The nightly UX audit found no light-mode chip catalog — all node type screenshots were rendered with darkTheme = true. As a result, any hardcoded Color(0x…) literals in chip/icon composables were never exercised against a light surface. The Project node icon used a dark teal-green Color(0xFF2A6B5A) (not in ChirpyDarkColorScheme or ChirpyLightColorScheme) and a bright mint ring Color(0xFF3DD9A0) for its accent border, both of which were dark-surface-first and would fail on a light background.

Root cause

IconManager.kt getNodeStateColor() returned a hardcoded literal Color(0xFF2A6B5A) for KrillApp.Project nodes in EXECUTED/RESET/NONE states instead of using a colorScheme role. Similarly, the Project accent ring used Color(0xFF3DD9A0) (bright mint). Neither color exists in ChirpyDarkColorScheme or ChirpyLightColorScheme, making them unaudited and unsupported in any theme.

The chip catalog tests in NodeCatalogScreenshots.kt only rendered with darkTheme = true, so the light-surface failure mode was invisible in CI.

Fix

Prevention