From 707dc9f9847e36281c7e20f01ae0ba079f96a893 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Mon, 8 Jun 2026 12:57:12 +0200 Subject: [PATCH 1/2] fix(macos): capture weak self in network-monitor Task The NWPathMonitor update handler captures [weak self], making self a mutable weak var. Referencing it from the nested Task { @MainActor } trips strict-concurrency checking ('reference to captured var self in concurrently-executing code'), which a newer Swift toolchain on the CI runner image promoted from a warning to a hard error, breaking the release build. Give the Task its own [weak self] capture so it holds an immutable copy instead of the outer closure's captured var. --- apps/macos/Sources/WizApp/AppState.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/macos/Sources/WizApp/AppState.swift b/apps/macos/Sources/WizApp/AppState.swift index e439ba3..ad61754 100644 --- a/apps/macos/Sources/WizApp/AppState.swift +++ b/apps/macos/Sources/WizApp/AppState.swift @@ -754,7 +754,7 @@ final class AppState: ObservableObject { private func startNetworkMonitor() { pathMonitor.pathUpdateHandler = { [weak self] path in // NWPathMonitor calls back on its own queue; AppState is main-actor isolated. - Task { @MainActor in self?.handlePathChange(path) } + Task { @MainActor [weak self] in self?.handlePathChange(path) } } pathMonitor.start(queue: DispatchQueue.global(qos: .utility)) } From 74066d95921ee960850b884d2987cc9157f6e898 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Mon, 8 Jun 2026 13:01:23 +0200 Subject: [PATCH 2/2] chore: bump version to 5.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump the single source of truth (root package.json) and the three lockstep sources the release workflow validates — core and cli package.json versions and the macOS app's CFBundleShortVersionString — to 5.0.1. --- apps/macos/build/Info.plist | 2 +- package.json | 2 +- packages/cli/package.json | 2 +- packages/core/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/macos/build/Info.plist b/apps/macos/build/Info.plist index 40bfb8d..4abf051 100644 --- a/apps/macos/build/Info.plist +++ b/apps/macos/build/Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.6.0 + 5.0.1 CFBundleVersion 18 CFBundleIconFile diff --git a/package.json b/package.json index e78cec0..5a0da40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wiz-light-controller", - "version": "0.6.0", + "version": "5.0.1", "private": true, "description": "Fast, local, cloud-free controller for Philips WiZ lights — a modular JavaScript engine (reused by a CLI and a native macOS app via JavaScriptCore).", "license": "GPL-3.0-or-later", diff --git a/packages/cli/package.json b/packages/cli/package.json index e09b464..a9defdc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "wiz-light-cli", - "version": "0.6.0", + "version": "5.0.1", "description": "Fast, local, cloud-free command-line controller for Philips WiZ lights.", "license": "GPL-3.0-or-later", "homepage": "https://github.com/MegaManSec/wiz-light-controller#readme", diff --git a/packages/core/package.json b/packages/core/package.json index e17813f..7413d91 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "wiz-light-core", - "version": "0.6.0", + "version": "5.0.1", "description": "Local WiZ light engine: protocol, discovery, colour math, and persisted state. Zero runtime dependencies.", "license": "GPL-3.0-or-later", "homepage": "https://github.com/MegaManSec/wiz-light-controller#readme",