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