feat: TranscriptAnnotationContent + StorageMode (#19) #116

Merged
charles merged 3 commits from feat/19-stt-matrix-annotation into main 2026-04-06 02:08:54 +00:00
Owner

Closes #19

Changements

Nouveau : crates/fractal-stt/src/annotation.rs

  • StorageMode — enum LocalOnly (défaut) / MatrixAnnotation
  • TranscriptAnnotationContent — structure sérialisable représentant un événement de relation Matrix de type org.matrix.msc_stt.transcript
  • MatrixRelation — champ m.relates_to avec rel_type et event_id
  • TranscriptAnnotationContent::new(source_event_id, &transcript) — constructeur depuis un Transcript
  • TranscriptAnnotationContent::to_json() — sérialisation JSON pour envoi via client Matrix
  • Tests unitaires : round-trip, JSON valide, valeur par défaut de StorageMode

Modifié : crates/fractal-stt/src/extension.rs

  • Ajout de store_as_matrix_annotation: bool dans SttConfig (défaut false)
  • Le champ est loggué dans on_init pour visibilité
  • Le mode MatrixAnnotation est marqué TODO(MSC) dans le doc-comment : l'envoi effectif n'est pas implémenté en attendant la standardisation du MSC

Modifié : crates/fractal-stt/src/lib.rs

  • Ajout de pub mod annotation
  • Re-exports : StorageMode, TranscriptAnnotationContent

Note sur le mode MatrixAnnotation

Le champ store_as_matrix_annotation est présent dans la config et l'enum StorageMode::MatrixAnnotation est défini, mais l'envoi effectif de l'événement Matrix est marqué TODO(MSC) — il sera implémenté une fois le MSC correspondant standardisé. En attendant, seul le mode LocalOnly (cache SQLite, couvert par #7) est opérationnel.

Closes #19 ## Changements ### Nouveau : `crates/fractal-stt/src/annotation.rs` - `StorageMode` — enum `LocalOnly` (défaut) / `MatrixAnnotation` - `TranscriptAnnotationContent` — structure sérialisable représentant un événement de relation Matrix de type `org.matrix.msc_stt.transcript` - `MatrixRelation` — champ `m.relates_to` avec `rel_type` et `event_id` - `TranscriptAnnotationContent::new(source_event_id, &transcript)` — constructeur depuis un `Transcript` - `TranscriptAnnotationContent::to_json()` — sérialisation JSON pour envoi via client Matrix - Tests unitaires : round-trip, JSON valide, valeur par défaut de `StorageMode` ### Modifié : `crates/fractal-stt/src/extension.rs` - Ajout de `store_as_matrix_annotation: bool` dans `SttConfig` (défaut `false`) - Le champ est loggué dans `on_init` pour visibilité - Le mode `MatrixAnnotation` est marqué **TODO(MSC)** dans le doc-comment : l'envoi effectif n'est pas implémenté en attendant la standardisation du MSC ### Modifié : `crates/fractal-stt/src/lib.rs` - Ajout de `pub mod annotation` - Re-exports : `StorageMode`, `TranscriptAnnotationContent` ## Note sur le mode MatrixAnnotation Le champ `store_as_matrix_annotation` est présent dans la config et l'enum `StorageMode::MatrixAnnotation` est défini, mais l'envoi effectif de l'événement Matrix est marqué `TODO(MSC)` — il sera implémenté une fois le MSC correspondant standardisé. En attendant, seul le mode `LocalOnly` (cache SQLite, couvert par #7) est opérationnel.
feat(stt): add store_as_matrix_annotation field to SttConfig (#19)
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
3229522413
charles deleted branch feat/19-stt-matrix-annotation 2026-04-06 02:08:54 +00:00
Sign in to join this conversation.
No description provided.