Claude
e9ec8ae3a8
Notifications Web Push (+ manifeste PWA)
...
Reprise d'AJEAN : le serveur pousse une notification vers les navigateurs
abonnés, directement via leur service de push — donc app fermée et téléphone
verrouillé, là où une notification côté page ne peut rien (un onglet caché
relâche son flux SSE).
Deux déclencheurs : la fin d'un tour utilisateur (sauf interruption par le
bouton stop : celui qui a coupé est devant l'écran) et — ajout propre à Loki
— la fin d'une TÂCHE PLANIFIÉE, succès comme échec. C'est le cas qui compte
le plus : une tâche tourne justement quand personne ne regarde.
Clés VAPID générées à la première demande et rangées dans la base ;
abonnements persistés et purgés quand le service de push répond 404/410.
Corps de notification générique, sans extrait de réponse : elle transite par
Apple ou Google. /sw.js et /manifest.webmanifest sont servis à la racine
(un service worker doit venir de l'origine) ; le worker ne fait QUE recevoir
les push, sans cache — mettre l'UI en cache servirait une interface périmée
après une mise à jour de l'image.
Interrupteur dans Réglages → Mode agent, à armer sur chaque appareil. L'UI
dit ce qui manque plutôt que d'échouer : HTTPS requis, notifications
bloquées, ou iPhone à ajouter d'abord à l'écran d'accueil.
Nouvelle dépendance : github.com/SherClockHolmes/webpush-go (RFC 8291).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01K6CAgoLJzufeA8rZTSpSpY
2026-09-22 13:37:16 +00:00
..
2026-09-22 13:19:37 +00:00
2026-09-22 13:37:16 +00:00
2026-08-14 21:33:15 +00:00
2026-08-20 09:31:59 +00:00
2026-08-14 21:37:51 +00:00
2026-08-16 11:02:35 +00:00
2026-08-14 21:37:51 +00:00
2026-08-20 09:31:59 +00:00
2026-08-16 20:43:47 +00:00
2026-08-18 21:58:04 +02:00
2026-08-16 20:43:47 +00:00
2026-09-12 21:05:19 +00:00
2026-09-12 21:05:19 +00:00
2026-08-14 21:33:15 +00:00
2026-08-20 10:32:44 +00:00
2026-08-20 10:32:44 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-19 08:28:53 +02:00
2026-08-14 21:33:15 +00:00
2026-08-29 17:53:14 +02:00
2026-09-12 20:20:33 +00:00
2026-09-12 20:20:33 +00:00
2026-09-12 20:20:33 +00:00
2026-08-14 21:33:15 +00:00
2026-09-12 20:20:33 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-16 20:43:47 +00:00
2026-08-30 17:13:19 +02:00
2026-09-12 21:05:19 +00:00
2026-08-20 09:31:59 +00:00
2026-08-21 09:47:32 +02:00
2026-08-21 09:47:32 +02:00
2026-09-22 13:19:37 +00:00
2026-08-14 21:33:15 +00:00
2026-08-15 11:54:52 +00:00
2026-09-07 22:34:33 +02:00
2026-09-12 21:05:19 +00:00
2026-09-12 20:25:48 +00:00
2026-08-30 15:47:10 +02:00
2026-09-22 13:37:16 +00:00
2026-08-16 15:33:55 +00:00
2026-08-16 15:33:55 +00:00
2026-08-14 21:33:15 +00:00
2026-08-30 15:47:10 +02:00
2026-08-30 15:47:10 +02:00
2026-09-22 13:24:53 +00:00
2026-08-14 21:33:15 +00:00
2026-08-30 15:47:10 +02:00
2026-09-07 22:34:33 +02:00
2026-09-22 13:33:39 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:33:55 +02:00
2026-09-22 13:19:37 +00:00
2026-09-22 13:33:39 +00:00
2026-09-22 13:33:39 +00:00
2026-09-07 22:34:33 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:33:39 +00:00
2026-09-12 21:05:19 +00:00
2026-09-22 13:19:37 +00:00
2026-08-16 15:33:55 +00:00
2026-08-20 09:31:59 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:47:57 +00:00
2026-08-18 21:58:57 +02:00
2026-08-18 21:58:57 +02:00
2026-08-20 09:31:59 +00:00
2026-08-20 09:31:59 +00:00
2026-08-18 21:58:57 +02:00
2026-08-20 09:31:59 +00:00
2026-08-18 21:58:57 +02:00
2026-08-20 09:31:59 +00:00
2026-08-18 21:58:57 +02:00
2026-08-18 21:58:57 +02:00
2026-08-18 21:58:57 +02:00
2026-08-18 21:58:57 +02:00
2026-08-20 09:31:59 +00:00
2026-08-18 21:58:57 +02:00
2026-08-19 08:11:38 +02:00
2026-09-22 13:19:37 +00:00
2026-09-22 13:19:37 +00:00
2026-09-22 13:19:37 +00:00
2026-09-22 13:19:37 +00:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-18 08:56:32 +00:00
2026-08-18 08:56:32 +00:00
2026-09-22 13:33:39 +00:00
2026-08-20 08:49:09 +00:00
2026-08-20 08:49:09 +00:00
2026-08-16 19:45:43 +00:00
2026-08-16 19:45:43 +00:00
2026-08-14 21:33:15 +00:00
2026-09-12 21:05:19 +00:00
2026-09-12 21:05:19 +00:00
2026-08-15 14:36:04 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-18 21:58:57 +02:00
2026-08-20 09:31:59 +00:00
2026-08-18 10:53:09 +00:00
2026-08-17 10:06:14 +02:00
2026-08-17 10:06:14 +02:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:24:53 +00:00
2026-08-14 21:33:15 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:33 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-09-07 22:33:55 +02:00
2026-08-14 21:37:51 +00:00
2026-08-20 09:31:59 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:33 +02:00
2026-09-22 13:37:16 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-16 19:45:43 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:33:39 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-09-07 22:34:33 +02:00
2026-08-16 18:15:24 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-18 21:58:04 +02:00
2026-08-19 08:28:53 +02:00
2026-08-19 08:28:53 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-20 22:13:16 +02:00
2026-08-18 23:19:21 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:33:39 +00:00
2026-08-18 21:58:57 +02:00
2026-08-18 21:58:57 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:37:51 +00:00
2026-08-14 21:37:51 +00:00
2026-08-14 21:37:51 +00:00
2026-08-14 21:37:51 +00:00
2026-08-21 09:47:32 +02:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-15 11:07:45 +00:00
2026-08-20 09:31:59 +00:00
2026-08-20 09:31:59 +00:00
2026-09-22 13:37:16 +00:00
2026-08-20 09:31:59 +00:00
2026-09-22 13:33:39 +00:00
2026-08-20 09:31:59 +00:00
2026-09-22 13:33:39 +00:00
2026-09-22 13:33:39 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:33 +02:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:19:37 +00:00
2026-08-16 19:45:43 +00:00
2026-08-14 21:33:15 +00:00
2026-09-22 13:24:53 +00:00
2026-08-18 08:35:51 +00:00
2026-08-14 21:33:15 +00:00
2026-08-30 15:47:10 +02:00
2026-08-16 20:43:47 +00:00
2026-09-12 21:05:19 +00:00
2026-08-14 21:33:15 +00:00
2026-08-16 15:33:55 +00:00
2026-08-18 22:48:11 +02:00
2026-08-18 22:48:11 +02:00
2026-08-16 15:33:55 +00:00
2026-08-20 10:32:44 +00:00
2026-08-14 21:33:15 +00:00
2026-08-14 21:33:15 +00:00
2026-08-16 20:43:47 +00:00
2026-08-15 11:35:40 +00:00
2026-09-07 22:34:33 +02:00
2026-08-16 19:45:43 +00:00
2026-08-16 19:45:43 +00:00
2026-09-22 13:37:16 +00:00
2026-09-22 13:37:16 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:33 +02:00
2026-09-22 13:33:39 +00:00
2026-09-07 22:34:33 +02:00
2026-09-07 22:34:57 +02:00
2026-09-07 22:34:57 +02:00
2026-09-22 13:19:37 +00:00
2026-09-22 13:19:37 +00:00
2026-08-16 15:33:55 +00:00
2026-09-22 13:19:37 +00:00
2026-08-29 17:53:14 +02:00
2026-09-07 22:34:57 +02:00