You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Per-device disable on the Mappings tab had four independent bugs uncovered
while testing with a LIFX Beam:
- Disable raced restore against in-flight decorator chunks. Added a per-device
gate flag on the LIFX/Hue update queues and made LifxUpdateQueue's restore
take _lock around both the colour and power sends, so the bulb returns
cleanly to its pre-Chromatics state instead of being left half-decorator
half-restored on chained Beam setups.
- Re-enable left the device dark and the Mapping preview blank when testing
with the startup animation. RunStartupEffects only built tagged groups for
attached devices, so a device that came up disabled never got its rainbow
group. AddDevice now calls SyncTaggedEffectsForDevice and
surface.Update(flushLeds: true) in a single locked pass, with
layer.requestUpdate=true on every layer tied to the device so processors
re-paint from scratch.
- Restart with a persisted-disabled LIFX bulb silently powered the bulb back
on, because CaptureOriginalStateAsync's "turn on if off" branch fired
before the post-Load detach. The next capture cycle then read Powered=true
and poisoned _original, so subsequent disables stopped turning the bulb
off — the runaway state. Capture now takes a turnOnIfOff flag; the LIFX
provider passes false when the device is persisted-disabled, and gates
the queue immediately to close the brief surface.Load to detach window.
Hue gets the same defensive gate.
- Re-enable's recapture worker ran AFTER surface.Update(true) had already
painted Chromatics colours onto the bulb, so the recaptured _original.Zones
reflected the rainbow rather than pre-Chromatics. Dropped the recapture
entirely and replaced its auto-on side effect with a dedicated
EnsurePoweredOn() that sends SetLightPower(on=true) without touching
_original. Hue's Update() already sends On=true with every paint, so it
needs no equivalent.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
All notable changes to Chromatics are documented here.
4
4
5
-
## 4.1.33
5
+
## 4.1.37
6
6
7
7
- Added Auto-discovery for Hue bridges.
8
8
- Updated Hue light adoption. After pairing, Chromatics shows a picker so you can choose exactly which Hue lights it should control. Existing setups upgraded from earlier builds keep all their bulbs (one-time auto-adopt of whatever the bridge currently exposes); from then on you can deselect bulbs you don't want from the same dialog.
0 commit comments