micro-models-agent 0.59.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +578 -564
- package/README.md +358 -358
- package/dist/certification/certifications.json +493 -493
- package/dist/i18n/en.json +732 -718
- package/dist/i18n/ru.json +732 -718
- package/dist/main.js +504 -62
- package/dist/modules/browser/bridge-server.mjs +219 -219
- package/dist/skills/builtin/git.md +36 -36
- package/dist/skills/builtin/typescript.md +35 -35
- package/package.json +51 -51
- package/dist/cli/commands.js +0 -447
- package/dist/cli/completer.js +0 -167
- package/dist/cli/index.js +0 -2
- package/dist/cli/main.js +0 -153
- package/dist/cli/plugin-commands.js +0 -36
- package/dist/cli/repl-commands.js +0 -761
- package/dist/cli/repl.js +0 -702
- package/dist/cli/run-result.js +0 -33
- package/dist/cli/security-commands.js +0 -164
- package/dist/cli/setup.js +0 -237
- package/dist/config/config.js +0 -276
- package/dist/config/defaults.js +0 -141
- package/dist/config/domains.js +0 -179
- package/dist/config/experts.js +0 -15
- package/dist/config/index.js +0 -4
- package/dist/config/security.js +0 -213
- package/dist/config/types.js +0 -1
- package/dist/core/agent-moe.js +0 -102
- package/dist/core/agent.js +0 -1018
- package/dist/core/bootstrap.js +0 -481
- package/dist/core/crash-handler.js +0 -51
- package/dist/core/environment.js +0 -199
- package/dist/core/index.js +0 -2
- package/dist/core/prompt-builder.js +0 -76
- package/dist/core/session-logger.js +0 -251
- package/dist/core/types.js +0 -1
- package/dist/core/version.js +0 -26
- package/dist/core/workspace.js +0 -76
- package/dist/i18n/index.js +0 -46
- package/dist/index.js +0 -22
- package/dist/llm/image-utils.js +0 -143
- package/dist/llm/index.js +0 -4
- package/dist/llm/model-loader.js +0 -78
- package/dist/llm/openai-compat.js +0 -497
- package/dist/llm/orchestrator.js +0 -200
- package/dist/llm/provider.js +0 -10
- package/dist/llm/response.js +0 -39
- package/dist/llm/token-counter.js +0 -39
- package/dist/llm/types.js +0 -1
- package/dist/logger/app-logger.js +0 -189
- package/dist/logger/file-log.js +0 -151
- package/dist/logger/index.js +0 -1
- package/dist/migration/backup.js +0 -45
- package/dist/migration/detect.js +0 -50
- package/dist/migration/index.js +0 -2
- package/dist/modules/artifacts/store.js +0 -61
- package/dist/modules/browser/actions.js +0 -76
- package/dist/modules/browser/bridge-client.js +0 -199
- package/dist/modules/browser/bridge-path.js +0 -10
- package/dist/modules/browser/cookie-store.js +0 -24
- package/dist/modules/browser/driver.js +0 -136
- package/dist/modules/browser/index.js +0 -7
- package/dist/modules/browser/module.js +0 -29
- package/dist/modules/browser/session.js +0 -342
- package/dist/modules/browser/snapshot.js +0 -148
- package/dist/modules/browser/types.js +0 -12
- package/dist/modules/certification/cli.js +0 -213
- package/dist/modules/certification/fact-checker.js +0 -82
- package/dist/modules/certification/loader.js +0 -106
- package/dist/modules/certification/manifest.js +0 -58
- package/dist/modules/certification/runner.js +0 -245
- package/dist/modules/certification/scenarios.js +0 -407
- package/dist/modules/certification/types.js +0 -1
- package/dist/modules/context/chunk-query.js +0 -100
- package/dist/modules/context/fact-extractor.js +0 -168
- package/dist/modules/context/history.js +0 -15
- package/dist/modules/context/index.js +0 -1
- package/dist/modules/context/manager.js +0 -440
- package/dist/modules/execution/audit-runners.js +0 -206
- package/dist/modules/execution/auditor.js +0 -218
- package/dist/modules/execution/execution-plugin.js +0 -431
- package/dist/modules/execution/index.js +0 -8
- package/dist/modules/execution/module.js +0 -625
- package/dist/modules/execution/moe-executor.js +0 -304
- package/dist/modules/execution/plan-coverage.js +0 -68
- package/dist/modules/execution/plan-persister.js +0 -46
- package/dist/modules/execution/plan-store.js +0 -196
- package/dist/modules/execution/plan-tool.js +0 -677
- package/dist/modules/execution/plan-validator.js +0 -153
- package/dist/modules/execution/planner.js +0 -94
- package/dist/modules/execution/stuck-detector.js +0 -746
- package/dist/modules/execution/tracker.js +0 -69
- package/dist/modules/execution/types.js +0 -1
- package/dist/modules/execution/verifier.js +0 -235
- package/dist/modules/execution/windows-commands.js +0 -41
- package/dist/modules/hallucination/confidence.js +0 -66
- package/dist/modules/hallucination/consistency.js +0 -26
- package/dist/modules/hallucination/detector.js +0 -47
- package/dist/modules/hallucination/factual.js +0 -169
- package/dist/modules/hallucination/index.js +0 -5
- package/dist/modules/hallucination/js-identifiers.js +0 -262
- package/dist/modules/hallucination/llm-judge.js +0 -101
- package/dist/modules/index.js +0 -5
- package/dist/modules/indexer/cache.js +0 -40
- package/dist/modules/indexer/index.js +0 -3
- package/dist/modules/indexer/module.js +0 -246
- package/dist/modules/indexer/project-profile.js +0 -183
- package/dist/modules/indexer/walker.js +0 -101
- package/dist/modules/lsp/check-tool.js +0 -58
- package/dist/modules/lsp/client.js +0 -389
- package/dist/modules/lsp/command.js +0 -60
- package/dist/modules/lsp/config.js +0 -135
- package/dist/modules/lsp/index.js +0 -3
- package/dist/modules/lsp/module.js +0 -260
- package/dist/modules/lsp/probe.js +0 -86
- package/dist/modules/lsp/project-root.js +0 -32
- package/dist/modules/lsp/startup-check.js +0 -144
- package/dist/modules/lsp/types.js +0 -1
- package/dist/modules/mcp/client.js +0 -399
- package/dist/modules/mcp/index.js +0 -3
- package/dist/modules/mcp/module.js +0 -142
- package/dist/modules/mcp/registry.js +0 -15
- package/dist/modules/memory/index.js +0 -1
- package/dist/modules/memory/module.js +0 -96
- package/dist/modules/memory/search.js +0 -42
- package/dist/modules/memory/store.js +0 -69
- package/dist/modules/pipelines/engine.js +0 -60
- package/dist/modules/pipelines/index.js +0 -3
- package/dist/modules/pipelines/parser.js +0 -56
- package/dist/modules/pipelines/template.js +0 -14
- package/dist/modules/plugins/builtin/lint-on-write.js +0 -334
- package/dist/modules/plugins/builtin/notify.js +0 -9
- package/dist/modules/plugins/index.js +0 -1
- package/dist/modules/plugins/loader.js +0 -70
- package/dist/modules/plugins/manager.js +0 -261
- package/dist/modules/plugins/types.js +0 -1
- package/dist/modules/pricing/index.js +0 -61
- package/dist/modules/pricing/prices.js +0 -129
- package/dist/modules/processes/detect.js +0 -34
- package/dist/modules/processes/index.js +0 -2
- package/dist/modules/processes/registry.js +0 -327
- package/dist/modules/processes/runner.js +0 -23
- package/dist/modules/providers/create.js +0 -22
- package/dist/modules/providers/fallback.js +0 -79
- package/dist/modules/providers/health.js +0 -46
- package/dist/modules/providers/index.js +0 -5
- package/dist/modules/providers/manager.js +0 -161
- package/dist/modules/providers/presets.js +0 -128
- package/dist/modules/providers/registry.js +0 -22
- package/dist/modules/providers/types.js +0 -1
- package/dist/modules/registry.js +0 -48
- package/dist/modules/security/audit-log.js +0 -136
- package/dist/modules/security/audit-notifier.js +0 -292
- package/dist/modules/security/command-validator.js +0 -219
- package/dist/modules/security/content-scanner.js +0 -53
- package/dist/modules/security/data-sanitizer.js +0 -89
- package/dist/modules/security/encryption.js +0 -242
- package/dist/modules/security/index.js +0 -14
- package/dist/modules/security/network-validator.js +0 -88
- package/dist/modules/security/path-validator.js +0 -203
- package/dist/modules/security/rate-limiter.js +0 -119
- package/dist/modules/security/security-policies.js +0 -531
- package/dist/modules/security/session-encryption.js +0 -210
- package/dist/modules/security/session-isolation.js +0 -95
- package/dist/modules/session/index.js +0 -3
- package/dist/modules/session/manager.js +0 -172
- package/dist/modules/session/module.js +0 -24
- package/dist/modules/session/store.js +0 -222
- package/dist/modules/session/types.js +0 -1
- package/dist/modules/skills/index.js +0 -2
- package/dist/modules/skills/loader.js +0 -72
- package/dist/modules/skills/matcher.js +0 -27
- package/dist/modules/skills/module.js +0 -129
- package/dist/modules/types.js +0 -1
- package/dist/modules/updater/checker.js +0 -96
- package/dist/modules/updater/index.js +0 -2
- package/dist/modules/updater/module.js +0 -116
- package/dist/modules/user-profile/compressor.js +0 -16
- package/dist/modules/user-profile/index.js +0 -1
- package/dist/modules/user-profile/profile.js +0 -68
- package/dist/tools/approve.js +0 -33
- package/dist/tools/attach-image.js +0 -101
- package/dist/tools/bash.js +0 -519
- package/dist/tools/browser.js +0 -115
- package/dist/tools/chunk-query.js +0 -100
- package/dist/tools/create-dir.js +0 -56
- package/dist/tools/delete-file.js +0 -63
- package/dist/tools/download-file.js +0 -117
- package/dist/tools/edit-file.js +0 -80
- package/dist/tools/enable-tools.js +0 -59
- package/dist/tools/executor.js +0 -154
- package/dist/tools/file-info.js +0 -47
- package/dist/tools/filter-tools.js +0 -17
- package/dist/tools/glob-tool.js +0 -27
- package/dist/tools/grep-tool.js +0 -125
- package/dist/tools/hidden-tools-block.js +0 -37
- package/dist/tools/index.js +0 -78
- package/dist/tools/list-dir.js +0 -49
- package/dist/tools/load-skill.js +0 -43
- package/dist/tools/mcp-call.js +0 -69
- package/dist/tools/move-file.js +0 -86
- package/dist/tools/path-utils.js +0 -101
- package/dist/tools/pipeline-run.js +0 -145
- package/dist/tools/preview.js +0 -2
- package/dist/tools/process-kill.js +0 -40
- package/dist/tools/process-list.js +0 -37
- package/dist/tools/process-log.js +0 -54
- package/dist/tools/question.js +0 -141
- package/dist/tools/read-file.js +0 -179
- package/dist/tools/recall.js +0 -118
- package/dist/tools/registry.js +0 -47
- package/dist/tools/remember.js +0 -68
- package/dist/tools/scope-check.js +0 -32
- package/dist/tools/search-history.js +0 -85
- package/dist/tools/subagent.js +0 -196
- package/dist/tools/types.js +0 -1
- package/dist/tools/user-input.js +0 -123
- package/dist/tools/web-browse.js +0 -87
- package/dist/tools/web-fetch.js +0 -119
- package/dist/tools/web-search.js +0 -105
- package/dist/tools/write-file.js +0 -82
- package/dist/ui/box.js +0 -77
- package/dist/ui/colors.js +0 -4
- package/dist/ui/diff.js +0 -178
- package/dist/ui/index.js +0 -6
- package/dist/ui/line-editor.js +0 -822
- package/dist/ui/line-math.js +0 -73
- package/dist/ui/md-formatter.js +0 -212
- package/dist/ui/output.js +0 -13
- package/dist/ui/plan-view.js +0 -103
- package/dist/ui/renderer.js +0 -259
- package/dist/ui/spinner.js +0 -70
- package/dist/ui/table.js +0 -144
package/CHANGELOG.md
CHANGED
|
@@ -1,564 +1,578 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to Micro Models Agent (MMA) will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
-
|
|
7
|
-
## [0.
|
|
8
|
-
|
|
9
|
-
### Added
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- **
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- **
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
###
|
|
37
|
-
- **
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- **
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- **
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
- **
|
|
64
|
-
- **
|
|
65
|
-
- **
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- **
|
|
71
|
-
- **
|
|
72
|
-
- **
|
|
73
|
-
- **
|
|
74
|
-
- **
|
|
75
|
-
- **
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- **
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
- **
|
|
84
|
-
- **
|
|
85
|
-
- **
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- **
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- **
|
|
99
|
-
- **
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
- **
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
- **
|
|
126
|
-
|
|
127
|
-
## [0.56.
|
|
128
|
-
|
|
129
|
-
###
|
|
130
|
-
- **
|
|
131
|
-
- **
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
- **
|
|
139
|
-
- **
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
- **
|
|
145
|
-
- **
|
|
146
|
-
- **
|
|
147
|
-
- **
|
|
148
|
-
- **LSP**:
|
|
149
|
-
- **
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- **
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
- **
|
|
158
|
-
- **
|
|
159
|
-
- **
|
|
160
|
-
- **
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- **
|
|
166
|
-
- **
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
- **
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
- **Certification**:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
- **
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
###
|
|
190
|
-
- **Certification**:
|
|
191
|
-
- **Certification**:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
- **
|
|
201
|
-
- **
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
- **
|
|
223
|
-
- **
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
- **
|
|
227
|
-
|
|
228
|
-
## [0.50.
|
|
229
|
-
|
|
230
|
-
### Fixed
|
|
231
|
-
- **
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
- **
|
|
237
|
-
- **
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
- **
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
- **
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
- **
|
|
285
|
-
- **
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
- **
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
- **
|
|
320
|
-
|
|
321
|
-
## [0.43.
|
|
322
|
-
|
|
323
|
-
###
|
|
324
|
-
- **
|
|
325
|
-
- **
|
|
326
|
-
- **
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
- **
|
|
332
|
-
- **
|
|
333
|
-
- **
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
- **
|
|
341
|
-
- **
|
|
342
|
-
|
|
343
|
-
### Fixed
|
|
344
|
-
- **
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
- **
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
- **
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
- **LSP**:
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
- **
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
- **
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
### Fixed
|
|
402
|
-
- **
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
- **
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
- **
|
|
427
|
-
- **
|
|
428
|
-
- **
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
- **
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
### Fixed
|
|
439
|
-
- **
|
|
440
|
-
- **
|
|
441
|
-
- **
|
|
442
|
-
- **
|
|
443
|
-
|
|
444
|
-
## [0.35.
|
|
445
|
-
|
|
446
|
-
###
|
|
447
|
-
- **
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
- **
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
- **
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
- **
|
|
467
|
-
- **
|
|
468
|
-
|
|
469
|
-
## [0.33.
|
|
470
|
-
|
|
471
|
-
### Fixed
|
|
472
|
-
- **
|
|
473
|
-
- **
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
- **
|
|
479
|
-
- **
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
- **
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
- **
|
|
493
|
-
- **
|
|
494
|
-
|
|
495
|
-
## [0.
|
|
496
|
-
|
|
497
|
-
### Added
|
|
498
|
-
- **
|
|
499
|
-
- **
|
|
500
|
-
- **
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
- **
|
|
507
|
-
- **
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
- **
|
|
525
|
-
- **
|
|
526
|
-
|
|
527
|
-
## [0.
|
|
528
|
-
|
|
529
|
-
###
|
|
530
|
-
- **
|
|
531
|
-
- **
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
- **
|
|
538
|
-
- **
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
- **
|
|
545
|
-
- **
|
|
546
|
-
|
|
547
|
-
## [0.
|
|
548
|
-
|
|
549
|
-
### Added
|
|
550
|
-
- **
|
|
551
|
-
- **
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
- **
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
- **
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Micro Models Agent (MMA) will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## [0.60.0] - 2026-09-15
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`session_info` tool** (`src/tools/session-info.ts`, `alwaysOn`): the model can now answer questions about the session it is running in — id, name, model, provider, context window, message count, timestamps and **live context usage** (`tokens / history budget (percent)` from `ContextManager.getSnapshot()`). Reads live metadata through a new `sessionManager` getter on `ToolContext` (like `sessionId`/`sessionContext`), so a REPL `/new` or `/resume` is reflected immediately. Previously the model reported having "no access to session metadata".
|
|
11
|
+
- **Session prompt block** (`session.info_full`, en+ru): the system prompt carries a compact `[Session: "name" (id) | model: … | context: … tokens]` line so session identity is available passively as well.
|
|
12
|
+
- **Project-map command**: `mma map [summary|refresh|find <query>]` (CLI) and `/map [summary|refresh|find <query>]` (REPL) let the user inspect the index directly — `summary` prints the exact text injected into the system prompt, `refresh` re-indexes, `find` searches by path or exported symbol. Shared implementation in `src/modules/indexer/map-command.ts` (also used by the `project_map` tool for `find`).
|
|
13
|
+
- **Multi-language index**: symbol extraction was TS/JS-only and the extension whitelist stopped at 10 types. New `src/modules/indexer/symbols.ts` is a data-driven registry — adding a language is one rule plus extensions. It now indexes and extracts symbols for TypeScript/JavaScript, Python, Rust, Go, Java, Kotlin, C#, Ruby, PHP, Swift, Scala, C/C++, Shell and Lua (plus data formats: JSON, Markdown, YAML, TOML, XML, HTML/CSS); symbols are deduped and capped at 40 per file. `map-select.ts` now reuses `isCodeLanguage()` instead of its own list.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **Session metadata never reached the model**: `SessionModule.getSystemPromptBlock()` was collected once during bootstrap, but the session is created during that same bootstrap with `messageCount === 0`, so the block was always `null`. It is now collected through `getDynamicPromptBlocks`; content is deliberately limited to stable per-session fields (no message count) so the system prompt does not mutate every turn and the prefix KV-cache survives.
|
|
17
|
+
- **Prompt-overflow messages not localized**: the overflow warnings emitted by `agent.ts` and the startup check in `bootstrap.ts` were hardcoded English; they now use `t("prompt.overflow.*")` and respect the configured locale (en+ru). The model-facing hint block stays English by design.
|
|
18
|
+
- **Project map showed no source files**: the map listed the first 100 files in `readdir` walk order, which on a real workspace can be entirely docs/config/tests — on this repo the first 100 walked files contained **zero** `src/` entries, so the model had no idea about the project's code structure. New `selectMapFiles` (`src/modules/indexer/map-select.ts`) ranks source above tests above docs/config, puts the densest source directory first (no directory names hardcoded), drops lockfile noise, and sorts deterministically (KV-cache); the listing is capped at 80 files. The index still contains every file, so `project_map find` is unaffected.
|
|
19
|
+
- **Indexer swallowed virtualenvs and other vendor trees**: `IGNORE_DIRS` was Node-centric (`node_modules`, `dist`, `build`, `.mma`, `coverage`), so a Python `venv/` (thousands of dependency files) was indexed and could crowd the map out. The list now covers Python (`venv`, `.venv`, `env`, `virtualenv`, `__pycache__`, `.pytest_cache`, `.mypy_cache`, `.ruff_cache`, `.tox`, `site-packages`), Rust (`target`), Go/PHP/Ruby (`vendor`, `.bundle`), JVM (`.gradle`, `out`), .NET (`obj`), Apple (`pods`, `deriveddata`), VCS/IDE (`.hg`, `.svn`, `.idea`, `.vscode`) plus the original Node entries. Matching is case-insensitive and the watcher now matches whole path **segments** instead of substrings, so short names (`env`, `out`, `obj`) cannot black out `environment.ts` or `about/`.
|
|
20
|
+
|
|
21
|
+
## [0.59.0] - 2026-09-05
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- **Instructions overflow handling**: AGENTS.md and the project map that exceed the system-prompt budget are no longer silently dropped — they are summarized by the LLM into the remaining budget (disk-cached in `<project>/.mma/cache/prompt-summaries`, invalidated by file edits/budget changes) or truncated with a marker; a small essential hint block tells the model what was compressed and to `read_file` the full source
|
|
25
|
+
- **Startup overflow warning**: bootstrap dry-runs the system budget with the real block set and warns the user when instructions/project map will not fit, with a concrete fix — `mma context <N>` for a global `contextWindow`, or an edit of `provider.entries[].contextWindow` in `config/provider.json` when the active entry overrides it
|
|
26
|
+
- **Context probe**: at startup MMA asks LM Studio's native API for the context length the model is actually loaded with and compares it with the configured `contextWindow` — warning on overflow risk (no auto-clamp, user decides), info suggestion when the model supports more; result logged as a `context_probe` session entry
|
|
27
|
+
- **Config**: `instructions.summarize` (default `true`) to disable LLM summarization (truncation fallback only)
|
|
28
|
+
|
|
29
|
+
## [0.58.2] - 2026-09-01
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- **Stale i18n in published package**: `build:copy-assets` did not refresh `dist/i18n/en.json`/`ru.json`, so the 0.58.1 release shipped the old startup-check wording in the standalone JSON files (only `dist/main.js` had the fix). The copy step now ships the current dictionaries.
|
|
33
|
+
|
|
34
|
+
## [0.58.1] - 2026-09-01
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- **Startup check overreach**: the `lsp.startup_header` prompt block instructed the model to "fix these before continuing", overriding `SCOPE DISCIPLINE` — the 9B model started fixing pre-existing project errors the user never asked about (and skipped clarifying questions). The block is now informational (baseline only): errors are listed but the model is told to ignore them unless the current request is about them (en+ru).
|
|
38
|
+
|
|
39
|
+
## [0.58.0] - 2026-08-31
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
- **MoE experts**: dynamic expert registry — `config.experts` (with optional `ExpertConfig.description`) is rendered into the MoE planner prompt instead of a hardcoded code/research/browser/vision list (fallback: `tool_tags`)
|
|
43
|
+
- **MoE orchestrator provider**: `OrchestratorClient` builds its provider through `ProviderManager` — per-entry `contextWindow`/`retry`/`rateLimits` and failover entries are honored; `orchestrator.contextWindow` is the global fallback (legacy `{type,baseUrl,apiKey}` configs keep working)
|
|
44
|
+
- **MoE success criteria**: machine-readable `success_criteria` (`file-exists:<path>`, `substring-in-file:<path>:<text>`, `command-exit-0:<cmd>`) verified by `StepVerifier.verifySubtaskCriteria` before merge; LLM-only criteria surface as warnings in the Router context
|
|
45
|
+
- **MoE selective re-plan**: `executePlan(plan, {skipIds, carriedResults})` — already-succeeded subtasks are carried over across re-plan cycles, only failed/new subtasks re-execute
|
|
46
|
+
- **MoE observability**: `moe_plan` / `moe_subtask` / `moe_replan` / `moe_verify` events written to `session.jsonl` (visible in `mma session show`); token usage aggregated per `expert_tag` (`MoEExecutor.getUsageByTag`); sub-agents receive the real session id instead of the hardcoded `"moe"`
|
|
47
|
+
- **MoE cert scenarios**: `5.2-moe-parallel-waves` and `5.3-moe-read-after-write` (tag `moe`, timeoutMs 600_000)
|
|
48
|
+
- **ToolResult.usage**: sub-agent token usage propagated to the MoE executor for cost attribution
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
- **Reasoning policy baseline**: configurable via `reasoning.baseline` (default `medium`) — the auto policy's quiet-iteration level is no longer hardcoded, so trivial Q&A turns can start at `low`
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
- **MoE hang**: sub-agents spawned by the `subagent` tool re-entered `runWithMoE` when the parent config had `moe.enabled=true` — each MoE sub-agent planned its own subtasks and spawned nested sub-agents recursively (bounded only by `maxRecursionDepth`), hanging execution for many minutes with zero progress events. Sub-agents now always run the plain single-agent loop (`moe` is a top-level orchestration mode only).
|
|
55
|
+
- **MoE fallback visibility**: missing `orchestrator.model` with `moe.enabled=true` now logs a WARN with a fix hint instead of a debug-only message that made silent fallback to single-agent invisible.
|
|
56
|
+
- **CLI one-shot commands hang**: `config`, `session`, `model`, `provider`, `context`, `security`, `plugins`, `changelog` printed their result but never exited — bootstrap leaves open handles (reasoning-probe fetch, indexer) and only the prompt/REPL paths called `process.exit`. Subcommand roots now exit via a `postAction` hook (verified: `session list` 2.7s / exit 0, chained `config set` persists correctly).
|
|
57
|
+
- **Repeated tool calls**: identical `(tool, args)` repeat now injects a nudge into context in ALL modes — previously the nudge was gated behind `--exit-on-complete`, so interactive runs silently burned iterations re-running the same command (observed: duplicate `node sum.js` verification back-to-back).
|
|
58
|
+
- **Perfectionism cycle**: repeated mutations of the SAME target (same file via `edit_file`/`write_file`, same bash command, same `plan`/`todo` action) with varying arguments now inject a finalize-nudge after 5 occurrences — the consecutive-duplicate guard cannot see this pattern (args differ each time; observed: 20+ polish iterations after the task was already complete, then 10+ bookkeeping churn iterations after an audit rejection). The nudge lands AFTER tool results, so `assistant(tool_calls) → tool(results) → user(nudge)` pairing stays valid.
|
|
59
|
+
- **Audit gate friction (evidence-based auto-close)**: pending plan steps whose every file-like token resolves to an existing file are auto-closed by the final audit with a note — small models routinely finish the work but forget `plan update` bookkeeping, and the gate then rejected correct answers burning all retry budget. Steps without file tokens or with missing files stay pending (honest).
|
|
60
|
+
- **Audit rejection guidance**: the audit gate's `<system-summary>` now names the resolution paths (mark done / skipped / re-plan) in en+ru instead of a bare "continue working" — model plan-drift after a rejection (wrong file names, changed approach) is common for 9B and the old message did not point at the fix.
|
|
61
|
+
- **LSP false positives without type env**: `lsp_check` suppresses module-resolution diagnostics when the project root has no `tsconfig.json`/`jsconfig.json`/`node_modules` and reports an inconclusive note instead — phantom `Cannot find module 'fs'` / `Cannot find name '__dirname'` errors made the model abandon a working `.ts` approach for `.js` and spiral into plan drift.
|
|
62
|
+
- **Windows Unix-command hints**: `bash` hint list and the module-side forbidden set now cover `sed`/`awk`/`uniq`/`xargs`/`cut`/`tr`/`basename`/`dirname`/`export`/`source`/`sleep`/`env` (both lists kept consistent) — the 9B model keeps reaching for Unix tools in cmd.exe.
|
|
63
|
+
- **Tool visibility narrowing**: `chunk_query`, `download_file`, `mcp_call`, `pipeline_run` no longer visible by default — they moved behind `enable_tools` (`research`/`shell` tags); the default visible set drops from 23 to 19 schemas, cutting tool tokens on every turn.
|
|
64
|
+
- **Tests**: replaced process-global `vi.mock` with DI seams (`AgentDeps.runWithMoEOverride`, `ToolContext.agentFactory`) — Bun module mocks leak across test files in the same worker; full suite is now green by default (1803 pass / 0 fail).
|
|
65
|
+
- **Docs**: AGENTS.md / testing.md — warn that `mma` resolves the globally installed package (stale `dist/`) when run outside the repo root, silently ignoring `src/` changes; always run from the repo root with `-d <sandbox>` and verify the version in the `Environment:` line.
|
|
66
|
+
|
|
67
|
+
## [0.57.2] - 2026-08-30
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
- **KV-cache**: plan block removed from system prompt; plan status now injected into `<system-summary>` envelope after every tool batch. System prompt is immutable per session — local backends retain prefix cache.
|
|
71
|
+
- **Provenance**: provider entry resolution uses active entry label, not bare `provider.type`
|
|
72
|
+
- **Reasoning signals**: `consecutiveToolSuccesses` and `isRepetitive` now feed real values to the reasoning policy (were hardcoded)
|
|
73
|
+
- **Token estimation**: tool-def token estimate in agent loop uses `estimateTokens()` instead of flat `/4`
|
|
74
|
+
- **Agent split**: `agent.ts` 1550→950 lines; 10 extracted modules (`loop-state`, `compaction`, `tool-batch`, `hallucination-gate`, `audit-gate`, `reasoning-resolver`, `token-tracker`, `context-renderer`, `tool-output`, `constants`)
|
|
75
|
+
- **Plan-tool**: `plan-tool.ts` 741→232 lines; per-action handlers in `plan-actions.ts`
|
|
76
|
+
- **CLI**: `createProgram` 513→thin orchestrator; `registerMmaCommands` 470→8 lines (5 per-domain registers)
|
|
77
|
+
- **Bash handler**: `bash.ts` 236→~100 lines (`resolveBashSecurityConfig`, `decorateCommandOutput`)
|
|
78
|
+
- **Orchestrator**: reuse `parseChunks` instead of hand-rolled `any[]` aggregation; `createPlan` uses own `parseJSON`; constructor deduplicated via `createProviderInstance`
|
|
79
|
+
- **Shared utils**: `src/utils/` with `errMsg()`, `sleep()`, `truncate()`, `backoffDelay()`
|
|
80
|
+
- **errMsg**: replaces 23 occurrences of `e instanceof Error ? e.message : String(e)` across 12 files
|
|
81
|
+
|
|
82
|
+
### Fixed
|
|
83
|
+
- **chunk_query**: one failing chunk no longer kills the entire query; per-chunk `catch` → `[FAILED]`
|
|
84
|
+
- **chunk_query**: synthesis prompt capped at 20K chars with `[TRUNCATED]` marker
|
|
85
|
+
- **chunk_query**: `AbortSignal` propagated to `chatText` for cancellation support
|
|
86
|
+
- **Executor**: `failFast` cleanup guard prevents nested scope clobbering
|
|
87
|
+
- **probe.ts**: transient errors (network/auth) no longer cached as "reasoning not supported" for 24h; returns `null` → caller skips cache
|
|
88
|
+
- **LSP**: startup timeout unified on `DEFAULT_TIMEOUT` (15000) instead of conflicting hardcoded 10000
|
|
89
|
+
- **Browser**: `BridgeResponse.data` typed (was `any`)
|
|
90
|
+
- **Agent**: `Agent.runTool()` public API replaces `(ctx.agent as any).deps` reach-in; `/reload` no longer mutates readonly context
|
|
91
|
+
- **LSP /lsp check**: fixed latent bug where `.execute()` was called with `.executeByName` signature
|
|
92
|
+
|
|
93
|
+
### Added
|
|
94
|
+
- **Plan Reminder**: static `[Plan Reminder]` block in system prompt (never mutates)
|
|
95
|
+
- **Documentation**: reentrancy warning on `executeByName()`, `PlanResult` JSDoc
|
|
96
|
+
- **Tests**: `probe.test.ts` (6 cases), `command-suggest.test.ts`, `providers-factory.test.ts`, `subagent-tool.test.ts`, `agent-moe-write.test.ts`, `chunk-query.test.ts`
|
|
97
|
+
- **probe.ts**: `null` return for transient errors; bootstrap skips cache on `null`
|
|
98
|
+
- **Execution-plugin**: `resetStepFlags`/`resetPlanState` helpers (dedup 3 inline reset blocks)
|
|
99
|
+
- **Security-policies**: `comparePolicies` typed (`keyof SecurityConfig` replaces `as any`)
|
|
100
|
+
|
|
101
|
+
### Removed
|
|
102
|
+
- **Browser**: dead `buildWaitScript` export (never imported)
|
|
103
|
+
|
|
104
|
+
## [0.57.1] - 2026-08-28
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
- **Publish**: republish after version bump
|
|
108
|
+
|
|
109
|
+
## [0.57.0] - 2026-08-28
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
- **MCP**: lazy connect — server connections deferred to first tool call. Startup no longer blocks on unreachable MCP servers (e.g. context7 offline). Discovery runs in background with 5s timeout.
|
|
113
|
+
- **Updater**: `checkOnStart` and `autoInstall` disabled by default. Reduced `waitForIdle` timeout from 130s to 10s.
|
|
114
|
+
- **Config**: `updater.checkOnStart` default changed from `true` to `false`
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
- **MCP**: HTTP request timeouts (10s) on `connectSSE`, `listToolsHTTP`, `callToolHTTP`
|
|
118
|
+
- **MCP**: `failedServers` tracking — servers that fail discovery are not retried
|
|
119
|
+
- **MCP**: placeholder `connect` tool for not-yet-discovered servers (LLM can trigger lazy discovery)
|
|
120
|
+
- **Reasoning**: persistent disk cache (`~/.mma/reasoning-cache.json`) with 24h TTL — avoids re-probing LLM on every restart
|
|
121
|
+
|
|
122
|
+
## [0.56.5] - 2026-08-27
|
|
123
|
+
|
|
124
|
+
### Fixed
|
|
125
|
+
- **Hallucination**: `FactualCheck` now receives deleted files from `ConsistencyCheck` — no longer false-positives on files that were intentionally deleted in the same session
|
|
126
|
+
|
|
127
|
+
## [0.56.4] - 2026-08-27
|
|
128
|
+
|
|
129
|
+
### Fixed
|
|
130
|
+
- **Tools**: `list_dir` now filters `.mma/`, `node_modules/`, `.git/`, `dist/`, `build/`, `coverage/` from directory listings (consistent with indexer)
|
|
131
|
+
- **Hallucination**: `dotfileVariants` now tries dot-prefixing each directory component, not just basename (fixes false positive on `.mma/index-cache.json` → `mma/index-cache.json`)
|
|
132
|
+
|
|
133
|
+
## [0.56.1] - 2026-08-27
|
|
134
|
+
|
|
135
|
+
### Added
|
|
136
|
+
- **CLI**: `mma changelog` command — show latest changelog entry or diff between versions (`--from <version>`)
|
|
137
|
+
- **Updater**: show changelog after auto-update install (`updater.installed` message includes new version's changelog)
|
|
138
|
+
- **Docs**: `CHANGELOG.md` included in npm package (visible via `npm info micro-models-agent`)
|
|
139
|
+
- **Docs**: rule to maintain changelog in `AGENTS.md`
|
|
140
|
+
|
|
141
|
+
## [0.56.0] - 2026-08-27
|
|
142
|
+
|
|
143
|
+
### Added
|
|
144
|
+
- **MoE**: live re-plan loop in `runWithMoE` — orchestrator re-plans on structural failures
|
|
145
|
+
- **MoE**: scope expansion protocol (`scope_request`) for cross-expert file access
|
|
146
|
+
- **MoE**: Esc/interrupt support in the MoE execution path
|
|
147
|
+
- **MoE**: `input_from` cross-expert data flow for subtask dependencies
|
|
148
|
+
- **LSP**: Angular language server support (`@angular/language-server` for `.html` in Angular workspaces)
|
|
149
|
+
- **Tools**: syntax pre-validation and auto-fix for `write_file`/`edit_file`
|
|
150
|
+
|
|
151
|
+
### Fixed
|
|
152
|
+
- **Security**: SSRF via IPv6-mapped IPv4 and raw numeric hostnames
|
|
153
|
+
- **Security**: command-validator blacklist bypasses (shell expansions, encoded chars)
|
|
154
|
+
- **Security**: audit webhook retry queue drained forever (infinite loop + duplicate notifications)
|
|
155
|
+
- **Core**: dangling `tool_calls` on interrupt — synthesized tool messages keep assistant/tool pairing
|
|
156
|
+
- **Core**: live reasoning policy + `set_thinking` override integration
|
|
157
|
+
- **Core**: deep-clone config defaults to prevent cross-session mutation
|
|
158
|
+
- **Config**: preserve `provider.fallback` on hot-swap
|
|
159
|
+
- **Tools**: path/scope escape holes in filesystem and read tools closed
|
|
160
|
+
- **Tools**: clear timeout timer & abort listener after race settles; log discarded losers
|
|
161
|
+
- **MCP**: stdio timer leaks + null deref after disconnect; added initialize handshake
|
|
162
|
+
- **LSP**: spawn servers detached on POSIX so `killTree` reaches the whole chain
|
|
163
|
+
- **Browser**: bridge leaked Chromium on SIGTERM and parent death
|
|
164
|
+
- **UI**: diff LCS memory cap; one bad encrypted line no longer kills session history
|
|
165
|
+
- **CLI**: `/config migrate` was unreachable
|
|
166
|
+
- **MoE**: locale-independent artifact path + no retry on user abort
|
|
167
|
+
|
|
168
|
+
## [0.55.1] - 2026-08-25
|
|
169
|
+
|
|
170
|
+
### Fixed
|
|
171
|
+
- **LLM**: NDJSON-tolerant stream parser for Ollama backends
|
|
172
|
+
- **LLM**: mid-stream provider errors surfaced (Ollama generation failures)
|
|
173
|
+
- **LLM**: `delta.reasoning` alias for thinking models
|
|
174
|
+
- **LLM**: wire-level debug logging for diagnostics
|
|
175
|
+
|
|
176
|
+
## [0.55.0] - 2026-08-25
|
|
177
|
+
|
|
178
|
+
### Added
|
|
179
|
+
- **Certification**: targeted re-run (`--scenarios <ids>`) with result merging
|
|
180
|
+
- **Certification**: per-rep timeout (`--timeout <ms>` + per-scenario `timeoutMs`)
|
|
181
|
+
- **Certification**: audit-gate bypass fix for `--exit-on-complete`
|
|
182
|
+
|
|
183
|
+
### Fixed
|
|
184
|
+
- **Certification**: stale-label wording (removed impossible user instruction)
|
|
185
|
+
- **Dependencies**: typescript pinned to ^5.9 (TS7 preview breaks `@types/node`)
|
|
186
|
+
|
|
187
|
+
## [0.54.0] - 2026-08-24
|
|
188
|
+
|
|
189
|
+
### Added
|
|
190
|
+
- **Certification**: global manifest shipped with package updates (`~/.mma/certifications.json`)
|
|
191
|
+
- **Certification**: bundled manifest + startup sync from package
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
- **Certification**: marks only showed when running from repo root
|
|
195
|
+
|
|
196
|
+
## [0.53.0] - 2026-08-24
|
|
197
|
+
|
|
198
|
+
### Added
|
|
199
|
+
- **Certification**: qwen3.5-9b certified 20/20
|
|
200
|
+
- **Config**: `provider.maxCompletionTokens` option
|
|
201
|
+
- **Certification**: label text in `mma model list` and REPL `/model`
|
|
202
|
+
|
|
203
|
+
### Fixed
|
|
204
|
+
- **Certification**: reasoning-heavy models truncated tool_call arguments at default 4096 cap
|
|
205
|
+
- **Certification**: scenario 3.5 prompt disambiguation
|
|
206
|
+
|
|
207
|
+
## [0.52.0] - 2026-08-23
|
|
208
|
+
|
|
209
|
+
### Added
|
|
210
|
+
- **Execution**: `FS_MUTATING_TOOLS` — plan auto-advance after bash/download/subagent/mcp/pipeline/browser tools
|
|
211
|
+
- **Config**: `provider.maxCompletionTokens` plumbing through ProviderManager → agent
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
- **Execution**: small models create files via bash instead of `write_file`, stalling plans
|
|
215
|
+
- **Execution**: `maxCompletionTokens` was never read from config
|
|
216
|
+
|
|
217
|
+
## [0.51.0] - 2026-08-23
|
|
218
|
+
|
|
219
|
+
### Added
|
|
220
|
+
- **Plugin**: `HostBridge` interface for bidirectional agent communication
|
|
221
|
+
- **Plugin**: `onTurnEnd(ctx, TurnSummary)` hook — dispatched once per completed run
|
|
222
|
+
- **Plugin**: `web-ui` example plugin — browser-based chat with SSE streaming
|
|
223
|
+
- **CLI**: REPL bridge wiring for web-ui submit/interrupt
|
|
224
|
+
|
|
225
|
+
### Fixed
|
|
226
|
+
- **REPL**: `/config migrate` unreachable
|
|
227
|
+
|
|
228
|
+
## [0.50.3] - 2026-08-22
|
|
229
|
+
|
|
230
|
+
### Fixed
|
|
231
|
+
- **UI**: REPL line editor scroll-proof rendering (absolute anchoring via DSR query)
|
|
232
|
+
|
|
233
|
+
## [0.50.2] - 2026-08-22
|
|
234
|
+
|
|
235
|
+
### Fixed
|
|
236
|
+
- **LLM**: idle stream timeout increased 60s → 180s (LM Studio buffering)
|
|
237
|
+
- **LLM**: stall diagnosis with dedicated message for SSE buffering
|
|
238
|
+
- **LLM**: truncation no longer masquerades as empty response
|
|
239
|
+
- **LLM**: recoverable LLM errors fed back into context instead of dying
|
|
240
|
+
- **Execution**: bash flailing detector (≥4 failed bash attempts in last 6)
|
|
241
|
+
|
|
242
|
+
## [0.50.1] - 2026-08-21
|
|
243
|
+
|
|
244
|
+
### Fixed
|
|
245
|
+
- **Security**: no longer silently overrides explicit user opt-out
|
|
246
|
+
- **Lint**: skips missing lint binary (was appending error to every write)
|
|
247
|
+
- **Stuck**: anti-spam for stuck-warnings (dedup via key, decay per-tool counters)
|
|
248
|
+
- **Plan**: unified progress counting (done+skipped as settled)
|
|
249
|
+
- **Plan**: bulk `steps[]` rewrite guarded on progressed plans
|
|
250
|
+
- **Plan**: archived plans answer read-only
|
|
251
|
+
- **Process**: usage hints for `process_kill`/`process_log` without id
|
|
252
|
+
|
|
253
|
+
## [0.50.0] - 2026-08-21
|
|
254
|
+
|
|
255
|
+
### Added
|
|
256
|
+
- **Provider**: health probe (`probeProviders()` + `mma provider check`)
|
|
257
|
+
- **Provider**: code-only capability routing (`ProviderManager.pickFor()`)
|
|
258
|
+
- **Provider**: per-entry isolation + priority fallback order
|
|
259
|
+
- **Pricing**: per-provider cost attribution + breakdown
|
|
260
|
+
|
|
261
|
+
### Fixed
|
|
262
|
+
- **Provider**: transparent failover on 429/5xx/network errors
|
|
263
|
+
|
|
264
|
+
## [0.49.0] - 2026-08-20
|
|
265
|
+
|
|
266
|
+
### Fixed
|
|
267
|
+
- **REPL**: stale-plan leaks — plan state no longer persists across sessions
|
|
268
|
+
- **REPL**: plan checklist prints only on plan/todo tool-end events
|
|
269
|
+
- **Plan**: `PlanStore` is single source of truth for UI consumers
|
|
270
|
+
|
|
271
|
+
## [0.48.3] - 2026-08-20
|
|
272
|
+
|
|
273
|
+
### Fixed
|
|
274
|
+
- **Hallucination**: dotfile false-positive (`.prettierrc.json` extracted as `prettierrc.json`)
|
|
275
|
+
|
|
276
|
+
## [0.48.2] - 2026-08-20
|
|
277
|
+
|
|
278
|
+
### Fixed
|
|
279
|
+
- **REPL**: stale plan printed on first agent run of a session
|
|
280
|
+
|
|
281
|
+
## [0.47.0] - 2026-08-19
|
|
282
|
+
|
|
283
|
+
### Added
|
|
284
|
+
- **Session**: startup diagnostics logging (environment, LSP probe, baseline typecheck)
|
|
285
|
+
- **Session**: `logBaselineTypecheck()` for post-mortem visibility
|
|
286
|
+
|
|
287
|
+
## [0.46.1] - 2026-08-19
|
|
288
|
+
|
|
289
|
+
### Fixed
|
|
290
|
+
- **LLM**: connection-break hardening (stream-level retry, no-data timeout, `[DONE]` tracking)
|
|
291
|
+
- **LLM**: non-streaming timeout (was missing, could hang forever)
|
|
292
|
+
- **Config**: `retry.maxStreamRetries`, `retry.noDataTimeoutMs` options
|
|
293
|
+
|
|
294
|
+
## [0.46.0] - 2026-08-19
|
|
295
|
+
|
|
296
|
+
### Added
|
|
297
|
+
- **Provider**: multi-provider + hot-swap + per-message provenance
|
|
298
|
+
- **Provider**: `ProviderManager` with entry-based config
|
|
299
|
+
- **CLI**: `mma provider add/list/use`
|
|
300
|
+
- **REPL**: `/provider list/use`
|
|
301
|
+
|
|
302
|
+
### Fixed
|
|
303
|
+
- **Path**: `safeResolvePath` POSIX bug (absolute paths re-resolved against baseDir)
|
|
304
|
+
|
|
305
|
+
## [0.45.0] - 2026-08-18
|
|
306
|
+
|
|
307
|
+
### Added
|
|
308
|
+
- **Provider**: provider module Phase 1 (registry, presets, `createProvider()`)
|
|
309
|
+
- **Provider**: `openrouter` preset
|
|
310
|
+
- **Setup**: wizard menu built from `BUILTIN_PROVIDERS`
|
|
311
|
+
|
|
312
|
+
## [0.44.0] - 2026-08-18
|
|
313
|
+
|
|
314
|
+
### Added
|
|
315
|
+
- **Plugins**: folder plugins (subdirectory with entry file)
|
|
316
|
+
- **Plugin**: `trace-server` split into folder plugin
|
|
317
|
+
|
|
318
|
+
### Fixed
|
|
319
|
+
- **Plugin**: template-literal page inlining broke `\n` in JS strings
|
|
320
|
+
|
|
321
|
+
## [0.43.2] - 2026-08-17
|
|
322
|
+
|
|
323
|
+
### Fixed
|
|
324
|
+
- **Execution**: plan done-gate on known compile failures (typecheck gate)
|
|
325
|
+
- **Bootstrap**: live getters for `sessionId`/`sessionContext` after session switch
|
|
326
|
+
- **Edit**: `edit_file` "String not found" hint to `read_file` first
|
|
327
|
+
|
|
328
|
+
## [0.43.1] - 2026-08-17
|
|
329
|
+
|
|
330
|
+
### Fixed
|
|
331
|
+
- **Agent**: session-interrupt no longer renders tool results after "Session ended"
|
|
332
|
+
- **Executor**: `onAfterTool` plugins skipped when signal is aborted
|
|
333
|
+
- **Lint**: abortable syntax checks on Esc
|
|
334
|
+
|
|
335
|
+
## [0.43.0] - 2026-08-17
|
|
336
|
+
|
|
337
|
+
### Added
|
|
338
|
+
- **Plan**: `plan delete <id>` + `plan purge` actions
|
|
339
|
+
- **Plan**: `abort` honors `id` parameter
|
|
340
|
+
- **Plan**: `replan` renumbers ids for kept steps
|
|
341
|
+
- **Audit**: `resolveTestCommand` picks the project's real test runner
|
|
342
|
+
|
|
343
|
+
### Fixed
|
|
344
|
+
- **Plan**: `switch` to already-active plan is a no-op
|
|
345
|
+
- **Plan**: final audit runs for a completed plan
|
|
346
|
+
- **Plan**: evidence-based plan nudge (replaces iteration counter)
|
|
347
|
+
- **Plan**: `checkPlanAlignment` scans path arguments only
|
|
348
|
+
- **Plan**: `isDepsStep` requires a package-manager verb
|
|
349
|
+
- **Plan**: auto-advance resolves nested files
|
|
350
|
+
|
|
351
|
+
## [0.42.0] - 2026-08-16
|
|
352
|
+
|
|
353
|
+
### Added
|
|
354
|
+
- **Execution**: automatic error web search (≥5 same-error repeats → web search → inject results)
|
|
355
|
+
- **Config**: `errorWebSearch` section
|
|
356
|
+
|
|
357
|
+
### Fixed
|
|
358
|
+
- **Execution**: `onAfterTool` double-counted typecheck + failure errors
|
|
359
|
+
|
|
360
|
+
## [0.41.1] - 2026-08-16
|
|
361
|
+
|
|
362
|
+
### Fixed
|
|
363
|
+
- **LSP**: `typescript@5` pin + `--yes` for npx
|
|
364
|
+
- **LSP**: sequential probing (waves) to avoid npx cache lock contention
|
|
365
|
+
- **LSP**: stale config normalization
|
|
366
|
+
- **LSP**: Windows process leak in `shutdown()`
|
|
367
|
+
- **REPL**: non-blocking LSP banner
|
|
368
|
+
- **Bootstrap**: lazy startup health check
|
|
369
|
+
|
|
370
|
+
## [0.41.0] - 2026-08-15
|
|
371
|
+
|
|
372
|
+
### Added
|
|
373
|
+
- **REPL**: live plan checklist with progress bar
|
|
374
|
+
- **UI**: tool-to-step binding (`← step N` suffix in tool headers)
|
|
375
|
+
- **UI**: background command output preview
|
|
376
|
+
|
|
377
|
+
## [0.40.1] - 2026-08-15
|
|
378
|
+
|
|
379
|
+
### Fixed
|
|
380
|
+
- **LSP**: broken package names (`vscode-html-languageserver` → `vscode-langservers-extracted`)
|
|
381
|
+
|
|
382
|
+
## [0.40.0] - 2026-08-15
|
|
383
|
+
|
|
384
|
+
### Added
|
|
385
|
+
- **Tools**: tool-set narrowing (on-demand enable via `enable_tools`)
|
|
386
|
+
- **Config**: `tools.defaultTags` + `tools.enableOnDemand`
|
|
387
|
+
- **Tools**: `alwaysOn` flag for structural tools
|
|
388
|
+
|
|
389
|
+
## [0.39.1] - 2026-08-14
|
|
390
|
+
|
|
391
|
+
### Fixed
|
|
392
|
+
- **Plugins**: dedup by version, compatibility gate, source tracking
|
|
393
|
+
- **CLI**: `mma plugins list` command
|
|
394
|
+
|
|
395
|
+
## [0.38.0] - 2026-08-14
|
|
396
|
+
|
|
397
|
+
### Added
|
|
398
|
+
- **LSP**: `lsp_check` tool for on-demand diagnostics
|
|
399
|
+
- **Plan**: `plan create` guard (blocks when active plan has progress)
|
|
400
|
+
|
|
401
|
+
### Fixed
|
|
402
|
+
- **Context**: compaction summary carries plan + read state
|
|
403
|
+
- **Browser**: bridge path resolution in bundled dist
|
|
404
|
+
|
|
405
|
+
## [0.37.0] - 2026-08-13
|
|
406
|
+
|
|
407
|
+
### Added
|
|
408
|
+
- **Plugins**: folder plugin support in `PluginLoader`
|
|
409
|
+
|
|
410
|
+
### Fixed
|
|
411
|
+
- **Plugin**: template-literal page inlining broke `\n` in JS
|
|
412
|
+
|
|
413
|
+
## [0.36.3] - 2026-08-13
|
|
414
|
+
|
|
415
|
+
### Fixed
|
|
416
|
+
- **UI**: REPL paste fix (batch single-render, CRLF collapse)
|
|
417
|
+
|
|
418
|
+
## [0.36.2] - 2026-08-13
|
|
419
|
+
|
|
420
|
+
### Fixed
|
|
421
|
+
- **Updater**: silent logger, one-shot `process.exit()` killed background install, semver-aware check
|
|
422
|
+
|
|
423
|
+
## [0.36.1] - 2026-08-13
|
|
424
|
+
|
|
425
|
+
### Fixed
|
|
426
|
+
- **Audit**: nested-file resolution, non-zero test run blocks
|
|
427
|
+
- **Browser**: bridge diagnostics + one-shot restart
|
|
428
|
+
- **LSP**: per-server disable + initialize retry + CSS timeout
|
|
429
|
+
- **Bash**: npm exec hint
|
|
430
|
+
|
|
431
|
+
## [0.36.0] - 2026-08-12
|
|
432
|
+
|
|
433
|
+
### Added
|
|
434
|
+
- **Plan**: model-declared `kind: "create"|"delete"` for steps
|
|
435
|
+
- **Execution**: `FS_MUTATING_TOOLS` for plan auto-advance
|
|
436
|
+
- **Config**: `provider.maxCompletionTokens` option
|
|
437
|
+
|
|
438
|
+
### Fixed
|
|
439
|
+
- **Context**: compaction preserves session `mission`
|
|
440
|
+
- **Context**: deleted files leave compaction `[Files:]` list
|
|
441
|
+
- **Audit**: final audit runs real `tsc --noEmit --skipLibCheck`
|
|
442
|
+
- **Bash**: repeated forbidden Windows commands hard-stopped after 2 failures
|
|
443
|
+
|
|
444
|
+
## [0.35.5] - 2026-08-12
|
|
445
|
+
|
|
446
|
+
### Fixed
|
|
447
|
+
- **Execution**: plan-alignment phantom paths (domains/extensions treated as files)
|
|
448
|
+
- **Execution**: hint/recovery dedup in `StuckDetector`
|
|
449
|
+
|
|
450
|
+
## [0.35.3] - 2026-08-11
|
|
451
|
+
|
|
452
|
+
### Fixed
|
|
453
|
+
- **LSP**: workspace root resolved from edited file's project
|
|
454
|
+
- **Audit**: skipped steps treated as terminal
|
|
455
|
+
- **Bash**: Windows hint keys on original command word
|
|
456
|
+
- **Tools**: boundedOutput tools never budget-truncated
|
|
457
|
+
|
|
458
|
+
## [0.35.0] - 2026-08-11
|
|
459
|
+
|
|
460
|
+
### Added
|
|
461
|
+
- **Tools**: `download_file` tool for binary file downloads
|
|
462
|
+
|
|
463
|
+
## [0.34.0] - 2026-08-10
|
|
464
|
+
|
|
465
|
+
### Added
|
|
466
|
+
- **Indexer**: project profile (`[Stack: ...]` summary from manifest)
|
|
467
|
+
- **Indexer**: dynamic map refresh inside sessions
|
|
468
|
+
|
|
469
|
+
## [0.33.3] - 2026-08-10
|
|
470
|
+
|
|
471
|
+
### Fixed
|
|
472
|
+
- **Audit**: nested-file resolution (basename + path-suffix match)
|
|
473
|
+
- **Plan**: `plan show` honors `id` parameter
|
|
474
|
+
- **Context**: compaction interval reset per user turn
|
|
475
|
+
- **Context**: `extractFacts` captures `edit_file` paths + Windows drive-letter paths
|
|
476
|
+
- **Execution**: stuck detector read-only loop detection
|
|
477
|
+
- **Read**: default limit 15 → 300 lines
|
|
478
|
+
- **LSP**: `spawn` on Windows (`.cmd` shim resolution)
|
|
479
|
+
- **Todo**: `todo add` tracks subtasks, `todo done` marks individual sub-task
|
|
480
|
+
- **Memory**: learns repeated per-tool failures (≥3×)
|
|
481
|
+
- **Context**: compaction preserves user's task
|
|
482
|
+
|
|
483
|
+
## [0.33.2] - 2026-08-09
|
|
484
|
+
|
|
485
|
+
### Fixed
|
|
486
|
+
- **UI**: REPL conversation layout (user/agent message dividers)
|
|
487
|
+
- **Tools**: `isFilePathLike` uses allow-list of file extensions
|
|
488
|
+
|
|
489
|
+
## [0.33.1] - 2026-08-09
|
|
490
|
+
|
|
491
|
+
### Fixed
|
|
492
|
+
- **UI**: REPL line editor redraw fix (no duplicated multi-line input)
|
|
493
|
+
- **Tools**: `web_fetch`/`web_browse` description clarifications
|
|
494
|
+
|
|
495
|
+
## [0.33.0] - 2026-08-09
|
|
496
|
+
|
|
497
|
+
### Added
|
|
498
|
+
- **RLM**: pass-by-reference sub-agent results (`ArtifactStore`)
|
|
499
|
+
- **RLM**: chunked parallel queries (`chunk_query` tool)
|
|
500
|
+
- **Config**: `subagent.resultMode`, `maxSummaryChars`, `artifactsDir`, `stableSystemPrompt`
|
|
501
|
+
|
|
502
|
+
## [0.32.0] - 2026-08-08
|
|
503
|
+
|
|
504
|
+
### Added
|
|
505
|
+
- **Browser**: driver abstraction (`PlaywrightDriver` + `BridgeDriver`)
|
|
506
|
+
- **Browser**: Node bridge for Bun compatibility
|
|
507
|
+
- **Config**: `browser.maxConsoleLineChars`
|
|
508
|
+
|
|
509
|
+
## [0.31.0] - 2026-08-08
|
|
510
|
+
|
|
511
|
+
### Added
|
|
512
|
+
- **Security**: session file encryption (AES-256-GCM)
|
|
513
|
+
- **Security**: audit notifications (file + webhook)
|
|
514
|
+
- **Security**: security policies (strict/balanced/permissive)
|
|
515
|
+
- **CLI**: `mma security` commands
|
|
516
|
+
|
|
517
|
+
## [0.30.0] - 2026-08-07
|
|
518
|
+
|
|
519
|
+
### Added
|
|
520
|
+
- **Execution**: final audit gate (runs `bun test` for verification steps)
|
|
521
|
+
- **Execution**: `detectTestResults()` auto-verification in bash
|
|
522
|
+
|
|
523
|
+
### Fixed
|
|
524
|
+
- **Execution**: empty-CLI entry-point hint
|
|
525
|
+
- **Bash**: Windows anti-patterns documentation
|
|
526
|
+
|
|
527
|
+
## [0.29.0] - 2026-08-07
|
|
528
|
+
|
|
529
|
+
### Added
|
|
530
|
+
- **Bash**: smart UTF-8/OEM line decoding (fixes Cyrillic on Windows)
|
|
531
|
+
- **Bash**: behavior-based background detection
|
|
532
|
+
- **Bash**: stuck-detector bash awareness
|
|
533
|
+
|
|
534
|
+
## [0.28.0] - 2026-08-06
|
|
535
|
+
|
|
536
|
+
### Fixed
|
|
537
|
+
- **Agent**: double-Esc interrupt fix (Bun readline keypress collapsing)
|
|
538
|
+
- **Agent**: abortable in-flight LLM requests on interrupt
|
|
539
|
+
- **UI**: clipboard paste hint
|
|
540
|
+
|
|
541
|
+
## [0.27.0] - 2026-08-06
|
|
542
|
+
|
|
543
|
+
### Fixed
|
|
544
|
+
- **Security**: Windows hardening
|
|
545
|
+
- **Hallucination**: fixes
|
|
546
|
+
|
|
547
|
+
## [0.26.0] - 2026-08-05
|
|
548
|
+
|
|
549
|
+
### Added
|
|
550
|
+
- **UI**: opencode-style inline tool headers (`ui.toolStyle`)
|
|
551
|
+
- **UI**: model commentary next to tool calls (`ui.toolComments`)
|
|
552
|
+
- **UI**: diffs without background color
|
|
553
|
+
|
|
554
|
+
## [0.25.0] - 2026-08-05
|
|
555
|
+
|
|
556
|
+
### Added
|
|
557
|
+
- **LSP**: LSP module (typescript, CSS, HTML, JSON, Python, Rust, Go)
|
|
558
|
+
- **Execution**: audit gate language-agnostic
|
|
559
|
+
- **Bash**: Windows command hints
|
|
560
|
+
|
|
561
|
+
## [0.24.0] - 2026-08-04
|
|
562
|
+
|
|
563
|
+
### Added
|
|
564
|
+
- **Context**: quality formula upgrade (token load + compaction loss + error density + freshness)
|
|
565
|
+
- **Read**: display mode (show only header in REPL, full content to LLM)
|
|
566
|
+
|
|
567
|
+
## [0.23.0] - 2026-08-04
|
|
568
|
+
|
|
569
|
+
### Added
|
|
570
|
+
- **Certification**: model certification module (`mma model certify`)
|
|
571
|
+
- **CLI**: cert checkmarks in model lists
|
|
572
|
+
|
|
573
|
+
## [0.22.0] - 2026-08-03
|
|
574
|
+
|
|
575
|
+
### Added
|
|
576
|
+
- **Security**: `enabled` flag (disabled by default)
|
|
577
|
+
- **CLI**: init/first-run apply wizard security answers
|
|
578
|
+
- **Prompt**: system prompt & recovery messages cleanup
|