Layer toggles are data-driven: disable a toggle only when that layer has no mesh (layer == nil). viewerUnavailable now only controls the canvas — hides GamutSceneView and shows the gamutViewerUnavailable fallback text — so gamut chrome (toggles, inspect, status) stays usable on hosts without a GPU/SceneKit context, including the macOS 12 Actions runner.
Tests: waitUntilEnabled is now valid for gamutLayer-sRGB/gamutLayer-compare; compare toggle asserts value == 1 and status contains the layer name after both Open .gam and Open profile paths.
Layer toggles are data-driven: disable a toggle only when that layer has no mesh (`layer == nil`). `viewerUnavailable` now only controls the canvas — hides `GamutSceneView` and shows the `gamutViewerUnavailable` fallback text — so gamut chrome (toggles, inspect, status) stays usable on hosts without a GPU/SceneKit context, including the macOS 12 Actions runner.
Tests: `waitUntilEnabled` is now valid for `gamutLayer-sRGB`/`gamutLayer-compare`; compare toggle asserts `value == 1` and status contains the layer name after both Open .gam and Open profile paths.
Refs #147 #146
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Layer toggles are data-driven: disable a toggle only when that layer has no mesh (
layer == nil).viewerUnavailablenow only controls the canvas — hidesGamutSceneViewand shows thegamutViewerUnavailablefallback text — so gamut chrome (toggles, inspect, status) stays usable on hosts without a GPU/SceneKit context, including the macOS 12 Actions runner.Tests:
waitUntilEnabledis now valid forgamutLayer-sRGB/gamutLayer-compare; compare toggle assertsvalue == 1and status contains the layer name after both Open .gam and Open profile paths.Refs #147 #146