From abf04371d395aacb9238eebcf54a968538e7f302 Mon Sep 17 00:00:00 2001 From: JDS300 <70587798+JDS300@users.noreply.github.com> Date: Fri, 14 Aug 2026 10:50:35 -0400 Subject: [PATCH] Pass the release flag as part of one options array The v0.4.0-rc.1 dispatch reached the publish step and failed with "no matches found for -". PowerShell unrolls a single-element array returned from an if expression, so $flags held the string "--prerelease" rather than an array, and splatting a scalar string left gh with a bare "-" to read as an asset filename. The @assets splat beside it works only because it always holds five elements and so never unrolls, which is what made the pattern look safe to copy. The flag now joins the other options in one array that always holds at least six elements, and += keeps it an array however many flags are added, so the shape no longer depends on how many there happen to be. The failed run proved everything ahead of it: the staged package verified byte-for-byte across a Linux-packaged zip and a Windows checkout, the tag and flag guard accepted the candidate tag, and both artifact uploads succeeded. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/build-loremaster.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-loremaster.yml b/.github/workflows/build-loremaster.yml index 3989d12..61b8e6b 100644 --- a/.github/workflows/build-loremaster.yml +++ b/.github/workflows/build-loremaster.yml @@ -547,11 +547,17 @@ jobs: gh release edit $tag --repo $env:GITHUB_REPOSITORY --prerelease=false --latest } } else { - $flags = if ($prerelease) { @('--prerelease') } else { @('--latest') } - gh release create $tag @assets --repo $env:GITHUB_REPOSITORY @flags ` - --target $env:GITHUB_SHA ` - --title "SpinUI $tag — Vellum & Ember + Glass" ` - --notes "Complete SpinUI Windows release. Extract SpinUI-Manual.zip for both the classic spinui_reloaded skin and optional spinui_glass skin, layout profiles, manual guide, and the portable TypeScript/Electron Loremaster. Verify downloads against SHA256SUMS.txt; the unsigned Loremaster executable can trip antivirus machine-learning heuristics (see the README's Troubleshooting section).$candidateNote" + # Built as one array rather than splatting a conditional: an if + # expression returning a single-element array unrolls to a bare + # string, and splatting that string fed gh a lone "-" which it + # tried to read as an asset filename. + $options = @( + '--target', $env:GITHUB_SHA, + '--title', "SpinUI $tag — Vellum & Ember + Glass", + '--notes', "Complete SpinUI Windows release. Extract SpinUI-Manual.zip for both the classic spinui_reloaded skin and optional spinui_glass skin, layout profiles, manual guide, and the portable TypeScript/Electron Loremaster. Verify downloads against SHA256SUMS.txt; the unsigned Loremaster executable can trip antivirus machine-learning heuristics (see the README's Troubleshooting section).$candidateNote" + ) + if ($prerelease) { $options += '--prerelease' } else { $options += '--latest' } + gh release create $tag @assets --repo $env:GITHUB_REPOSITORY @options } - name: Attach package to release