* feat: first cut on ai suggestion system for title and summary
* feat: completion of titling/excerpt/slug-suggestion AI quick action
* feat: feeds use existing excerpts. also documentation.
---------
Co-authored-by: hugo <hugoms@me.com>
* fix: mixed up migrations
* feat: semantic similarity first take
* feat: semantic similarity first round of fixes
* feat: more work on making semantic similarity work properly
* feat: getPostBySlug for the AI
* feat: show similarity in post-link-insert-modal
* chore: remove done doc
---------
Co-authored-by: hugo <hugoms@me.com>
* Expose chat.analyzeMediaImage in Python API for batch image metadata generation
* Fix updateMedia losing linkedPostIds by reading existing sidecar before overwriting
* Also preserve author from sidecar when DB value is null (data drift)
* Extend MetadataDiffEngine to cover media, scripts, and templates
* Redesign MetadataDiffPanel: item-first view with field pills, filtering, and per-item multi-field diffs
* Fix task:progress startsWith crash (taskId not id) and nested button violation in field pills
* Populate field diffs for file-missing items and show fileMissing badge in UI
* feat: extended meta diff
* feat: meta diff als reconstructs orphans
* chore: updated documentation
---------
Co-authored-by: hugo <hugoms@me.com>
* feat: implementation of language detection
* run utility scripts in tasks
* fix: addiitonal fixes for background utilities
* feat: toast() also for utility scripts
---------
Co-authored-by: hugo <hugoms@me.com>