managarten/apps/api/src/modules
Till JS 3357e88a1c feat(articles): new read-it-later module — save / read / highlight
Pocket-style module for saving arbitrary web URLs, extracting readable
content server-side via @mana/shared-rss (Readability + JSDOM), and
storing it AES-GCM encrypted in IndexedDB for offline reading.

M1 skeleton: Dexie v33 (articles, articleHighlights, articleTags),
crypto registry entries, module registration, app-registry entry with
orange icon, empty-state ListView. articleTags is a pure junction
into the existing globalTags system (appId 'tags') — same pattern as
noteTags, eventTags, placeTags.

M2 URL save + reader: POST /api/v1/articles/extract (one endpoint,
not two — client caches the preview payload to avoid a double
server fetch). AddUrlForm with scope-aware dedupe, DetailView with
ReaderView typography shell (serif/sans, light/sepia/dark, size
slider), auto-tracked reading progress with scroll restore.

M3 highlights: TreeWalker-based plain-text offset resolution
(lib/offsets.ts), highlights store, floating HighlightMenu with
create + edit modes, HighlightLayer orchestrator that wraps/unwraps
highlight spans whenever highlights or htmlVersion changes. Four
colours (yellow/green/blue/pink), optional notes, click-to-edit,
dark-mode-aware overlay colours.

Drive-by: removed stale 'pendingProposals' entry from the plaintext
allowlist — the table was dropped in Dexie v29 and the allowlist
audit was flagging it as a dead entry.

Plan: docs/plans/articles-module.md. M4 (tags + filter + progress),
M5 (news:type='saved' migration), M6 (AI tools), M7 (share target),
M8 (highlights view + stats) still open.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 16:20:23 +02:00
..
articles feat(articles): new read-it-later module — save / read / highlight 2026-04-21 16:20:23 +02:00
calendar feat(api): create unified API server with first 3 modules 2026-04-02 21:12:15 +02:00
chat refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
contacts refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
context feat(api): POST /api/v1/context/import-url — crawler + optional LLM summary 2026-04-15 14:24:19 +02:00
food refactor: rename nutriphi module to food (Essen) 2026-04-14 15:30:07 +02:00
guides refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
moodlit feat(api): port remaining 12 modules to unified API server 2026-04-02 21:34:08 +02:00
music refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
news refactor(shared-rss): extract RSS parsing + Readability into one package 2026-04-15 22:30:44 +02:00
news-research feat(news-research): RSS feed discovery, filter, and AI-context export 2026-04-15 22:31:07 +02:00
picture refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
plants refactor: rename nutriphi module to food (Essen) 2026-04-14 15:30:07 +02:00
presi refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
research refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
storage docs: update architecture comparison — 5/10 roadmap items done 2026-04-16 15:00:09 +02:00
todo refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
traces refactor: rename planta → plants, clean up codebase 2026-04-12 18:59:44 +02:00
wetter feat(wetter): add multi-model source comparison view 2026-04-17 13:57:05 +02:00
who feat(who): add character dossier system for staged fact disclosure 2026-04-10 17:40:16 +02:00