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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 21
title: "Panel Channels : créer, renommer, supprimer"
state: closed
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T17:30:42.000Z
labels:
- "kind::feature"
- "area::ui"
- "citizen-ux"
- "priority::high"
- "size::M"
milestone: "M3 · Channels & multi-agents"
epic: "Channels & multi-agents"
related:
- 12
- 20
body: |
## Contexte
Draft [#1 — draft](.tickets/issues/0001-draft.yaml) : les conversations ont lieu dans des channels que l'utilisateur peut créer, modifier, supprimer.
## Choix
- Les channels créés dans l'UI sont stockés dans Pebble ([#20 — Persister channels et messages avec Pebble](.tickets/issues/0020-persister-channels-et-messages-avec-pebble.yaml)) ; ceux **déclarés dans le YAML** servent de modèles/présélections (le YAML reste la config, pas l'état). À confirmer avec l'ADR [#5 — Définir l'architecture et le modèle de données](.tickets/issues/0005-definir-l-architecture-et-le-modele-de-donnees.yaml).
- Suppression : confirmation explicite (perte d'historique), pas de suppression silencieuse.
- Badge de messages non lus.
## Critères d'acceptation
- [ ] CRUD complet depuis l'UI.
- [ ] Les membres (agents) du channel sont visibles.
tasks:
- id: 1
title: "Liste des channels dans le dock"
state: closed
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 2
title: "Créer et renommer"
state: closed
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 3
title: "Supprimer avec confirmation"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 4
title: "Afficher les agents membres"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 5
title: "Badge non lus"
state: closed
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:19.000Z
updatedAt: 2026-10-29T16:35:01.000Z
closedAt: 2026-10-29T16:35:01.000Z
- id: 6
title: "Vérifier les channels sur macOS (guide de test M3)"
state: closed
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T16:35:01.000Z
updatedAt: 2026-10-29T17:30:42.000Z
closedAt: 2026-10-29T17:30:42.000Z
comments:
- id: 1
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T16:35:01.000Z
body: |
## Résultat — à vérifier sur macOS
Panneau Channels : la liste des channels (badge des réponses non lues), **+ New channel** dessous, puis **Direct messages** ; survol → ✎ renommer (Entrée / Échap), 🗑 supprimer avec confirmation « Delete #nom and its whole history? ». Les membres sont dans l'en-tête du channel (× pour retirer, **+ Invite** pour inviter). Les channels déclarés dans le YAML sont créés au démarrage et au rechargement s'ils n'existent pas, puis vivent dans l'historique.
Vérifié sous Linux (Xvfb) avec Alice, Bob et Garfield. Reste la vérification sur Mac : [guide de test M3](docs/fr/how-to/tester-la-milestone-m3-sous-macos.md).
- id: 2
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T17:30:42.000Z
body: |
## Vérifié sur macOS — issue fermée
Le propriétaire a validé M3 sur son Mac (« tout semble être ok »), y compris les commandes proposées dès le premier `/` et le spinner pendant les réponses.
|