[SETUP-02] Crate fractal-ext : trait Extension + EventBus + AppContext #72
Labels
No labels
module:M0-setup
module:M1-stt
module:M1-stt
module:M2-ai
module:M2-ai
module:M3-rich
module:M3-rich
module:M4-bridge
module:M4-bridge
module:M5-bonus
module:M5-bonus
module:setup
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:chore
type:chore
type:feature
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/my-fractal#72
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Fondation architecturale partagée par tous les modules M1–M5. Le crate
fractal-extdéfinit le contrat que chaque module doit implémenter (traitExtension) et le bus d'événements central (EventBus) permettant la communication entre les crates sans couplage fort.Critères d'acceptation
Extensiondéfini avec toutes ses méthodes :fn id(&self) -> &strfn name(&self) -> &strasync fn on_init(&mut self, ctx: &AppContext) -> Result<()>async fn on_sync_event(&self, event: &AnySyncEvent, ctx: &EventContext) -> Result<()>async fn on_command(&self, cmd: &Command, ctx: &CommandContext) -> Result<Option<CommandResult>>fn message_decorations(&self, event: &TimelineEvent) -> Vec<MessageDecoration>AppContext: accès à la session Matrix, au client matrix-rust-sdk, à la config globaleEventBus: enregistrement dynamique des extensions + dispatch des événements MatrixCommandRegistry: enregistrement dynamique des commandes/par les extensionsMessageDecoration,Command,CommandResult,EventContext,CommandContextNotes techniques
Send + Syncpour usage dans des contextes async multi-thread (tokio)fractal-stt: traitSttEngine+ typesAudioData/Transcript#73Fermé en doublon : ce travail a été réalisé dans la PR #76 (issue #2). La crate
fractal-extavec le traitExtension,EventBusetCommandRegistryest déjà mergée surmain.