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