Skip to content

release: v1.47.0 (build 100) - #427

Merged
JasonYeYuhe merged 1 commit into
mainfrom
release-1-47-0
Aug 7, 2026
Merged

release: v1.47.0 (build 100)#427
JasonYeYuhe merged 1 commit into
mainfrom
release-1-47-0

Conversation

@JasonYeYuhe

Copy link
Copy Markdown
Collaborator

Ships the helper-agent self-heal (#425), which missed the 1.46.0 cut by three commits. HelperAgentHealth.swift is on main but absent from the published 1.46.0 DMG.

Why this couldn't wait for the next feature release

yyh.CLI-Pulse.helper.agent can be registered and still have never executed. Measured on a real machine: 22,138 consecutive failed spawns over ~11 days, while every signal the app used reported healthy —

signal said
SMAppService.agent(...).status .enabled
SMAppService.agent(...).register() returned without throwing
launchctl kickstart -k exit 0, on a job that failed to exec milliseconds later

A dead helper means no provider data, which means CLI Pulse shows nothing at all. That is precisely the first-value failure the v1.45 telemetry was built to measure — happening silently, to users who then have no reason to come back.

The fix reads launchd's own job record (state, parent bundle version, last exit code), which is the only signal that distinguishes "registered" from "running", and re-registers via unregister() + register() when it finds the former without the latter.

Also in this release

Both already shipped in 1.46.0, restated here for anyone who skips it:

Scope

DEVID + Homebrew only. iOS 1.45.0 is still WAITING_FOR_REVIEW and a second version cannot sit in review beside it, so App Store submission remains the owner's call. Android version bumped in step to satisfy the v1.21 G6 drift gate; no Android release implied.

Verification

  • swift test2678 passed, 0 failures, 4 skipped, including 27 helper-agent tests
  • version drift gate — Apple 1.47.0 == Android 1.47.0, versionCode 66 > baseline 65, all 12 pbxproj configs bumped
  • check_no_internal_docs.sh run locally before push

Notarized DMG, real-machine smoke and the three publish surfaces follow in this PR's comments.

🤖 Generated with Claude Code

Ships the helper-agent self-heal (#425), which missed the 1.46.0 cut by three
commits. That is the most user-visible fix of the day and 1.46.0 does not have
it: HelperAgentHealth.swift is on main but absent from the published 1.46.0 DMG.

WHY IT MATTERS MORE THAN THE TELEMETRY FIXES IT TRAVELS WITH

`yyh.CLI-Pulse.helper.agent` can be registered and still have never executed.
Measured on a real machine: 22,138 consecutive failed spawns over ~11 days,
while every signal the app used said healthy — SMAppService `.status` returned
`.enabled`, `register()` returned without throwing, and `launchctl kickstart`
exited 0 on a job that failed to exec milliseconds later.

A dead helper means no provider data, which means CLI Pulse shows nothing at
all. That is the first-value failure the v1.45 telemetry was built to measure,
happening silently, to users who then have no reason to come back.

ALSO IN THIS RELEASE (both already shipped in 1.46.0, restated for users who
skip it): the disclosure card no longer claims statistics are being sent while
local-only mode suppresses them (#419), and activation is no longer lost on the
launch that shows the disclosure card (#418).

DEVID + Homebrew only. iOS 1.45.0 is still WAITING_FOR_REVIEW and a second
version cannot sit in review beside it; App Store submission stays the owner's
call.

swift test: 2678 passed, 0 failures, 4 skipped — including 27 helper-agent
tests. Version drift gate passes (Apple 1.47.0 == Android 1.47.0, code 66).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JasonYeYuhe
JasonYeYuhe merged commit 4d31d73 into main Aug 7, 2026
33 of 35 checks passed
@JasonYeYuhe
JasonYeYuhe deleted the release-1-47-0 branch August 7, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant