The list row shows effectiveTags which merges real linkding tagNames with
AI-enriched aiTags. If a bookmark has only AI tags, the edit form was
appearing empty because it only seeded from tagNames. Now falls back to
aiTags when tagNames is empty.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Edit bookmark: full PATCH via swipe action or long-press context menu;
EditBookmarkView covers URL, title, description, tags, and unread toggle
- Offline cache: bookmarks persisted to ApplicationSupport JSON and shown
instantly on launch; cache is per-server, skipped when unread filter is on
- Unread filter: toolbar toggle sends ?unread=true to the API; title updates
to "Unread"; no stale-cache flash when toggling
- Extract normalizedURL and parsedTags into String+Helpers, removing three
copies of URL normalization and two of tag parsing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>