mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
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> |
||
|---|---|---|
| .. | ||
| drizzle/research | ||
| scripts | ||
| src | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| drizzle.presi.config.ts | ||
| package.json | ||
| tsconfig.json | ||