- Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true to suppress Node 20 deprecation warnings
- Update README Contributing section with tag format and available tag descriptions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add `recommended` field to AddonInfo model (omitted from output when false)
- Rename `_load_repo_tags` to `_load_repo_config` to load all addon metadata
- Sort output: recommended addons first, then by stars descending
- Mark 5 initial recommended addons: zotero-pdf-translate, zotero-better-notes,
zotero-better-bibtex, jasminum, paper-chat-for-zotero
- Add 4 test cases for recommended field serialization and deserialization
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add `tags` field to AddonInfo model with serialization support
- Add `_load_repo_tags()` to CacheScraper to read tags from addon files
- Populate 160 addon files with curated tags using 8 categories:
ai, metadata, reader, notes, attachment, interface, integration, utility
- Add test cases for tags field in AddonInfo model
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously, releases cached with parse_success=False were never
re-attempted. Now "Download failed" entries are excluded from
checked tags so they get retried on the next run.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>