bots-garden/mini-mepublic Fork
⑂ 3b7d74c
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

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

Download ZIP

Tickets: Kronk provider (75), v1.0.6 moves, Auto improve epic

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
k33g committed 2026-11-11T08:58:12+01:00 Browse files
3b7d74c parent: 19e7162
modified .tickets/epics.yaml +11 -1
@@ -31,7 +31,7 @@ epics:
3131 state: open
3232 color: "#5319e7"
3333 - title: ToDo
34- state: open
34+ state: closed
3535 color: "#c2e0c6"
3636 - title: Questions
3737 state: open
@@ -67,3 +67,13 @@ epics:
6767 state: open
6868 color: "#a2eeef"
6969 description: MCP servers used by mini-me (connection, discovery, authentication)
70+ - title: Auto improve
71+ state: open
72+ color: "#d876e3"
73+ description: mini-me improving its own source code (with Claude and local models)
74+ - title: Search
75+ state: open
76+ color: "#5319e7"
77+ - title: Agent Identity
78+ state: open
79+ color: "#006b75"
@@ -31,7 +31,7 @@ epics:
31 state: open31 state: open
32 color: "#5319e7"32 color: "#5319e7"
33 - title: ToDo33 - title: ToDo
34- state: open34+ state: closed
35 color: "#c2e0c6"35 color: "#c2e0c6"
36 - title: Questions36 - title: Questions
37 state: open37 state: open
@@ -67,3 +67,13 @@ epics:
67 state: open67 state: open
68 color: "#a2eeef"68 color: "#a2eeef"
69 description: MCP servers used by mini-me (connection, discovery, authentication)69 description: MCP servers used by mini-me (connection, discovery, authentication)
70+ - title: Auto improve
71+ state: open
72+ color: "#d876e3"
73+ description: mini-me improving its own source code (with Claude and local models)
74+ - title: Search
75+ state: open
76+ color: "#5319e7"
77+ - title: Agent Identity
78+ state: open
79+ color: "#006b75"
modified .tickets/issues/0019-try-to-auto-improve-the-source-code-of-mini-me-w.yaml +2 -2
@@ -6,12 +6,12 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-17T13:22:40.786Z
9-updatedAt: 2026-10-06T13:05:39.475Z
9+updatedAt: 2026-11-11T06:51:08.000Z
1010 labels:
1111 - priority::low
1212 - kind::chore
1313 - enhancement
14-epic: Debug
14+epic: Auto improve
1515 body: |
1616 - Use the sessions' logs
1717 - Create a Claude Skill for this
@@ -6,12 +6,12 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-09-17T13:22:40.786Z8 createdAt: 2026-09-17T13:22:40.786Z
9-updatedAt: 2026-10-06T13:05:39.475Z9+updatedAt: 2026-11-11T06:51:08.000Z
10 labels:10 labels:
11 - priority::low11 - priority::low
12 - kind::chore12 - kind::chore
13 - enhancement13 - enhancement
14-epic: Debug14+epic: Auto improve
15 body: |15 body: |
16 - Use the sessions' logs16 - Use the sessions' logs
17 - Create a Claude Skill for this17 - Create a Claude Skill for this
modified .tickets/issues/0058-add-more-tools-to-the-sbx-template-redis-cli-to.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 58
33 title: Add more tools to the sbx template (redis, cli to parse source code ...)
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-01T04:39:22.452Z
9-updatedAt: 2026-10-06T13:13:18.155Z
9+updatedAt: 2026-11-11T06:53:19.908Z
1010 labels: []
1111 epic: ToDo
1212 body: ""
@@ -1,12 +1,12 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 582 id: 58
3 title: Add more tools to the sbx template (redis, cli to parse source code ...)3 title: Add more tools to the sbx template (redis, cli to parse source code ...)
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-01T04:39:22.452Z8 createdAt: 2026-10-01T04:39:22.452Z
9-updatedAt: 2026-10-06T13:13:18.155Z9+updatedAt: 2026-11-11T06:53:19.908Z
10 labels: []10 labels: []
11 epic: ToDo11 epic: ToDo
12 body: ""12 body: ""
renamed .tickets/issues/0069-create-mini-me-skills-to-search-some-specific-kn.yaml +4 -3
similarity index 77%
rename from .tickets/issues/0069-create-skills-to-search-some-specific-knowlege-o.yaml
rename to .tickets/issues/0069-create-mini-me-skills-to-search-some-specific-kn.yaml
@@ -1,14 +1,15 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 69
3-title: Create skills to search some specific knowlege on internet
3+title: Create mini me skills to search some specific knowlege on internet
44 state: open
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-02T09:26:19.729Z
9-updatedAt: 2026-10-20T07:43:15.320Z
9+updatedAt: 2026-11-11T06:55:34.384Z
1010 labels: []
11-epic: ToDo
11+milestone: v2.0.0
12+epic: Search
1213 related:
1314 - 104
1415 body: |
similarity index 77%
rename from .tickets/issues/0069-create-skills-to-search-some-specific-knowlege-o.yaml
rename to .tickets/issues/0069-create-mini-me-skills-to-search-some-specific-kn.yaml
@@ -1,14 +1,15 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 692 id: 69
3-title: Create skills to search some specific knowlege on internet3+title: Create mini me skills to search some specific knowlege on internet
4 state: open4 state: open
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-02T09:26:19.729Z8 createdAt: 2026-10-02T09:26:19.729Z
9-updatedAt: 2026-10-20T07:43:15.320Z9+updatedAt: 2026-11-11T06:55:34.384Z
10 labels: []10 labels: []
11-epic: ToDo11+milestone: v2.0.0
12+epic: Search
12 related:13 related:
13 - 10414 - 104
14 body: |15 body: |
modified .tickets/issues/0070-add-github-gitlab-other-identity-to-the-mini-me.yaml +2 -2
@@ -6,9 +6,9 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-02T14:22:29.427Z
9-updatedAt: 2026-10-06T13:11:38.195Z
9+updatedAt: 2026-11-11T06:57:56.200Z
1010 labels: []
11-epic: Questions
11+epic: Agent Identity
1212 body: ""
1313 tasks: []
1414 comments: []
@@ -6,9 +6,9 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-02T14:22:29.427Z8 createdAt: 2026-10-02T14:22:29.427Z
9-updatedAt: 2026-10-06T13:11:38.195Z9+updatedAt: 2026-11-11T06:57:56.200Z
10 labels: []10 labels: []
11-epic: Questions11+epic: Agent Identity
12 body: ""12 body: ""
13 tasks: []13 tasks: []
14 comments: []14 comments: []
modified .tickets/issues/0075-add-kronk-provider.yaml +325 -7
@@ -1,15 +1,333 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 75
3-title: Add Gronk provider
3+title: Add Kronk provider
44 state: open
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-06T03:58:37.611Z
9-updatedAt: 2026-11-01T21:05:08.000Z
10-labels: []
11-milestone: v2.0.0
9+updatedAt: 2026-11-11T07:00:31.000Z
10+labels:
11+ - kind::feature
12+ - priority::medium
13+milestone: v1.0.6
1214 epic: Providers (LLM Engine)
13-body: ""
14-tasks: []
15-comments: []
15+related:
16+ - 62
17+body: |
18+ ## Context
19+
20+ [Kronk](https://www.kronkai.com/) ([ardanlabs/kronk](https://github.com/ardanlabs/kronk))
21+ is a local inference server written in Go by Ardan Labs. It embeds llama.cpp
22+ through yzma, without a llama-server process. `kronk server start` serves an
23+ OpenAI-compatible API (plus Anthropic `/v1/messages`) on `127.0.0.1:11435`.
24+
25+ Add it as an mm provider, `provider: kronk`. It is a new entry of the
26+ `openaiCompat` registry (`internal/engine/openai_compat.go`), like dmr,
27+ llamacpp, llmman and ollama: no new wire protocol. Only the
28+ server-specific parts are new: the probe, pull and unload.
29+
30+ ## What the Kronk manual says (to be measured, not trusted)
31+
32+ Sources: `.manual/chapter-08-model-server.md`, `chapter-09-api-endpoints.md`,
33+ `chapter-10-request-parameters.md`, `chapter-12-security-authentication.md`,
34+ `chapter-14-client-integration.md` in the Kronk repository (read on 2026-11-11, Kronk 1.33.2).
35+
36+ - **Install**: `brew install ardanlabs/kronk/kronk`, or
37+ `go install github.com/ardanlabs/kronk/cmd/kronk@latest`.
38+ - **Start**: `kronk server start`, or `--detach` (log in `~/.kronk/kronk.log`).
39+ - **Address**: `127.0.0.1:11435`, loopback only. `--api-host` or
40+ `KRONK_WEB_API_HOST` changes it. Note the port is 11435, next to Ollama's 11434.
41+ - **Base URL for mm**: `http://127.0.0.1:11435/v1`.
42+ - **Endpoints**:
43+ - `POST /v1/chat/completions`: SSE streaming, `tools` and `tool_choice`,
44+ streamed `tool_calls`, `stream_options.include_usage`;
45+ - `GET /v1/models`: installed models, not only the loaded ones;
46+ - `GET /v1/models/{model}`: 404 when absent;
47+ - `/v1/embeddings`, `/v1/rerank`, `/v1/tokenize`, `/v1/decide`.
48+ - **Model ids**: `provider/modelID`, e.g. `unsloth/Qwen3-0.6B-Q8_0`. `owner/repo:quant`
49+ and `owner/repo/file.gguf` pin a repository or a file.
50+ - **Pull**:
51+ - CLI: `kronk model pull unsloth/Qwen3-0.6B-Q8_0`;
52+ - API: `POST /v1/kronk/models/pull`, which streams progress.
53+ - **Unload**: `POST /v1/kronk/models/unload`.
54+ - **Loaded models**: `GET /v1/kronk/models/ps`.
55+ - **Model details and configuration**: `GET /v1/kronk/models/{model}`, which may
56+ give the context window. The window is also set per model in
57+ `~/.kronk/models/model_config.yaml` (`context-window`).
58+ - **Reasoning**:
59+ - streamed as `reasoning_content`, which mm already reads;
60+ - switched off with the top-level `enable_thinking: false`,
61+ `reasoning_effort`, or `chat_template_kwargs`, which is passed through
62+ to the template;
63+ - Kronk does not translate between these three switches.
64+ - **Auth**:
65+ - the default mode `open` checks no key, and any non-empty key works;
66+ - the modes `authenticated` and `full-protected` require
67+ `Authorization: Bearer <token>`;
68+ - the manual and its client examples use the variable `KRONK_TOKEN`.
69+ - **Errors**:
70+ - before the stream: JSON `{"code","message"}` with an HTTP status;
71+ - after SSE headers: reported inside the stream, with a 200 status.
72+ - **Not documented**:
73+ - whether a model that is installed but not loaded is loaded on the first request;
74+ - whether there is a llama.cpp-style `prompt_progress` (Kronk is not llama-server).
75+
76+ ## Scope
77+
78+ - Registry entry `kronk`:
79+ - `baseURL` `http://127.0.0.1:11435/v1`;
80+ - fallback `http://host.docker.internal:11435/v1`;
81+ - `apiKeyEnv: KRONK_TOKEN`, not required, with a dummy key.
82+ - `startHint`: `start it: kronk server start`. `notFoundHint`: `kronk model pull %s`.
83+ - Probe:
84+ - reachability;
85+ - model present in `/v1/models`;
86+ - context window from `/v1/kronk/models/{model}` if it gives one.
87+ - `thinkingOff`: the variant that Kronk actually obeys (measure it).
88+ - `pull` (`autoPull`) through `POST /v1/kronk/models/pull`.
89+ - `unload` through `POST /v1/kronk/models/unload`.
90+ - `progress` stays false unless a measurement shows `prompt_progress`.
91+ - Explain:
92+ - 401 or 403 names `KRONK_TOKEN`;
93+ - 404 says `kronk model pull`;
94+ - a connection refused gives the start hint.
95+ - `mm init`:
96+ - the provider is offered with its default URL;
97+ - presets if needed (`internal/agentinit/presets.yaml`).
98+ - Demo config in `demos/kronk/` with a small model that calls tools well.
99+
100+ Out of scope: the Anthropic `/v1/messages` route, `/v1/responses`, and Kronk's
101+ `/v1/decide`. Kronk's `/v1/decide` could later back mm's deciders, which would
102+ be a separate ticket.
103+
104+ ## Sandbox note
105+
106+ Kronk binds to loopback by default. From an sbx sandbox, the fallback
107+ `host.docker.internal:11435` only answers if the host started
108+ `kronk server start --api-host 0.0.0.0:11435`, and the policy allows
109+ `localhost:11435`. The how-to must say so.
110+
111+ ## Acceptance criteria
112+
113+ - `provider: kronk` with no `baseUrl` reaches a local `kronk server start`, and
114+ a turn with a tool call works end to end.
115+ - A model not installed is pulled when `autoPull` is on. Otherwise, the
116+ warning names `kronk model pull`.
117+ - The context window shown at start-up is correct, or labelled as unknown.
118+ - Compaction summary runs with thinking off.
119+ - Unit tests: a Resolve row, the probe against a fake server, pull, unload, Explain.
120+ - Docs EN and FR: a how-to, the provider reference row, `configuration.md`,
121+ the indexes, and the provider README / package diagram if touched.
122+tasks:
123+ - id: 1
124+ title: "Measure Kronk: /v1/models, model details (window), reasoning field and thinking switch, prompt_progress, 404/401 shapes, load on first request"
125+ state: closed
126+ priority: high
127+ author:
128+ name: k33g
129+ email: ph.charriere@gmail.com
130+ createdAt: 2026-11-11T06:24:34.000Z
131+ updatedAt: 2026-11-11T06:46:21.000Z
132+ closedAt: 2026-11-11T06:46:21.000Z
133+ - id: 2
134+ title: Registry entry kronk (URL, fallback, KRONK_TOKEN, hints, thinkingOff)
135+ state: closed
136+ priority: high
137+ author:
138+ name: k33g
139+ email: ph.charriere@gmail.com
140+ createdAt: 2026-11-11T06:24:34.000Z
141+ updatedAt: 2026-11-11T07:00:31.000Z
142+ closedAt: 2026-11-11T07:00:31.000Z
143+ - id: 3
144+ title: probeKronk (reachability, model installed, context window)
145+ state: closed
146+ priority: medium
147+ author:
148+ name: k33g
149+ email: ph.charriere@gmail.com
150+ createdAt: 2026-11-11T06:24:34.000Z
151+ updatedAt: 2026-11-11T07:00:31.000Z
152+ closedAt: 2026-11-11T07:00:31.000Z
153+ - id: 4
154+ title: pullKronk (POST /v1/kronk/models/pull, streamed progress) and unloadKronk (POST /v1/kronk/models/unload)
155+ state: closed
156+ priority: medium
157+ author:
158+ name: k33g
159+ email: ph.charriere@gmail.com
160+ createdAt: 2026-11-11T06:24:34.000Z
161+ updatedAt: 2026-11-11T07:00:31.000Z
162+ closedAt: 2026-11-11T07:00:31.000Z
163+ - id: 5
164+ title: "Tests: Resolve row, probe, pull, unload, Explain against a fake server"
165+ state: closed
166+ priority: high
167+ author:
168+ name: k33g
169+ email: ph.charriere@gmail.com
170+ createdAt: 2026-11-11T06:24:34.000Z
171+ updatedAt: 2026-11-11T07:00:31.000Z
172+ closedAt: 2026-11-11T07:00:31.000Z
173+ - id: 6
174+ title: mm init support (provider list, default URL comment, presets if needed)
175+ state: closed
176+ priority: low
177+ author:
178+ name: k33g
179+ email: ph.charriere@gmail.com
180+ createdAt: 2026-11-11T06:24:34.000Z
181+ updatedAt: 2026-11-11T07:00:31.000Z
182+ closedAt: 2026-11-11T07:00:31.000Z
183+ - id: 7
184+ title: Demo config demos/kronk/ with a small tool-calling model
185+ state: closed
186+ priority: low
187+ author:
188+ name: k33g
189+ email: ph.charriere@gmail.com
190+ createdAt: 2026-11-11T06:24:34.000Z
191+ updatedAt: 2026-11-11T07:00:31.000Z
192+ closedAt: 2026-11-11T07:00:31.000Z
193+ - id: 8
194+ title: Docs EN+FR (how-to incl. sandbox --api-host note, reference, configuration, indexes, diagram)
195+ state: closed
196+ priority: medium
197+ author:
198+ name: k33g
199+ email: ph.charriere@gmail.com
200+ createdAt: 2026-11-11T06:24:34.000Z
201+ updatedAt: 2026-11-11T07:00:31.000Z
202+ closedAt: 2026-11-11T07:00:31.000Z
203+ - id: 9
204+ title: Live check against Kronk on the Mac (tool call, window, compaction, pull, unload)
205+ state: open
206+ priority: high
207+ author:
208+ name: k33g
209+ email: ph.charriere@gmail.com
210+ createdAt: 2026-11-11T06:24:34.000Z
211+comments:
212+ - id: 1
213+ author:
214+ name: k33g
215+ email: ph.charriere@gmail.com
216+ createdAt: 2026-11-11T06:46:21.000Z
217+ body: |
218+ ## Measured on the Mac's Kronk from the sandbox (2026-11-11)
219+
220+ Model: `mradermacher/Qwopus3.5-4B-Coder.Q8_0`. Reached at
221+ `http://host.docker.internal:11435`; `127.0.0.1:11435` does not answer from
222+ the sandbox, so the fallback is needed.
223+
224+ **Where the manual is wrong or silent**
225+
226+ - **Error shape is OpenAI's, not the manual's**: `{"error":{"message","type","code"}}`.
227+ - Unknown model at chat: HTTP 404, `type: not_found_error`, `code: not_found`,
228+ message `... model not found: "foo/bar-Q4"`.
229+ - Id without a provider (`nope`): HTTP 400, `invalid_argument`,
230+ `must use provider/modelID or provider/modelID/profile`.
231+ - **Model ids contain a `/`, so the path must be encoded.**
232+ - `GET /v1/models/{id}` and `GET /v1/kronk/models/{id}` need `%2F`
233+ (`url.PathEscape`). A raw `/` gives 404 or 400.
234+ - **`/v1/models` also lists profiles**: `mradermacher/Qwopus3.5-4B-Coder.Q8_0/AGENT`.
235+ - **A model is loaded on the first request.** After an unload, the chat request
236+ answered 200 in 2.3 s. No pull is needed when the model is installed.
237+
238+ **Measured values for the implementation**
239+
240+ - **Context window**: `GET /v1/kronk/models/<encoded id>` gives
241+ `model_config.context-window` (131072 here).
242+ - GGUF metadata says `qwen35.context_length` 262144; the configured
243+ value is the one served.
244+ - **Loaded models**: `GET /v1/kronk/models/ps`.
245+ - Returns `[{id, status:"loaded", size, vram_total, kv_cache, ...}]`.
246+ - Returns `[]` when nothing is loaded.
247+ - **Reasoning**:
248+ - streamed as `delta.reasoning_content`;
249+ - `usage.completion_tokens_details.reasoning_tokens` is filled.
250+ - **Thinking off**:
251+ - `chat_template_kwargs: {enable_thinking: false}` works, so the
252+ existing `thinkingOffTemplate` fits;
253+ - top-level `enable_thinking: false` works too;
254+ - `reasoning_effort: "none"` is IGNORED (the model still reasons).
255+ - **`return_progress`: no `prompt_progress` chunk**, so `progress: false`.
256+ - **`stream_options.include_usage`** works: a last chunk with `choices: []`
257+ and the usage.
258+ - Extra fields in the usage: `tokens_per_second`,
259+ `time_to_first_token_ms`, `draft_*` (MTP speculative decoding).
260+ - **Streamed tool call** is standard OpenAI:
261+ - the first delta carries `id`, `name` and `arguments: ""`;
262+ - the next delta carries the arguments;
263+ - the last has `finish_reason: "tool_calls"`.
264+ - **Pull**: `POST /v1/kronk/models/pull {"model_url": "<id>"}`.
265+ - The server answers HTTP 200 with SSE `data: {status, progress?, meta?}`.
266+ - `progress` = `{src, current_bytes, total_bytes, mb_per_sec, complete}`.
267+ - **Success** = the last record has `status: "downloaded"` and `downloaded: true`.
268+ - **Failure** = the last record is only an error `status` (still HTTP 200),
269+ e.g. `download: resolve "nobody/x": ... not found at provider "nobody"`.
270+ - An already-installed model answers `-> already downloaded`, then `downloaded`.
271+ - **Unload**: `POST /v1/kronk/models/unload {"id": "<id>"}`.
272+ - Success: `{"status":"unloaded","id":...}`.
273+ - Not loaded: HTTP 404, `not_found`.
274+ - Streams still running: `failed_precondition`.
275+
276+ **Not measured**: the 401 and 403 shapes, which need an `authenticated`
277+ mode on the server.
278+
279+ Source for the pull and unload request types:
280+ `cmd/server/app/domain/toolapp/{model.go,models.go}` in ardanlabs/kronk.
281+ - id: 2
282+ author:
283+ name: k33g
284+ email: ph.charriere@gmail.com
285+ createdAt: 2026-11-11T07:00:31.000Z
286+ body: |
287+ ## Implemented on branch feature/kronk-provider
288+
289+ - `internal/engine/kronk.go`:
290+ - `probeKronk`: the key is sent; a 401 or 403 is a warning naming
291+ `$KRONK_TOKEN`; a missing model warns `kronk model pull`; the window
292+ comes from `/v1/kronk/models/<escaped id>`;
293+ - `pullKronk` and `readKronkPullStream`;
294+ - `unloadKronk`: a 404 means "nothing to unload".
295+ - The `kronk` registry entry is in `openai_compat.go`:
296+ - `thinkingOffTemplate`;
297+ - `progress: false`.
298+ - `mm init`:
299+ - `kronk` is in the list of providers and in the local servers it probes;
300+ - `kronkFacts` reads `/v1/kronk/models/<id>`: the metadata as strings,
301+ and `model_config.context-window` (the trained length when it is missing).
302+ - Tests:
303+ - `internal/engine/kronk_test.go`, against a fake Kronk replaying the
304+ measured shapes;
305+ - Resolve rows and DefaultURLs;
306+ - `TestKronkFacts`.
307+ - `go test ./...` passes.
308+ - Demo: `demos/kronk/agent.kronk.yaml` and `README.en.md` / `README.fr.md`.
309+ - Docs EN and FR:
310+ - a new page, how-to `run-with-kronk`;
311+ - updated: configuration (defaults, autoPull, unloadModels, sampling,
312+ summaryMaxTokens, firstTokenTimeout), cli, tools (`unload_model`),
313+ providers, mm-init, thinking-models, turn-reasoning-off,
314+ unload-a-model, run-in-a-docker-sandbox, the indexes.
315+
316+ ## Checked live from the sandbox (Kronk on the Mac)
317+
318+ - The banner shows `ctx: 131072 (/v1/kronk/models)`.
319+ - A turn with bash calls works.
320+ - `/unload` works twice: the second call answers "not loaded".
321+ - `mm init --provider kronk --check` works.
322+
323+ ## Still to check (task 9, on the Mac)
324+
325+ - A real download with `autoPull: true`.
326+ - A real compaction.
327+ - A protected Kronk (`KRONK_TOKEN`).
328+
329+ The quality gate (qlty) is not available in the sandbox.
330+
331+ Seen with Qwopus: a turn ended with the answer only in the reasoning
332+ (`⚠ empty answer`). That comes from the model, not from the provider.
333+
@@ -1,15 +1,333 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 752 id: 75
3-title: Add Gronk provider3+title: Add Kronk provider
4 state: open4 state: open
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-06T03:58:37.611Z8 createdAt: 2026-10-06T03:58:37.611Z
9-updatedAt: 2026-11-01T21:05:08.000Z9+updatedAt: 2026-11-11T07:00:31.000Z
10-labels: []10+labels:
11-milestone: v2.0.011+ - kind::feature
12+ - priority::medium
13+milestone: v1.0.6
12 epic: Providers (LLM Engine)14 epic: Providers (LLM Engine)
13-body: ""15+related:
14-tasks: []16+ - 62
15-comments: []17+body: |
18+ ## Context
19+
20+ [Kronk](https://www.kronkai.com/) ([ardanlabs/kronk](https://github.com/ardanlabs/kronk))
21+ is a local inference server written in Go by Ardan Labs. It embeds llama.cpp
22+ through yzma, without a llama-server process. `kronk server start` serves an
23+ OpenAI-compatible API (plus Anthropic `/v1/messages`) on `127.0.0.1:11435`.
24+
25+ Add it as an mm provider, `provider: kronk`. It is a new entry of the
26+ `openaiCompat` registry (`internal/engine/openai_compat.go`), like dmr,
27+ llamacpp, llmman and ollama: no new wire protocol. Only the
28+ server-specific parts are new: the probe, pull and unload.
29+
30+ ## What the Kronk manual says (to be measured, not trusted)
31+
32+ Sources: `.manual/chapter-08-model-server.md`, `chapter-09-api-endpoints.md`,
33+ `chapter-10-request-parameters.md`, `chapter-12-security-authentication.md`,
34+ `chapter-14-client-integration.md` in the Kronk repository (read on 2026-11-11, Kronk 1.33.2).
35+
36+ - **Install**: `brew install ardanlabs/kronk/kronk`, or
37+ `go install github.com/ardanlabs/kronk/cmd/kronk@latest`.
38+ - **Start**: `kronk server start`, or `--detach` (log in `~/.kronk/kronk.log`).
39+ - **Address**: `127.0.0.1:11435`, loopback only. `--api-host` or
40+ `KRONK_WEB_API_HOST` changes it. Note the port is 11435, next to Ollama's 11434.
41+ - **Base URL for mm**: `http://127.0.0.1:11435/v1`.
42+ - **Endpoints**:
43+ - `POST /v1/chat/completions`: SSE streaming, `tools` and `tool_choice`,
44+ streamed `tool_calls`, `stream_options.include_usage`;
45+ - `GET /v1/models`: installed models, not only the loaded ones;
46+ - `GET /v1/models/{model}`: 404 when absent;
47+ - `/v1/embeddings`, `/v1/rerank`, `/v1/tokenize`, `/v1/decide`.
48+ - **Model ids**: `provider/modelID`, e.g. `unsloth/Qwen3-0.6B-Q8_0`. `owner/repo:quant`
49+ and `owner/repo/file.gguf` pin a repository or a file.
50+ - **Pull**:
51+ - CLI: `kronk model pull unsloth/Qwen3-0.6B-Q8_0`;
52+ - API: `POST /v1/kronk/models/pull`, which streams progress.
53+ - **Unload**: `POST /v1/kronk/models/unload`.
54+ - **Loaded models**: `GET /v1/kronk/models/ps`.
55+ - **Model details and configuration**: `GET /v1/kronk/models/{model}`, which may
56+ give the context window. The window is also set per model in
57+ `~/.kronk/models/model_config.yaml` (`context-window`).
58+ - **Reasoning**:
59+ - streamed as `reasoning_content`, which mm already reads;
60+ - switched off with the top-level `enable_thinking: false`,
61+ `reasoning_effort`, or `chat_template_kwargs`, which is passed through
62+ to the template;
63+ - Kronk does not translate between these three switches.
64+ - **Auth**:
65+ - the default mode `open` checks no key, and any non-empty key works;
66+ - the modes `authenticated` and `full-protected` require
67+ `Authorization: Bearer <token>`;
68+ - the manual and its client examples use the variable `KRONK_TOKEN`.
69+ - **Errors**:
70+ - before the stream: JSON `{"code","message"}` with an HTTP status;
71+ - after SSE headers: reported inside the stream, with a 200 status.
72+ - **Not documented**:
73+ - whether a model that is installed but not loaded is loaded on the first request;
74+ - whether there is a llama.cpp-style `prompt_progress` (Kronk is not llama-server).
75+
76+ ## Scope
77+
78+ - Registry entry `kronk`:
79+ - `baseURL` `http://127.0.0.1:11435/v1`;
80+ - fallback `http://host.docker.internal:11435/v1`;
81+ - `apiKeyEnv: KRONK_TOKEN`, not required, with a dummy key.
82+ - `startHint`: `start it: kronk server start`. `notFoundHint`: `kronk model pull %s`.
83+ - Probe:
84+ - reachability;
85+ - model present in `/v1/models`;
86+ - context window from `/v1/kronk/models/{model}` if it gives one.
87+ - `thinkingOff`: the variant that Kronk actually obeys (measure it).
88+ - `pull` (`autoPull`) through `POST /v1/kronk/models/pull`.
89+ - `unload` through `POST /v1/kronk/models/unload`.
90+ - `progress` stays false unless a measurement shows `prompt_progress`.
91+ - Explain:
92+ - 401 or 403 names `KRONK_TOKEN`;
93+ - 404 says `kronk model pull`;
94+ - a connection refused gives the start hint.
95+ - `mm init`:
96+ - the provider is offered with its default URL;
97+ - presets if needed (`internal/agentinit/presets.yaml`).
98+ - Demo config in `demos/kronk/` with a small model that calls tools well.
99+
100+ Out of scope: the Anthropic `/v1/messages` route, `/v1/responses`, and Kronk's
101+ `/v1/decide`. Kronk's `/v1/decide` could later back mm's deciders, which would
102+ be a separate ticket.
103+
104+ ## Sandbox note
105+
106+ Kronk binds to loopback by default. From an sbx sandbox, the fallback
107+ `host.docker.internal:11435` only answers if the host started
108+ `kronk server start --api-host 0.0.0.0:11435`, and the policy allows
109+ `localhost:11435`. The how-to must say so.
110+
111+ ## Acceptance criteria
112+
113+ - `provider: kronk` with no `baseUrl` reaches a local `kronk server start`, and
114+ a turn with a tool call works end to end.
115+ - A model not installed is pulled when `autoPull` is on. Otherwise, the
116+ warning names `kronk model pull`.
117+ - The context window shown at start-up is correct, or labelled as unknown.
118+ - Compaction summary runs with thinking off.
119+ - Unit tests: a Resolve row, the probe against a fake server, pull, unload, Explain.
120+ - Docs EN and FR: a how-to, the provider reference row, `configuration.md`,
121+ the indexes, and the provider README / package diagram if touched.
122+tasks:
123+ - id: 1
124+ title: "Measure Kronk: /v1/models, model details (window), reasoning field and thinking switch, prompt_progress, 404/401 shapes, load on first request"
125+ state: closed
126+ priority: high
127+ author:
128+ name: k33g
129+ email: ph.charriere@gmail.com
130+ createdAt: 2026-11-11T06:24:34.000Z
131+ updatedAt: 2026-11-11T06:46:21.000Z
132+ closedAt: 2026-11-11T06:46:21.000Z
133+ - id: 2
134+ title: Registry entry kronk (URL, fallback, KRONK_TOKEN, hints, thinkingOff)
135+ state: closed
136+ priority: high
137+ author:
138+ name: k33g
139+ email: ph.charriere@gmail.com
140+ createdAt: 2026-11-11T06:24:34.000Z
141+ updatedAt: 2026-11-11T07:00:31.000Z
142+ closedAt: 2026-11-11T07:00:31.000Z
143+ - id: 3
144+ title: probeKronk (reachability, model installed, context window)
145+ state: closed
146+ priority: medium
147+ author:
148+ name: k33g
149+ email: ph.charriere@gmail.com
150+ createdAt: 2026-11-11T06:24:34.000Z
151+ updatedAt: 2026-11-11T07:00:31.000Z
152+ closedAt: 2026-11-11T07:00:31.000Z
153+ - id: 4
154+ title: pullKronk (POST /v1/kronk/models/pull, streamed progress) and unloadKronk (POST /v1/kronk/models/unload)
155+ state: closed
156+ priority: medium
157+ author:
158+ name: k33g
159+ email: ph.charriere@gmail.com
160+ createdAt: 2026-11-11T06:24:34.000Z
161+ updatedAt: 2026-11-11T07:00:31.000Z
162+ closedAt: 2026-11-11T07:00:31.000Z
163+ - id: 5
164+ title: "Tests: Resolve row, probe, pull, unload, Explain against a fake server"
165+ state: closed
166+ priority: high
167+ author:
168+ name: k33g
169+ email: ph.charriere@gmail.com
170+ createdAt: 2026-11-11T06:24:34.000Z
171+ updatedAt: 2026-11-11T07:00:31.000Z
172+ closedAt: 2026-11-11T07:00:31.000Z
173+ - id: 6
174+ title: mm init support (provider list, default URL comment, presets if needed)
175+ state: closed
176+ priority: low
177+ author:
178+ name: k33g
179+ email: ph.charriere@gmail.com
180+ createdAt: 2026-11-11T06:24:34.000Z
181+ updatedAt: 2026-11-11T07:00:31.000Z
182+ closedAt: 2026-11-11T07:00:31.000Z
183+ - id: 7
184+ title: Demo config demos/kronk/ with a small tool-calling model
185+ state: closed
186+ priority: low
187+ author:
188+ name: k33g
189+ email: ph.charriere@gmail.com
190+ createdAt: 2026-11-11T06:24:34.000Z
191+ updatedAt: 2026-11-11T07:00:31.000Z
192+ closedAt: 2026-11-11T07:00:31.000Z
193+ - id: 8
194+ title: Docs EN+FR (how-to incl. sandbox --api-host note, reference, configuration, indexes, diagram)
195+ state: closed
196+ priority: medium
197+ author:
198+ name: k33g
199+ email: ph.charriere@gmail.com
200+ createdAt: 2026-11-11T06:24:34.000Z
201+ updatedAt: 2026-11-11T07:00:31.000Z
202+ closedAt: 2026-11-11T07:00:31.000Z
203+ - id: 9
204+ title: Live check against Kronk on the Mac (tool call, window, compaction, pull, unload)
205+ state: open
206+ priority: high
207+ author:
208+ name: k33g
209+ email: ph.charriere@gmail.com
210+ createdAt: 2026-11-11T06:24:34.000Z
211+comments:
212+ - id: 1
213+ author:
214+ name: k33g
215+ email: ph.charriere@gmail.com
216+ createdAt: 2026-11-11T06:46:21.000Z
217+ body: |
218+ ## Measured on the Mac's Kronk from the sandbox (2026-11-11)
219+
220+ Model: `mradermacher/Qwopus3.5-4B-Coder.Q8_0`. Reached at
221+ `http://host.docker.internal:11435`; `127.0.0.1:11435` does not answer from
222+ the sandbox, so the fallback is needed.
223+
224+ **Where the manual is wrong or silent**
225+
226+ - **Error shape is OpenAI's, not the manual's**: `{"error":{"message","type","code"}}`.
227+ - Unknown model at chat: HTTP 404, `type: not_found_error`, `code: not_found`,
228+ message `... model not found: "foo/bar-Q4"`.
229+ - Id without a provider (`nope`): HTTP 400, `invalid_argument`,
230+ `must use provider/modelID or provider/modelID/profile`.
231+ - **Model ids contain a `/`, so the path must be encoded.**
232+ - `GET /v1/models/{id}` and `GET /v1/kronk/models/{id}` need `%2F`
233+ (`url.PathEscape`). A raw `/` gives 404 or 400.
234+ - **`/v1/models` also lists profiles**: `mradermacher/Qwopus3.5-4B-Coder.Q8_0/AGENT`.
235+ - **A model is loaded on the first request.** After an unload, the chat request
236+ answered 200 in 2.3 s. No pull is needed when the model is installed.
237+
238+ **Measured values for the implementation**
239+
240+ - **Context window**: `GET /v1/kronk/models/<encoded id>` gives
241+ `model_config.context-window` (131072 here).
242+ - GGUF metadata says `qwen35.context_length` 262144; the configured
243+ value is the one served.
244+ - **Loaded models**: `GET /v1/kronk/models/ps`.
245+ - Returns `[{id, status:"loaded", size, vram_total, kv_cache, ...}]`.
246+ - Returns `[]` when nothing is loaded.
247+ - **Reasoning**:
248+ - streamed as `delta.reasoning_content`;
249+ - `usage.completion_tokens_details.reasoning_tokens` is filled.
250+ - **Thinking off**:
251+ - `chat_template_kwargs: {enable_thinking: false}` works, so the
252+ existing `thinkingOffTemplate` fits;
253+ - top-level `enable_thinking: false` works too;
254+ - `reasoning_effort: "none"` is IGNORED (the model still reasons).
255+ - **`return_progress`: no `prompt_progress` chunk**, so `progress: false`.
256+ - **`stream_options.include_usage`** works: a last chunk with `choices: []`
257+ and the usage.
258+ - Extra fields in the usage: `tokens_per_second`,
259+ `time_to_first_token_ms`, `draft_*` (MTP speculative decoding).
260+ - **Streamed tool call** is standard OpenAI:
261+ - the first delta carries `id`, `name` and `arguments: ""`;
262+ - the next delta carries the arguments;
263+ - the last has `finish_reason: "tool_calls"`.
264+ - **Pull**: `POST /v1/kronk/models/pull {"model_url": "<id>"}`.
265+ - The server answers HTTP 200 with SSE `data: {status, progress?, meta?}`.
266+ - `progress` = `{src, current_bytes, total_bytes, mb_per_sec, complete}`.
267+ - **Success** = the last record has `status: "downloaded"` and `downloaded: true`.
268+ - **Failure** = the last record is only an error `status` (still HTTP 200),
269+ e.g. `download: resolve "nobody/x": ... not found at provider "nobody"`.
270+ - An already-installed model answers `-> already downloaded`, then `downloaded`.
271+ - **Unload**: `POST /v1/kronk/models/unload {"id": "<id>"}`.
272+ - Success: `{"status":"unloaded","id":...}`.
273+ - Not loaded: HTTP 404, `not_found`.
274+ - Streams still running: `failed_precondition`.
275+
276+ **Not measured**: the 401 and 403 shapes, which need an `authenticated`
277+ mode on the server.
278+
279+ Source for the pull and unload request types:
280+ `cmd/server/app/domain/toolapp/{model.go,models.go}` in ardanlabs/kronk.
281+ - id: 2
282+ author:
283+ name: k33g
284+ email: ph.charriere@gmail.com
285+ createdAt: 2026-11-11T07:00:31.000Z
286+ body: |
287+ ## Implemented on branch feature/kronk-provider
288+
289+ - `internal/engine/kronk.go`:
290+ - `probeKronk`: the key is sent; a 401 or 403 is a warning naming
291+ `$KRONK_TOKEN`; a missing model warns `kronk model pull`; the window
292+ comes from `/v1/kronk/models/<escaped id>`;
293+ - `pullKronk` and `readKronkPullStream`;
294+ - `unloadKronk`: a 404 means "nothing to unload".
295+ - The `kronk` registry entry is in `openai_compat.go`:
296+ - `thinkingOffTemplate`;
297+ - `progress: false`.
298+ - `mm init`:
299+ - `kronk` is in the list of providers and in the local servers it probes;
300+ - `kronkFacts` reads `/v1/kronk/models/<id>`: the metadata as strings,
301+ and `model_config.context-window` (the trained length when it is missing).
302+ - Tests:
303+ - `internal/engine/kronk_test.go`, against a fake Kronk replaying the
304+ measured shapes;
305+ - Resolve rows and DefaultURLs;
306+ - `TestKronkFacts`.
307+ - `go test ./...` passes.
308+ - Demo: `demos/kronk/agent.kronk.yaml` and `README.en.md` / `README.fr.md`.
309+ - Docs EN and FR:
310+ - a new page, how-to `run-with-kronk`;
311+ - updated: configuration (defaults, autoPull, unloadModels, sampling,
312+ summaryMaxTokens, firstTokenTimeout), cli, tools (`unload_model`),
313+ providers, mm-init, thinking-models, turn-reasoning-off,
314+ unload-a-model, run-in-a-docker-sandbox, the indexes.
315+
316+ ## Checked live from the sandbox (Kronk on the Mac)
317+
318+ - The banner shows `ctx: 131072 (/v1/kronk/models)`.
319+ - A turn with bash calls works.
320+ - `/unload` works twice: the second call answers "not loaded".
321+ - `mm init --provider kronk --check` works.
322+
323+ ## Still to check (task 9, on the Mac)
324+
325+ - A real download with `autoPull: true`.
326+ - A real compaction.
327+ - A protected Kronk (`KRONK_TOKEN`).
328+
329+ The quality gate (qlty) is not available in the sandbox.
330+
331+ Seen with Qwopus: a turn ended with the answer only in the reasoning
332+ (`⚠ empty answer`). That comes from the model, not from the provider.
333+
modified .tickets/issues/0090-agent-identity.yaml +2 -2
@@ -6,9 +6,9 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-16T15:37:32.062Z
9-updatedAt: 2026-11-01T20:44:45.000Z
9+updatedAt: 2026-11-11T06:57:30.799Z
1010 labels: []
11-epic: Questions
11+epic: Agent Identity
1212 body: |
1313 Des idées pour gérer cela ?
1414 avec l'existant (est ce que un seul useur peut avoir plusieurs identités sur GitHub par exemple)
@@ -6,9 +6,9 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-16T15:37:32.062Z8 createdAt: 2026-10-16T15:37:32.062Z
9-updatedAt: 2026-11-01T20:44:45.000Z9+updatedAt: 2026-11-11T06:57:30.799Z
10 labels: []10 labels: []
11-epic: Questions11+epic: Agent Identity
12 body: |12 body: |
13 Des idées pour gérer cela ?13 Des idées pour gérer cela ?
14 avec l'existant (est ce que un seul useur peut avoir plusieurs identités sur GitHub par exemple)14 avec l'existant (est ce que un seul useur peut avoir plusieurs identités sur GitHub par exemple)
modified .tickets/issues/0111-using-the-settings-guide-create-a-claude-skill.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 111
33 title: Using the settings guide create a Claude skill
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-21T04:27:19.433Z
9-updatedAt: 2026-11-01T20:44:45.000Z
9+updatedAt: 2026-11-11T06:52:11.123Z
1010 labels: []
1111 epic: Models
1212 body: |
@@ -1,12 +1,12 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1112 id: 111
3 title: Using the settings guide create a Claude skill3 title: Using the settings guide create a Claude skill
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-21T04:27:19.433Z8 createdAt: 2026-10-21T04:27:19.433Z
9-updatedAt: 2026-11-01T20:44:45.000Z9+updatedAt: 2026-11-11T06:52:11.123Z
10 labels: []10 labels: []
11 epic: Models11 epic: Models
12 body: |12 body: |
modified .tickets/issues/0113-mini-me-as-a-service-turn-mm-into-a-dedicated-ap.yaml +11 -3
@@ -1,13 +1,14 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 113
33 title: "Mini Me as a service: turn mm into a dedicated app, or expose it as services — ideas"
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-21T13:00:00.000Z
9-updatedAt: 2026-10-22T17:09:28.961Z
10-labels: []
9+updatedAt: 2026-11-11T07:02:05.377Z
10+labels:
11+ - wontfix
1112 epic: Mini Me as a service
1213 related:
1314 - 71
@@ -172,3 +173,10 @@ comments:
172173 user's prompt (like mm -p); structured output; streaming and
173174 non-streaming; a cancel API. The OpenAI-compatible HTTP façade
174175 (direction B.2) is the candidate: specified in ticket 114.
176+ - id: 2
177+ author:
178+ name: k33g
179+ email: ph.charriere@gmail.com
180+ createdAt: 2026-11-11T07:02:01.934Z
181+ body: |
182+ Use ACP instead
@@ -1,13 +1,14 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1132 id: 113
3 title: "Mini Me as a service: turn mm into a dedicated app, or expose it as services — ideas"3 title: "Mini Me as a service: turn mm into a dedicated app, or expose it as services — ideas"
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-21T13:00:00.000Z8 createdAt: 2026-10-21T13:00:00.000Z
9-updatedAt: 2026-10-22T17:09:28.961Z9+updatedAt: 2026-11-11T07:02:05.377Z
10-labels: []10+labels:
11+ - wontfix
11 epic: Mini Me as a service12 epic: Mini Me as a service
12 related:13 related:
13 - 7114 - 71
@@ -172,3 +173,10 @@ comments:
172 user's prompt (like mm -p); structured output; streaming and173 user's prompt (like mm -p); structured output; streaming and
173 non-streaming; a cancel API. The OpenAI-compatible HTTP façade174 non-streaming; a cancel API. The OpenAI-compatible HTTP façade
174 (direction B.2) is the candidate: specified in ticket 114.175 (direction B.2) is the candidate: specified in ticket 114.
176+ - id: 2
177+ author:
178+ name: k33g
179+ email: ph.charriere@gmail.com
180+ createdAt: 2026-11-11T07:02:01.934Z
181+ body: |
182+ Use ACP instead
modified .tickets/issues/0140-rephrase-the-question.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 140
33 title: Rephrase the question
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-24T04:11:57.315Z
9-updatedAt: 2026-10-24T04:15:54.392Z
9+updatedAt: 2026-11-11T06:49:35.456Z
1010 labels:
1111 - hooks
1212 epic: Demos
@@ -1,12 +1,12 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1402 id: 140
3 title: Rephrase the question3 title: Rephrase the question
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-24T04:11:57.315Z8 createdAt: 2026-10-24T04:11:57.315Z
9-updatedAt: 2026-10-24T04:15:54.392Z9+updatedAt: 2026-11-11T06:49:35.456Z
10 labels:10 labels:
11 - hooks11 - hooks
12 epic: Demos12 epic: Demos
modified .tickets/issues/0151-blog-post-to-explain-how-to-create-a-wasm-declar.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 151
33 title: Blog post to explain how to create a wasm declared tool
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-25T04:23:41.209Z
9-updatedAt: 2026-10-25T04:23:41.209Z
9+updatedAt: 2026-11-11T07:03:15.692Z
1010 labels: []
1111 epic: WASM Module
1212 body: ""
@@ -1,12 +1,12 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1512 id: 151
3 title: Blog post to explain how to create a wasm declared tool3 title: Blog post to explain how to create a wasm declared tool
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-25T04:23:41.209Z8 createdAt: 2026-10-25T04:23:41.209Z
9-updatedAt: 2026-10-25T04:23:41.209Z9+updatedAt: 2026-11-11T07:03:15.692Z
10 labels: []10 labels: []
11 epic: WASM Module11 epic: WASM Module
12 body: ""12 body: ""
modified .tickets/issues/0152-dev-team.yaml +6 -7
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 152
33 title: Dev team
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-25T04:44:30.351Z
9-updatedAt: 2026-10-25T12:30:00.000Z
9+updatedAt: 2026-11-11T06:49:12.500Z
1010 labels: []
1111 epic: Demos
1212 body: |+
@@ -64,7 +64,7 @@ tasks:
6464 createdAt: 2026-10-25T07:30:00.000Z
6565 updatedAt: 2026-10-25T07:30:00.000Z
6666 - id: 2
67- title: "Mesurer chaque agent seul (mm -p) sur des exemples réels, ajuster prompts et réglages"
67+ title: Mesurer chaque agent seul (mm -p) sur des exemples réels, ajuster prompts et réglages
6868 state: closed
6969 priority: none
7070 author:
@@ -73,7 +73,7 @@ tasks:
7373 createdAt: 2026-10-25T07:30:00.000Z
7474 updatedAt: 2026-10-25T07:30:00.000Z
7575 - id: 3
76- title: "Mesurer l'équipe de bout en bout via le coordinateur, vérifier le déchargement des modèles (/api/ps)"
76+ title: Mesurer l'équipe de bout en bout via le coordinateur, vérifier le déchargement des modèles (/api/ps)
7777 state: closed
7878 priority: none
7979 author:
@@ -82,7 +82,7 @@ tasks:
8282 createdAt: 2026-10-25T07:30:00.000Z
8383 updatedAt: 2026-10-25T07:30:00.000Z
8484 - id: 4
85- title: "Répondre à la question du modèle de décision (mesure du routage du coordinateur)"
85+ title: Répondre à la question du modèle de décision (mesure du routage du coordinateur)
8686 state: closed
8787 priority: none
8888 author:
@@ -91,7 +91,7 @@ tasks:
9191 createdAt: 2026-10-25T07:30:00.000Z
9292 updatedAt: 2026-10-25T07:30:00.000Z
9393 - id: 5
94- title: "README EN + FR avec diagrammes fancy et exemples d'utilisation ; ligne dans le README racine"
94+ title: README EN + FR avec diagrammes fancy et exemples d'utilisation ; ligne dans le README racine
9595 state: closed
9696 priority: none
9797 author:
@@ -473,4 +473,3 @@ comments:
473473
474474 Remarque : dev.team/go.mod n'était plus là (supprimé de ton côté ?) —
475475 je ne l'ai pas remis.
476-
@@ -1,12 +1,12 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1522 id: 152
3 title: Dev team3 title: Dev team
4-state: open4+state: closed
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-25T04:44:30.351Z8 createdAt: 2026-10-25T04:44:30.351Z
9-updatedAt: 2026-10-25T12:30:00.000Z9+updatedAt: 2026-11-11T06:49:12.500Z
10 labels: []10 labels: []
11 epic: Demos11 epic: Demos
12 body: |+12 body: |+
@@ -64,7 +64,7 @@ tasks:
64 createdAt: 2026-10-25T07:30:00.000Z64 createdAt: 2026-10-25T07:30:00.000Z
65 updatedAt: 2026-10-25T07:30:00.000Z65 updatedAt: 2026-10-25T07:30:00.000Z
66 - id: 266 - id: 2
67- title: "Mesurer chaque agent seul (mm -p) sur des exemples réels, ajuster prompts et réglages"67+ title: Mesurer chaque agent seul (mm -p) sur des exemples réels, ajuster prompts et réglages
68 state: closed68 state: closed
69 priority: none69 priority: none
70 author:70 author:
@@ -73,7 +73,7 @@ tasks:
73 createdAt: 2026-10-25T07:30:00.000Z73 createdAt: 2026-10-25T07:30:00.000Z
74 updatedAt: 2026-10-25T07:30:00.000Z74 updatedAt: 2026-10-25T07:30:00.000Z
75 - id: 375 - id: 3
76- title: "Mesurer l'équipe de bout en bout via le coordinateur, vérifier le déchargement des modèles (/api/ps)"76+ title: Mesurer l'équipe de bout en bout via le coordinateur, vérifier le déchargement des modèles (/api/ps)
77 state: closed77 state: closed
78 priority: none78 priority: none
79 author:79 author:
@@ -82,7 +82,7 @@ tasks:
82 createdAt: 2026-10-25T07:30:00.000Z82 createdAt: 2026-10-25T07:30:00.000Z
83 updatedAt: 2026-10-25T07:30:00.000Z83 updatedAt: 2026-10-25T07:30:00.000Z
84 - id: 484 - id: 4
85- title: "Répondre à la question du modèle de décision (mesure du routage du coordinateur)"85+ title: Répondre à la question du modèle de décision (mesure du routage du coordinateur)
86 state: closed86 state: closed
87 priority: none87 priority: none
88 author:88 author:
@@ -91,7 +91,7 @@ tasks:
91 createdAt: 2026-10-25T07:30:00.000Z91 createdAt: 2026-10-25T07:30:00.000Z
92 updatedAt: 2026-10-25T07:30:00.000Z92 updatedAt: 2026-10-25T07:30:00.000Z
93 - id: 593 - id: 5
94- title: "README EN + FR avec diagrammes fancy et exemples d'utilisation ; ligne dans le README racine"94+ title: README EN + FR avec diagrammes fancy et exemples d'utilisation ; ligne dans le README racine
95 state: closed95 state: closed
96 priority: none96 priority: none
97 author:97 author:
@@ -473,4 +473,3 @@ comments:
473 473
474 Remarque : dev.team/go.mod n'était plus là (supprimé de ton côté ?) —474 Remarque : dev.team/go.mod n'était plus là (supprimé de ton côté ?) —
475 je ne l'ai pas remis.475 je ne l'ai pas remis.
476-
renamed .tickets/issues/0172-nushell-script-client-over-acp-mm-from-a-shell-s.yaml +6 -5
similarity index 91%
rename from .tickets/issues/0172-nushell-script-client-over-acp.yaml
rename to .tickets/issues/0172-nushell-script-client-over-acp-mm-from-a-shell-s.yaml
@@ -6,9 +6,10 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-26T06:30:00.000Z
9-updatedAt: 2026-10-26T06:30:00.000Z
9+updatedAt: 2026-11-11T07:00:55.349Z
1010 labels:
1111 - kind::feature
12+milestone: v2.0.0
1213 epic: SDK
1314 related:
1415 - 167
@@ -42,7 +43,7 @@ tasks:
4243 email: ph.charriere@gmail.com
4344 createdAt: 2026-10-26T06:30:00.000Z
4445 - id: 2
45- title: "Get Nushell (sandbox or the user's machine)"
46+ title: Get Nushell (sandbox or the user's machine)
4647 state: open
4748 priority: none
4849 author:
@@ -58,7 +59,7 @@ tasks:
5859 email: ph.charriere@gmail.com
5960 createdAt: 2026-10-26T06:30:00.000Z
6061 - id: 4
61- title: "Permission callback (session/request_permission), refuse by default"
62+ title: Permission callback (session/request_permission), refuse by default
6263 state: open
6364 priority: none
6465 author:
@@ -66,7 +67,7 @@ tasks:
6667 email: ph.charriere@gmail.com
6768 createdAt: 2026-10-26T06:30:00.000Z
6869 - id: 5
69- title: "Examples (not streamed, streamed, cancelled, permission) run on llmman"
70+ title: Examples (not streamed, streamed, cancelled, permission) run on llmman
7071 state: open
7172 priority: none
7273 author:
@@ -74,7 +75,7 @@ tasks:
7475 email: ph.charriere@gmail.com
7576 createdAt: 2026-10-26T06:30:00.000Z
7677 - id: 6
77- title: "README EN + FR with measured results and limits"
78+ title: README EN + FR with measured results and limits
7879 state: open
7980 priority: none
8081 author:
similarity index 91%
rename from .tickets/issues/0172-nushell-script-client-over-acp.yaml
rename to .tickets/issues/0172-nushell-script-client-over-acp-mm-from-a-shell-s.yaml
@@ -6,9 +6,10 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-26T06:30:00.000Z8 createdAt: 2026-10-26T06:30:00.000Z
9-updatedAt: 2026-10-26T06:30:00.000Z9+updatedAt: 2026-11-11T07:00:55.349Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12+milestone: v2.0.0
12 epic: SDK13 epic: SDK
13 related:14 related:
14 - 16715 - 167
@@ -42,7 +43,7 @@ tasks:
42 email: ph.charriere@gmail.com43 email: ph.charriere@gmail.com
43 createdAt: 2026-10-26T06:30:00.000Z44 createdAt: 2026-10-26T06:30:00.000Z
44 - id: 245 - id: 2
45- title: "Get Nushell (sandbox or the user's machine)"46+ title: Get Nushell (sandbox or the user's machine)
46 state: open47 state: open
47 priority: none48 priority: none
48 author:49 author:
@@ -58,7 +59,7 @@ tasks:
58 email: ph.charriere@gmail.com59 email: ph.charriere@gmail.com
59 createdAt: 2026-10-26T06:30:00.000Z60 createdAt: 2026-10-26T06:30:00.000Z
60 - id: 461 - id: 4
61- title: "Permission callback (session/request_permission), refuse by default"62+ title: Permission callback (session/request_permission), refuse by default
62 state: open63 state: open
63 priority: none64 priority: none
64 author:65 author:
@@ -66,7 +67,7 @@ tasks:
66 email: ph.charriere@gmail.com67 email: ph.charriere@gmail.com
67 createdAt: 2026-10-26T06:30:00.000Z68 createdAt: 2026-10-26T06:30:00.000Z
68 - id: 569 - id: 5
69- title: "Examples (not streamed, streamed, cancelled, permission) run on llmman"70+ title: Examples (not streamed, streamed, cancelled, permission) run on llmman
70 state: open71 state: open
71 priority: none72 priority: none
72 author:73 author:
@@ -74,7 +75,7 @@ tasks:
74 email: ph.charriere@gmail.com75 email: ph.charriere@gmail.com
75 createdAt: 2026-10-26T06:30:00.000Z76 createdAt: 2026-10-26T06:30:00.000Z
76 - id: 677 - id: 6
77- title: "README EN + FR with measured results and limits"78+ title: README EN + FR with measured results and limits
78 state: open79 state: open
79 priority: none80 priority: none
80 author:81 author:
renamed .tickets/issues/0178-support-openai-s-responses-api-to-keep-reasoning.yaml +7 -6
similarity index 90%
rename from .tickets/issues/0178-support-openai-responses-api.yaml
rename to .tickets/issues/0178-support-openai-s-responses-api-to-keep-reasoning.yaml
@@ -1,14 +1,15 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 178
3-title: "Support OpenAI's Responses API, to keep reasoning and tools together (gpt-6-luna)"
3+title: Support OpenAI's Responses API, to keep reasoning and tools together (gpt-6-luna)
44 state: open
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-26T19:30:00.000Z
9-updatedAt: 2026-10-26T19:30:00.000Z
9+updatedAt: 2026-11-11T06:48:27.885Z
1010 labels:
1111 - kind::feature
12+milestone: v2.0.0
1213 epic: Providers (LLM Engine)
1314 related:
1415 - 176
@@ -60,7 +61,7 @@ tasks:
6061 email: ph.charriere@gmail.com
6162 createdAt: 2026-10-26T19:30:00.000Z
6263 - id: 2
63- title: "Check which OpenAI-compatible servers serve /v1/responses (vLLM, Ollama, llama-server…)"
64+ title: Check which OpenAI-compatible servers serve /v1/responses (vLLM, Ollama, llama-server…)
6465 state: open
6566 priority: none
6667 author:
@@ -76,7 +77,7 @@ tasks:
7677 email: ph.charriere@gmail.com
7778 createdAt: 2026-10-26T19:30:00.000Z
7879 - id: 4
79- title: "Reasoning items carried between turns; thoughts, usage, structuredOutput, compaction, max_output_tokens"
80+ title: Reasoning items carried between turns; thoughts, usage, structuredOutput, compaction, max_output_tokens
8081 state: open
8182 priority: none
8283 author:
@@ -84,7 +85,7 @@ tasks:
8485 email: ph.charriere@gmail.com
8586 createdAt: 2026-10-26T19:30:00.000Z
8687 - id: 5
87- title: "Tests against a fake /v1/responses server; a live check with a reasoning model"
88+ title: Tests against a fake /v1/responses server; a live check with a reasoning model
8889 state: open
8990 priority: none
9091 author:
@@ -92,7 +93,7 @@ tasks:
9293 email: ph.charriere@gmail.com
9394 createdAt: 2026-10-26T19:30:00.000Z
9495 - id: 6
95- title: "mm init and docs EN + FR"
96+ title: mm init and docs EN + FR
9697 state: open
9798 priority: none
9899 author:
similarity index 90%
rename from .tickets/issues/0178-support-openai-responses-api.yaml
rename to .tickets/issues/0178-support-openai-s-responses-api-to-keep-reasoning.yaml
@@ -1,14 +1,15 @@
1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.1 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2 id: 1782 id: 178
3-title: "Support OpenAI's Responses API, to keep reasoning and tools together (gpt-6-luna)"3+title: Support OpenAI's Responses API, to keep reasoning and tools together (gpt-6-luna)
4 state: open4 state: open
5 author:5 author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-26T19:30:00.000Z8 createdAt: 2026-10-26T19:30:00.000Z
9-updatedAt: 2026-10-26T19:30:00.000Z9+updatedAt: 2026-11-11T06:48:27.885Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12+milestone: v2.0.0
12 epic: Providers (LLM Engine)13 epic: Providers (LLM Engine)
13 related:14 related:
14 - 17615 - 176
@@ -60,7 +61,7 @@ tasks:
60 email: ph.charriere@gmail.com61 email: ph.charriere@gmail.com
61 createdAt: 2026-10-26T19:30:00.000Z62 createdAt: 2026-10-26T19:30:00.000Z
62 - id: 263 - id: 2
63- title: "Check which OpenAI-compatible servers serve /v1/responses (vLLM, Ollama, llama-server…)"64+ title: Check which OpenAI-compatible servers serve /v1/responses (vLLM, Ollama, llama-server…)
64 state: open65 state: open
65 priority: none66 priority: none
66 author:67 author:
@@ -76,7 +77,7 @@ tasks:
76 email: ph.charriere@gmail.com77 email: ph.charriere@gmail.com
77 createdAt: 2026-10-26T19:30:00.000Z78 createdAt: 2026-10-26T19:30:00.000Z
78 - id: 479 - id: 4
79- title: "Reasoning items carried between turns; thoughts, usage, structuredOutput, compaction, max_output_tokens"80+ title: Reasoning items carried between turns; thoughts, usage, structuredOutput, compaction, max_output_tokens
80 state: open81 state: open
81 priority: none82 priority: none
82 author:83 author:
@@ -84,7 +85,7 @@ tasks:
84 email: ph.charriere@gmail.com85 email: ph.charriere@gmail.com
85 createdAt: 2026-10-26T19:30:00.000Z86 createdAt: 2026-10-26T19:30:00.000Z
86 - id: 587 - id: 5
87- title: "Tests against a fake /v1/responses server; a live check with a reasoning model"88+ title: Tests against a fake /v1/responses server; a live check with a reasoning model
88 state: open89 state: open
89 priority: none90 priority: none
90 author:91 author:
@@ -92,7 +93,7 @@ tasks:
92 email: ph.charriere@gmail.com93 email: ph.charriere@gmail.com
93 createdAt: 2026-10-26T19:30:00.000Z94 createdAt: 2026-10-26T19:30:00.000Z
94 - id: 695 - id: 6
95- title: "mm init and docs EN + FR"96+ title: mm init and docs EN + FR
96 state: open97 state: open
97 priority: none98 priority: none
98 author:99 author:
modified .tickets/issues/0183-acp-use-the-client-s-fs-and-terminal-services-wh.yaml +2 -2
@@ -6,12 +6,12 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-31T16:39:23.000Z
9-updatedAt: 2026-11-01T20:42:22.000Z
9+updatedAt: 2026-11-11T00:28:50.000Z
1010 labels:
1111 - enhancement
1212 - kind::feature
1313 - tools
14-milestone: v2.0.0
14+milestone: v1.0.6
1515 epic: ACP integration
1616 body: |
1717 ## Context
@@ -6,12 +6,12 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-31T16:39:23.000Z8 createdAt: 2026-10-31T16:39:23.000Z
9-updatedAt: 2026-11-01T20:42:22.000Z9+updatedAt: 2026-11-11T00:28:50.000Z
10 labels:10 labels:
11 - enhancement11 - enhancement
12 - kind::feature12 - kind::feature
13 - tools13 - tools
14-milestone: v2.0.014+milestone: v1.0.6
15 epic: ACP integration15 epic: ACP integration
16 body: |16 body: |
17 ## Context17 ## Context
modified .tickets/issues/0194-better-understanding-of-the-code.yaml +2 -1
@@ -6,9 +6,10 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-11-07T04:16:22.000Z
9-updatedAt: 2026-11-07T04:16:44.000Z
9+updatedAt: 2026-11-11T00:29:35.282Z
1010 labels: []
1111 milestone: v1.0.6
12+epic: Documentation
1213 body: ""
1314 tasks:
1415 - id: 1
@@ -6,9 +6,10 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-11-07T04:16:22.000Z8 createdAt: 2026-11-07T04:16:22.000Z
9-updatedAt: 2026-11-07T04:16:44.000Z9+updatedAt: 2026-11-11T00:29:35.282Z
10 labels: []10 labels: []
11 milestone: v1.0.611 milestone: v1.0.6
12+epic: Documentation
12 body: ""13 body: ""
13 tasks:14 tasks:
14 - id: 115 - id: 1
modified .tickets/issues/0197-how-to-use-mini-me-to-help-making-suggestions-wh.yaml +2 -1
@@ -6,9 +6,10 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-11-07T08:02:50.274Z
9-updatedAt: 2026-11-07T08:02:50.274Z
9+updatedAt: 2026-11-11T00:30:34.700Z
1010 labels: []
1111 milestone: v1.0.6
12+epic: Documentation
1213 body: ""
1314 tasks: []
1415 comments: []
@@ -6,9 +6,10 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-11-07T08:02:50.274Z8 createdAt: 2026-11-07T08:02:50.274Z
9-updatedAt: 2026-11-07T08:02:50.274Z9+updatedAt: 2026-11-11T00:30:34.700Z
10 labels: []10 labels: []
11 milestone: v1.0.611 milestone: v1.0.6
12+epic: Documentation
12 body: ""13 body: ""
13 tasks: []14 tasks: []
14 comments: []15 comments: []
modified .tickets/issues/0202-acp-custom-extensions-exposed-by-the-client-as-a.yaml +2 -1
@@ -6,11 +6,12 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-11-10T21:56:01.000Z
9-updatedAt: 2026-11-10T23:30:00.000Z
9+updatedAt: 2026-11-11T00:30:03.268Z
1010 labels:
1111 - kind::feature
1212 - tools
1313 milestone: v1.0.6
14+epic: ACP integration
1415 body: |
1516 In ACP mode (`mm -acp`), the agent must **discover** the custom extensions
1617 the ACP client exposes, and **call them like any other tool**. Discovery
@@ -6,11 +6,12 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-11-10T21:56:01.000Z8 createdAt: 2026-11-10T21:56:01.000Z
9-updatedAt: 2026-11-10T23:30:00.000Z9+updatedAt: 2026-11-11T00:30:03.268Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12 - tools12 - tools
13 milestone: v1.0.613 milestone: v1.0.6
14+epic: ACP integration
14 body: |15 body: |
15 In ACP mode (`mm -acp`), the agent must **discover** the custom extensions16 In ACP mode (`mm -acp`), the agent must **discover** the custom extensions
16 the ACP client exposes, and **call them like any other tool**. Discovery17 the ACP client exposes, and **call them like any other tool**. Discovery
added .tickets/issues/0203-how-to-distribute-the-sdks.yaml +16 -0
new file mode 100644
@@ -0,0 +1,16 @@
1+# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2+id: 203
3+title: How to distribute the SDKs?
4+state: open
5+author:
6+ name: k33g
7+ email: ph.charriere@gmail.com
8+createdAt: 2026-11-11T06:59:37.515Z
9+updatedAt: 2026-11-11T07:00:02.502Z
10+labels:
11+ - priority::high
12+milestone: v2.0.0
13+epic: SDK
14+body: ""
15+tasks: []
16+comments: []
new file mode 100644
@@ -0,0 +1,16 @@
1+# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2+id: 203
3+title: How to distribute the SDKs?
4+state: open
5+author:
6+ name: k33g
7+ email: ph.charriere@gmail.com
8+createdAt: 2026-11-11T06:59:37.515Z
9+updatedAt: 2026-11-11T07:00:02.502Z
10+labels:
11+ - priority::high
12+milestone: v2.0.0
13+epic: SDK
14+body: ""
15+tasks: []
16+comments: []