feat: RoomAgentRegistry pour le support multi-agents (#25) #128
No reviewers
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!128
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/25-multi-agent"
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?
Closes #25.
Changements
crates/fractal-ai/src/multi_agent.rs(nouveau) :RoomAgentRegistryqui suit les agents présents dans chaque salon Matrix.on_member_event: réagit aux eventsjoin/leave/ban/kicket délègue la détection àAgentDetector.agents_in_room/agent_count/is_multi_agent: API de consultation.sidebar_label: renvoie"1 agent"ou"N agents"pour la vue sidebar.mention_suggestions(room_id, prefix): filtre les agents par préfixe (insensible à la casse) et renvoie des chaînes@user_id.parse_profile_hints: extraitis_botetis_openclawdepuis le JSON de profil sans dépendance supplémentaire.crates/fractal-ai/src/lib.rs(mise à jour) : ajout depub mod multi_agentetpub use multi_agent::RoomAgentRegistry.Adaptation par rapport au template de l'issue
Le template supposait
crate::agent::AgentDetectoravecAgentDetector::with_defaults(HashSet)etdetect(user_id, profile_json). La vraie API du crate utilisecrate::detector::AgentDetector::new(AgentDetectorConfig)etdetect(user_id, is_bot_flag: bool, is_openclaw: bool). Le module a été adapté en conséquence :crate::detectorau lieu decrate::agentprofile_jsonest parsé localement pour en extraire les flags booléens avant d'appelerdetector.detect()AgentDetector::new(AgentDetectorConfig::default())et restent fonctionnellement identiques au cahier des chargesTests
8 tests unitaires dans
multi_agent::testscouvrent : salon vide, join/leave, multi-agent, utilisateur humain ignoré, suggestions de mention, flagis_botvia JSON de profil, et déduplication des joins.Pull request closed