Skip to content

fix: hotfix v0.9.1#235

Merged
eyelock merged 3 commits into
mainfrom
hotfix/v0.9.1
Apr 28, 2026
Merged

fix: hotfix v0.9.1#235
eyelock merged 3 commits into
mainfrom
hotfix/v0.9.1

Conversation

@eyelock
Copy link
Copy Markdown
Owner

@eyelock eyelock commented Apr 28, 2026

Hotfix v0.9.1

Cherry-picks three fixes onto v0.9.0:

  1. bfd6342 — fix(ci): fix appcast not updating on stable release (fix(ci): fix appcast not updating on stable release #233)
  2. 032138e — fix(harnesses): fix uninstall for local harnesses with no YNH install record (fix(harnesses): fix uninstall for local harnesses with no YNH install record #234)
  3. ee2d325 — docs(skills): update hotfix procedure — PR before CI, CHANGELOG, appcast forward-port

Changes

  • Appcast was not being updated on stable releases due to a CI workflow bug
  • Local harness uninstall crashed when no YNH install record existed
  • Hotfix skill procedure updated to reflect correct workflow (PR before tagging, CHANGELOG requirement, appcast forward-port)

Release checklist

  • CI passes on this PR
  • Tag v0.9.1 after CI green
  • Monitor release.yml until GitHub release is published
  • Monitor update-appcast.yml until appcast PR merges to main
  • Delete hotfix/v0.9.1 branch
  • Forward-port all three commits + appcast changes to develop

eyelock and others added 3 commits April 28, 2026 07:43
Three bugs prevented v0.9.0 from appearing in appcast.xml:

1. Race condition: the `release: published` and explicit `workflow_dispatch`
   triggers both fired within 2 seconds of the release being published, before
   the GitHub API had indexed the new release. The appcast workflow got the
   pre-release cached list of exactly 30 items and silently skipped v0.9.0
   (no zip asset visible yet → jq returned empty → no warning logged → diff
   showed no changes → no PR created).

2. Pagination: generate-appcast.sh fetched a single page with GitHub's default
   of 30 releases. With 50+ releases in the repo, any stable release beyond
   page 1 would be invisible to the generator.

Fixes:
- Replace `release: published` + explicit `workflow_dispatch` trigger with
  `workflow_run` on Release workflow completion. The Release workflow takes
  30-60 minutes to build/sign/notarize; by the time it completes the API
  has long indexed the new release.
- Add job-level guard to skip appcast update when the Release workflow failed.
- Implement page-looping in fetch_releases() (per_page=100&page=N until empty)
  so all releases are fetched regardless of count.
- Add GH_TOKEN auth header to bypass the API response cache.
- Fix stale github.event.release.tag_name reference (removed with the
  release: published trigger) → github.event.workflow_run.head_branch.

Co-authored-by: David Collie <support@eyelock.net>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
… record (#234)

Harnesses that exist on disk but were never registered via `ynh install`
caused `ynh uninstall` to fail with "harness not installed". The fix:

- `uninstallHarness(name:)` now detects `installedFrom == nil` and
  deletes the harness directory via FileManager directly, bypassing the
  ynh terminal entirely, then cleans associations and refreshes the list
- Removed a redundant `FileManager.removeItem` from
  `performDeleteLocalHarness` in the sidebar (now owned by
  `uninstallHarness`)
- Uninstall confirmation dialogs now show context-aware messages for all
  three harness provenance states (untracked / ynh-local / registry+git),
  with the selection logic extracted into a single
  `Strings.Harnesses.uninstallBaseMessage(for:)` function used by both
  HarnessDetailView and HarnessesSidebarTab

Co-authored-by: David Collie <support@eyelock.net>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ast forward-port

- Open PR to main before waiting for CI (CI runs on the PR)
- Always update CHANGELOG.md on the hotfix branch before tagging
- Forward-port PR must include CHANGELOG and appcast changes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eyelock eyelock merged commit 2e0ab33 into main Apr 28, 2026
18 checks passed
@eyelock eyelock deleted the hotfix/v0.9.1 branch April 28, 2026 07: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.

1 participant