🛟 Updated.Unverified
76ef2d2 parent: 9d1939f modified
.tickets/issues/0059-how-to-start-in-yolo-mode.yaml +93 -2 | @@ -6,7 +6,7 @@ author: | ||
| 6 | 6 | name: k33g |
| 7 | 7 | email: ph.charriere@gmail.com |
| 8 | 8 | createdAt: 2026-10-01T04:39:53.878Z |
| 9 | -updatedAt: 2026-10-01T06:30:00.000Z | |
| 9 | +updatedAt: 2026-10-03T10:00:00.000Z | |
| 10 | 10 | labels: |
| 11 | 11 | - kind::feature |
| 12 | 12 | - priority::low |
| @@ -103,4 +103,95 @@ tasks: | ||
| 103 | 103 | email: ph.charriere@gmail.com |
| 104 | 104 | createdAt: 2026-10-01T06:30:00.000Z |
| 105 | 105 | updatedAt: 2026-10-01T06:30:00.000Z |
| 106 | -comments: [] | |
| 106 | + - id: 7 | |
| 107 | + title: "Per-tool permission: bashTool/editTools accept true | false | ask (config validation, defaults unchanged)" | |
| 108 | + state: open | |
| 109 | + priority: none | |
| 110 | + author: | |
| 111 | + name: k33g | |
| 112 | + email: ph.charriere@gmail.com | |
| 113 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 114 | + updatedAt: 2026-10-03T10:00:00.000Z | |
| 115 | + - id: 8 | |
| 116 | + title: "Line mode: a terminal permission prompt (y once / s session / n reject) so `ask` works there too" | |
| 117 | + state: open | |
| 118 | + priority: none | |
| 119 | + author: | |
| 120 | + name: k33g | |
| 121 | + email: ph.charriere@gmail.com | |
| 122 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 123 | + updatedAt: 2026-10-03T10:00:00.000Z | |
| 124 | + - id: 9 | |
| 125 | + title: "Decide precedence between the per-tool value, the global `permissions` key and --yolo" | |
| 126 | + state: open | |
| 127 | + priority: none | |
| 128 | + author: | |
| 129 | + name: k33g | |
| 130 | + email: ph.charriere@gmail.com | |
| 131 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 132 | + updatedAt: 2026-10-03T10:00:00.000Z | |
| 133 | + - id: 10 | |
| 134 | + title: "Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/" | |
| 135 | + state: open | |
| 136 | + priority: none | |
| 137 | + author: | |
| 138 | + name: k33g | |
| 139 | + email: ph.charriere@gmail.com | |
| 140 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 141 | + updatedAt: 2026-10-03T10:00:00.000Z | |
| 142 | + - id: 11 | |
| 143 | + title: "mm --ask: let the caller forbid or confirm the asked agent's tools (ticket 73 open task)" | |
| 144 | + state: open | |
| 145 | + priority: none | |
| 146 | + author: | |
| 147 | + name: k33g | |
| 148 | + email: ph.charriere@gmail.com | |
| 149 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 150 | + updatedAt: 2026-10-03T10:00:00.000Z | |
| 151 | +comments: | |
| 152 | + - id: 1 | |
| 153 | + author: | |
| 154 | + name: claude | |
| 155 | + email: noreply@anthropic.com | |
| 156 | + createdAt: 2026-10-03T10:00:00.000Z | |
| 157 | + body: | | |
| 158 | + **Addition (user, 2026-10-03): permissions per tool.** | |
| 159 | + | |
| 160 | + Today (verified in the code): | |
| 161 | + - `bashTool` and `editTools` are booleans: they say whether the tool | |
| 162 | + EXISTS, not whether to ask. `bashTool: ask` is a YAML error (cannot | |
| 163 | + unmarshal a string into bool). | |
| 164 | + - `permissions: auto|ask` is a separate, GLOBAL, top-level key | |
| 165 | + (internal/config/config.go:166). It is read by the window mode only. | |
| 166 | + With `ask`, every tool that calls Allow waits for a/s/r: bash | |
| 167 | + (tools.go:268), write_file and edit_file (files.go:243, 280), | |
| 168 | + fetch_content when it saves (fetchcontent.go:104), lsp rename | |
| 169 | + (lsp.go:284), one plan action (plan.go:576). read_file and read_skill | |
| 170 | + never ask. All or nothing: no way to ask for bash but not for edits. | |
| 171 | + - The line mode and -p have NO gate: the tools only go through Allow when | |
| 172 | + a ui.Sink is active (tools.go:212), and the REPL installs none. | |
| 173 | + - `permissions` appears in NO shipped config (agent.*.yaml, demo*/, | |
| 174 | + config.samples/): users do not find it. | |
| 175 | + - Since ticket 73, `mm --ask <agent>` always allows the asked agent's | |
| 176 | + tools (Lucy wrote capital_info.txt twice in demo-llmman during tests). | |
| 177 | + | |
| 178 | + Proposal: | |
| 179 | + - `bashTool: true | false | ask`, `editTools: true | false | ask` (and the | |
| 180 | + same for fetchContentTool / lsp rename if wanted): `ask` = the tool | |
| 181 | + exists and every call waits for the user; `true` = runs at once; | |
| 182 | + `false` = not declared. Defaults unchanged (true). | |
| 183 | + - Keep the global `permissions` as the default for tools without a | |
| 184 | + per-tool value; a per-tool value wins. --yolo (this ticket) turns | |
| 185 | + every `ask` into `true` for the run. | |
| 186 | + - Make `ask` work in the LINE mode too: a small terminal prompt before | |
| 187 | + the call (`run bash: ls -la? [y]es once / [s]ession / [n]o`), in the | |
| 188 | + REPL's input loop (it already owns stdin and Ctrl+C). -p (one-shot, | |
| 189 | + non-interactive) cannot ask: `ask` there = reject, with a clear | |
| 190 | + "[command rejected: -p cannot ask]" so scripts do not hang. | |
| 191 | + - ACP keeps the editor's dialog whatever the value; `true` could skip it | |
| 192 | + (that is the --yolo question already open above). | |
| 193 | + | |
| 194 | + Open questions: | |
| 195 | + 1. Precedence: per-tool value > `permissions` > default — OK? | |
| 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)? | |
| @@ -6,7 +6,7 @@ author: | |||
| 6 | name: k33g | 6 | name: k33g |
| 7 | email: ph.charriere@gmail.com | 7 | email: ph.charriere@gmail.com |
| 8 | createdAt: 2026-10-01T04:39:53.878Z | 8 | createdAt: 2026-10-01T04:39:53.878Z |
| 9 | -updatedAt: 2026-10-01T06:30:00.000Z | 9 | +updatedAt: 2026-10-03T10:00:00.000Z |
| 10 | labels: | 10 | labels: |
| 11 | - kind::feature | 11 | - kind::feature |
| 12 | - priority::low | 12 | - priority::low |
| @@ -103,4 +103,95 @@ tasks: | |||
| 103 | email: ph.charriere@gmail.com | 103 | email: ph.charriere@gmail.com |
| 104 | createdAt: 2026-10-01T06:30:00.000Z | 104 | createdAt: 2026-10-01T06:30:00.000Z |
| 105 | updatedAt: 2026-10-01T06:30:00.000Z | 105 | updatedAt: 2026-10-01T06:30:00.000Z |
| 106 | -comments: [] | 106 | + - id: 7 |
| 107 | + title: "Per-tool permission: bashTool/editTools accept true | false | ask (config validation, defaults unchanged)" | ||
| 108 | + state: open | ||
| 109 | + priority: none | ||
| 110 | + author: | ||
| 111 | + name: k33g | ||
| 112 | + email: ph.charriere@gmail.com | ||
| 113 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 114 | + updatedAt: 2026-10-03T10:00:00.000Z | ||
| 115 | + - id: 8 | ||
| 116 | + title: "Line mode: a terminal permission prompt (y once / s session / n reject) so `ask` works there too" | ||
| 117 | + state: open | ||
| 118 | + priority: none | ||
| 119 | + author: | ||
| 120 | + name: k33g | ||
| 121 | + email: ph.charriere@gmail.com | ||
| 122 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 123 | + updatedAt: 2026-10-03T10:00:00.000Z | ||
| 124 | + - id: 9 | ||
| 125 | + title: "Decide precedence between the per-tool value, the global `permissions` key and --yolo" | ||
| 126 | + state: open | ||
| 127 | + priority: none | ||
| 128 | + author: | ||
| 129 | + name: k33g | ||
| 130 | + email: ph.charriere@gmail.com | ||
| 131 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 132 | + updatedAt: 2026-10-03T10:00:00.000Z | ||
| 133 | + - id: 10 | ||
| 134 | + title: "Ship `permissions:` (commented, explained) in agent.*.yaml, demo*/ and config.samples/" | ||
| 135 | + state: open | ||
| 136 | + priority: none | ||
| 137 | + author: | ||
| 138 | + name: k33g | ||
| 139 | + email: ph.charriere@gmail.com | ||
| 140 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 141 | + updatedAt: 2026-10-03T10:00:00.000Z | ||
| 142 | + - id: 11 | ||
| 143 | + title: "mm --ask: let the caller forbid or confirm the asked agent's tools (ticket 73 open task)" | ||
| 144 | + state: open | ||
| 145 | + priority: none | ||
| 146 | + author: | ||
| 147 | + name: k33g | ||
| 148 | + email: ph.charriere@gmail.com | ||
| 149 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 150 | + updatedAt: 2026-10-03T10:00:00.000Z | ||
| 151 | +comments: | ||
| 152 | + - id: 1 | ||
| 153 | + author: | ||
| 154 | + name: claude | ||
| 155 | + email: noreply@anthropic.com | ||
| 156 | + createdAt: 2026-10-03T10:00:00.000Z | ||
| 157 | + body: | | ||
| 158 | + **Addition (user, 2026-10-03): permissions per tool.** | ||
| 159 | + | ||
| 160 | + Today (verified in the code): | ||
| 161 | + - `bashTool` and `editTools` are booleans: they say whether the tool | ||
| 162 | + EXISTS, not whether to ask. `bashTool: ask` is a YAML error (cannot | ||
| 163 | + unmarshal a string into bool). | ||
| 164 | + - `permissions: auto|ask` is a separate, GLOBAL, top-level key | ||
| 165 | + (internal/config/config.go:166). It is read by the window mode only. | ||
| 166 | + With `ask`, every tool that calls Allow waits for a/s/r: bash | ||
| 167 | + (tools.go:268), write_file and edit_file (files.go:243, 280), | ||
| 168 | + fetch_content when it saves (fetchcontent.go:104), lsp rename | ||
| 169 | + (lsp.go:284), one plan action (plan.go:576). read_file and read_skill | ||
| 170 | + never ask. All or nothing: no way to ask for bash but not for edits. | ||
| 171 | + - The line mode and -p have NO gate: the tools only go through Allow when | ||
| 172 | + a ui.Sink is active (tools.go:212), and the REPL installs none. | ||
| 173 | + - `permissions` appears in NO shipped config (agent.*.yaml, demo*/, | ||
| 174 | + config.samples/): users do not find it. | ||
| 175 | + - Since ticket 73, `mm --ask <agent>` always allows the asked agent's | ||
| 176 | + tools (Lucy wrote capital_info.txt twice in demo-llmman during tests). | ||
| 177 | + | ||
| 178 | + Proposal: | ||
| 179 | + - `bashTool: true | false | ask`, `editTools: true | false | ask` (and the | ||
| 180 | + same for fetchContentTool / lsp rename if wanted): `ask` = the tool | ||
| 181 | + exists and every call waits for the user; `true` = runs at once; | ||
| 182 | + `false` = not declared. Defaults unchanged (true). | ||
| 183 | + - Keep the global `permissions` as the default for tools without a | ||
| 184 | + per-tool value; a per-tool value wins. --yolo (this ticket) turns | ||
| 185 | + every `ask` into `true` for the run. | ||
| 186 | + - Make `ask` work in the LINE mode too: a small terminal prompt before | ||
| 187 | + the call (`run bash: ls -la? [y]es once / [s]ession / [n]o`), in the | ||
| 188 | + REPL's input loop (it already owns stdin and Ctrl+C). -p (one-shot, | ||
| 189 | + non-interactive) cannot ask: `ask` there = reject, with a clear | ||
| 190 | + "[command rejected: -p cannot ask]" so scripts do not hang. | ||
| 191 | + - ACP keeps the editor's dialog whatever the value; `true` could skip it | ||
| 192 | + (that is the --yolo question already open above). | ||
| 193 | + | ||
| 194 | + Open questions: | ||
| 195 | + 1. Precedence: per-tool value > `permissions` > default — OK? | ||
| 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)? | ||
added
.tickets/issues/0074-memory-memgpt-hierarchic-memory.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: 74 | |
| 3 | +title: MEMORY-MEMGPT (hierarchic memory) | |
| 4 | +state: open | |
| 5 | +author: | |
| 6 | + name: k33g | |
| 7 | + email: ph.charriere@gmail.com | |
| 8 | +createdAt: 2026-10-04T15:12:36.643Z | |
| 9 | +updatedAt: 2026-10-04T15:12:50.958Z | |
| 10 | +labels: | |
| 11 | + - priority::high | |
| 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: 74 | ||
| 3 | +title: MEMORY-MEMGPT (hierarchic memory) | ||
| 4 | +state: open | ||
| 5 | +author: | ||
| 6 | + name: k33g | ||
| 7 | + email: ph.charriere@gmail.com | ||
| 8 | +createdAt: 2026-10-04T15:12:36.643Z | ||
| 9 | +updatedAt: 2026-10-04T15:12:50.958Z | ||
| 10 | +labels: | ||
| 11 | + - priority::high | ||
| 12 | +body: "" | ||
| 13 | +tasks: [] | ||
| 14 | +comments: [] | ||
modified
INSTALL.MACOS.md +1 -1 | @@ -2,7 +2,7 @@ | ||
| 2 | 2 | |
| 3 | 3 | ```bash |
| 4 | 4 | # download the binary release in https://rickub.com/bots-garden/mini-me/releases |
| 5 | -VERSION=0.2.5 | |
| 5 | +VERSION=0.2.6 | |
| 6 | 6 | curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64" |
| 7 | 7 | chmod +x ./mm-${VERSION}-darwin-arm64 |
| 8 | 8 | xattr -cr ./mm-${VERSION}-darwin-arm64 |
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | ```bash | 3 | ```bash |
| 4 | # download the binary release in https://rickub.com/bots-garden/mini-me/releases | 4 | # download the binary release in https://rickub.com/bots-garden/mini-me/releases |
| 5 | -VERSION=0.2.5 | 5 | +VERSION=0.2.6 |
| 6 | curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64" | 6 | curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64" |
| 7 | chmod +x ./mm-${VERSION}-darwin-arm64 | 7 | chmod +x ./mm-${VERSION}-darwin-arm64 |
| 8 | xattr -cr ./mm-${VERSION}-darwin-arm64 | 8 | xattr -cr ./mm-${VERSION}-darwin-arm64 |
modified
docker-sbx-v3/build.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx-v3/check-kits.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx-v3/kits/mm-acp/mm-acp.yaml +1 -1 | @@ -48,7 +48,7 @@ args: | ||
| 48 | 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' |
| 49 | 49 | buildArg: MM_IMAGE |
| 50 | 50 | tag: |
| 51 | - default: "0.2.5" | |
| 51 | + default: "0.2.6" | |
| 52 | 52 | description: >- |
| 53 | 53 | Tag of the template image: mm's version without the "v", as |
| 54 | 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the |
| @@ -48,7 +48,7 @@ args: | |||
| 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' | 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' |
| 49 | buildArg: MM_IMAGE | 49 | buildArg: MM_IMAGE |
| 50 | tag: | 50 | tag: |
| 51 | - default: "0.2.5" | 51 | + default: "0.2.6" |
| 52 | description: >- | 52 | description: >- |
| 53 | Tag of the template image: mm's version without the "v", as | 53 | Tag of the template image: mm's version without the "v", as |
| 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the | 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the |
modified
docker-sbx-v3/kits/mm-tui/mm-tui.yaml +1 -1 | @@ -48,7 +48,7 @@ args: | ||
| 48 | 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' |
| 49 | 49 | buildArg: MM_IMAGE |
| 50 | 50 | tag: |
| 51 | - default: "0.2.5" | |
| 51 | + default: "0.2.6" | |
| 52 | 52 | description: >- |
| 53 | 53 | Tag of the template image: mm's version without the "v", as |
| 54 | 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the |
| @@ -48,7 +48,7 @@ args: | |||
| 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' | 48 | pattern: '^[a-z0-9][a-z0-9._/:-]*$' |
| 49 | buildArg: MM_IMAGE | 49 | buildArg: MM_IMAGE |
| 50 | tag: | 50 | tag: |
| 51 | - default: "0.2.5" | 51 | + default: "0.2.6" |
| 52 | description: >- | 52 | description: >- |
| 53 | Tag of the template image: mm's version without the "v", as | 53 | Tag of the template image: mm's version without the "v", as |
| 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the | 54 | docker-sbx-v3/build.sh tags it (and rewrites this default to). Also the |
modified
docker-sbx-v3/publish.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx-v3/push-kits.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx-v3/sync-kits.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/build.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/mcp/github-mcp.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/publish.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/push-kits.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/sync-kits.sh +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/template/mm-acp-info +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
docker-sbx/template/mm-tui +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
tests/tool-order/proxy.py +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |
modified
tests/tool-order/session.py +0 -0 | old mode 100755 | ||
| new mode 100644 |
| old mode 100755 | |||
| new mode 100644 |