bots-garden/sidekickspublic Fork
⑂ v1.0.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. d580a32 · on v1.0.0 · k33g · 3d ago
0039-workspace-et-terminal-pour-les-sandboxes-sbx.yaml · 88 lines · 3.7 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
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 39
title: "Workspace et terminal pour les sandboxes sbx"
state: closed
author:
  name: k33g
  email: ph.charriere@gmail.com
createdAt: 2026-10-29T18:17:05.000Z
updatedAt: 2026-10-30T05:43:02.000Z
labels:
  - "kind::feature"
  - "area::workspace"
  - "priority::medium"
  - "size::M"
milestone: "M4 · Workspace des agents"
epic: "Workspace des agents"
related:
  - 28
  - 31
body: |
  ## Contexte
  M4 a livré le workspace (fichiers, changements, terminal) pour les agents **locaux** et **en conteneur** ([#28 — Abstraire le workspace](.tickets/issues/0028-abstraire-le-workspace-local-sandbox-sbx-contain.yaml), [ADR 0007](docs/adr/0007-agent-workspaces.md)). Pour un agent `runtime: {type: sbx}`, la vue indique « not supported yet ».

  ## Pourquoi un ticket à part
  La CLI `sbx` n'est pas disponible dans la sandbox de développement : impossible de vérifier comment y exécuter un shell et y lire des fichiers. Le propriétaire a choisi de ne pas écrire de code non testé.

  ## Périmètre
  - Établir, sur le Mac, la commande qui exécute une commande dans une sandbox (équivalent de `docker exec`, avec et sans TTY).
  - Implémenter `workspace.Sandbox` sur le modèle de `workspace.Container` (mêmes scripts POSIX), et le brancher dans `workspace.For`.
  - Faire passer la suite de tests de contrat (là où `sbx` est disponible).
  - Vérifier que fermer le terminal termine bien la session dans la sandbox.

  ## Critères d'acceptation
  - [ ] La vue d'un agent sbx montre ses fichiers et ouvre un terminal.
  - [ ] La suite de contrat passe sur une sandbox.
tasks:
  - id: 1
    title: "Établir la commande d'exécution dans une sandbox (TTY ou non)"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T18:17:05.000Z
    updatedAt: 2026-10-30T05:43:02.000Z
    closedAt: 2026-10-30T05:43:02.000Z
  - id: 2
    title: "Implémenter workspace.Sandbox"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T18:17:05.000Z
    updatedAt: 2026-10-30T05:43:02.000Z
    closedAt: 2026-10-30T05:43:02.000Z
  - id: 3
    title: "Terminal dans une sandbox sbx"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T18:17:05.000Z
    updatedAt: 2026-10-30T05:43:02.000Z
    closedAt: 2026-10-30T05:43:02.000Z
  - id: 4
    title: "Tests de contrat sur une sandbox"
    state: closed
    priority: medium
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-29T18:17:05.000Z
    updatedAt: 2026-10-30T05:43:02.000Z
    closedAt: 2026-10-30T05:43:02.000Z
comments:
  - id: 1
    author:
      name: k33g
      email: ph.charriere@gmail.com
    createdAt: 2026-10-30T05:43:02.000Z
    body: |
      ## Résultat — vérifié, issue fermée

      `sbx exec [-i|-it] <sandbox> …` se comporte comme `docker exec` : conteneurs et sandboxes partagent une seule implémentation, `workspace.Remote` (outil `docker` ou `sbx`), qui n'utilise que `exec`, `-i` et `-it` — le dossier et `TERM` sont réglés dans le script du shell. sbx monte le dossier de l'hôte au même chemin : `workspacePath` vaut par défaut `workspace`.

      Vérifié par le propriétaire sur `milo-sbx` : la suite de contrat complète (`SIDEKICKS_TEST_SBX=milo-sbx go test -run TestSandboxWorkspace ./internal/workspace`, 11/11), puis l'agent Milo dans l'interface (fichiers, terminal, conversation). Documentation : guides « Lancer un agent dans une sandbox sbx » et « … dans un conteneur Docker » (EN/FR), [ADR 0007](docs/adr/0007-agent-workspaces.md).