1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 22
title: "Invoquer un agent avec @ et autocomplétion"
state: closed
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
labels:
- "kind::feature"
- "area::ui"
- "citizen-ux"
- "priority::high"
- "size::M"
milestone: "M3 · Channels & multi-agents"
epic: "Channels & multi-agents"
related:
- 15
body: |
## Contexte
Draft [#1 — draft](.tickets/issues/0001-draft.yaml) : `@` affiche la liste des agents disponibles, Tab sélectionne (sauf si on continue d'écrire). La **1ʳᵉ invocation invite l'agent** dans le channel.
## Choix et justifications
- Repose sur le mécanisme de déclencheurs du composer ([#15 — Vue conversation et zone de saisie](.tickets/issues/0015-vue-conversation-et-zone-de-saisie.yaml)).
- Filtrage flou sur le nom et le titre (« gar » → Garfield).
- L'invitation est **visible** (message système « Garfield a rejoint le channel ») : le citizen user comprend qui l'écoute.
- On n'invite que les agents de la config ; un nom inconnu reste du texte.
## Critères d'acceptation
- [ ] `@` + Tab insère la mention ; continuer à taper filtre la liste.
- [ ] 1ʳᵉ mention → membership créé + message système.
- [ ] Navigation clavier (↑ ↓ Échap).
tasks:
- id: 1
title: "Popup de mentions avec filtrage"
state: closed
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 2
title: "Tab, ↑, ↓, Échap"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 3
title: "Invitation au premier appel"
state: closed
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 4
title: "Message système d'arrivée"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 5
title: "Rendu de la mention dans les messages"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:20.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
comments:
- id: 1
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T16:35:01.000Z
body: |
## Résultat
Popup après `@` dans le composer : agents filtrés sur nom et titre (préfixe, début de mot, puis lettres dans l'ordre : « gfd » → Garfield), ↑ ↓ pour naviguer, Tab ou Entrée pour choisir, Échap pour fermer. Une mention d'un agent qui n'est pas membre l'invite avant sa réponse, avec le message système « X joined the channel. » Les mentions d'agents connus sont mises en évidence dans les messages. Dans une conversation directe, `@` n'ouvre pas de popup (les mentions y sont du texte). Vérifié sous Linux (Xvfb).
|