From 8c7ab50b02d294f6430490c428e6939725810474 Mon Sep 17 00:00:00 2001 From: Rob Howard Date: Sun, 4 Oct 2026 10:01:19 -0600 Subject: [PATCH 1/2] Only install the release's attached zip when updating Use REQUIRE_RELEASE_ASSETS with an everyalt-.zip name filter so the update checker never falls back to GitHub's auto-generated source zip. That zip doesn't include vendor/plugin-update-checker, so installing it would silently end automatic updates on that site. A release published without its zip is now skipped instead. Co-Authored-By: Claude Opus 5.5 --- README.md | 3 +++ everyalt.php | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fee5281..c2abd36 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,9 @@ The plugin uses the `everyalt` text domain and ships with a `.pot` in `languages ## 📝 Changelog +### Unreleased +- **Fixed** automatic updates now only install the `everyalt-.zip` attached to a GitHub release. If a release is ever published without it, sites skip that release instead of installing GitHub's source zip, which lacks the update checker and would have silently stopped future updates. + ### 1.1.1 - **Changed** the default OpenAI model is now **GPT-6 Luna**, OpenAI's recommended replacement for GPT-5.4 nano (which shuts down April 1, 2027). It's half the price per token ($0.10 input / $0.50 output per 1M tokens), and EveryAlt turns its reasoning off, as alt text doesn't need it. Sites using GPT-5.4 nano switch automatically; sites using Gemini or DeepInfra keep their choice. - **Changed** the plugin's home is now [howarddc/everyalt-wordpress-plugin](https://github.com/howarddc/everyalt-wordpress-plugin). Updates are checked there; the old address redirects, so nothing breaks for earlier versions. diff --git a/everyalt.php b/everyalt.php index 16b5f4c..26ce812 100644 --- a/everyalt.php +++ b/everyalt.php @@ -44,7 +44,14 @@ __FILE__, 'everyalt' ); - $everyalt_updater->getVcsApi()->enableReleaseAssets(); + // Only ever install the everyalt-.zip attached to a release: it + // bundles the update checker. GitHub's auto-generated source zip doesn't, + // so a release without the asset is ignored rather than installed (which + // would silently end automatic updates on that site). + $everyalt_updater->getVcsApi()->enableReleaseAssets( + '/^everyalt-[0-9][0-9A-Za-z.\-]*\.zip$/', + class_exists( '\YahnisElsts\PluginUpdateChecker\v5p7\Vcs\Api' ) ? \YahnisElsts\PluginUpdateChecker\v5p7\Vcs\Api::REQUIRE_RELEASE_ASSETS : 2 + ); } /** From dc450bfe4c553b0fa59e0190df0b84bde6303388 Mon Sep 17 00:00:00 2001 From: Rob Howard Date: Sun, 4 Oct 2026 10:03:17 -0600 Subject: [PATCH 2/2] Move the release-asset fix into the 1.1.1 changelog Co-Authored-By: Claude Opus 5.5 --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index c2abd36..9d0083d 100644 --- a/README.md +++ b/README.md @@ -149,14 +149,12 @@ The plugin uses the `everyalt` text domain and ships with a `.pot` in `languages ## 📝 Changelog -### Unreleased -- **Fixed** automatic updates now only install the `everyalt-.zip` attached to a GitHub release. If a release is ever published without it, sites skip that release instead of installing GitHub's source zip, which lacks the update checker and would have silently stopped future updates. - ### 1.1.1 - **Changed** the default OpenAI model is now **GPT-6 Luna**, OpenAI's recommended replacement for GPT-5.4 nano (which shuts down April 1, 2027). It's half the price per token ($0.10 input / $0.50 output per 1M tokens), and EveryAlt turns its reasoning off, as alt text doesn't need it. Sites using GPT-5.4 nano switch automatically; sites using Gemini or DeepInfra keep their choice. - **Changed** the plugin's home is now [howarddc/everyalt-wordpress-plugin](https://github.com/howarddc/everyalt-wordpress-plugin). Updates are checked there; the old address redirects, so nothing breaks for earlier versions. - **Changed** EveryAlt is now credited to [Rob Howard](https://howard.ai). - **Improved** the "prices as of" date in Settings is now set in one place and shown in each site's language, so future price updates don't need retranslating. +- **Fixed** automatic updates now only install the `everyalt-.zip` attached to a GitHub release. If a release is ever published without it, sites skip that release instead of installing GitHub's source zip, which lacks the update checker and would have silently stopped future updates. ### 1.1.0 - **Accessibility (WCAG 2.1 AA).** A full review of every screen, with all failures fixed: