bots-garden/mini-mepublic Fork
⑂ main
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

yolo mode on/off #23

Merged@k33g wants to merge feature/yolo into main
Merged as 58ba549b2dc1.
118 files changed
modified .tickets/epics.yaml +6 -0
@@ -12,3 +12,9 @@ epics:
1212 - title: Ideas
1313 state: open
1414 color: "#bfdadc"
15+ - title: Agent Memory
16+ state: open
17+ color: "#f9d0c4"
18+ - title: Providers (LLM Engine)
19+ state: open
20+ color: "#0e8a16"
@@ -12,3 +12,9 @@ epics:
12 - title: Ideas12 - title: Ideas
13 state: open13 state: open
14 color: "#bfdadc"14 color: "#bfdadc"
15+ - title: Agent Memory
16+ state: open
17+ color: "#f9d0c4"
18+ - title: Providers (LLM Engine)
19+ state: open
20+ color: "#0e8a16"
modified .tickets/issues/0013-activate-deactivate-yolo-mode.yaml +15 -3
@@ -1,13 +1,25 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 13
33 title: Activate / Deactivate YOLO mode
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-16T05:47:28.194Z
9-updatedAt: 2026-10-06T02:52:48.473Z
9+updatedAt: 2026-10-06T03:53:37.224Z
1010 labels: []
11-body: ""
11+related:
12+ - 59
13+body: |
14+ User's request (2026-10-06, FR): enable/disable yolo mode for tool
15+ execution through the config file. Default: yolo. With yolo off, every
16+ tool call asks: once, never, or for the whole session. Examples:
17+ `yolo: false` + `bashTool: true` (asks), `yolo: true` + `bashTool: true`,
18+ `yolo: true` + `bashTool: false` (bash disabled, other tools not
19+ necessarily). With `mmConfigs`, the main agent (the one holding
20+ mmConfigs) wins.
21+
22+ Implemented on branch `feature/yolo` (2026-10-06) — details in ticket
23+ 59's comment 2.
1224 tasks: []
1325 comments: []
@@ -1,13 +1,25 @@
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: 132 id: 13
3 title: Activate / Deactivate YOLO mode3 title: Activate / Deactivate YOLO mode
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-09-16T05:47:28.194Z8 createdAt: 2026-09-16T05:47:28.194Z
9-updatedAt: 2026-10-06T02:52:48.473Z9+updatedAt: 2026-10-06T03:53:37.224Z
10 labels: []10 labels: []
11-body: ""11+related:
12+ - 59
13+body: |
14+ User's request (2026-10-06, FR): enable/disable yolo mode for tool
15+ execution through the config file. Default: yolo. With yolo off, every
16+ tool call asks: once, never, or for the whole session. Examples:
17+ `yolo: false` + `bashTool: true` (asks), `yolo: true` + `bashTool: true`,
18+ `yolo: true` + `bashTool: false` (bash disabled, other tools not
19+ necessarily). With `mmConfigs`, the main agent (the one holding
20+ mmConfigs) wins.
21+
22+ Implemented on branch `feature/yolo` (2026-10-06) — details in ticket
23+ 59's comment 2.
12 tasks: []24 tasks: []
13 comments: []25 comments: []
modified .tickets/issues/0030-how-to-use-mini-me-with-claude.yaml +2 -1
@@ -6,8 +6,9 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-21T04:00:56.971Z
9-updatedAt: 2026-09-22T20:57:22.310Z
9+updatedAt: 2026-10-06T04:00:56.602Z
1010 labels: []
11+epic: Providers (LLM Engine)
1112 body: |
1213 ## Analysis (Claude, 2026-09-21 — not implemented)
1314
@@ -6,8 +6,9 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-09-21T04:00:56.971Z8 createdAt: 2026-09-21T04:00:56.971Z
9-updatedAt: 2026-09-22T20:57:22.310Z9+updatedAt: 2026-10-06T04:00:56.602Z
10 labels: []10 labels: []
11+epic: Providers (LLM Engine)
11 body: |12 body: |
12 ## Analysis (Claude, 2026-09-21 — not implemented)13 ## Analysis (Claude, 2026-09-21 — not implemented)
13 14
modified .tickets/issues/0031-how-to-use-mini-me-with-gemini.yaml +2 -1
@@ -6,8 +6,9 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-21T04:01:15.166Z
9-updatedAt: 2026-09-22T20:56:55.345Z
9+updatedAt: 2026-10-06T04:01:18.848Z
1010 labels: []
11+epic: Providers (LLM Engine)
1112 body: |
1213 ## Analysis (Claude, 2026-09-21 — not implemented)
1314
@@ -6,8 +6,9 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-09-21T04:01:15.166Z8 createdAt: 2026-09-21T04:01:15.166Z
9-updatedAt: 2026-09-22T20:56:55.345Z9+updatedAt: 2026-10-06T04:01:18.848Z
10 labels: []10 labels: []
11+epic: Providers (LLM Engine)
11 body: |12 body: |
12 ## Analysis (Claude, 2026-09-21 — not implemented)13 ## Analysis (Claude, 2026-09-21 — not implemented)
13 14
modified .tickets/issues/0033-invoke-another-mini-me.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 33
33 title: Invoke (another) Mini Me
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-21T04:48:03.596Z
9-updatedAt: 2026-09-29T06:25:43.079Z
9+updatedAt: 2026-10-06T03:55:11.169Z
1010 labels: []
1111 milestone: v0.3.0
1212 epic: Builtin tools
@@ -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: 332 id: 33
3 title: Invoke (another) Mini Me3 title: Invoke (another) Mini Me
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-09-21T04:48:03.596Z8 createdAt: 2026-09-21T04:48:03.596Z
9-updatedAt: 2026-09-29T06:25:43.079Z9+updatedAt: 2026-10-06T03:55:11.169Z
10 labels: []10 labels: []
11 milestone: v0.3.011 milestone: v0.3.0
12 epic: Builtin tools12 epic: Builtin tools
modified .tickets/issues/0034-anatolian-mini-me-s-orchestrator.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 34
33 title: Anatolian -> Mini Me(s) Orchestrator?
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-21T04:49:57.129Z
9-updatedAt: 2026-09-21T04:49:57.129Z
9+updatedAt: 2026-10-06T03:57:06.058Z
1010 labels: []
1111 epic: Ideas
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: 342 id: 34
3 title: Anatolian -> Mini Me(s) Orchestrator?3 title: Anatolian -> Mini Me(s) Orchestrator?
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-09-21T04:49:57.129Z8 createdAt: 2026-09-21T04:49:57.129Z
9-updatedAt: 2026-09-21T04:49:57.129Z9+updatedAt: 2026-10-06T03:57:06.058Z
10 labels: []10 labels: []
11 epic: Ideas11 epic: Ideas
12 body: ""12 body: ""
modified .tickets/issues/0040-better-list-of-detected-tools-at-the-start-of-mi.yaml +2 -1
@@ -6,8 +6,9 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-23T10:28:36.392Z
9-updatedAt: 2026-09-23T10:28:36.392Z
9+updatedAt: 2026-10-06T04:01:48.816Z
1010 labels: []
11+epic: Improve TUI
1112 body: ""
1213 tasks: []
1314 comments: []
@@ -6,8 +6,9 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-09-23T10:28:36.392Z8 createdAt: 2026-09-23T10:28:36.392Z
9-updatedAt: 2026-09-23T10:28:36.392Z9+updatedAt: 2026-10-06T04:01:48.816Z
10 labels: []10 labels: []
11+epic: Improve TUI
11 body: ""12 body: ""
12 tasks: []13 tasks: []
13 comments: []14 comments: []
modified .tickets/issues/0048-add-a-builtin-tool-to-search-into-the-mm-session.yaml +2 -1
@@ -6,9 +6,10 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-27T03:45:48.121Z
9-updatedAt: 2026-09-29T06:25:13.129Z
9+updatedAt: 2026-10-06T03:59:41.259Z
1010 labels: []
1111 milestone: v0.3.0
12+epic: Agent Memory
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-09-27T03:45:48.121Z8 createdAt: 2026-09-27T03:45:48.121Z
9-updatedAt: 2026-09-29T06:25:13.129Z9+updatedAt: 2026-10-06T03:59:41.259Z
10 labels: []10 labels: []
11 milestone: v0.3.011 milestone: v0.3.0
12+epic: Agent Memory
12 body: ""13 body: ""
13 tasks: []14 tasks: []
14 comments: []15 comments: []
modified .tickets/issues/0050-create-a-web-site.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 50
33 title: Create a web site
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-28T18:44:59.825Z
9-updatedAt: 2026-09-29T06:27:12.181Z
9+updatedAt: 2026-10-06T03:58:01.122Z
1010 labels: []
1111 milestone: v0.3.0
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: 502 id: 50
3 title: Create a web site3 title: Create a web site
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-09-28T18:44:59.825Z8 createdAt: 2026-09-28T18:44:59.825Z
9-updatedAt: 2026-09-29T06:27:12.181Z9+updatedAt: 2026-10-06T03:58:01.122Z
10 labels: []10 labels: []
11 milestone: v0.3.011 milestone: v0.3.0
12 body: ""12 body: ""
modified .tickets/issues/0052-buitin-acp-tool-to-query-other-agent-like-mini-m.yaml +2 -2
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 52
33 title: Buitin ACP tool to query other agent (like mini me, but not only)
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-09-29T05:18:13.897Z
9-updatedAt: 2026-10-02T21:15:00.000Z
9+updatedAt: 2026-10-06T03:55:00.084Z
1010 labels:
1111 - priority::high
1212 - kind::feature
@@ -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: 522 id: 52
3 title: Buitin ACP tool to query other agent (like mini me, but not only)3 title: Buitin ACP tool to query other agent (like mini me, but not only)
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-09-29T05:18:13.897Z8 createdAt: 2026-09-29T05:18:13.897Z
9-updatedAt: 2026-10-02T21:15:00.000Z9+updatedAt: 2026-10-06T03:55:00.084Z
10 labels:10 labels:
11 - priority::high11 - priority::high
12 - kind::feature12 - kind::feature
modified .tickets/issues/0059-how-to-start-in-yolo-mode.yaml +63 -29
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 59
33 title: How to start in yolo mode?
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-01T04:39:53.878Z
9-updatedAt: 2026-10-03T10:00:00.000Z
9+updatedAt: 2026-10-06T03:53:27.047Z
1010 labels:
1111 - kind::feature
1212 - priority::low
@@ -50,104 +50,104 @@ body: |
5050 - Make it visible: banner/status line "yolo" so nobody runs it by mistake.
5151 tasks:
5252 - id: 1
53- title: "Decide the open questions below (flag name, ACP scope, MCP scope, banner)"
54- state: open
53+ title: Decide the open questions below (flag name, ACP scope, MCP scope, banner)
54+ state: closed
5555 priority: none
5656 author:
5757 name: k33g
5858 email: ph.charriere@gmail.com
5959 createdAt: 2026-10-01T06:30:00.000Z
60- updatedAt: 2026-10-01T06:30:00.000Z
60+ updatedAt: 2026-10-06T12:00:00.000Z
6161 - id: 2
6262 title: "Failing tests first: with yolo on, window mode (permissions: ask) and ACP Allow() return true without asking; MCP ask-tools run"
63- state: open
63+ state: closed
6464 priority: none
6565 author:
6666 name: k33g
6767 email: ph.charriere@gmail.com
6868 createdAt: 2026-10-01T06:30:00.000Z
69- updatedAt: 2026-10-01T06:30:00.000Z
69+ updatedAt: 2026-10-06T12:00:00.000Z
7070 - id: 3
71- title: "Flag --yolo (main.go, alongside -p/-tui/-acp) + optional env/config override; forces Permissions=auto and mcp.permissions=auto, per-server MCP permissions included"
72- state: open
71+ title: Flag --yolo (main.go, alongside -p/-tui/-acp) + optional env/config override; forces Permissions=auto and mcp.permissions=auto, per-server MCP permissions included
72+ state: closed
7373 priority: none
7474 author:
7575 name: k33g
7676 email: ph.charriere@gmail.com
7777 createdAt: 2026-10-01T06:30:00.000Z
78- updatedAt: 2026-10-01T06:30:00.000Z
78+ updatedAt: 2026-10-06T12:00:00.000Z
7979 - id: 4
8080 title: "ACP sink Allow(): short-circuit when yolo is on (no RequestPermission sent to the editor)"
81- state: open
81+ state: closed
8282 priority: none
8383 author:
8484 name: k33g
8585 email: ph.charriere@gmail.com
8686 createdAt: 2026-10-01T06:30:00.000Z
87- updatedAt: 2026-10-01T06:30:00.000Z
87+ updatedAt: 2026-10-06T12:00:00.000Z
8888 - id: 5
89- title: "Banner/status line shows that yolo is on (terminal, window, ACP agent info)"
90- state: open
89+ title: Banner/status line shows that yolo is on (terminal, window, ACP agent info)
90+ state: closed
9191 priority: none
9292 author:
9393 name: k33g
9494 email: ph.charriere@gmail.com
9595 createdAt: 2026-10-01T06:30:00.000Z
96- updatedAt: 2026-10-01T06:30:00.000Z
96+ updatedAt: 2026-10-06T12:00:00.000Z
9797 - id: 6
9898 title: "Docs EN+FR: reference/cli.md, reference/configuration.md, how-to (window mode, editor); answer the question in the how-to"
99- state: open
99+ state: closed
100100 priority: none
101101 author:
102102 name: k33g
103103 email: ph.charriere@gmail.com
104104 createdAt: 2026-10-01T06:30:00.000Z
105- updatedAt: 2026-10-01T06:30:00.000Z
105+ updatedAt: 2026-10-06T12:00:00.000Z
106106 - id: 7
107107 title: "Per-tool permission: bashTool/editTools accept true | false | ask (config validation, defaults unchanged)"
108- state: open
108+ state: closed
109109 priority: none
110110 author:
111111 name: k33g
112112 email: ph.charriere@gmail.com
113113 createdAt: 2026-10-03T10:00:00.000Z
114- updatedAt: 2026-10-03T10:00:00.000Z
114+ updatedAt: 2026-10-06T12:00:00.000Z
115115 - id: 8
116116 title: "Line mode: a terminal permission prompt (y once / s session / n reject) so `ask` works there too"
117- state: open
117+ state: closed
118118 priority: none
119119 author:
120120 name: k33g
121121 email: ph.charriere@gmail.com
122122 createdAt: 2026-10-03T10:00:00.000Z
123- updatedAt: 2026-10-03T10:00:00.000Z
123+ updatedAt: 2026-10-06T12:00:00.000Z
124124 - id: 9
125- title: "Decide precedence between the per-tool value, the global `permissions` key and --yolo"
126- state: open
125+ title: Decide precedence between the per-tool value, the global `permissions` key and --yolo
126+ state: closed
127127 priority: none
128128 author:
129129 name: k33g
130130 email: ph.charriere@gmail.com
131131 createdAt: 2026-10-03T10:00:00.000Z
132- updatedAt: 2026-10-03T10:00:00.000Z
132+ updatedAt: 2026-10-06T12:00:00.000Z
133133 - id: 10
134- title: "Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/"
135- state: open
134+ title: Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/
135+ state: closed
136136 priority: none
137137 author:
138138 name: k33g
139139 email: ph.charriere@gmail.com
140140 createdAt: 2026-10-03T10:00:00.000Z
141- updatedAt: 2026-10-03T10:00:00.000Z
141+ updatedAt: 2026-10-06T12:00:00.000Z
142142 - id: 11
143143 title: "mm --ask: let the caller forbid or confirm the asked agent's tools (ticket 73 open task)"
144- state: open
144+ state: closed
145145 priority: none
146146 author:
147147 name: k33g
148148 email: ph.charriere@gmail.com
149149 createdAt: 2026-10-03T10:00:00.000Z
150- updatedAt: 2026-10-03T10:00:00.000Z
150+ updatedAt: 2026-10-06T12:00:00.000Z
151151 comments:
152152 - id: 1
153153 author:
@@ -195,3 +195,37 @@ comments:
195195 1. Precedence: per-tool value > `permissions` > default — OK?
196196 2. In -p mode, should `ask` reject (safe, proposed) or allow?
197197 3. Should `ask` for editTools cover read_file too (today never gated)?
198+ - id: 2
199+ author:
200+ name: claude
201+ email: noreply@anthropic.com
202+ createdAt: 2026-10-06T12:00:00.000Z
203+ body: |
204+ **Implemented on branch `feature/yolo` (2026-10-06, with ticket 13), uncommitted.**
205+
206+ User's decisions: a config key, not a flag; yolo everywhere ACP
207+ included; `yolo` replaces `permissions` (still read, deprecated);
208+ `yolo: false` forces MCP to ask; four answers (once / session /
209+ reject / never); the agent that holds mmConfigs wins.
210+
211+ - `yolo: true|false` (default true), override `AGENT_YOLO`.
212+ `bashTool`/`editTools` unchanged: they say whether a tool exists.
213+ - `permissions: ask` = `yolo: false` (+ banner warning), `auto` =
214+ warning only. Answers question 9: there is no per-tool value.
215+ - New package `internal/consent`: `Gate` (yolo check), `Answer`,
216+ `Policy` (session memory per tool), `SetPrompter`/`Terminal`/
217+ `Prompt` for the line mode. All six built-in call sites use it.
218+ - Line mode: `🔐` prompt routed by the REPL waiting room
219+ (`internal/agent/prompt.go`), also for /ask. `-p` and `--ask`
220+ reject with a stderr notice (open question 2: reject).
221+ - Window: a/s/r/n. ACP: 4th option `never` (reject_always); with
222+ yolo on no RequestPermission is sent (ticket 57's pending-dialog
223+ case cannot happen in yolo mode).
224+ - MCP: asks when `permissions: ask` OR yolo off; the terminal path
225+ now asks too.
226+ - /ask children run with `AGENT_YOLO=false`; the asker's
227+ `client.RequestPermission` goes through ITS `consent.Gate`.
228+ - Banner: `| yolo: on` / `| yolo: off (tools ask)`.
229+ - Open question 3 (read_file gated?): no, reads never ask.
230+ Docs EN+FR: how-to/confirm-tool-calls.md, explanation/yolo-and-permissions.md,
231+ reference configuration/cli/acp/tools/slash-commands updated.
@@ -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: 592 id: 59
3 title: How to start in yolo mode?3 title: How to start in yolo mode?
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:53.878Z8 createdAt: 2026-10-01T04:39:53.878Z
9-updatedAt: 2026-10-03T10:00:00.000Z9+updatedAt: 2026-10-06T03:53:27.047Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12 - priority::low12 - priority::low
@@ -50,104 +50,104 @@ body: |
50 - Make it visible: banner/status line "yolo" so nobody runs it by mistake.50 - Make it visible: banner/status line "yolo" so nobody runs it by mistake.
51 tasks:51 tasks:
52 - id: 152 - id: 1
53- title: "Decide the open questions below (flag name, ACP scope, MCP scope, banner)"53+ title: Decide the open questions below (flag name, ACP scope, MCP scope, banner)
54- state: open54+ state: closed
55 priority: none55 priority: none
56 author:56 author:
57 name: k33g57 name: k33g
58 email: ph.charriere@gmail.com58 email: ph.charriere@gmail.com
59 createdAt: 2026-10-01T06:30:00.000Z59 createdAt: 2026-10-01T06:30:00.000Z
60- updatedAt: 2026-10-01T06:30:00.000Z60+ updatedAt: 2026-10-06T12:00:00.000Z
61 - id: 261 - id: 2
62 title: "Failing tests first: with yolo on, window mode (permissions: ask) and ACP Allow() return true without asking; MCP ask-tools run"62 title: "Failing tests first: with yolo on, window mode (permissions: ask) and ACP Allow() return true without asking; MCP ask-tools run"
63- state: open63+ state: closed
64 priority: none64 priority: none
65 author:65 author:
66 name: k33g66 name: k33g
67 email: ph.charriere@gmail.com67 email: ph.charriere@gmail.com
68 createdAt: 2026-10-01T06:30:00.000Z68 createdAt: 2026-10-01T06:30:00.000Z
69- updatedAt: 2026-10-01T06:30:00.000Z69+ updatedAt: 2026-10-06T12:00:00.000Z
70 - id: 370 - id: 3
71- title: "Flag --yolo (main.go, alongside -p/-tui/-acp) + optional env/config override; forces Permissions=auto and mcp.permissions=auto, per-server MCP permissions included"71+ title: Flag --yolo (main.go, alongside -p/-tui/-acp) + optional env/config override; forces Permissions=auto and mcp.permissions=auto, per-server MCP permissions included
72- state: open72+ state: closed
73 priority: none73 priority: none
74 author:74 author:
75 name: k33g75 name: k33g
76 email: ph.charriere@gmail.com76 email: ph.charriere@gmail.com
77 createdAt: 2026-10-01T06:30:00.000Z77 createdAt: 2026-10-01T06:30:00.000Z
78- updatedAt: 2026-10-01T06:30:00.000Z78+ updatedAt: 2026-10-06T12:00:00.000Z
79 - id: 479 - id: 4
80 title: "ACP sink Allow(): short-circuit when yolo is on (no RequestPermission sent to the editor)"80 title: "ACP sink Allow(): short-circuit when yolo is on (no RequestPermission sent to the editor)"
81- state: open81+ state: closed
82 priority: none82 priority: none
83 author:83 author:
84 name: k33g84 name: k33g
85 email: ph.charriere@gmail.com85 email: ph.charriere@gmail.com
86 createdAt: 2026-10-01T06:30:00.000Z86 createdAt: 2026-10-01T06:30:00.000Z
87- updatedAt: 2026-10-01T06:30:00.000Z87+ updatedAt: 2026-10-06T12:00:00.000Z
88 - id: 588 - id: 5
89- title: "Banner/status line shows that yolo is on (terminal, window, ACP agent info)"89+ title: Banner/status line shows that yolo is on (terminal, window, ACP agent info)
90- state: open90+ state: closed
91 priority: none91 priority: none
92 author:92 author:
93 name: k33g93 name: k33g
94 email: ph.charriere@gmail.com94 email: ph.charriere@gmail.com
95 createdAt: 2026-10-01T06:30:00.000Z95 createdAt: 2026-10-01T06:30:00.000Z
96- updatedAt: 2026-10-01T06:30:00.000Z96+ updatedAt: 2026-10-06T12:00:00.000Z
97 - id: 697 - id: 6
98 title: "Docs EN+FR: reference/cli.md, reference/configuration.md, how-to (window mode, editor); answer the question in the how-to"98 title: "Docs EN+FR: reference/cli.md, reference/configuration.md, how-to (window mode, editor); answer the question in the how-to"
99- state: open99+ state: closed
100 priority: none100 priority: none
101 author:101 author:
102 name: k33g102 name: k33g
103 email: ph.charriere@gmail.com103 email: ph.charriere@gmail.com
104 createdAt: 2026-10-01T06:30:00.000Z104 createdAt: 2026-10-01T06:30:00.000Z
105- updatedAt: 2026-10-01T06:30:00.000Z105+ updatedAt: 2026-10-06T12:00:00.000Z
106 - id: 7106 - id: 7
107 title: "Per-tool permission: bashTool/editTools accept true | false | ask (config validation, defaults unchanged)"107 title: "Per-tool permission: bashTool/editTools accept true | false | ask (config validation, defaults unchanged)"
108- state: open108+ state: closed
109 priority: none109 priority: none
110 author:110 author:
111 name: k33g111 name: k33g
112 email: ph.charriere@gmail.com112 email: ph.charriere@gmail.com
113 createdAt: 2026-10-03T10:00:00.000Z113 createdAt: 2026-10-03T10:00:00.000Z
114- updatedAt: 2026-10-03T10:00:00.000Z114+ updatedAt: 2026-10-06T12:00:00.000Z
115 - id: 8115 - id: 8
116 title: "Line mode: a terminal permission prompt (y once / s session / n reject) so `ask` works there too"116 title: "Line mode: a terminal permission prompt (y once / s session / n reject) so `ask` works there too"
117- state: open117+ state: closed
118 priority: none118 priority: none
119 author:119 author:
120 name: k33g120 name: k33g
121 email: ph.charriere@gmail.com121 email: ph.charriere@gmail.com
122 createdAt: 2026-10-03T10:00:00.000Z122 createdAt: 2026-10-03T10:00:00.000Z
123- updatedAt: 2026-10-03T10:00:00.000Z123+ updatedAt: 2026-10-06T12:00:00.000Z
124 - id: 9124 - id: 9
125- title: "Decide precedence between the per-tool value, the global `permissions` key and --yolo"125+ title: Decide precedence between the per-tool value, the global `permissions` key and --yolo
126- state: open126+ state: closed
127 priority: none127 priority: none
128 author:128 author:
129 name: k33g129 name: k33g
130 email: ph.charriere@gmail.com130 email: ph.charriere@gmail.com
131 createdAt: 2026-10-03T10:00:00.000Z131 createdAt: 2026-10-03T10:00:00.000Z
132- updatedAt: 2026-10-03T10:00:00.000Z132+ updatedAt: 2026-10-06T12:00:00.000Z
133 - id: 10133 - id: 10
134- title: "Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/"134+ title: Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/
135- state: open135+ state: closed
136 priority: none136 priority: none
137 author:137 author:
138 name: k33g138 name: k33g
139 email: ph.charriere@gmail.com139 email: ph.charriere@gmail.com
140 createdAt: 2026-10-03T10:00:00.000Z140 createdAt: 2026-10-03T10:00:00.000Z
141- updatedAt: 2026-10-03T10:00:00.000Z141+ updatedAt: 2026-10-06T12:00:00.000Z
142 - id: 11142 - id: 11
143 title: "mm --ask: let the caller forbid or confirm the asked agent's tools (ticket 73 open task)"143 title: "mm --ask: let the caller forbid or confirm the asked agent's tools (ticket 73 open task)"
144- state: open144+ state: closed
145 priority: none145 priority: none
146 author:146 author:
147 name: k33g147 name: k33g
148 email: ph.charriere@gmail.com148 email: ph.charriere@gmail.com
149 createdAt: 2026-10-03T10:00:00.000Z149 createdAt: 2026-10-03T10:00:00.000Z
150- updatedAt: 2026-10-03T10:00:00.000Z150+ updatedAt: 2026-10-06T12:00:00.000Z
151 comments:151 comments:
152 - id: 1152 - id: 1
153 author:153 author:
@@ -195,3 +195,37 @@ comments:
195 1. Precedence: per-tool value > `permissions` > default — OK?195 1. Precedence: per-tool value > `permissions` > default — OK?
196 2. In -p mode, should `ask` reject (safe, proposed) or allow?196 2. In -p mode, should `ask` reject (safe, proposed) or allow?
197 3. Should `ask` for editTools cover read_file too (today never gated)?197 3. Should `ask` for editTools cover read_file too (today never gated)?
198+ - id: 2
199+ author:
200+ name: claude
201+ email: noreply@anthropic.com
202+ createdAt: 2026-10-06T12:00:00.000Z
203+ body: |
204+ **Implemented on branch `feature/yolo` (2026-10-06, with ticket 13), uncommitted.**
205+
206+ User's decisions: a config key, not a flag; yolo everywhere ACP
207+ included; `yolo` replaces `permissions` (still read, deprecated);
208+ `yolo: false` forces MCP to ask; four answers (once / session /
209+ reject / never); the agent that holds mmConfigs wins.
210+
211+ - `yolo: true|false` (default true), override `AGENT_YOLO`.
212+ `bashTool`/`editTools` unchanged: they say whether a tool exists.
213+ - `permissions: ask` = `yolo: false` (+ banner warning), `auto` =
214+ warning only. Answers question 9: there is no per-tool value.
215+ - New package `internal/consent`: `Gate` (yolo check), `Answer`,
216+ `Policy` (session memory per tool), `SetPrompter`/`Terminal`/
217+ `Prompt` for the line mode. All six built-in call sites use it.
218+ - Line mode: `🔐` prompt routed by the REPL waiting room
219+ (`internal/agent/prompt.go`), also for /ask. `-p` and `--ask`
220+ reject with a stderr notice (open question 2: reject).
221+ - Window: a/s/r/n. ACP: 4th option `never` (reject_always); with
222+ yolo on no RequestPermission is sent (ticket 57's pending-dialog
223+ case cannot happen in yolo mode).
224+ - MCP: asks when `permissions: ask` OR yolo off; the terminal path
225+ now asks too.
226+ - /ask children run with `AGENT_YOLO=false`; the asker's
227+ `client.RequestPermission` goes through ITS `consent.Gate`.
228+ - Banner: `| yolo: on` / `| yolo: off (tools ask)`.
229+ - Open question 3 (read_file gated?): no, reads never ask.
230+ Docs EN+FR: how-to/confirm-tool-calls.md, explanation/yolo-and-permissions.md,
231+ reference configuration/cli/acp/tools/slash-commands updated.
modified .tickets/issues/0060-add-llmman-provider.yaml +8 -8
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 60
33 title: Add llmman provider
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-01T04:48:02.829Z
9-updatedAt: 2026-10-01T07:00:00.000Z
9+updatedAt: 2026-10-06T03:56:22.404Z
1010 labels:
1111 - kind::feature
1212 - priority::medium
@@ -19,7 +19,7 @@ body: |
1919 demo-llmman/ using hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M.
2020 tasks:
2121 - id: 1
22- title: "Registry entry llmman (URL, fallback, key, progress, thinking off)"
22+ title: Registry entry llmman (URL, fallback, key, progress, thinking off)
2323 state: closed
2424 priority: none
2525 author:
@@ -46,7 +46,7 @@ tasks:
4646 createdAt: 2026-10-01T07:00:00.000Z
4747 updatedAt: 2026-10-01T07:00:00.000Z
4848 - id: 4
49- title: "demo-llmman/agent.llmman.yaml with hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M"
49+ title: demo-llmman/agent.llmman.yaml with hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M
5050 state: closed
5151 priority: none
5252 author:
@@ -55,7 +55,7 @@ tasks:
5555 createdAt: 2026-10-01T07:00:00.000Z
5656 updatedAt: 2026-10-01T07:00:00.000Z
5757 - id: 5
58- title: "Docs EN+FR (how-to, reference, explanation, indexes)"
58+ title: Docs EN+FR (how-to, reference, explanation, indexes)
5959 state: closed
6060 priority: none
6161 author:
@@ -64,7 +64,7 @@ tasks:
6464 createdAt: 2026-10-01T07:00:00.000Z
6565 updatedAt: 2026-10-01T07:00:00.000Z
6666 - id: 6
67- title: "Live check against llmman serve (tool call, ctx, compaction)"
67+ title: Live check against llmman serve (tool call, ctx, compaction)
6868 state: closed
6969 priority: none
7070 author:
@@ -73,7 +73,7 @@ tasks:
7373 createdAt: 2026-10-01T07:00:00.000Z
7474 updatedAt: 2026-10-01T07:00:00.000Z
7575 - id: 7
76- title: "Quality gate (qlty) where available"
76+ title: Quality gate (qlty) where available
7777 state: open
7878 priority: none
7979 author:
@@ -82,7 +82,7 @@ tasks:
8282 createdAt: 2026-10-01T07:00:00.000Z
8383 updatedAt: 2026-10-01T07:00:00.000Z
8484 - id: 8
85- title: "Review, commit, merge"
85+ title: Review, commit, merge
8686 state: open
8787 priority: none
8888 author:
@@ -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: 602 id: 60
3 title: Add llmman provider3 title: Add llmman provider
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:48:02.829Z8 createdAt: 2026-10-01T04:48:02.829Z
9-updatedAt: 2026-10-01T07:00:00.000Z9+updatedAt: 2026-10-06T03:56:22.404Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12 - priority::medium12 - priority::medium
@@ -19,7 +19,7 @@ body: |
19 demo-llmman/ using hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M.19 demo-llmman/ using hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M.
20 tasks:20 tasks:
21 - id: 121 - id: 1
22- title: "Registry entry llmman (URL, fallback, key, progress, thinking off)"22+ title: Registry entry llmman (URL, fallback, key, progress, thinking off)
23 state: closed23 state: closed
24 priority: none24 priority: none
25 author:25 author:
@@ -46,7 +46,7 @@ tasks:
46 createdAt: 2026-10-01T07:00:00.000Z46 createdAt: 2026-10-01T07:00:00.000Z
47 updatedAt: 2026-10-01T07:00:00.000Z47 updatedAt: 2026-10-01T07:00:00.000Z
48 - id: 448 - id: 4
49- title: "demo-llmman/agent.llmman.yaml with hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M"49+ title: demo-llmman/agent.llmman.yaml with hf.co/unsloth/Qwen3.5-4B-GGUF:Q4_K_M
50 state: closed50 state: closed
51 priority: none51 priority: none
52 author:52 author:
@@ -55,7 +55,7 @@ tasks:
55 createdAt: 2026-10-01T07:00:00.000Z55 createdAt: 2026-10-01T07:00:00.000Z
56 updatedAt: 2026-10-01T07:00:00.000Z56 updatedAt: 2026-10-01T07:00:00.000Z
57 - id: 557 - id: 5
58- title: "Docs EN+FR (how-to, reference, explanation, indexes)"58+ title: Docs EN+FR (how-to, reference, explanation, indexes)
59 state: closed59 state: closed
60 priority: none60 priority: none
61 author:61 author:
@@ -64,7 +64,7 @@ tasks:
64 createdAt: 2026-10-01T07:00:00.000Z64 createdAt: 2026-10-01T07:00:00.000Z
65 updatedAt: 2026-10-01T07:00:00.000Z65 updatedAt: 2026-10-01T07:00:00.000Z
66 - id: 666 - id: 6
67- title: "Live check against llmman serve (tool call, ctx, compaction)"67+ title: Live check against llmman serve (tool call, ctx, compaction)
68 state: closed68 state: closed
69 priority: none69 priority: none
70 author:70 author:
@@ -73,7 +73,7 @@ tasks:
73 createdAt: 2026-10-01T07:00:00.000Z73 createdAt: 2026-10-01T07:00:00.000Z
74 updatedAt: 2026-10-01T07:00:00.000Z74 updatedAt: 2026-10-01T07:00:00.000Z
75 - id: 775 - id: 7
76- title: "Quality gate (qlty) where available"76+ title: Quality gate (qlty) where available
77 state: open77 state: open
78 priority: none78 priority: none
79 author:79 author:
@@ -82,7 +82,7 @@ tasks:
82 createdAt: 2026-10-01T07:00:00.000Z82 createdAt: 2026-10-01T07:00:00.000Z
83 updatedAt: 2026-10-01T07:00:00.000Z83 updatedAt: 2026-10-01T07:00:00.000Z
84 - id: 884 - id: 8
85- title: "Review, commit, merge"85+ title: Review, commit, merge
86 state: open86 state: open
87 priority: none87 priority: none
88 author:88 author:
modified .tickets/issues/0062-add-ollama-provider.yaml +11 -11
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 62
33 title: Add Ollama provider
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-01T06:10:07.295Z
9-updatedAt: 2026-10-01T07:00:00.000Z
9+updatedAt: 2026-10-06T03:56:14.111Z
1010 labels:
1111 - kind::feature
1212 - priority::medium
@@ -19,7 +19,7 @@ body: |
1919 later is one field to change.
2020 tasks:
2121 - id: 1
22- title: "Measure Ollama's /v1 (reasoning field, progress, thinking switch, window, 404)"
22+ title: Measure Ollama's /v1 (reasoning field, progress, thinking switch, window, 404)
2323 state: closed
2424 priority: none
2525 author:
@@ -28,7 +28,7 @@ tasks:
2828 createdAt: 2026-10-01T07:00:00.000Z
2929 updatedAt: 2026-10-01T07:00:00.000Z
3030 - id: 2
31- title: "Per-provider thinkingOff field; reasoning_effort none for Ollama"
31+ title: Per-provider thinkingOff field; reasoning_effort none for Ollama
3232 state: closed
3333 priority: none
3434 author:
@@ -37,7 +37,7 @@ tasks:
3737 createdAt: 2026-10-01T07:00:00.000Z
3838 updatedAt: 2026-10-01T07:00:00.000Z
3939 - id: 3
40- title: "Registry entry ollama + probeOllama (shared /api/ps reading with llmman)"
40+ title: Registry entry ollama + probeOllama (shared /api/ps reading with llmman)
4141 state: closed
4242 priority: none
4343 author:
@@ -55,7 +55,7 @@ tasks:
5555 createdAt: 2026-10-01T07:00:00.000Z
5656 updatedAt: 2026-10-01T07:00:00.000Z
5757 - id: 5
58- title: "demo-ollama/agent.ollama.yaml with qwen3.5:2b"
58+ title: demo-ollama/agent.ollama.yaml with qwen3.5:2b
5959 state: closed
6060 priority: none
6161 author:
@@ -64,7 +64,7 @@ tasks:
6464 createdAt: 2026-10-01T07:00:00.000Z
6565 updatedAt: 2026-10-01T07:00:00.000Z
6666 - id: 6
67- title: "Docs EN+FR (how-to, reference, explanation, indexes)"
67+ title: Docs EN+FR (how-to, reference, explanation, indexes)
6868 state: closed
6969 priority: none
7070 author:
@@ -73,7 +73,7 @@ tasks:
7373 createdAt: 2026-10-01T07:00:00.000Z
7474 updatedAt: 2026-10-01T07:00:00.000Z
7575 - id: 7
76- title: "Live check against Ollama (tool call, ctx, compaction)"
76+ title: Live check against Ollama (tool call, ctx, compaction)
7777 state: closed
7878 priority: none
7979 author:
@@ -82,7 +82,7 @@ tasks:
8282 createdAt: 2026-10-01T07:00:00.000Z
8383 updatedAt: 2026-10-01T07:00:00.000Z
8484 - id: 8
85- title: "Check reasoning_effort none on a non-thinking model"
85+ title: Check reasoning_effort none on a non-thinking model
8686 state: open
8787 priority: none
8888 author:
@@ -91,7 +91,7 @@ tasks:
9191 createdAt: 2026-10-01T07:00:00.000Z
9292 updatedAt: 2026-10-01T07:00:00.000Z
9393 - id: 9
94- title: "Quality gate (qlty) where available"
94+ title: Quality gate (qlty) where available
9595 state: open
9696 priority: none
9797 author:
@@ -100,7 +100,7 @@ tasks:
100100 createdAt: 2026-10-01T07:00:00.000Z
101101 updatedAt: 2026-10-01T07:00:00.000Z
102102 - id: 10
103- title: "Review, commit, merge"
103+ title: Review, commit, merge
104104 state: open
105105 priority: none
106106 author:
@@ -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: 622 id: 62
3 title: Add Ollama provider3 title: Add Ollama provider
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-01T06:10:07.295Z8 createdAt: 2026-10-01T06:10:07.295Z
9-updatedAt: 2026-10-01T07:00:00.000Z9+updatedAt: 2026-10-06T03:56:14.111Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12 - priority::medium12 - priority::medium
@@ -19,7 +19,7 @@ body: |
19 later is one field to change.19 later is one field to change.
20 tasks:20 tasks:
21 - id: 121 - id: 1
22- title: "Measure Ollama's /v1 (reasoning field, progress, thinking switch, window, 404)"22+ title: Measure Ollama's /v1 (reasoning field, progress, thinking switch, window, 404)
23 state: closed23 state: closed
24 priority: none24 priority: none
25 author:25 author:
@@ -28,7 +28,7 @@ tasks:
28 createdAt: 2026-10-01T07:00:00.000Z28 createdAt: 2026-10-01T07:00:00.000Z
29 updatedAt: 2026-10-01T07:00:00.000Z29 updatedAt: 2026-10-01T07:00:00.000Z
30 - id: 230 - id: 2
31- title: "Per-provider thinkingOff field; reasoning_effort none for Ollama"31+ title: Per-provider thinkingOff field; reasoning_effort none for Ollama
32 state: closed32 state: closed
33 priority: none33 priority: none
34 author:34 author:
@@ -37,7 +37,7 @@ tasks:
37 createdAt: 2026-10-01T07:00:00.000Z37 createdAt: 2026-10-01T07:00:00.000Z
38 updatedAt: 2026-10-01T07:00:00.000Z38 updatedAt: 2026-10-01T07:00:00.000Z
39 - id: 339 - id: 3
40- title: "Registry entry ollama + probeOllama (shared /api/ps reading with llmman)"40+ title: Registry entry ollama + probeOllama (shared /api/ps reading with llmman)
41 state: closed41 state: closed
42 priority: none42 priority: none
43 author:43 author:
@@ -55,7 +55,7 @@ tasks:
55 createdAt: 2026-10-01T07:00:00.000Z55 createdAt: 2026-10-01T07:00:00.000Z
56 updatedAt: 2026-10-01T07:00:00.000Z56 updatedAt: 2026-10-01T07:00:00.000Z
57 - id: 557 - id: 5
58- title: "demo-ollama/agent.ollama.yaml with qwen3.5:2b"58+ title: demo-ollama/agent.ollama.yaml with qwen3.5:2b
59 state: closed59 state: closed
60 priority: none60 priority: none
61 author:61 author:
@@ -64,7 +64,7 @@ tasks:
64 createdAt: 2026-10-01T07:00:00.000Z64 createdAt: 2026-10-01T07:00:00.000Z
65 updatedAt: 2026-10-01T07:00:00.000Z65 updatedAt: 2026-10-01T07:00:00.000Z
66 - id: 666 - id: 6
67- title: "Docs EN+FR (how-to, reference, explanation, indexes)"67+ title: Docs EN+FR (how-to, reference, explanation, indexes)
68 state: closed68 state: closed
69 priority: none69 priority: none
70 author:70 author:
@@ -73,7 +73,7 @@ tasks:
73 createdAt: 2026-10-01T07:00:00.000Z73 createdAt: 2026-10-01T07:00:00.000Z
74 updatedAt: 2026-10-01T07:00:00.000Z74 updatedAt: 2026-10-01T07:00:00.000Z
75 - id: 775 - id: 7
76- title: "Live check against Ollama (tool call, ctx, compaction)"76+ title: Live check against Ollama (tool call, ctx, compaction)
77 state: closed77 state: closed
78 priority: none78 priority: none
79 author:79 author:
@@ -82,7 +82,7 @@ tasks:
82 createdAt: 2026-10-01T07:00:00.000Z82 createdAt: 2026-10-01T07:00:00.000Z
83 updatedAt: 2026-10-01T07:00:00.000Z83 updatedAt: 2026-10-01T07:00:00.000Z
84 - id: 884 - id: 8
85- title: "Check reasoning_effort none on a non-thinking model"85+ title: Check reasoning_effort none on a non-thinking model
86 state: open86 state: open
87 priority: none87 priority: none
88 author:88 author:
@@ -91,7 +91,7 @@ tasks:
91 createdAt: 2026-10-01T07:00:00.000Z91 createdAt: 2026-10-01T07:00:00.000Z
92 updatedAt: 2026-10-01T07:00:00.000Z92 updatedAt: 2026-10-01T07:00:00.000Z
93 - id: 993 - id: 9
94- title: "Quality gate (qlty) where available"94+ title: Quality gate (qlty) where available
95 state: open95 state: open
96 priority: none96 priority: none
97 author:97 author:
@@ -100,7 +100,7 @@ tasks:
100 createdAt: 2026-10-01T07:00:00.000Z100 createdAt: 2026-10-01T07:00:00.000Z
101 updatedAt: 2026-10-01T07:00:00.000Z101 updatedAt: 2026-10-01T07:00:00.000Z
102 - id: 10102 - id: 10
103- title: "Review, commit, merge"103+ title: Review, commit, merge
104 state: open104 state: open
105 priority: none105 priority: none
106 author:106 author:
modified .tickets/issues/0066-talk-to-another-mm.yaml +8 -8
@@ -1,12 +1,12 @@
11 # Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
22 id: 66
33 title: talk to another mm
4-state: open
4+state: closed
55 author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-02T18:48:36.275Z
9-updatedAt: 2026-10-02T21:15:00.000Z
9+updatedAt: 2026-10-06T03:55:28.931Z
1010 labels:
1111 - kind::feature
1212 related:
@@ -226,7 +226,7 @@ body: |
226226 c. Editor: one /ask with a hint, or one command per agent?
227227 tasks:
228228 - id: 1
229- title: "Answer the open questions (key name, immediate answer, multi-turn, fronts, context passed)"
229+ title: Answer the open questions (key name, immediate answer, multi-turn, fronts, context passed)
230230 state: closed
231231 priority: none
232232 author:
@@ -235,7 +235,7 @@ tasks:
235235 createdAt: 2026-10-02T19:30:00.000Z
236236 updatedAt: 2026-10-02T20:00:00.000Z
237237 - id: 2
238- title: "Confirm the remaining points a/b/c (context format, fresh session per /ask, editor hint vs one command per agent)"
238+ title: Confirm the remaining points a/b/c (context format, fresh session per /ask, editor hint vs one command per agent)
239239 state: closed
240240 priority: none
241241 author:
@@ -289,7 +289,7 @@ tasks:
289289 createdAt: 2026-10-02T19:30:00.000Z
290290 updatedAt: 2026-10-02T20:00:00.000Z
291291 - id: 8
292- title: "Insert the exchange in the current history (format, cap, valid alternation), persisted by the store and replayed on /resume"
292+ title: Insert the exchange in the current history (format, cap, valid alternation), persisted by the store and replayed on /resume
293293 state: closed
294294 priority: none
295295 author:
@@ -298,7 +298,7 @@ tasks:
298298 createdAt: 2026-10-02T19:30:00.000Z
299299 updatedAt: 2026-10-02T20:00:00.000Z
300300 - id: 9
301- title: "/abort, Ctrl+C and editor cancel -> session/cancel on the child; child crash -> one-line error, history untouched"
301+ title: /abort, Ctrl+C and editor cancel -> session/cancel on the child; child crash -> one-line error, history untouched
302302 state: closed
303303 priority: none
304304 author:
@@ -334,7 +334,7 @@ tasks:
334334 createdAt: 2026-10-02T20:30:00.000Z
335335 updatedAt: 2026-10-02T20:30:00.000Z
336336 - id: 13
337- title: "Live check of the window mode (/ask-jan in mm -tui) — unit-tested only"
337+ title: Live check of the window mode (/ask-jan in mm -tui) — unit-tested only
338338 state: open
339339 priority: none
340340 author:
@@ -343,7 +343,7 @@ tasks:
343343 createdAt: 2026-10-02T20:30:00.000Z
344344 updatedAt: 2026-10-02T20:30:00.000Z
345345 - id: 14
346- title: "Review, commit, merge"
346+ title: Review, commit, merge
347347 state: open
348348 priority: none
349349 author:
@@ -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: 662 id: 66
3 title: talk to another mm3 title: talk to another mm
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-02T18:48:36.275Z8 createdAt: 2026-10-02T18:48:36.275Z
9-updatedAt: 2026-10-02T21:15:00.000Z9+updatedAt: 2026-10-06T03:55:28.931Z
10 labels:10 labels:
11 - kind::feature11 - kind::feature
12 related:12 related:
@@ -226,7 +226,7 @@ body: |
226 c. Editor: one /ask with a hint, or one command per agent?226 c. Editor: one /ask with a hint, or one command per agent?
227 tasks:227 tasks:
228 - id: 1228 - id: 1
229- title: "Answer the open questions (key name, immediate answer, multi-turn, fronts, context passed)"229+ title: Answer the open questions (key name, immediate answer, multi-turn, fronts, context passed)
230 state: closed230 state: closed
231 priority: none231 priority: none
232 author:232 author:
@@ -235,7 +235,7 @@ tasks:
235 createdAt: 2026-10-02T19:30:00.000Z235 createdAt: 2026-10-02T19:30:00.000Z
236 updatedAt: 2026-10-02T20:00:00.000Z236 updatedAt: 2026-10-02T20:00:00.000Z
237 - id: 2237 - id: 2
238- title: "Confirm the remaining points a/b/c (context format, fresh session per /ask, editor hint vs one command per agent)"238+ title: Confirm the remaining points a/b/c (context format, fresh session per /ask, editor hint vs one command per agent)
239 state: closed239 state: closed
240 priority: none240 priority: none
241 author:241 author:
@@ -289,7 +289,7 @@ tasks:
289 createdAt: 2026-10-02T19:30:00.000Z289 createdAt: 2026-10-02T19:30:00.000Z
290 updatedAt: 2026-10-02T20:00:00.000Z290 updatedAt: 2026-10-02T20:00:00.000Z
291 - id: 8291 - id: 8
292- title: "Insert the exchange in the current history (format, cap, valid alternation), persisted by the store and replayed on /resume"292+ title: Insert the exchange in the current history (format, cap, valid alternation), persisted by the store and replayed on /resume
293 state: closed293 state: closed
294 priority: none294 priority: none
295 author:295 author:
@@ -298,7 +298,7 @@ tasks:
298 createdAt: 2026-10-02T19:30:00.000Z298 createdAt: 2026-10-02T19:30:00.000Z
299 updatedAt: 2026-10-02T20:00:00.000Z299 updatedAt: 2026-10-02T20:00:00.000Z
300 - id: 9300 - id: 9
301- title: "/abort, Ctrl+C and editor cancel -> session/cancel on the child; child crash -> one-line error, history untouched"301+ title: /abort, Ctrl+C and editor cancel -> session/cancel on the child; child crash -> one-line error, history untouched
302 state: closed302 state: closed
303 priority: none303 priority: none
304 author:304 author:
@@ -334,7 +334,7 @@ tasks:
334 createdAt: 2026-10-02T20:30:00.000Z334 createdAt: 2026-10-02T20:30:00.000Z
335 updatedAt: 2026-10-02T20:30:00.000Z335 updatedAt: 2026-10-02T20:30:00.000Z
336 - id: 13336 - id: 13
337- title: "Live check of the window mode (/ask-jan in mm -tui) — unit-tested only"337+ title: Live check of the window mode (/ask-jan in mm -tui) — unit-tested only
338 state: open338 state: open
339 priority: none339 priority: none
340 author:340 author:
@@ -343,7 +343,7 @@ tasks:
343 createdAt: 2026-10-02T20:30:00.000Z343 createdAt: 2026-10-02T20:30:00.000Z
344 updatedAt: 2026-10-02T20:30:00.000Z344 updatedAt: 2026-10-02T20:30:00.000Z
345 - id: 14345 - id: 14
346- title: "Review, commit, merge"346+ title: Review, commit, merge
347 state: open347 state: open
348 priority: none348 priority: none
349 author:349 author:
modified .tickets/issues/0067-enable-disable-reasoning-mode.yaml +187 -5
@@ -6,8 +6,190 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-02T06:09:42.599Z
9-updatedAt: 2026-10-02T06:09:42.599Z
10-labels: []
11-body: ""
12-tasks: []
13-comments: []
9+updatedAt: 2026-10-06T14:00:00.000Z
10+labels:
11+ - kind::feature
12+related:
13+ - 62
14+body: |
15+ Question (user, 2026-10-06): can mm turn a model's reasoning mode on or
16+ off?
17+
18+ Answer as of 2026-10-06 (branch feature/yolo, code verified):
19+
20+ 1. HIDE it: yes. `showThinking: false` hides the reasoning in the three
21+ front ends. The model still reasons (same time, same tokens): only
22+ the display changes.
23+
24+ 2. TURN IT OFF for the /compact summary only: done automatically, per
25+ provider (`thinkingOff`, internal/engine/openai_compat.go):
26+ dmr / llamacpp / llmman -> `chat_template_kwargs: {"enable_thinking": false}`,
27+ ollama -> `reasoning_effort: "none"` (ticket 62: Ollama ignores
28+ chat_template_kwargs). Not configurable, never applied to normal turns.
29+
30+ 3. TURN IT OFF for every turn through `sampling`: only half works.
31+ - `sampling.reasoning_effort: none` reaches the server (Ollama should
32+ obey it; not verified live on a normal turn).
33+ - `sampling.chat_template_kwargs: {enable_thinking: false}` is
34+ SILENTLY DROPPED before the request leaves mm, so it is impossible
35+ from the config for dmr / llamacpp / llmman, the servers that need
36+ exactly that field.
37+
38+ ## Why `chat_template_kwargs` is dropped
39+
40+ `chat_template_kwargs` is not an OpenAI API field: it is a llama.cpp
41+ extension (llama-server passes it to the model's Jinja chat template,
42+ where `enable_thinking` switches Qwen3-style thinking off). DMR and
43+ llmman run llama-server underneath, so they expect it too.
44+
45+ The `sampling` map does not go to the server as is. Its road:
46+
47+ 1. internal/engine/engine.go:353 hands it to Genkit:
48+ `ai.WithConfig(config.Cfg.Sampling)`.
49+ 2. Genkit's compat_oai plugin (plugins/compat_oai/generate.go:142,
50+ `WithConfig`) converts the map into the TYPED request struct of
51+ openai-go: `base.MapToStruct[openai.ChatCompletionNewParams](cfg)`.
52+ 3. `MapToStruct` (genkit internal/base/json.go:183) is a JSON round trip:
53+ `json.Marshal(map)` then `json.Unmarshal` into the struct.
54+ 4. `ChatCompletionNewParams` has a field for every OpenAI parameter —
55+ `temperature`, `top_p`, `max_tokens`, `parallel_tool_calls`,
56+ `reasoning_effort` … — and NONE for `chat_template_kwargs`.
57+ `json.Unmarshal` ignores keys that match no field: the key is gone.
58+ 5. The HTTP body is then serialised FROM THE STRUCT, so the server never
59+ sees it.
60+
61+ Measured with a round trip in the module (openai-go v1.8.2):
62+ input `{"temperature":0, "reasoning_effort":"none",
63+ "chat_template_kwargs":{"enable_thinking":false}}`
64+ output `{"temperature":0,"reasoning_effort":"none"}`.
65+
66+ Same reason the summary path does NOT use `sampling`: mm adds the field
67+ in its own openai-go middleware (`streamOptions` -> `withoutReasoning`,
68+ internal/engine/usage.go:83 and :137), which edits the raw HTTP body
69+ AFTER serialisation, where nothing can drop it any more.
70+
71+ Workarounds today (no code change): server side —
72+ `llama-server --reasoning-budget 0` (or `--chat-template-kwargs
73+ '{"enable_thinking":false}'` on recent builds — neither flag verified
74+ in this sandbox), or a model without a thinking mode.
75+
76+ ## Proposal
77+
78+ A config key `thinking: true|false` (default true, override
79+ `AGENT_THINKING`), applied by the SAME middleware to every request when
80+ false: the provider's own way (`thinkingOff`), so it works on
81+ dmr/llamacpp/llmman (chat_template_kwargs) and ollama (reasoning_effort).
82+ A request that already carries the field keeps it (rule already in
83+ `withoutReasoning`). Optional: `/think on|off` to switch during a session.
84+tasks:
85+ - id: 1
86+ title: "Decide: key name (`thinking`?), env override, and whether `/think on|off` is wanted"
87+ state: open
88+ priority: none
89+ author:
90+ name: k33g
91+ email: ph.charriere@gmail.com
92+ createdAt: 2026-10-06T13:00:00.000Z
93+ updatedAt: 2026-10-06T13:00:00.000Z
94+ - id: 2
95+ title: "Failing tests first: with thinking off, every request body carries the provider's field (template / effort); unknown provider = unchanged"
96+ state: open
97+ priority: none
98+ author:
99+ name: k33g
100+ email: ph.charriere@gmail.com
101+ createdAt: 2026-10-06T13:00:00.000Z
102+ updatedAt: 2026-10-06T13:00:00.000Z
103+ - id: 3
104+ title: "Config key + AGENT_THINKING; engine: mark every request (not only summaries) with noThinkKey when off"
105+ state: open
106+ priority: none
107+ author:
108+ name: k33g
109+ email: ph.charriere@gmail.com
110+ createdAt: 2026-10-06T13:00:00.000Z
111+ updatedAt: 2026-10-06T13:00:00.000Z
112+ - id: 4
113+ title: "Banner shows `thinking: off`; `showThinking` stays a display setting"
114+ state: open
115+ priority: none
116+ author:
117+ name: k33g
118+ email: ph.charriere@gmail.com
119+ createdAt: 2026-10-06T13:00:00.000Z
120+ updatedAt: 2026-10-06T13:00:00.000Z
121+ - id: 5
122+ title: "Live check per provider: DMR + llmman (chat_template_kwargs), Ollama (reasoning_effort none on a normal turn)"
123+ state: open
124+ priority: none
125+ author:
126+ name: k33g
127+ email: ph.charriere@gmail.com
128+ createdAt: 2026-10-06T13:00:00.000Z
129+ updatedAt: 2026-10-06T13:00:00.000Z
130+ - id: 6
131+ title: "Docs EN+FR: reference configuration, how-to, explanation/thinking-models (why sampling cannot do it)"
132+ state: open
133+ priority: none
134+ author:
135+ name: k33g
136+ email: ph.charriere@gmail.com
137+ createdAt: 2026-10-06T13:00:00.000Z
138+ updatedAt: 2026-10-06T13:00:00.000Z
139+comments:
140+ - id: 1
141+ author:
142+ name: claude
143+ email: noreply@anthropic.com
144+ createdAt: 2026-10-06T14:00:00.000Z
145+ body: |
146+ **Correction: a newer Genkit fixes the "sampling" road (verified in a
147+ scratch copy, the repo is unchanged — still genkit v1.10.0).**
148+
149+ Latest Genkit Go is v1.13.1 (2026-09-03). Since **v1.12.0**,
150+ compat_oai's `WithConfig` keeps the keys `ChatCompletionNewParams`
151+ does not know and sends them as JSON extras (`SetExtraFields`,
152+ plugins/compat_oai/generate.go ~l.231: "the OpenAI SDK silently
153+ ignores provider-specific fields while unmarshaling, so retain them
154+ as JSON extras"). v1.11.0 does not have it.
155+
156+ BUT bumping alone is not enough — found by testing:
157+ 1. In v1.13.1 `OpenAICompatible.DefineModel` is DEPRECATED and
158+ returns an UNREGISTERED model. mm discards its result
159+ (internal/engine/openai_compat.go:189), so the model actually used
160+ is the one the plugin resolves on the fly (`ResolveAction` ->
161+ `newSDKModel`), whose config schema is the strict reflected SDK
162+ schema: `chat_template_kwargs` is then REJECTED at the action
163+ boundary — "config: Additional property chat_template_kwargs is
164+ not allowed" (and every unknown sampling key would fail the
165+ request, where v1.10.0 dropped it silently).
166+ `ModelOptions.ConfigSchema` does not help: it is set on the model
167+ nobody registered.
168+ 2. Fix: register it — `genkit.RegisterAction(g,
169+ client.DefineModel(...).(*ai.ModelAction))`. DefineModel's model
170+ takes its config untyped, no validation, unknown keys ride to the
171+ wire. (The non-deprecated `NewModel` validates against the strict
172+ schema; it would need an explicit permissive `ConfigSchema`.)
173+
174+ Measured (recording server): v1.13.1 + RegisterAction sends
175+ `"chat_template_kwargs": {"enable_thinking": false}` with mm's own
176+ middleware fields (return_progress, stream_options) intact. Live on
177+ DMR qwen3.5-4b, `-p "What is 17*23?"` with
178+ `sampling.chat_template_kwargs.enable_thinking: false`: current mm =
179+ 4 s, a 💭 reasoning block, then 391; patched mm = under 1 s, no
180+ reasoning, 391.
181+
182+ Upgrade side effects seen: `go get` + `go mod tidy` also bump
183+ dotprompt, invopop/jsonschema v0.14.0, goccy/go-yaml, jsonparser and
184+ add go.yaml.in/yaml/v4; `go test ./...` green (scratch copy; the
185+ skills test failed only because the copy had no shipped YAML);
186+ Genkit now logs `INFO Genkit initialized …` on stderr at start-up
187+ (to silence). Not re-checked after the bump: reasoning.go's tap and
188+ toolargs.go's workarounds (v1.13.1 reads reasoning_content itself
189+ now — generate.go ~l.548), the ollama/llmman paths.
190+
191+ Consequence for the proposal: with the bump, `sampling` alone can
192+ carry `chat_template_kwargs` (llama.cpp family) or
193+ `reasoning_effort` (Ollama) — per-server spelling left to the user.
194+ A `thinking: false` key is still worth it for one spelling across
195+ providers (it would reuse `withoutReasoning`) and for `/think`.
@@ -6,8 +6,190 @@ author:
6 name: k33g6 name: k33g
7 email: ph.charriere@gmail.com7 email: ph.charriere@gmail.com
8 createdAt: 2026-10-02T06:09:42.599Z8 createdAt: 2026-10-02T06:09:42.599Z
9-updatedAt: 2026-10-02T06:09:42.599Z9+updatedAt: 2026-10-06T14:00:00.000Z
10-labels: []10+labels:
11-body: ""11+ - kind::feature
12-tasks: []12+related:
13-comments: []13+ - 62
14+body: |
15+ Question (user, 2026-10-06): can mm turn a model's reasoning mode on or
16+ off?
17+
18+ Answer as of 2026-10-06 (branch feature/yolo, code verified):
19+
20+ 1. HIDE it: yes. `showThinking: false` hides the reasoning in the three
21+ front ends. The model still reasons (same time, same tokens): only
22+ the display changes.
23+
24+ 2. TURN IT OFF for the /compact summary only: done automatically, per
25+ provider (`thinkingOff`, internal/engine/openai_compat.go):
26+ dmr / llamacpp / llmman -> `chat_template_kwargs: {"enable_thinking": false}`,
27+ ollama -> `reasoning_effort: "none"` (ticket 62: Ollama ignores
28+ chat_template_kwargs). Not configurable, never applied to normal turns.
29+
30+ 3. TURN IT OFF for every turn through `sampling`: only half works.
31+ - `sampling.reasoning_effort: none` reaches the server (Ollama should
32+ obey it; not verified live on a normal turn).
33+ - `sampling.chat_template_kwargs: {enable_thinking: false}` is
34+ SILENTLY DROPPED before the request leaves mm, so it is impossible
35+ from the config for dmr / llamacpp / llmman, the servers that need
36+ exactly that field.
37+
38+ ## Why `chat_template_kwargs` is dropped
39+
40+ `chat_template_kwargs` is not an OpenAI API field: it is a llama.cpp
41+ extension (llama-server passes it to the model's Jinja chat template,
42+ where `enable_thinking` switches Qwen3-style thinking off). DMR and
43+ llmman run llama-server underneath, so they expect it too.
44+
45+ The `sampling` map does not go to the server as is. Its road:
46+
47+ 1. internal/engine/engine.go:353 hands it to Genkit:
48+ `ai.WithConfig(config.Cfg.Sampling)`.
49+ 2. Genkit's compat_oai plugin (plugins/compat_oai/generate.go:142,
50+ `WithConfig`) converts the map into the TYPED request struct of
51+ openai-go: `base.MapToStruct[openai.ChatCompletionNewParams](cfg)`.
52+ 3. `MapToStruct` (genkit internal/base/json.go:183) is a JSON round trip:
53+ `json.Marshal(map)` then `json.Unmarshal` into the struct.
54+ 4. `ChatCompletionNewParams` has a field for every OpenAI parameter —
55+ `temperature`, `top_p`, `max_tokens`, `parallel_tool_calls`,
56+ `reasoning_effort` … — and NONE for `chat_template_kwargs`.
57+ `json.Unmarshal` ignores keys that match no field: the key is gone.
58+ 5. The HTTP body is then serialised FROM THE STRUCT, so the server never
59+ sees it.
60+
61+ Measured with a round trip in the module (openai-go v1.8.2):
62+ input `{"temperature":0, "reasoning_effort":"none",
63+ "chat_template_kwargs":{"enable_thinking":false}}`
64+ output `{"temperature":0,"reasoning_effort":"none"}`.
65+
66+ Same reason the summary path does NOT use `sampling`: mm adds the field
67+ in its own openai-go middleware (`streamOptions` -> `withoutReasoning`,
68+ internal/engine/usage.go:83 and :137), which edits the raw HTTP body
69+ AFTER serialisation, where nothing can drop it any more.
70+
71+ Workarounds today (no code change): server side —
72+ `llama-server --reasoning-budget 0` (or `--chat-template-kwargs
73+ '{"enable_thinking":false}'` on recent builds — neither flag verified
74+ in this sandbox), or a model without a thinking mode.
75+
76+ ## Proposal
77+
78+ A config key `thinking: true|false` (default true, override
79+ `AGENT_THINKING`), applied by the SAME middleware to every request when
80+ false: the provider's own way (`thinkingOff`), so it works on
81+ dmr/llamacpp/llmman (chat_template_kwargs) and ollama (reasoning_effort).
82+ A request that already carries the field keeps it (rule already in
83+ `withoutReasoning`). Optional: `/think on|off` to switch during a session.
84+tasks:
85+ - id: 1
86+ title: "Decide: key name (`thinking`?), env override, and whether `/think on|off` is wanted"
87+ state: open
88+ priority: none
89+ author:
90+ name: k33g
91+ email: ph.charriere@gmail.com
92+ createdAt: 2026-10-06T13:00:00.000Z
93+ updatedAt: 2026-10-06T13:00:00.000Z
94+ - id: 2
95+ title: "Failing tests first: with thinking off, every request body carries the provider's field (template / effort); unknown provider = unchanged"
96+ state: open
97+ priority: none
98+ author:
99+ name: k33g
100+ email: ph.charriere@gmail.com
101+ createdAt: 2026-10-06T13:00:00.000Z
102+ updatedAt: 2026-10-06T13:00:00.000Z
103+ - id: 3
104+ title: "Config key + AGENT_THINKING; engine: mark every request (not only summaries) with noThinkKey when off"
105+ state: open
106+ priority: none
107+ author:
108+ name: k33g
109+ email: ph.charriere@gmail.com
110+ createdAt: 2026-10-06T13:00:00.000Z
111+ updatedAt: 2026-10-06T13:00:00.000Z
112+ - id: 4
113+ title: "Banner shows `thinking: off`; `showThinking` stays a display setting"
114+ state: open
115+ priority: none
116+ author:
117+ name: k33g
118+ email: ph.charriere@gmail.com
119+ createdAt: 2026-10-06T13:00:00.000Z
120+ updatedAt: 2026-10-06T13:00:00.000Z
121+ - id: 5
122+ title: "Live check per provider: DMR + llmman (chat_template_kwargs), Ollama (reasoning_effort none on a normal turn)"
123+ state: open
124+ priority: none
125+ author:
126+ name: k33g
127+ email: ph.charriere@gmail.com
128+ createdAt: 2026-10-06T13:00:00.000Z
129+ updatedAt: 2026-10-06T13:00:00.000Z
130+ - id: 6
131+ title: "Docs EN+FR: reference configuration, how-to, explanation/thinking-models (why sampling cannot do it)"
132+ state: open
133+ priority: none
134+ author:
135+ name: k33g
136+ email: ph.charriere@gmail.com
137+ createdAt: 2026-10-06T13:00:00.000Z
138+ updatedAt: 2026-10-06T13:00:00.000Z
139+comments:
140+ - id: 1
141+ author:
142+ name: claude
143+ email: noreply@anthropic.com
144+ createdAt: 2026-10-06T14:00:00.000Z
145+ body: |
146+ **Correction: a newer Genkit fixes the "sampling" road (verified in a
147+ scratch copy, the repo is unchanged — still genkit v1.10.0).**
148+
149+ Latest Genkit Go is v1.13.1 (2026-09-03). Since **v1.12.0**,
150+ compat_oai's `WithConfig` keeps the keys `ChatCompletionNewParams`
151+ does not know and sends them as JSON extras (`SetExtraFields`,
152+ plugins/compat_oai/generate.go ~l.231: "the OpenAI SDK silently
153+ ignores provider-specific fields while unmarshaling, so retain them
154+ as JSON extras"). v1.11.0 does not have it.
155+
156+ BUT bumping alone is not enough — found by testing:
157+ 1. In v1.13.1 `OpenAICompatible.DefineModel` is DEPRECATED and
158+ returns an UNREGISTERED model. mm discards its result
159+ (internal/engine/openai_compat.go:189), so the model actually used
160+ is the one the plugin resolves on the fly (`ResolveAction` ->
161+ `newSDKModel`), whose config schema is the strict reflected SDK
162+ schema: `chat_template_kwargs` is then REJECTED at the action
163+ boundary — "config: Additional property chat_template_kwargs is
164+ not allowed" (and every unknown sampling key would fail the
165+ request, where v1.10.0 dropped it silently).
166+ `ModelOptions.ConfigSchema` does not help: it is set on the model
167+ nobody registered.
168+ 2. Fix: register it — `genkit.RegisterAction(g,
169+ client.DefineModel(...).(*ai.ModelAction))`. DefineModel's model
170+ takes its config untyped, no validation, unknown keys ride to the
171+ wire. (The non-deprecated `NewModel` validates against the strict
172+ schema; it would need an explicit permissive `ConfigSchema`.)
173+
174+ Measured (recording server): v1.13.1 + RegisterAction sends
175+ `"chat_template_kwargs": {"enable_thinking": false}` with mm's own
176+ middleware fields (return_progress, stream_options) intact. Live on
177+ DMR qwen3.5-4b, `-p "What is 17*23?"` with
178+ `sampling.chat_template_kwargs.enable_thinking: false`: current mm =
179+ 4 s, a 💭 reasoning block, then 391; patched mm = under 1 s, no
180+ reasoning, 391.
181+
182+ Upgrade side effects seen: `go get` + `go mod tidy` also bump
183+ dotprompt, invopop/jsonschema v0.14.0, goccy/go-yaml, jsonparser and
184+ add go.yaml.in/yaml/v4; `go test ./...` green (scratch copy; the
185+ skills test failed only because the copy had no shipped YAML);
186+ Genkit now logs `INFO Genkit initialized …` on stderr at start-up
187+ (to silence). Not re-checked after the bump: reasoning.go's tap and
188+ toolargs.go's workarounds (v1.13.1 reads reasoning_content itself
189+ now — generate.go ~l.548), the ollama/llmman paths.
190+
191+ Consequence for the proposal: with the bump, `sampling` alone can
192+ carry `chat_template_kwargs` (llama.cpp family) or
193+ `reasoning_effort` (Ollama) — per-server spelling left to the user.
194+ A `thinking: false` key is still worth it for one spelling across
195+ providers (it would reuse `withoutReasoning`) and for `/think`.
renamed .tickets/issues/0073-mm-ask-ask-with-context-ask-another-agent-from-a.yaml +9 -9
Large diff collapsed to keep the page fast — load it when you need it.
modified .tickets/issues/0074-memory-memgpt-hierarchic-memory.yaml +2 -1
@@ -6,9 +6,10 @@ author:
66 name: k33g
77 email: ph.charriere@gmail.com
88 createdAt: 2026-10-04T15:12:36.643Z
9-updatedAt: 2026-10-04T15:12:50.958Z
9+updatedAt: 2026-10-06T03:59:13.083Z
1010 labels:
1111 - priority::high
12+epic: Agent Memory
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-10-04T15:12:36.643Z8 createdAt: 2026-10-04T15:12:36.643Z
9-updatedAt: 2026-10-04T15:12:50.958Z9+updatedAt: 2026-10-06T03:59:13.083Z
10 labels:10 labels:
11 - priority::high11 - priority::high
12+epic: Agent Memory
12 body: ""13 body: ""
13 tasks: []14 tasks: []
14 comments: []15 comments: []
added .tickets/issues/0075-add-gronk-provider.yaml +14 -0
new file mode 100644
@@ -0,0 +1,14 @@
1+# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2+id: 75
3+title: Add Gronk provider
4+state: open
5+author:
6+ name: k33g
7+ email: ph.charriere@gmail.com
8+createdAt: 2026-10-06T03:58:37.611Z
9+updatedAt: 2026-10-06T04:00:38.851Z
10+labels: []
11+epic: Providers (LLM Engine)
12+body: ""
13+tasks: []
14+comments: []
new file mode 100644
@@ -0,0 +1,14 @@
1+# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
2+id: 75
3+title: Add Gronk provider
4+state: open
5+author:
6+ name: k33g
7+ email: ph.charriere@gmail.com
8+createdAt: 2026-10-06T03:58:37.611Z
9+updatedAt: 2026-10-06T04:00:38.851Z
10+labels: []
11+epic: Providers (LLM Engine)
12+body: ""
13+tasks: []
14+comments: []
modified README.md +1 -1
@@ -55,7 +55,7 @@ Type a question at the `>` prompt. Each command the model runs is shown with its
5555 mm -tui
5656 ```
5757
58-The conversation above, a box to type in below. **Enter** sends, **Ctrl-J** adds a line, **Esc** cancels a turn, **F1** lists the keys. With `permissions: ask` in the YAML, the agent asks before running a command or writing a file.
58+The conversation above, a box to type in below. **Enter** sends, **Ctrl-J** adds a line, **Esc** cancels a turn, **F1** lists the keys. With `yolo: false` in the YAML, the agent asks before running a command or writing a file — in the window, the line mode and an editor alike (`yolo: true`, the default, runs them unasked).
5959
6060 ### 3. Inside an editor (ACP)
6161
@@ -55,7 +55,7 @@ Type a question at the `>` prompt. Each command the model runs is shown with its
55 mm -tui55 mm -tui
56 ```56 ```
57 57
58-The conversation above, a box to type in below. **Enter** sends, **Ctrl-J** adds a line, **Esc** cancels a turn, **F1** lists the keys. With `permissions: ask` in the YAML, the agent asks before running a command or writing a file.58+The conversation above, a box to type in below. **Enter** sends, **Ctrl-J** adds a line, **Esc** cancels a turn, **F1** lists the keys. With `yolo: false` in the YAML, the agent asks before running a command or writing a file — in the window, the line mode and an editor alike (`yolo: true`, the default, runs them unasked).
59 59
60 ### 3. Inside an editor (ACP)60 ### 3. Inside an editor (ACP)
61 61
modified agent.dmr.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified agent.llamacpp.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified agent.llmman.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified agent.lsp.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified agent.mcp-example.yaml +5 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified config.samples/agent.dmr.gemma.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified config.samples/agent.dmr.gpt-oss.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified config.samples/agent.dmr.qwen3.6.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified config.samples/agent.llamacpp.ornith.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified config.samples/agent.llamacpp.qwen3.8.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo-llmman/agent.jan-nano.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo-llmman/agent.llmman.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo-llmman/agent.lucy-reviewer.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo-llmman/agent.lucy.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo-ollama/agent.ollama.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.dmr.2.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.dmr.github-oauth.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.dmr.mcp.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.dmr.sbx.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.dmr.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified demo/agent.lsp.yaml +8 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/diagrams/packages.drawio +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/README.md +2 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/explanation/architecture.md +2 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/explanation/asking-another-agent.md +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/explanation/lsp-tool.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/explanation/mcp-architecture.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
added docs/en/explanation/yolo-and-permissions.md +51 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/how-to/ask-another-agent.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
added docs/en/how-to/confirm-tool-calls.md +57 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/how-to/fetch-a-web-page.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/how-to/navigate-code-with-lsp.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/how-to/use-from-an-editor.md +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/how-to/use-the-window-mode.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/acp.md +5 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/cli.md +14 -5
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/configuration.md +5 -3
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/mcp-configuration.md +2 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/slash-commands.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/en/reference/tools.md +4 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/README.md +2 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/explanation/architecture.md +2 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/explanation/asking-another-agent.md +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/explanation/lsp-tool.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/explanation/mcp-architecture.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
added docs/fr/explanation/yolo-and-permissions.md +51 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/how-to/ask-another-agent.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
added docs/fr/how-to/confirm-tool-calls.md +57 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/how-to/fetch-a-web-page.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/how-to/navigate-code-with-lsp.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/how-to/use-from-an-editor.md +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/how-to/use-the-window-mode.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/acp.md +5 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/cli.md +14 -5
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/configuration.md +5 -3
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/mcp-configuration.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/slash-commands.md +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified docs/fr/reference/tools.md +4 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/acp/acp.go +6 -6
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/acp/acp_test.go +14 -6
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/acp/persist.go +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/acp/persist_test.go +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/acp/sink.go +33 -18
Large diff collapsed to keep the page fast — load it when you need it.
added internal/acp/sink_test.go +33 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/agent/agent.go +19 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/agent/ask.go +16 -5
Large diff collapsed to keep the page fast — load it when you need it.
added internal/agent/prompt.go +119 -0
Large diff collapsed to keep the page fast — load it when you need it.
added internal/agent/prompt_test.go +101 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/cli.go +11 -3
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/cli_test.go +14 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/client.go +8 -5
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/env.go +6 -4
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/env_test.go +5 -4
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/ask/pool_test.go +28 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/config/config.go +58 -9
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/config/config_test.go +5 -5
Large diff collapsed to keep the page fast — load it when you need it.
added internal/config/yolo_test.go +97 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/mcp/tool_wrapper.go +57 -53
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/fetchcontent.go +7 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/fetchcontent_test.go +1 -0
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/files.go +11 -3
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/lsp.go +5 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/plan.go +27 -16
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tools/tools.go +5 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/draw.go +2 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/events.go +5 -2
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/sink.go +12 -19
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/turn.go +10 -10
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/turn_test.go +19 -13
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/view.go +10 -7
Large diff collapsed to keep the page fast — load it when you need it.
modified internal/tui/view_test.go +1 -1
Large diff collapsed to keep the page fast — load it when you need it.
modified main.go +23 -13
Large diff collapsed to keep the page fast — load it when you need it.
added main_test.go +22 -0
Large diff collapsed to keep the page fast — load it when you need it.