- create scripts/autocomplete.py as always-on script with dictionary
management UI (dropdown, refresh, update, settings controls)
- move autocomplete settings from Settings > Extra Networks to hidden
options, controlled via script UI with JS config bridge
- remove early exit in autocomplete.js when no dictionaries enabled,
allowing dictionaries enabled via script UI to work without reload
- add id-based suffix matching to setHints.js for unique button hints
- add locale_en.json entries with tooltips for all autocomplete controls
- Remove remote manifest fetch from startup dropdown population;
list only locally available tag files via files_cache.list_files()
- Rename CLI utilities to tags-fetch, tags-prune, tags-manifest
- Replace create/destroy mirror div with persistent offscreen mirror
for caret position measurement
- Add ResizeObserver to reposition dropdown on textarea resize
- Add autocomplete-mirror classname to measurement div
Add endpoints for browsing, downloading, and deleting dicts hosted on
HuggingFace. Manifest is fetched and cached from the remote repo to
show available dicts with download status and version comparison.
- /dicts/remote GET: list available dicts from HF manifest
- /dicts/{name}/download POST: download dict from HF with atomic write
- /dicts/{name} DELETE: remove local copy and evict cache
- ItemDictRemote model with downloaded/update_available flags
- Exclude manifest.json from local dict listing in all scan paths
Tag dictionaries are lookup data, not model weights — place them
alongside cache.json and metadata.json in the data/ folder instead
of inside the models directory.