bots-garden/sidekickspublic Fork
⑂ v1.1.0
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 74ac365 · on v1.1.0 · k33g · 4d ago
0003-spike-choisir-la-stack-wails-et-frontend.yaml · 156 lines · 6.5 KBYAML Blame HistoryRaw
  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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 3
title: "Spike : choisir la stack Wails et frontend"
state: closed
author:
  name: k33g
  email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:01.000Z
updatedAt: 2026-10-29T09:30:00.000Z
labels:
  - "kind::spike"
  - "area::ui"
  - "priority::urgent"
  - "size::M"
milestone: "Initialize"
epic: "Specifications"
body: |
  ## Contexte
  Consignes techniques du draft [#1 — draft](.tickets/issues/0001-draft.yaml) : Go + Wails. Wails laisse le choix du framework frontend et il faut des briques non triviales : éditeur de code (Settings, fichiers), terminal, rendu Markdown avec coloration, layout à panels façon Zed.

  ## Pourquoi un spike
  - **Wails v2 (stable) ou v3 (multi-fenêtres, nouvelle API)** : décision structurante, coûteuse à changer après coup.
  - Les composants tiers dictent le framework : il vaut mieux choisir ceux-ci d'abord, puis le framework qui les intègre le mieux.
  - Le rendu « sobre et fancy » demandé dépend beaucoup de ces choix (thème, typo, panels redimensionnables).

  ## Candidats à évaluer (non exhaustif)
  | Besoin | Pistes |
  | --- | --- |
  | Framework | Svelte (léger, template Wails officiel), React, Vue |
  | Éditeur | CodeMirror 6 (léger, extensible, mode YAML), Monaco (lourd mais complet) |
  | Terminal | xterm.js + PTY côté Go (`creack/pty`) |
  | Markdown | markdown-it / marked + Shiki ou highlight.js |
  | Panels | split-panes / layout maison |

  ## Livrable
  ADR `docs/adr/0002-stack-ui.md` + un prototype jetable : une fenêtre Wails avec 2 panels redimensionnables, un CodeMirror YAML et un xterm.js branché sur un shell local.

  ## Critères d'acceptation
  - [ ] Version de Wails fixée et justifiée.
  - [ ] Framework frontend et librairies choisis, avec poids du bundle et licence.
  - [ ] Le prototype tourne sur le MacBook Air cible.
tasks:
  - id: 1
    title: "Comparer Wails v2 et v3 (stabilité, API events, multi-fenêtres)"
    state: closed
    priority: high
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 2
    title: "Comparer CodeMirror 6 et Monaco (poids, YAML, thèmes)"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 3
    title: "Valider xterm.js + PTY Go (creack/pty)"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 4
    title: "Choisir la lib Markdown + coloration compatible streaming"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 5
    title: "Choisir le framework frontend"
    state: closed
    priority: high
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 6
    title: "Prototype jetable : panels + éditeur + terminal"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 7
    title: "Rédiger l'ADR stack UI"
    state: closed
    priority: high
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T07:20:01.000Z
    updatedAt: 2026-10-29T08:51:00.000Z
    closedAt: 2026-10-29T08:51:00.000Z
  - id: 8
    title: "Lancer le prototype sur macOS (wails3 dev) et confirmer l'ADR 0002"
    state: closed
    priority: high
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T08:51:00.000Z
    updatedAt: 2026-10-29T09:30:00.000Z
    closedAt: 2026-10-29T09:30:00.000Z
comments:
  - id: 1
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T08:51:00.000Z
    body: |
      ## Résultat — décision prise, une vérification reste à faire sur macOS

      [ADR 0002 — UI stack](docs/adr/0002-ui-stack.md), prototype [spikes/wails-ui](spikes/wails-ui/README.md).

      - **Wails v3.0.0** (stable depuis le 26/10/2026) : services, événements typés, bindings TypeScript générés avec les commentaires Go, packaging macOS intégré.
      - **Svelte 5 + TypeScript**, **paneforge** (panels), **markdown-it + Shiki + DOMPurify**, **CodeMirror 6**, **xterm.js + creack/pty**.
      - Prototype compilé et lancé sous Linux (GTK4/WebKitGTK 6, Xvfb) : layout, streaming à 50 et 500 chunks/s (rendu une fois par frame), coloration pendant le streaming, HTML injecté non exécuté, vrai shell dans le terminal. Captures : `docs/spikes/ui/`.

      **Reste ouvert** : la sandbox n'a pas de SDK macOS. Le prototype doit être lancé sur le Mac (`cd spikes/wails-ui && wails3 dev`) — tâche ajoutée ci-dessous. L'issue reste ouverte jusque-là.
  - id: 2
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T09:05:00.000Z
    body: |
      Guide pas à pas pour la vérification sur Mac : [docs/fr/how-to/tester-la-milestone-initialize-sous-macos.md](docs/fr/how-to/tester-la-milestone-initialize-sous-macos.md) (EN : [docs/en/how-to/test-milestone-initialize-on-macos.md](docs/en/how-to/test-milestone-initialize-on-macos.md)). Les parties 4 et 5 couvrent cette issue ; elles expliquent aussi comment la fermer, ainsi que la milestone Initialize.
  - id: 3
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T09:30:00.000Z
    body: |
      ## Vérifié sur macOS — issue fermée

      Le propriétaire a déroulé le [guide de test macOS](docs/fr/how-to/tester-la-milestone-initialize-sous-macos.md) : `wails3 dev` et `wails3 package` fonctionnent (panels, streaming, coloration, terminal, éditeur, thèmes). Seul écart constaté : les boutons de fenêtre macOS recouvraient « CHANNELS » ; corrigé par une marge `--titlebar-inset` (38 px sous macOS, alignée sur `InvisibleTitleBarHeight`), à reprendre dans le vrai shell UI (#12).

      [ADR 0002](docs/adr/0002-ui-stack.md) confirmé.