The list page now parses the calendar feed and renders each upcoming
event (title, date, place) in chronological order, with a button that
hands the event over to the town hall form.
Sorting, date formatting and the café fallback live in a pure
presentation module rather than in liste.js, which touches the DOM and
cannot be imported under bun test. The seam to the sibling task's
content script lives in transfert.js: a single storage slot, since a
content script running on the town hall site has no way to learn a uid.
The deposit is awaited before opening the tab, otherwise the content
script could read before the write lands.
Test timezone is pinned to Europe/Paris: date formatting is the core
logic here and would otherwise pass only on machines set to Paris.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a pure parser parserEvenements(flux, aujourdhui) backed by vendored
ical.js v2.2.1 (ESM, no build). Returns events at the frozen Event contract
{ uid, titre, description, lieu, debut, fin, categories, journeeEntiere }:
- register embedded VTIMEZONE before toJSDate (correct offset, e.g. Africa/Lagos)
- dedupe by UID, keep the master (RECURRENCE-ID exceptions ignored)
- filter to today and future (local start of day)
- coerce missing text fields to ""
Edge cases deferred to T3 (RRULE expansion, all-day hour) are documented.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Orchestrate the feed retrieval from the list page: loading / success
(event count) / actionable French error states with a Réessayer button
and an Ouvrir Nextcloud link when the session is missing.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Isolated CalDAV transport module that reuses the browser's Nextcloud
session (cookies, no stored password). Returns a discriminated result
and detects the HTTP-200 login-page redirect by sniffing the body for
BEGIN:VCALENDAR. compterEvenements counts real VEVENT line starts as the
T1 proof of life.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Load via about:debugging as a temporary add-on (extension/manifest.json),
note its volatility across restarts, and add the web-ext lint command.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Manifest V3 (Firefox keys: background.scripts, host_permissions), a
background event page that opens a standalone list page on toolbar
click, and the placeholder list page (HTML/CSS/JS vanilla). No build
step. extension.test.ts validates manifest shape and referenced files.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Extension Firefox pour publier une sélection d'événements du calendrier
Nextcloud de L'Atelier du Huit vers l'agenda de la mairie de Cugnaux.
- README : vue d'ensemble et installation
- CLAUDE.md : guide agent et contraintes structurantes
- docs/RECHERCHE.md : faits techniques vérifiés (CalDAV, formulaire, agenda, ICS)
- docs/DECISIONS.md : choix d'architecture et leur pourquoi
- package.json : Bun comme outil de dev minimaliste (pas de build au runtime)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>