Publication IA: - 4 templates (magazine, brief, essay, simple) avec CSS riche - Rewrite IA (article/exercises/tutorial/reference/mixed) - Modération avec timeout 12s + fallback safe - Quotas publish_enhance par tier (basic=2, pro=15, business=100) - Détection contenu stale (hash) - Migration DB publishedContent/publishedTemplate/publishedSourceHash Fixes: - cheerio v1.2: Element -> AnyNode (domhandler), decodeEntities cast - _isShared ajouté au type Note (champ virtuel serveur) - callout colors PDF export: extraction fonction pure testable - admin/published: guard note.userId null - Cmd+S fonctionne en mode dialog (pas seulement fullPage) i18n: - 23 clés publish* traduites dans les 15 locales - Extension Web Clipper: 13 locales mise à jour Tests: - callout-colors.test.ts (6 tests) - note-visible-in-view.test.ts (5 tests) - entitlements.test.ts + byok-entitlements.test.ts: mock usageLog + unstubAllEnvs - 199/199 tests passent Tracker: user-stories.md sync avec sprint-status.yaml
Memento Web Clipper — extension Chrome
Clipper web avec panneau latéral : le panneau reste ouvert pendant que vous surlignez du texte sur la page.
Langues
L’extension suit la langue de l’interface Chrome (chrome.i18n.getUILanguage) — 15 locales comme l’app Memento : de, en, es, fr, it, pt, nl, pl, ru, zh, ja, ko, ar, fa, hi.
Fichiers : extension/_locales/<lang>/messages.json. Régénération : node extension/i18n/generate-translations.cjs puis node extension/scripts/build-extension-locales.mjs.
Installation (dev)
- Chrome →
chrome://extensions - Mode développeur → Charger l’extension non empaquetée → dossier
memento-note/extension - Épingle l’icône Memento
Chrome 114+ requis (Side Panel API).
Instance Memento
- Dev : icône ⚙ → URL (
http://localhost:3000ou IP LAN) → Appliquer & reconnecter - Connectez-vous sur la même URL dans Chrome (Google OAuth)
- Production (build Store) : mettre
ALLOW_INSTANCE_CONFIG = falsedanssidepanel.js→ URLhttps://memento-note.comen dur, réglages masqués
Utilisation
- Ouvrez une page web normale (pas
chrome://) - Cliquez l’icône Memento → panneau latéral
- Choisissez le carnet (liste hiérarchique)
- Optionnel : surlignez du texte → Clipper la sélection (bouton sky)
- Ou Clipper cette page (article complet + IA)
- Ou Enregistrer le lien seul
- Aperçu : titre éditable, résumé, extrait, temps de lecture → Enregistrer dans Memento
Dépannage
| Problème | Solution |
|---|---|
| Carnets vides / 401 | Ouvrir Memento ↗ sur la même URL, connectez-vous |
localhost vs 127.0.0.1 |
Utilisez toujours la même URL partout (cookies session) |
| Pas de sélection | Rechargez la page après install extension ; surlignez sur la page, pas dans le panneau |
| Page Chrome système | Impossible — ouvrez un site http(s) normal |
Persan / RTL
Détection automatique dir / lang (ex. BBC Persian), aperçu RTL avec Vazirmatn.
APIs
GET /api/clip/notebooksPOST /api/clip/analyzePOST /api/clip/save