feat(ai): StreamingMessageTracker — mise à jour en place des réponses agent (#14) #118

Merged
charles merged 2 commits from feat/14-streaming-tracker into main 2026-04-06 02:09:13 +00:00
Owner

Closes #14

Changements

  • streaming.rs : StreamingMessageTracker + StreamState + StreamAction
    • start_tracking(event_id, agent_user_id) : enregistre un nouveau message agent
    • on_edit(original_event_id)Some(&StreamState) dans la fenêtre (< 30s), None sinon
    • complete(event_id) : marque la génération comme terminée
    • StreamState::is_stale() : > 5s sans edit → l'UI masque le curseur
    • StreamAction::UpdateInPlace { body, show_cursor } vs NormalEdit
    • prune() : nettoie les entrées terminées/expirées
    • 5 tests unitaires
  • lib.rs : expose StreamingMessageTracker, StreamState, StreamAction
Closes #14 ## Changements - `streaming.rs` : `StreamingMessageTracker` + `StreamState` + `StreamAction` - `start_tracking(event_id, agent_user_id)` : enregistre un nouveau message agent - `on_edit(original_event_id)` → `Some(&StreamState)` dans la fenêtre (< 30s), `None` sinon - `complete(event_id)` : marque la génération comme terminée - `StreamState::is_stale()` : > 5s sans edit → l'UI masque le curseur `▋` - `StreamAction::UpdateInPlace { body, show_cursor }` vs `NormalEdit` - `prune()` : nettoie les entrées terminées/expirées - 5 tests unitaires - `lib.rs` : expose `StreamingMessageTracker`, `StreamState`, `StreamAction`
feat(ai): expose StreamingMessageTracker, StreamState, StreamAction (#14)
Some checks failed
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
c524c10d30
charles deleted branch feat/14-streaming-tracker 2026-04-06 02:09:13 +00:00
Sign in to join this conversation.
No description provided.