Skip to content

Fix the beta channel file, and fail loudly when it is missing - #26

Merged
MyNamesEMurray merged 1 commit into
mainfrom
claude/localvocal-transcription-accuracy-jxxefb
Jul 27, 2026
Merged

Fix the beta channel file, and fail loudly when it is missing#26
MyNamesEMurray merged 1 commit into
mainfrom
claude/localvocal-transcription-accuracy-jxxefb

Conversation

@MyNamesEMurray

Copy link
Copy Markdown
Owner

Summary

v3.8.1-beta.1 published as a fully green run with no update feed at all. This fixes the cause and closes the silent-failure mode that let it pass — on the stable line too, which had the identical exposure.

Changes

The channel has to be named explicitly. electron-builder takes its output channel from publish.channel (default latest) and does not derive it from the version's prerelease tag — even though electron-updater derives its read channel exactly that way. So the beta build wrote latest.yml while a beta install goes looking for beta.yml. The build now passes -c.publish.channel=beta.

Both workflows now assert their channel file exists before publishing. The failure was invisible because softprops/action-gh-release only warns on a glob that matches nothing (Pattern 'dist/beta.yml' does not match any files.) and then reports success. Each workflow now fails with a clear message and dumps dist/ if the feed is absent.

The stable line had the same exposure and gets the same guard: a release missing latest.yml would publish green and silently strand every existing install on its current version. That's a worse bug than the one actually hit, and it was one glob typo away.

Verification

  • Diagnosed from the run logs, not inferred: Pattern 'dist/beta.yml' does not match any files., and the electron-builder output shows only the .exe and .blockmap being produced.
  • Checked the real releases before assuming scope: v3.8.0 carries latest.yml, so --publish never does generate the feed and the stable line was never broken. This was specific to the channel name.
  • Both workflow files parse as YAML, and the verify step is ordered after the build in each.
  • CI-only change: no app code touched, npm test / npm run smoke unaffected.

The real verification is the next beta run, which is the point of the guard — if -c.publish.channel=beta doesn't do what I expect, the job now fails instead of publishing a hollow release.

Risk & rollout

  • CI configuration only — no src/, public/, or electron/ changes.
  • The already-published v3.8.1-beta.1 installer works; only its auto-update doesn't (it polls a beta.yml that was never uploaded). Superseded by the next beta rather than patched in place.
  • Worth knowing: the new guard means a genuinely broken build now fails the workflow rather than publishing something incomplete. That's the intent, but it does mean beta runs can go red where they previously went green while producing nothing useful.
  • Release-Skip: true — no version bump for a CI-only change.

Checklist

  • npm run smoke passes locally (or CI is green)
  • Follows the design language in DESIGN.md (if UI changed) — n/a, no UI change
  • AI-labeling / "simulated viewers" guarantees intact (if bot output or overlay changed) — n/a, no app code
  • Docs updated (README / config reference) if behavior or config changed — CONTRIBUTING notes the channel gotcha
  • Targets main

🤖 Generated with Claude Code

https://claude.ai/code/session_01SK871Ay2eiEzxTPorRufLP


Generated by Claude Code

v3.8.1-beta.1 published as a fully green run with no update feed at all. Two
compounding causes, both worth fixing:

electron-builder takes its output channel from publish.channel, which defaults
to "latest", and does NOT derive it from the version's prerelease tag — even
though electron-updater derives its *read* channel exactly that way. So the
beta build wrote latest.yml while a beta install would go looking for
beta.yml. The build now passes -c.publish.channel=beta explicitly.

The failure was silent because softprops/action-gh-release only warns on a
glob that matches nothing ("Pattern 'dist/beta.yml' does not match any
files."), then reports success. Both workflows now assert their channel file
exists before publishing and dump dist/ on failure. The stable line had the
identical exposure: a release missing latest.yml would publish green and
silently strand every install on its current version.

Verified against the real releases: v3.8.0 carries latest.yml, so
--publish never does generate the feed and the stable line was never broken —
this was specific to the channel name.

The already-published v3.8.1-beta.1 installer works; only its auto-update does
not. Superseded by the next beta rather than patched in place.

Release-Skip: true

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SK871Ay2eiEzxTPorRufLP
@MyNamesEMurray
MyNamesEMurray enabled auto-merge (squash) July 27, 2026 01:07
@MyNamesEMurray
MyNamesEMurray merged commit 13fdd05 into main Jul 27, 2026
2 checks passed
@MyNamesEMurray
MyNamesEMurray deleted the claude/localvocal-transcription-accuracy-jxxefb branch July 27, 2026 01:08
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.

2 participants