All notable changes to this project will be documented in this file.
- Folder picker: pass folder ID (not folder object) to
folders.getSubFolders/ usefolders.query— fixes "Incorrect argument types" error. - Processed-tag detection now uses Thunderbird tag keys instead of display names.
- Settings save merges with existing values instead of wiping
processedTagKeyand other fields. - Tag application merges with existing message tags instead of replacing them.
moveToTrashaction completes viamessages.deleteor trash-folder fallback.
- Extension icons,
.webextensionignore, and leanweb-extbuild (dev files excluded). messagesTagsListandmessagesDeletepermissions.- Bulk classify wired in Options; Ollama fetch timeout; background
pinghandler. utils/folders.jsfor cross-account folder selection.
- Duplicate tag name prevention with warning when saving.
- "Import tags from Thunderbird" button.
- Visual "✓ in Thunderbird" indicator for tags that already exist natively.
- Right-click context menu: "AI Tagger: Run classification now" on messages (much better UX).
- Basic Rules / Actions system:
- Create rules with required tags (
allTagsAND condition). - "Move to folder" action supported.
- Create rules with required tags (
- Keywords are now saved and used by the LLM.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Keywords field for tags (comma-separated). These are sent to the LLM together with the name and description.
- Stronger use of tag name + keywords in classification prompt (optimized for Mistral 8B and similar small models).
- LLM prompt significantly updated to give more weight to the tag name and keywords (not only the description). This improves accuracy on 8B-class models.
- Separate Subject field in the Test Classification tab for more realistic testing.
- Automatic version sync between
package.jsonandmanifest.jsonon build. CHANGELOG.mdto track releases.
- Tag creation is now more robust: tries
browser.messages.tags.create()and gracefully falls back if the API is unavailable or the tag already exists. - Improved LLM prompt for better consistency across models (Llama, Mistral, etc.).
- Added
"messagesTags"permission so native Thunderbird tags can be created when supported. - Removed all inline
onclickhandlers to satisfy Thunderbird's strict Content Security Policy.
- Quotes (
") in tag descriptions are now properly preserved in the UI. npm version patchnow correctly produces versioned.zipfiles.- Background messaging reliability improved.
- Tags are always managed internally by the extension. Creation in Thunderbird's native tag list is best-effort and optional.
- Classification continues to work even if native tag creation fails.
- Initial scaffold with core one-LLM-call classification.
- Options page for managing tags and testing.
- Support for local Ollama.
- Basic priority + stopProcessing logic.