Skip to content

Set the beta channel via package.json, and tag only after a good build - #27

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

Set the beta channel via package.json, and tag only after a good build#27
MyNamesEMurray merged 1 commit into
mainfrom
claude/localvocal-transcription-accuracy-jxxefb

Conversation

@MyNamesEMurray

Copy link
Copy Markdown
Owner

Summary

The -c.publish.channel=beta flag from the last fix never applied — PowerShell doesn't preserve electron-builder's dotted-override form, so the build failed outright. Sets the channel through package.json instead, and stops a failed run from burning a version number.

Changes

Channel is set with npm pkg set, not on the command line. GitHub runs run: steps through PowerShell on windows-latest, which didn't preserve the dotted form — electron-builder parsed it as the -c config file alias and died:

⨯ ENOENT: no such file or directory, open 'D:\a\hype-ghost\hype-ghost\.publish.channel=beta'

npm pkg set build.publish.channel=beta is shell-agnostic and is already how this workflow stamps the version. The step also echoes the resolved version and channel so the log shows what the build will actually use.

Tagging moved to after the build and the feed check. Tagging first meant a failed run still pushed its tag — v3.8.1-beta.2 is exactly that: an orphan with no release behind it, left by the run this fixes. Step order is now compute → stamp → build → verify → tag → publish.

Verification

  • Diagnosed from the job log, not inferred — the ENOENT above names the mis-parsed path directly.
  • Confirmed locally that npm pkg set build.publish.channel=beta adds the key without disturbing provider/owner/repo: {"provider":"github","owner":"o","repo":"r","channel":"beta"}.
  • Workflow parses as YAML; step order verified programmatically.

What already worked and is worth keeping in mind: the verify step caught this. The run went red with no release, rather than publishing a second installer with no update feed. The guard did its job on its first real outing — which is also why there's no bad artifact to clean up from this attempt.

Risk & rollout

  • CI configuration only; no app code.
  • Two stray artifacts remain from earlier attempts, both harmless: v3.8.1-beta.1 (release exists, installer works, auto-update doesn't) and v3.8.1-beta.2 (orphan tag, no release). The next beta will be -beta.3. Say the word if you'd rather I delete them.
  • Still unproven until the next run: whether beta.yml is actually produced. That's now a hard gate rather than a hope — if the channel still doesn't apply, the job fails at the verify step instead of publishing something hollow.
  • 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
  • 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 records the PowerShell gotcha
  • Targets main

🤖 Generated with Claude Code

https://claude.ai/code/session_01SK871Ay2eiEzxTPorRufLP


Generated by Claude Code

The -c.publish.channel=beta flag added in the previous fix never applied. On
windows-latest, GitHub runs `run:` steps through PowerShell, which does not
preserve electron-builder's dotted-override form — the CLI parsed it as the
-c (config file) alias and died:

  ENOENT: no such file or directory, open '...\.publish.channel=beta'

Set build.publish.channel with `npm pkg set` instead. That is shell-agnostic
and already how this workflow stamps the version. Confirmed locally that it
adds the key without disturbing provider/owner/repo.

Tagging moves to after the build and the feed check. Tagging first meant a
failed run still pushed its tag, burning the number with no release behind it
— v3.8.1-beta.2 is exactly that, an orphan from the run this fixes.

Worth noting what did work: the verify step caught this. The run went red with
no release, instead of publishing another installer with no update feed. That
is the guard doing its job on its first real outing.

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:22
@MyNamesEMurray
MyNamesEMurray merged commit af96e31 into main Jul 27, 2026
2 checks passed
@MyNamesEMurray
MyNamesEMurray deleted the claude/localvocal-transcription-accuracy-jxxefb branch July 27, 2026 01:23
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