Tags like "zotero-plugin/v0.9.0" contain "/" which broke the download
filename path construction, causing the file write to target a
non-existent subdirectory.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use target="7.*" instead of "7.0" to match any version in the
major version series. This allows plugins with min=7.5.0 to still
appear in the Zotero 7 compatible list.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1. get_releases() now fetches all pages (up to 1000 releases)
2. Remove redundant _check_for_updates() that ran on every release
3. Only check update_url for the latest cached release via
_check_latest_release_update_url()
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use proper version comparison instead of just major version.
Now correctly handles cases like min=6.999 which should not be
compatible with Zotero 6 (since 6.0 < 6.999).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add update_url field to CachedRelease to persist update URL in cache
- Add get_latest_release() method to RepoCache for retrieving newest release
- Add _check_latest_release_update_url() to check for updates even when
no new GitHub releases exist
- Now checks update_url on every run, not just when parsing new releases
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Avoid unnecessary file modifications by only updating last_checked
when there are new releases added or old releases deleted.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>