micro-models-agent 0.55.1 → 0.56.1

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 ADDED
@@ -0,0 +1,444 @@
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.56.0] - 2026-08-27
8
+
9
+ ### Added
10
+ - **MoE**: live re-plan loop in `runWithMoE` — orchestrator re-plans on structural failures
11
+ - **MoE**: scope expansion protocol (`scope_request`) for cross-expert file access
12
+ - **MoE**: Esc/interrupt support in the MoE execution path
13
+ - **MoE**: `input_from` cross-expert data flow for subtask dependencies
14
+ - **LSP**: Angular language server support (`@angular/language-server` for `.html` in Angular workspaces)
15
+ - **Tools**: syntax pre-validation and auto-fix for `write_file`/`edit_file`
16
+
17
+ ### Fixed
18
+ - **Security**: SSRF via IPv6-mapped IPv4 and raw numeric hostnames
19
+ - **Security**: command-validator blacklist bypasses (shell expansions, encoded chars)
20
+ - **Security**: audit webhook retry queue drained forever (infinite loop + duplicate notifications)
21
+ - **Core**: dangling `tool_calls` on interrupt — synthesized tool messages keep assistant/tool pairing
22
+ - **Core**: live reasoning policy + `set_thinking` override integration
23
+ - **Core**: deep-clone config defaults to prevent cross-session mutation
24
+ - **Config**: preserve `provider.fallback` on hot-swap
25
+ - **Tools**: path/scope escape holes in filesystem and read tools closed
26
+ - **Tools**: clear timeout timer & abort listener after race settles; log discarded losers
27
+ - **MCP**: stdio timer leaks + null deref after disconnect; added initialize handshake
28
+ - **LSP**: spawn servers detached on POSIX so `killTree` reaches the whole chain
29
+ - **Browser**: bridge leaked Chromium on SIGTERM and parent death
30
+ - **UI**: diff LCS memory cap; one bad encrypted line no longer kills session history
31
+ - **CLI**: `/config migrate` was unreachable
32
+ - **MoE**: locale-independent artifact path + no retry on user abort
33
+
34
+ ## [0.55.1] - 2026-08-25
35
+
36
+ ### Fixed
37
+ - **LLM**: NDJSON-tolerant stream parser for Ollama backends
38
+ - **LLM**: mid-stream provider errors surfaced (Ollama generation failures)
39
+ - **LLM**: `delta.reasoning` alias for thinking models
40
+ - **LLM**: wire-level debug logging for diagnostics
41
+
42
+ ## [0.55.0] - 2026-08-25
43
+
44
+ ### Added
45
+ - **Certification**: targeted re-run (`--scenarios <ids>`) with result merging
46
+ - **Certification**: per-rep timeout (`--timeout <ms>` + per-scenario `timeoutMs`)
47
+ - **Certification**: audit-gate bypass fix for `--exit-on-complete`
48
+
49
+ ### Fixed
50
+ - **Certification**: stale-label wording (removed impossible user instruction)
51
+ - **Dependencies**: typescript pinned to ^5.9 (TS7 preview breaks `@types/node`)
52
+
53
+ ## [0.54.0] - 2026-08-24
54
+
55
+ ### Added
56
+ - **Certification**: global manifest shipped with package updates (`~/.mma/certifications.json`)
57
+ - **Certification**: bundled manifest + startup sync from package
58
+
59
+ ### Fixed
60
+ - **Certification**: marks only showed when running from repo root
61
+
62
+ ## [0.53.0] - 2026-08-24
63
+
64
+ ### Added
65
+ - **Certification**: qwen3.5-9b certified 20/20
66
+ - **Config**: `provider.maxCompletionTokens` option
67
+ - **Certification**: label text in `mma model list` and REPL `/model`
68
+
69
+ ### Fixed
70
+ - **Certification**: reasoning-heavy models truncated tool_call arguments at default 4096 cap
71
+ - **Certification**: scenario 3.5 prompt disambiguation
72
+
73
+ ## [0.52.0] - 2026-08-23
74
+
75
+ ### Added
76
+ - **Execution**: `FS_MUTATING_TOOLS` — plan auto-advance after bash/download/subagent/mcp/pipeline/browser tools
77
+ - **Config**: `provider.maxCompletionTokens` plumbing through ProviderManager → agent
78
+
79
+ ### Fixed
80
+ - **Execution**: small models create files via bash instead of `write_file`, stalling plans
81
+ - **Execution**: `maxCompletionTokens` was never read from config
82
+
83
+ ## [0.51.0] - 2026-08-23
84
+
85
+ ### Added
86
+ - **Plugin**: `HostBridge` interface for bidirectional agent communication
87
+ - **Plugin**: `onTurnEnd(ctx, TurnSummary)` hook — dispatched once per completed run
88
+ - **Plugin**: `web-ui` example plugin — browser-based chat with SSE streaming
89
+ - **CLI**: REPL bridge wiring for web-ui submit/interrupt
90
+
91
+ ### Fixed
92
+ - **REPL**: `/config migrate` unreachable
93
+
94
+ ## [0.50.3] - 2026-08-22
95
+
96
+ ### Fixed
97
+ - **UI**: REPL line editor scroll-proof rendering (absolute anchoring via DSR query)
98
+
99
+ ## [0.50.2] - 2026-08-22
100
+
101
+ ### Fixed
102
+ - **LLM**: idle stream timeout increased 60s → 180s (LM Studio buffering)
103
+ - **LLM**: stall diagnosis with dedicated message for SSE buffering
104
+ - **LLM**: truncation no longer masquerades as empty response
105
+ - **LLM**: recoverable LLM errors fed back into context instead of dying
106
+ - **Execution**: bash flailing detector (≥4 failed bash attempts in last 6)
107
+
108
+ ## [0.50.1] - 2026-08-21
109
+
110
+ ### Fixed
111
+ - **Security**: no longer silently overrides explicit user opt-out
112
+ - **Lint**: skips missing lint binary (was appending error to every write)
113
+ - **Stuck**: anti-spam for stuck-warnings (dedup via key, decay per-tool counters)
114
+ - **Plan**: unified progress counting (done+skipped as settled)
115
+ - **Plan**: bulk `steps[]` rewrite guarded on progressed plans
116
+ - **Plan**: archived plans answer read-only
117
+ - **Process**: usage hints for `process_kill`/`process_log` without id
118
+
119
+ ## [0.50.0] - 2026-08-21
120
+
121
+ ### Added
122
+ - **Provider**: health probe (`probeProviders()` + `mma provider check`)
123
+ - **Provider**: code-only capability routing (`ProviderManager.pickFor()`)
124
+ - **Provider**: per-entry isolation + priority fallback order
125
+ - **Pricing**: per-provider cost attribution + breakdown
126
+
127
+ ### Fixed
128
+ - **Provider**: transparent failover on 429/5xx/network errors
129
+
130
+ ## [0.49.0] - 2026-08-20
131
+
132
+ ### Fixed
133
+ - **REPL**: stale-plan leaks — plan state no longer persists across sessions
134
+ - **REPL**: plan checklist prints only on plan/todo tool-end events
135
+ - **Plan**: `PlanStore` is single source of truth for UI consumers
136
+
137
+ ## [0.48.3] - 2026-08-20
138
+
139
+ ### Fixed
140
+ - **Hallucination**: dotfile false-positive (`.prettierrc.json` extracted as `prettierrc.json`)
141
+
142
+ ## [0.48.2] - 2026-08-20
143
+
144
+ ### Fixed
145
+ - **REPL**: stale plan printed on first agent run of a session
146
+
147
+ ## [0.47.0] - 2026-08-19
148
+
149
+ ### Added
150
+ - **Session**: startup diagnostics logging (environment, LSP probe, baseline typecheck)
151
+ - **Session**: `logBaselineTypecheck()` for post-mortem visibility
152
+
153
+ ## [0.46.1] - 2026-08-19
154
+
155
+ ### Fixed
156
+ - **LLM**: connection-break hardening (stream-level retry, no-data timeout, `[DONE]` tracking)
157
+ - **LLM**: non-streaming timeout (was missing, could hang forever)
158
+ - **Config**: `retry.maxStreamRetries`, `retry.noDataTimeoutMs` options
159
+
160
+ ## [0.46.0] - 2026-08-19
161
+
162
+ ### Added
163
+ - **Provider**: multi-provider + hot-swap + per-message provenance
164
+ - **Provider**: `ProviderManager` with entry-based config
165
+ - **CLI**: `mma provider add/list/use`
166
+ - **REPL**: `/provider list/use`
167
+
168
+ ### Fixed
169
+ - **Path**: `safeResolvePath` POSIX bug (absolute paths re-resolved against baseDir)
170
+
171
+ ## [0.45.0] - 2026-08-18
172
+
173
+ ### Added
174
+ - **Provider**: provider module Phase 1 (registry, presets, `createProvider()`)
175
+ - **Provider**: `openrouter` preset
176
+ - **Setup**: wizard menu built from `BUILTIN_PROVIDERS`
177
+
178
+ ## [0.44.0] - 2026-08-18
179
+
180
+ ### Added
181
+ - **Plugins**: folder plugins (subdirectory with entry file)
182
+ - **Plugin**: `trace-server` split into folder plugin
183
+
184
+ ### Fixed
185
+ - **Plugin**: template-literal page inlining broke `\n` in JS strings
186
+
187
+ ## [0.43.2] - 2026-08-17
188
+
189
+ ### Fixed
190
+ - **Execution**: plan done-gate on known compile failures (typecheck gate)
191
+ - **Bootstrap**: live getters for `sessionId`/`sessionContext` after session switch
192
+ - **Edit**: `edit_file` "String not found" hint to `read_file` first
193
+
194
+ ## [0.43.1] - 2026-08-17
195
+
196
+ ### Fixed
197
+ - **Agent**: session-interrupt no longer renders tool results after "Session ended"
198
+ - **Executor**: `onAfterTool` plugins skipped when signal is aborted
199
+ - **Lint**: abortable syntax checks on Esc
200
+
201
+ ## [0.43.0] - 2026-08-17
202
+
203
+ ### Added
204
+ - **Plan**: `plan delete <id>` + `plan purge` actions
205
+ - **Plan**: `abort` honors `id` parameter
206
+ - **Plan**: `replan` renumbers ids for kept steps
207
+ - **Audit**: `resolveTestCommand` picks the project's real test runner
208
+
209
+ ### Fixed
210
+ - **Plan**: `switch` to already-active plan is a no-op
211
+ - **Plan**: final audit runs for a completed plan
212
+ - **Plan**: evidence-based plan nudge (replaces iteration counter)
213
+ - **Plan**: `checkPlanAlignment` scans path arguments only
214
+ - **Plan**: `isDepsStep` requires a package-manager verb
215
+ - **Plan**: auto-advance resolves nested files
216
+
217
+ ## [0.42.0] - 2026-08-16
218
+
219
+ ### Added
220
+ - **Execution**: automatic error web search (≥5 same-error repeats → web search → inject results)
221
+ - **Config**: `errorWebSearch` section
222
+
223
+ ### Fixed
224
+ - **Execution**: `onAfterTool` double-counted typecheck + failure errors
225
+
226
+ ## [0.41.1] - 2026-08-16
227
+
228
+ ### Fixed
229
+ - **LSP**: `typescript@5` pin + `--yes` for npx
230
+ - **LSP**: sequential probing (waves) to avoid npx cache lock contention
231
+ - **LSP**: stale config normalization
232
+ - **LSP**: Windows process leak in `shutdown()`
233
+ - **REPL**: non-blocking LSP banner
234
+ - **Bootstrap**: lazy startup health check
235
+
236
+ ## [0.41.0] - 2026-08-15
237
+
238
+ ### Added
239
+ - **REPL**: live plan checklist with progress bar
240
+ - **UI**: tool-to-step binding (`← step N` suffix in tool headers)
241
+ - **UI**: background command output preview
242
+
243
+ ## [0.40.1] - 2026-08-15
244
+
245
+ ### Fixed
246
+ - **LSP**: broken package names (`vscode-html-languageserver` → `vscode-langservers-extracted`)
247
+
248
+ ## [0.40.0] - 2026-08-15
249
+
250
+ ### Added
251
+ - **Tools**: tool-set narrowing (on-demand enable via `enable_tools`)
252
+ - **Config**: `tools.defaultTags` + `tools.enableOnDemand`
253
+ - **Tools**: `alwaysOn` flag for structural tools
254
+
255
+ ## [0.39.1] - 2026-08-14
256
+
257
+ ### Fixed
258
+ - **Plugins**: dedup by version, compatibility gate, source tracking
259
+ - **CLI**: `mma plugins list` command
260
+
261
+ ## [0.38.0] - 2026-08-14
262
+
263
+ ### Added
264
+ - **LSP**: `lsp_check` tool for on-demand diagnostics
265
+ - **Plan**: `plan create` guard (blocks when active plan has progress)
266
+
267
+ ### Fixed
268
+ - **Context**: compaction summary carries plan + read state
269
+ - **Browser**: bridge path resolution in bundled dist
270
+
271
+ ## [0.37.0] - 2026-08-13
272
+
273
+ ### Added
274
+ - **Plugins**: folder plugin support in `PluginLoader`
275
+
276
+ ### Fixed
277
+ - **Plugin**: template-literal page inlining broke `\n` in JS
278
+
279
+ ## [0.36.3] - 2026-08-13
280
+
281
+ ### Fixed
282
+ - **UI**: REPL paste fix (batch single-render, CRLF collapse)
283
+
284
+ ## [0.36.2] - 2026-08-13
285
+
286
+ ### Fixed
287
+ - **Updater**: silent logger, one-shot `process.exit()` killed background install, semver-aware check
288
+
289
+ ## [0.36.1] - 2026-08-13
290
+
291
+ ### Fixed
292
+ - **Audit**: nested-file resolution, non-zero test run blocks
293
+ - **Browser**: bridge diagnostics + one-shot restart
294
+ - **LSP**: per-server disable + initialize retry + CSS timeout
295
+ - **Bash**: npm exec hint
296
+
297
+ ## [0.36.0] - 2026-08-12
298
+
299
+ ### Added
300
+ - **Plan**: model-declared `kind: "create"|"delete"` for steps
301
+ - **Execution**: `FS_MUTATING_TOOLS` for plan auto-advance
302
+ - **Config**: `provider.maxCompletionTokens` option
303
+
304
+ ### Fixed
305
+ - **Context**: compaction preserves session `mission`
306
+ - **Context**: deleted files leave compaction `[Files:]` list
307
+ - **Audit**: final audit runs real `tsc --noEmit --skipLibCheck`
308
+ - **Bash**: repeated forbidden Windows commands hard-stopped after 2 failures
309
+
310
+ ## [0.35.5] - 2026-08-12
311
+
312
+ ### Fixed
313
+ - **Execution**: plan-alignment phantom paths (domains/extensions treated as files)
314
+ - **Execution**: hint/recovery dedup in `StuckDetector`
315
+
316
+ ## [0.35.3] - 2026-08-11
317
+
318
+ ### Fixed
319
+ - **LSP**: workspace root resolved from edited file's project
320
+ - **Audit**: skipped steps treated as terminal
321
+ - **Bash**: Windows hint keys on original command word
322
+ - **Tools**: boundedOutput tools never budget-truncated
323
+
324
+ ## [0.35.0] - 2026-08-11
325
+
326
+ ### Added
327
+ - **Tools**: `download_file` tool for binary file downloads
328
+
329
+ ## [0.34.0] - 2026-08-10
330
+
331
+ ### Added
332
+ - **Indexer**: project profile (`[Stack: ...]` summary from manifest)
333
+ - **Indexer**: dynamic map refresh inside sessions
334
+
335
+ ## [0.33.3] - 2026-08-10
336
+
337
+ ### Fixed
338
+ - **Audit**: nested-file resolution (basename + path-suffix match)
339
+ - **Plan**: `plan show` honors `id` parameter
340
+ - **Context**: compaction interval reset per user turn
341
+ - **Context**: `extractFacts` captures `edit_file` paths + Windows drive-letter paths
342
+ - **Execution**: stuck detector read-only loop detection
343
+ - **Read**: default limit 15 → 300 lines
344
+ - **LSP**: `spawn` on Windows (`.cmd` shim resolution)
345
+ - **Todo**: `todo add` tracks subtasks, `todo done` marks individual sub-task
346
+ - **Memory**: learns repeated per-tool failures (≥3×)
347
+ - **Context**: compaction preserves user's task
348
+
349
+ ## [0.33.2] - 2026-08-09
350
+
351
+ ### Fixed
352
+ - **UI**: REPL conversation layout (user/agent message dividers)
353
+ - **Tools**: `isFilePathLike` uses allow-list of file extensions
354
+
355
+ ## [0.33.1] - 2026-08-09
356
+
357
+ ### Fixed
358
+ - **UI**: REPL line editor redraw fix (no duplicated multi-line input)
359
+ - **Tools**: `web_fetch`/`web_browse` description clarifications
360
+
361
+ ## [0.33.0] - 2026-08-09
362
+
363
+ ### Added
364
+ - **RLM**: pass-by-reference sub-agent results (`ArtifactStore`)
365
+ - **RLM**: chunked parallel queries (`chunk_query` tool)
366
+ - **Config**: `subagent.resultMode`, `maxSummaryChars`, `artifactsDir`, `stableSystemPrompt`
367
+
368
+ ## [0.32.0] - 2026-08-08
369
+
370
+ ### Added
371
+ - **Browser**: driver abstraction (`PlaywrightDriver` + `BridgeDriver`)
372
+ - **Browser**: Node bridge for Bun compatibility
373
+ - **Config**: `browser.maxConsoleLineChars`
374
+
375
+ ## [0.31.0] - 2026-08-08
376
+
377
+ ### Added
378
+ - **Security**: session file encryption (AES-256-GCM)
379
+ - **Security**: audit notifications (file + webhook)
380
+ - **Security**: security policies (strict/balanced/permissive)
381
+ - **CLI**: `mma security` commands
382
+
383
+ ## [0.30.0] - 2026-08-07
384
+
385
+ ### Added
386
+ - **Execution**: final audit gate (runs `bun test` for verification steps)
387
+ - **Execution**: `detectTestResults()` auto-verification in bash
388
+
389
+ ### Fixed
390
+ - **Execution**: empty-CLI entry-point hint
391
+ - **Bash**: Windows anti-patterns documentation
392
+
393
+ ## [0.29.0] - 2026-08-07
394
+
395
+ ### Added
396
+ - **Bash**: smart UTF-8/OEM line decoding (fixes Cyrillic on Windows)
397
+ - **Bash**: behavior-based background detection
398
+ - **Bash**: stuck-detector bash awareness
399
+
400
+ ## [0.28.0] - 2026-08-06
401
+
402
+ ### Fixed
403
+ - **Agent**: double-Esc interrupt fix (Bun readline keypress collapsing)
404
+ - **Agent**: abortable in-flight LLM requests on interrupt
405
+ - **UI**: clipboard paste hint
406
+
407
+ ## [0.27.0] - 2026-08-06
408
+
409
+ ### Fixed
410
+ - **Security**: Windows hardening
411
+ - **Hallucination**: fixes
412
+
413
+ ## [0.26.0] - 2026-08-05
414
+
415
+ ### Added
416
+ - **UI**: opencode-style inline tool headers (`ui.toolStyle`)
417
+ - **UI**: model commentary next to tool calls (`ui.toolComments`)
418
+ - **UI**: diffs without background color
419
+
420
+ ## [0.25.0] - 2026-08-05
421
+
422
+ ### Added
423
+ - **LSP**: LSP module (typescript, CSS, HTML, JSON, Python, Rust, Go)
424
+ - **Execution**: audit gate language-agnostic
425
+ - **Bash**: Windows command hints
426
+
427
+ ## [0.24.0] - 2026-08-04
428
+
429
+ ### Added
430
+ - **Context**: quality formula upgrade (token load + compaction loss + error density + freshness)
431
+ - **Read**: display mode (show only header in REPL, full content to LLM)
432
+
433
+ ## [0.23.0] - 2026-08-04
434
+
435
+ ### Added
436
+ - **Certification**: model certification module (`mma model certify`)
437
+ - **CLI**: cert checkmarks in model lists
438
+
439
+ ## [0.22.0] - 2026-08-03
440
+
441
+ ### Added
442
+ - **Security**: `enabled` flag (disabled by default)
443
+ - **CLI**: init/first-run apply wizard security answers
444
+ - **Prompt**: system prompt & recovery messages cleanup