Files
echo-du-huit/README.md
T
Pierre MartinandClaude Opus 4.8 59715a8d62 docs: warn that a manifest change needs a full reinstall
Firefox re-reads page scripts on every open but the manifest only at
install time. A "Reload" leaves the newest code running with the old
permission set, surfacing as `browser.<api> is undefined` despite a
correct manifest. This trap cost two test passes on T1; T2 adds a
CalDAV permission and would hit it next.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 12:37:37 +02:00

70 lines
2.9 KiB
Markdown

# Écho du Huit
Extension Firefox qui aide les bénévoles de **L'Atelier du Huit** (café associatif,
Cugnaux) à publier une **sélection** de leurs événements sur l'agenda de la mairie.
Source des événements : le calendrier Nextcloud du café.
Cible : le formulaire « Proposer un événement » du site de la mairie.
## Le besoin
Tous les événements du café ne vont pas sur le site de la mairie — seulement
certains. L'extension sert de **TODO list** : pour chaque événement à venir, on
voit s'il est *à faire*, *soumis*, *publié* (avec le lien direct) ou *ignoré*,
et on peut le pousser vers le formulaire mairie en un clic (pré-rempli, à
relire et envoyer soi-même).
## Comment ça marche
1. L'extension lit le calendrier Nextcloud via la **session du navigateur**
(aucun mot de passe stocké).
2. Sa page affiche les événements à venir et leur statut.
3. Bouton **Créer** → ouvre le formulaire mairie pré-rempli ; tu relis,
complètes (image à glisser à la main), puis envoies.
4. Bouton **Ignorer** → marque l'événement (tag partagé, visible dans Nextcloud).
5. Le statut **publié** est vérifié sur l'agenda public de la mairie.
## Installation (dev)
Extension non signée, chargée comme **module temporaire** (pas de build, pas de
runtime à installer) :
1. Ouvrir `about:debugging` → *Ce Firefox*.
2. *Charger un module complémentaire temporaire…*
3. Sélectionner `extension/manifest.json`.
4. Cliquer l'icône de la barre d'outils → la page de la liste s'ouvre dans un
onglet.
> ⚠️ Un module temporaire **disparaît au redémarrage de Firefox** : il faut le
> recharger via `about:debugging` à chaque session (comportement de dev attendu).
> 🔴 **Après toute modification de `manifest.json` (permission ajoutée…) :
> *Décharger* puis *Charger* le module. « Recharger » et F5 ne suffisent pas.**
> Firefox relit les **scripts** de la page à chaque ouverture, mais le
> **manifest** seulement **à l'installation** : on se retrouve sinon avec le code
> le plus récent et les **permissions figées de l'ancien**.
> Symptôme : `browser.<api> is undefined` alors que le manifest déclare bien la
> permission. Piège de **dev uniquement** (en module signé, les permissions
> déclarées sont accordées d'office) — mais il a déjà coûté deux passes de test.
>
> Pense aussi à **fermer les anciens onglets de la liste** avant de recharger :
> une page orpheline rend les clics inertes.
### Vérifier l'extension
```sh
bunx web-ext lint --source-dir=extension
```
## Documentation
- [`docs/RECHERCHE.md`](docs/RECHERCHE.md) — faits techniques vérifiés (CalDAV,
champs du formulaire, valeurs du dropdown thème, structure de l'agenda, cas
limites de l'ICS).
- [`docs/DECISIONS.md`](docs/DECISIONS.md) — choix d'architecture et leur pourquoi.
- [`CLAUDE.md`](CLAUDE.md) — guide pour les agents qui implémentent.
## Suivi
Backlog géré dans Piaire : http://localhost:3117/perso/project/echo-du-huit