feat(privacy+extension): publier la page /privacy et préparer les builds Chrome/Firefox Store
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 5m49s
CI / Deploy production (on server) (push) Successful in 24s

- Nouvelle page /privacy bilingue (FR/EN) avec sélection par Accept-Language
  ou ?lang=, sections complètes (données collectées, IA/BYOK, RGPD, sécurité,
  contact). Style sombre aligné sur la landing (x.ai premium).
- Liens footer landing.footer.legal.* mis à jour vers /privacy dans les 15 locales.
- Extension Web Clipper rendue cross-browser :
  * background.js détecte chrome.sidePanel vs browser.sidebarAction
  * sidepanel.js ajoute un shim chrome<->browser pour Firefox
  * manifest.json inclut sidebar_action + browser_specific_settings.gecko
    + optional_host_permissions (Chrome les ignore)
- Script scripts/build-firefox.mjs pour produire un .xpi signé pour AMO,
  symétrique de build-chrome-store.mjs. Exclusion mutuelle des artefacts
  Chrome/Firefox pour éviter la cross-contamination.
- Branding corrigé : 176 occurrences de 'Momento' -> 'Memento' dans le
  bundle de traductions embarqué.
- Version bumpée 0.3.1 -> 0.4.0.
This commit is contained in:
Antigravity
2026-07-18 09:00:44 +00:00
parent 88a7d2ad0a
commit a7c15e9fc3
70 changed files with 5550 additions and 3464 deletions

View File

@@ -10,12 +10,22 @@ Fichiers : `extension/_locales/<lang>/messages.json`. Régénération : `node ex
## Installation (dev)
1. Chrome`chrome://extensions`
### Chrome
1. `chrome://extensions`
2. **Mode développeur****Charger lextension non empaquetée** → dossier `memento-note/extension`
3. Épingle licône Memento
> Chrome **114+** requis (Side Panel API).
### Firefox
```bash
# Avec web-ext (https://extensionworkshop.com/)
npx web-ext run --source-dir memento-note/extension
```
Ou via `about:debugging`**Ce Firefox****Charger un module temporaire** → sélectionner `manifest.json`.
> Firefox **115+** requis (MV3 + sidebarAction).
## Instance Memento
- **Dev** : icône ⚙ → URL (`http://localhost:3000` ou IP LAN) → **Appliquer & reconnecter**
@@ -45,6 +55,30 @@ Fichiers : `extension/_locales/<lang>/messages.json`. Régénération : `node ex
Détection automatique `dir` / `lang` (ex. BBC Persian), aperçu RTL avec Vazirmatn.
## Builds production
Deux scripts produisent des paquets prêts à publier :
```bash
# Chrome Web Store (zip)
node extension/scripts/build-chrome-store.mjs
# → memento-note/extension/memento-web-clipper-chrome-store.zip (~44 Ko, 27 fichiers)
# Firefox Add-ons (xpi)
node extension/scripts/build-firefox.mjs
# → memento-note/extension/memento-web-clipper-firefox.xpi (~44 Ko, 27 fichiers)
```
Chaque build :
- Verrouille `ALLOW_INSTANCE_CONFIG = false` (URL prod en dur)
- Restreint les `host_permissions` à `https://memento-note.com/*`
- Génère les PNG d'icônes depuis `public/icons/icon-{192,512}.svg`
- Exclut les fichiers internes (`i18n/`, `diagnose.js`, `test-sidepanel.html`, etc.)
Différences manifest :
- **Chrome** : `side_panel` (Side Panel API Chrome 114+)
- **Firefox** : `sidebar_action` + `browser_specific_settings.gecko` (Firefox 115+)
## APIs
- `GET /api/clip/notebooks`