events : journal d'evenements JSONL (issue #2) #17

Merged
bruno merged 1 commits from feat/events-ledger into main 2026-08-16 13:50:24 -04:00
Owner

🎯 Objectif

Implémente l'issue #2 : journal d'événements JSONL — la source de vérité pour les statistiques, sessions et agrégats projets (ROADMAP.md, axe 1).

closes #2

📦 Contenu

  • src/events.rs : Event, EventKind, EventLog (append-only, rotation mensuelle events-YYYYMM.jsonl, retry sur verrou Windows), lecture tolérante (parse_file, read_events, journal_files), env_keys (noms de variables uniquement — jamais les valeurs secrètes).
  • src/lib.rs : déclaration du module.
  • tests/fixtures/events-sample.jsonl : fixture rejouable (2 événements + 1 ligne corrompue).
  • tests/events_test.rs : 2 tests d'intégration.

✅ Critères d'acceptation

  • 6 tests unitaires : roundtrip, helpers de mois, append, lignes corrompues ignorées, lecture multi-mois + limite
  • fixture rejouable pour les tests de bout en bout
  • append O(1) par événement — aucune lecture du journal dans les commandes existantes (am list à chaud non impacté)
  • secrets hors du journal : env_keys ne stocke que les noms
  • suite complète : cargo test vert (105 tests)

📝 Note

L'instrumentation des commandes (start/stop/run/install…) est l'issue #3, qui dépend de celle-ci.

## 🎯 Objectif Implémente l'issue #2 : journal d'événements JSONL — la source de vérité pour les statistiques, sessions et agrégats projets (ROADMAP.md, axe 1). closes #2 ## 📦 Contenu - src/events.rs : Event, EventKind, EventLog (append-only, rotation mensuelle events-YYYYMM.jsonl, retry sur verrou Windows), lecture tolérante (parse_file, read_events, journal_files), env_keys (noms de variables uniquement — jamais les valeurs secrètes). - src/lib.rs : déclaration du module. - tests/fixtures/events-sample.jsonl : fixture rejouable (2 événements + 1 ligne corrompue). - tests/events_test.rs : 2 tests d'intégration. ## ✅ Critères d'acceptation - [x] 6 tests unitaires : roundtrip, helpers de mois, append, lignes corrompues ignorées, lecture multi-mois + limite - [x] fixture rejouable pour les tests de bout en bout - [x] append O(1) par événement — aucune lecture du journal dans les commandes existantes (am list à chaud non impacté) - [x] secrets hors du journal : env_keys ne stocke que les noms - [x] suite complète : cargo test vert (105 tests) ## 📝 Note L'instrumentation des commandes (start/stop/run/install…) est l'issue #3, qui dépend de celle-ci.
bruno added 1 commit 2026-08-16 13:50:04 -04:00
bruno merged commit 843c3e1278 into main 2026-08-16 13:50:24 -04:00
bruno deleted branch feat/events-ledger 2026-08-16 13:50:25 -04:00
Sign in to join this conversation.