Pure, testable core of the prefill: payload + config -> flat values ready to lay down. What the machine does not know stays empty and is listed in aCompleter, never invented (no fake 00:00, no made-up coordinates). DTEND is exclusive (RFC 5545): a festival on the 18th-20th carries DTEND=21, so the end date must step back one day, in local components for all-day events. Without it, a wrong date reaches a moderated form. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
É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
- L'extension lit le calendrier Nextcloud via la session du navigateur (aucun mot de passe stocké).
- Sa page affiche les événements à venir et leur statut.
- Bouton Créer → ouvre le formulaire mairie pré-rempli ; tu relis, complètes (image à glisser à la main), puis envoies.
- Bouton Ignorer → marque l'événement (tag partagé, visible dans Nextcloud).
- 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) :
- Ouvrir
about:debugging→ Ce Firefox. - Charger un module complémentaire temporaire…
- Sélectionner
extension/manifest.json. - 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 undefinedalors 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
bunx web-ext lint --source-dir=extension
Documentation
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— choix d'architecture et leur pourquoi.CLAUDE.md— guide pour les agents qui implémentent.
Suivi
Backlog géré dans Piaire : http://localhost:3117/perso/project/echo-du-huit