bots-garden/sidekickspublic Fork
⑂ main
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. 8ef4097 · on main · k33g · 3d ago
run-the-end-to-end-scenarios.md · 100 lines · 5.4 KBmarkdown
Blame HistoryOpen raw

How to run the end-to-end scenarios (v0.1)

This guide runs the six scenarios that validate a release with the real test agents (issue #34), then the checks of what v0.1 added. It assumes a Mac with mm, llmman running, the models of the four test agents pulled, and Sidekicks built from the release's tag (make package-macos, or make dev).

Two agents at most run at once (limits.maxRunningAgents: 2). Between two scenarios, unload every model, so each scenario starts cold:

scripts/agents.sh unload --all
scripts/agents.sh ps        # no model loaded

0. Prepare

  1. make install-test-config (the four test agents at the default location; the previous file is kept as a backup).
  2. Open Sidekicks. Under AGENTS: Alice, Bob, Riker, Garfield, all "stopped".
  3. Open the report below in a text editor, to fill it in as you go.

1. Alice — a simple conversation, Markdown, cancelling

  1. Click Alice (assistant), send: Donne un tableau markdown de 2 lignes (nom, rôle) puis un bloc de code Go qui affiche hello.
  2. Expected: the answer streams; a table and coloured Go code with Copy appear.
  3. Send: Écris un poème de 40 vers sur la mer. and click ■ Stop after a few lines.
  4. Expected: the answer stops and ends with "Answer stopped."; Alice goes back to "ready".

2. Alice + Bob — a multi-agent channel, routing, shared context

  1. Create a channel #e2e (⌘N). Send: @alice donne un prénom pour un chat roux.
  2. Expected: "Alice (assistant) joined the channel." then her answer with a name.
  3. Send: @bob que penses-tu du prénom proposé par Alice ?
  4. Expected: Bob joins and quotes the name Alice gave: he received the messages he had not seen.
  5. Send a message without any mention: expected, the last agent who spoke (Bob) answers.

3. Riker — tool calls, permissions

  1. Unload the models. Click Riker (tools), send: Crée le fichier e2e.txt contenant "ok", puis liste le dossier.
  2. Expected: a permission card in plain words. Click Allow once: the tool card turns ✓, e2e.txt is listed.
  3. Send: Supprime e2e.txt. Click Reject once.
  4. Expected: Riker says it could not; the file is still there (📂 → Files).

4. Garfield — slash commands and skills

  1. Unload the models. Click Garfield (translator), type /.
  2. Expected: "Asking Garfield (translator) for their commands…" then Garfield's commands and skills (idioms, styles…).
  3. Pick /idioms (Tab), add il pleut des cordes, send.
  4. Expected: the answer explains the idiom with an English equivalent.

5. Garfield + Bob — /garfield:command in a channel

  1. Unload the models. In #e2e, invite Garfield (+ Invite), then type /gar.
  2. Expected: /garfield:idioms, /garfield:styles… listed with their agent.
  3. Send /garfield:styles Bonjour à tous. Expected: only Garfield answers.
  4. Send @bob traduis la première version de Garfield en espagnol. Expected: Bob answers from Garfield's text.

6. Alice — restart and resume

  1. Quit Sidekicks (⌘Q) while nothing is answering. Reopen it.
  2. Expected: #e2e and the direct conversations are there with their messages; the agents are "stopped".
  3. In Alice's conversation, send: Quelle était ma première question ?
  4. Expected: Alice answers from the earlier exchange (her session was resumed, or the history was given back to her).

7. What v0.1 added

# Check Expected
7.1 mv ~/Library/Application\ Support/sidekicks ~/sidekicks-backup, open Sidekicks Welcome screen: logo, three steps, + Add my first agent
7.2 Add Alice with the assistant (program mm, arguments -acp -config agent.yaml, folder agents/alice) Her conversation opens; Settings shows her entry, the file's comments are kept
7.3 Add an agent whose program is nothere, start it (▶) "The program "nothere" cannot be found…", with Technical details folded
7.4 Add an agent in a container that does not exist, start it A sentence about the missing container
7.5 ⌘K, type ali, Enter; ⌘N; ⌘L; ⌘,; ⌘J; ⌘B; ⇧⌘N Each does what Keyboard shortcuts says
7.6 Tab through the window The focused element is always outlined
7.7 Open the .app installed from the .dmg from the Finder, start Alice It starts: mm is found without a full path (the shell's PATH)
7.8 Put the backup back: rm -r ~/Library/Application\ Support/sidekicks && mv ~/sidekicks-backup ~/Library/Application\ Support/sidekicks Your agents and history are back

Report

Copy this into a comment of issue #34 and fill it in:

## End-to-end report — Sidekicks <version>, <date>

Mac: <model, RAM>, macOS <version> · mm <version> · build: <dmg | make dev>

| # | Scenario | Result | Notes |
| --- | --- | --- | --- |
| 1 | Alice: conversation, Markdown, cancel | ✅ / ❌ | |
| 2 | Alice + Bob: channel, routing, shared context | ✅ / ❌ | |
| 3 | Riker: tools, allow / reject | ✅ / ❌ | |
| 4 | Garfield: / commands and skills | ✅ / ❌ | |
| 5 | Garfield + Bob: /garfield:command in a channel | ✅ / ❌ | |
| 6 | Alice: restart and resume | ✅ / ❌ | |
| 7 | v0.1 checks (7.1–7.8) | ✅ / ❌ | |

Models unloaded between scenarios: yes / no

See also

  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
# How to run the end-to-end scenarios (v0.1)

This guide runs the six scenarios that validate a release with the real test agents (issue #34), then the checks of what v0.1 added. It assumes a Mac with `mm`, llmman running, the models of the four test agents pulled, and Sidekicks built from the release's tag (`make package-macos`, or `make dev`).

Two agents at most run at once (`limits.maxRunningAgents: 2`). Between two scenarios, unload every model, so each scenario starts cold:

```bash
scripts/agents.sh unload --all
scripts/agents.sh ps        # no model loaded
```

## 0. Prepare

1. `make install-test-config` (the four test agents at the default location; the previous file is kept as a backup).
2. Open Sidekicks. Under **AGENTS**: Alice, Bob, Riker, Garfield, all "stopped".
3. Open the [report](#report) below in a text editor, to fill it in as you go.

## 1. Alice — a simple conversation, Markdown, cancelling

1. Click **Alice (assistant)**, send: `Donne un tableau markdown de 2 lignes (nom, rôle) puis un bloc de code Go qui affiche hello.`
2. Expected: the answer streams; a table and coloured Go code with **Copy** appear.
3. Send: `Écris un poème de 40 vers sur la mer.` and click **■ Stop** after a few lines.
4. Expected: the answer stops and ends with "Answer stopped."; Alice goes back to "ready".

## 2. Alice + Bob — a multi-agent channel, routing, shared context

1. Create a channel `#e2e` (**⌘N**). Send: `@alice donne un prénom pour un chat roux.`
2. Expected: "Alice (assistant) joined the channel." then her answer with a name.
3. Send: `@bob que penses-tu du prénom proposé par Alice ?`
4. Expected: Bob joins and quotes the name Alice gave: he received the messages he had not seen.
5. Send a message without any mention: expected, the last agent who spoke (Bob) answers.

## 3. Riker — tool calls, permissions

1. Unload the models. Click **Riker (tools)**, send: `Crée le fichier e2e.txt contenant "ok", puis liste le dossier.`
2. Expected: a permission card in plain words. Click **Allow once**: the tool card turns ✓, `e2e.txt` is listed.
3. Send: `Supprime e2e.txt.` Click **Reject once**.
4. Expected: Riker says it could not; the file is still there (📂 → Files).

## 4. Garfield — slash commands and skills

1. Unload the models. Click **Garfield (translator)**, type `/`.
2. Expected: "Asking Garfield (translator) for their commands…" then Garfield's commands and skills (`idioms`, `styles`…).
3. Pick `/idioms` (Tab), add `il pleut des cordes`, send.
4. Expected: the answer explains the idiom with an English equivalent.

## 5. Garfield + Bob — `/garfield:command` in a channel

1. Unload the models. In `#e2e`, invite Garfield (**+ Invite**), then type `/gar`.
2. Expected: `/garfield:idioms`, `/garfield:styles`… listed with their agent.
3. Send `/garfield:styles Bonjour à tous`. Expected: only Garfield answers.
4. Send `@bob traduis la première version de Garfield en espagnol.` Expected: Bob answers from Garfield's text.

## 6. Alice — restart and resume

1. Quit Sidekicks (⌘Q) while nothing is answering. Reopen it.
2. Expected: `#e2e` and the direct conversations are there with their messages; the agents are "stopped".
3. In Alice's conversation, send: `Quelle était ma première question ?`
4. Expected: Alice answers from the earlier exchange (her session was resumed, or the history was given back to her).

## 7. What v0.1 added

| # | Check | Expected |
| --- | --- | --- |
| 7.1 | `mv ~/Library/Application\ Support/sidekicks ~/sidekicks-backup`, open Sidekicks | Welcome screen: logo, three steps, **+ Add my first agent** |
| 7.2 | Add Alice with the assistant (program `mm`, arguments `-acp -config agent.yaml`, folder `agents/alice`) | Her conversation opens; Settings shows her entry, the file's comments are kept |
| 7.3 | Add an agent whose program is `nothere`, start it (▶) | "The program "nothere" cannot be found…", with **Technical details** folded |
| 7.4 | Add an agent in a container that does not exist, start it | A sentence about the missing container |
| 7.5 | ⌘K, type `ali`, Enter; ⌘N; ⌘L; ⌘,; ⌘J; ⌘B; ⇧⌘N | Each does what [Keyboard shortcuts](../reference/keyboard-shortcuts.md) says |
| 7.6 | Tab through the window | The focused element is always outlined |
| 7.7 | Open the `.app` installed from the `.dmg` **from the Finder**, start Alice | It starts: `mm` is found without a full path (the shell's PATH) |
| 7.8 | Put the backup back: `rm -r ~/Library/Application\ Support/sidekicks && mv ~/sidekicks-backup ~/Library/Application\ Support/sidekicks` | Your agents and history are back |

## Report

Copy this into a comment of issue #34 and fill it in:

```markdown
## End-to-end report — Sidekicks <version>, <date>

Mac: <model, RAM>, macOS <version> · mm <version> · build: <dmg | make dev>

| # | Scenario | Result | Notes |
| --- | --- | --- | --- |
| 1 | Alice: conversation, Markdown, cancel | ✅ / ❌ | |
| 2 | Alice + Bob: channel, routing, shared context | ✅ / ❌ | |
| 3 | Riker: tools, allow / reject | ✅ / ❌ | |
| 4 | Garfield: / commands and skills | ✅ / ❌ | |
| 5 | Garfield + Bob: /garfield:command in a channel | ✅ / ❌ | |
| 6 | Alice: restart and resume | ✅ / ❌ | |
| 7 | v0.1 checks (7.1–7.8) | ✅ / ❌ | |

Models unloaded between scenarios: yes / no
```

## See also

- [How to run the tests](run-the-tests.md) — the automated tests, with and without real agents
- [scripts/agents.sh](../reference/agents-script.md)
- [How to publish a release](publish-a-release.md)