From 5aedf1941139891bbe827c1ee5742f9e2b5b51c5 Mon Sep 17 00:00:00 2001 From: Micah Alpern Date: Sat, 25 Jul 2026 13:49:36 -0700 Subject: [PATCH] Release v1.4.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps to 1.4.2 (build 11) and folds the previously unreleased iCloud relay and iOS work into the release notes alongside this round of fixes. The headline fix is the listener descriptor leak: the published v1.4.1 leaks a file descriptor per served request, so any client polling /status steadily — including this repo's own browser extension — silently kills the listener in under an hour while the app still appears healthy. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 24 ++++++++++++++++++++++++ version.env | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60cb5de..f00374d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to VoxClaw are documented here. Earlier releases are on the ## Unreleased +## v1.4.2 + ### Added - **Cross-device iCloud relay** — your Mac can speak agent output on your iPhone/iPad even when it's locked, backgrounded, or off your LAN. The Mac @@ -16,8 +18,23 @@ All notable changes to VoxClaw are documented here. Earlier releases are on the ("Read Clipboard"), a "Read Text Aloud" Siri/Spotlight/Shortcuts action, and a "Now reading" Live Activity (lock screen + Dynamic Island). The app ships to internal testers via TestFlight. +- **Spotify ducking in the browser extension** — the extension now fades playing + `open.spotify.com` tabs to 20% while VoxClaw speaks and restores each tab's + original volume afterward, instead of letting speech compete with the music. + YouTube tabs still pause as before. ### Fixed +- **Network listener stopped accepting connections after sustained use** — every + served request leaked a file descriptor, because the response path cancelled + the connection through a `weak self` that was already released. Against the + 256-descriptor soft limit, a client polling `/status` once a second exhausted + it in well under an hour: the app kept running and looked healthy while the + listener silently refused every connection. +- **Browser extension stopped polling for good after VoxClaw restarted** — the + poll loop lives in a service worker that is torn down when idle, and the + "VoxClaw unreachable" path made no extension API calls, so the worker died + mid-outage and never came back. It now stays alive through an outage, with a + 30s alarm as a backstop. - **Relay voice fidelity** — relayed speech now reproduces the sender's engine, voice, **rate, and prosody** instead of falling back to the receiving device's defaults. @@ -25,6 +42,13 @@ All notable changes to VoxClaw are documented here. Earlier releases are on the actually fetched (sender clock) rather than its own wall clock, so messages are no longer skipped or duplicated under clock skew. +### Changed +- Docs and the bundled agent commands no longer reference the `/agent-notify` + endpoint or `voxclaw-say --kind`, both removed when the agent-speech subsystem + was deleted. `SKILL.md` (served to agents as `skill_doc`) now describes the + `/read`-only API the app actually implements, and the three `/voxclaw-*` slash + commands work again instead of exiting with a usage error. + ## v1.4.1 ### Added diff --git a/version.env b/version.env index 7ff0dca..621f1f8 100644 --- a/version.env +++ b/version.env @@ -1,2 +1,2 @@ -MARKETING_VERSION=1.4.1 -BUILD_NUMBER=10 +MARKETING_VERSION=1.4.2 +BUILD_NUMBER=11