Files
q-blog/docs/RELEASE_NOTES_v0.2.0.md
greenflame089 0b100af686 Release v0.2.2
2025-08-22 07:28:42 -04:00

39 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Q-Blog v0.2.0 — Wiki Mode Canonical Selection
Date: 2025-08-22
Highlights
- Wiki Mode canonical selection: When multiple authors publish the same `BLOG_POST` identifier, the app now selects a single canonical revision to display based on blog settings.
- Per-blog settings cache: Efficiently resolves each blogs owner and wiki settings (`wikiEnabled`, `editorWhitelist`, `editorBlacklist`).
- Favorites and Subscriptions respect wiki mode: Lists deduplicate by identifier across names and pick the canonical author.
- Individual post view resolves canonical author when wiki is enabled before fetching content JSON.
- UI: Navbar search/filter and persistent Tile/List view toggle. Notifications consolidated in one place.
- Quality: Accessibility tests and stronger utility/unit coverage; minor code cleanup and worker URL fix.
Canonical selection rules
- Owner is always allowed (cannot be blocked by blacklist).
- Blacklist disallows others even if whitelisted; whitelist gates non-owners if non-empty.
- Among authorized authors: pick latest by `updatedAt`/`qdnUpdated`; owner wins ties; otherwise lowest id as last tiebreaker.
Implementation notes
- `utils/wiki.ts` implements `isAuthorized`, `canEdit`, and `selectCanonical`.
- `utils/wikiSettingsCache.ts` caches per-blog owner/settings, preferring metadata when available.
- `hooks/useFetchPosts.tsx` canonicalizes search results for feed, favorites, and subscriptions.
- `pages/BlogIndividualPost/BlogIndividualPost.tsx` selects the canonical author for the requested post.
Breaking changes
- None. Existing identifiers and endpoints are unchanged.
Fixes & cleanup
- Removed an unused web worker and fixed a BLOG_POST worker URL.
- Removed redundant local helper where a shared util exists.
Upgrade notes
- No migration steps required. Deploy as usual; v0.2.0 is compatible with prior data.