| Resto | CA HT | Cmds | Moy ticket | % livr. |
|---|---|---|---|---|
| CDN | €1 348.02 | 43 | €31.35 | 39.5% |
| FSH | — (fermé) | 0 | — | — |
| Groupe W24 | €1 348.02 | 43 | — | — |
Note: données Zelty Lun 8 disponibles ce matin (J+1). Mar 9 non ingéré encore (délai Zelty).
| Semaine | S (W24 partiel) | S-1 (W23) | Δ |
|---|---|---|---|
| CDN | €1 348.02 | €8 979.97 | -85% |
| FSH | — | €14 429.81 | -100% |
| Groupe | €1 348.02 | €23 409.78 | -94% |
Comparaison normale : W24 est à J+1 (1 jour), W23 avait 6 jours de service à ce stade.
| Heure Paris | Agent | Événement | Résultat |
|---|---|---|---|
| 04:00 | rekki-poll-tomorrow | 4 ordres traités pour livraison Jun 10 (Z14764995, Y14765303, U14765343, V14765396) | ✅ OK |
| 06:00 | justifs-sweeper | Fetch quotidien : fetch_sosh ✓, fetch_sfr ✓, fetch_uber ✓, fetch_free ✗ (19s), fetch_edenred ✗ (23s) | ⚠️ Partiel |
| 09:00–09:08 | stuart-watch | 5 scans initiaux — aucun job en attente détecté (state = 0 jobs) | ✅ OK |
| 09:00–09:04 | daily-kpi | Zelty 43486 bytes + Combo HR 23625 bytes → /kpi/2026-06-09.html (78134 bytes) | ✅ OK |
| 09:04 | daily-kpi | PDF 141537 bytes rendu et envoyé à James (WhatsApp DM) | ✅ OK |
| 10:00 | zelty-watch | Premier run : catchup 630 min (nuit), 0 orders Zelty (ingestion delay attendu) | ✅ Normal |
| 10:00 | combo-retard | Premier run : catchup 605 min (nuit), 28 shifts inspectés, 0 alertes | ✅ OK |
| 10:20–10:58 | stuart-watch | ÉCHEC CASCADE : choiseul #2 HTTP 422 "pickup_at is not valid" — 20 tentatives consécutives | 🔴 FAIL ×20 |
| 11:26 | rekki-poll-tomorrow | W14767799 traité pour Jun 10 | ✅ OK |
| 11:43 | rekki-poll-tomorrow | X14767932 traité + TRIGGER recap Jun 10 déclenché (Choiseul + Bastille ont commandé) | ✅ Trigger OK |
| 11:43 | rekki-recap-13h | 6 orders pour livraison Jun 10 → RECAP_2026-06-10.pdf (9679 bytes) | ✅ OK |
| 12:20 | rekki-recap-13h | Skip idempotent (recap déjà envoyé) | ✅ Skip |
| 21:00 | combo-retard | 1 alerte retard : employee aef09888 · shift 21h00 Paris | ⚠️ 1 retard |
| 21:35 | audit-yatai-92-soir | Scan groupe Labo 92 : médias trouvés → exit=0 | ✅ Media OK |
| 22:00 | zelty-watch | 0 orders inspectés toute la journée, api_fail_streak=0 (ingestion delay normal Mar) | ✅ Normal |
HTTP 422 RECORD_INVALID — pickup_at is not valid.pickup_at est calculé une fois en début de session (ex: 10:00 Paris). Les retries après 10:20 tentent de réserver avec un horaire déjà passé → l'API Stuart refuse.pickup_at = now + N min à chaque tentative de retry.
| Ref | Traité à (UTC) | Livraison | Statut |
|---|---|---|---|
| Z14764995 | 04:00:28 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated |
| Y14765303 | 04:00:29 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated |
| U14765343 | 04:00:30 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated |
| V14765396 | 04:00:31 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated |
| W14767799 | 09:26:39 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated |
| X14767932 | 09:43:18 | 2026-06-10 | ✅ WhatsApp + confirm + mark_integrated + TRIGGER RECAP |
Recap PDF Jun 10 généré à 11:43 Paris — 9 679 bytes. Choiseul + Bastille ont commandé les 2 à 11:43 Paris (dans la fenêtre 10h45-12h00).
Section : Remplacer les règles auto-appliquées incorrectes sur les jours fermés
Justification : W23 complet (Jun 1-7) est le premier jeu de données couvrant une semaine entière. Les règles précédentes (Lun/Mer/Jeu = fermé) étaient toutes des faux-négatifs zelty à 22h. 1 semaine complète = preuve suffisante.
### Calendrier service Yatai — données semaine complète (source W23, Jun 1-7 2026)
- **CDN** : ouvert **Lundi à Samedi**, fermé le Dimanche
- Lun 1/06: €771.96 (29 cmds) · Mar 2: €1 289.29 · Mer 3: €1 828.96 · Jeu 4: €1 234.31 · Ven 5: €1 246.59 · Sam 6: €1 593.22
- **FSH** : ouvert **Mardi à Samedi**, fermé Lundi et Dimanche
- Mar 2: €2 399.78 · Mer 3: €2 070.72 · Jeu 4: €2 881.16 · Ven 5: €1 992.56 · Sam 6: €3 206.17
- Zelty 0 orders à 22h ≠ fermé pour les jours Lun-Sam — toujours attendre KPI J+1 pour confirmation
- Règles incorrectes à supprimer : "Lundi = sans service", "Mercredi = sans service", "Jeudi = sans service"
Section : Ajouter dans section 8 (Open issues) ou section 5 (Agents)
Justification : Observé le 09/06/2026 : 20 échecs consécutifs sur "choiseul #2" après 10h20 Paris. Impact direct sur les livraisons.
### Bug stuart-watch : cascade "pickup_at is not valid" (depuis 2026-06-09)
- Symptôme : HTTP 422 RECORD_INVALID « pickup_at is not valid » sur toutes les retries après ~10h20 Paris
- Cause probable : `pickup_at` calculé une fois en début de session (ex: 10:00 Paris)
→ retries après expiration de l'horaire sont rejetés par l'API Stuart
- Observé : 09/06/2026 — 20 échecs × "choiseul #2" de 10:20 à 10:58 Paris
- Fix requis : recalculer `pickup_at = now + N_minutes` à chaque retry (pas une constante de session)
- Impact : 2ème coursier Choiseul potentiellement non réservé les jours avec cascade tardive
Section : Mise à jour section 8 (Open issues)
Justification : 5 jours consécutifs sans fix. Le backlog Pennylane augmente.
### Bug escalade : justifs-sweeper fetch_free + fetch_edenred (5 jours Jun 5-9)
- fetch_free (rc=1 ~19s) et fetch_edenred (rc=1 ~23s) échouent chaque nuit à 06h00 Paris
- Observé : 05/06 · 06/06 · 07/06 · 08/06 · 09/06 = 5 jours consécutifs
- Les autres fetchers (sosh, sfr, uber_eats, uber_gmail, gmail) OK
- Action requise : investiguer auth portails Free + Edenred (probable session expirée ou UI changée)