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