ur-agent 1.68.18 → 1.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -808
- package/README.md +4 -5
- package/dist/cli.js +5043 -9923
- package/docs/VALIDATION.md +1 -1
- package/documentation/app.js +0 -91
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +2 -13
- package/dist/sdk/index.cjs +0 -189
- package/dist/sdk/index.d.ts +0 -68
- package/dist/sdk/index.js +0 -149
- package/technical/01-architecture.md +0 -148
- package/technical/02-cli-reference.md +0 -227
- package/technical/03-slash-commands.md +0 -318
- package/technical/04-tools.md +0 -283
- package/technical/05-providers-and-models.md +0 -195
- package/technical/06-configuration.md +0 -428
- package/technical/07-memory-and-context.md +0 -175
- package/technical/08-skills-plugins-workflows.md +0 -211
- package/technical/09-multi-agent.md +0 -327
- package/technical/10-headless-automation-eval.md +0 -441
- package/technical/11-integrations.md +0 -157
- package/technical/12-security-sandbox-stability.md +0 -288
- package/technical/13-research.md +0 -129
- package/technical/14-sessions.md +0 -177
- package/technical/README.md +0 -43
package/CHANGELOG.md
CHANGED
|
@@ -1,670 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- Fixed false `TaskListRequired` failures for observational Bash capability
|
|
36
|
-
checks. Task tracking now has a classification distinct from permission
|
|
37
|
-
auto-approval, so an executable probe can remain permission- and
|
|
38
|
-
sandbox-sensitive without being mislabeled as a workspace change.
|
|
39
|
-
- The Bash classification is category-based rather than tailored to one
|
|
40
|
-
module: known reads, exact help/version checks, command-presence checks, and
|
|
41
|
-
import-only Python probes for any module can run without reopening a
|
|
42
|
-
completed task. Arbitrary interpreter code, output writes, background
|
|
43
|
-
execution, sandbox overrides, and unknown commands remain task-gated.
|
|
44
|
-
- Both the initial call and its final post-permission input are classified.
|
|
45
|
-
Hooks or permission handlers therefore cannot rewrite an observational probe
|
|
46
|
-
into an untracked mutation.
|
|
47
|
-
|
|
48
|
-
## 1.68.16
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- First pieces of the UR Nexus visual identity, as terminal primitives rather
|
|
52
|
-
than artwork: `constants/urPalette.ts` (obsidian/bronze/electrum/lapis tokens
|
|
53
|
-
in true-colour, ANSI-256 and monochrome tiers, with depth detection),
|
|
54
|
-
`constants/urOrnament.ts` (frieze bands, the four border styles, the gate
|
|
55
|
-
brand mark), and `utils/statusBarItems.ts` (width-aware status-bar registry).
|
|
56
|
-
- The ornaments are thin box-drawing strokes, not solid blocks. Heavy glyphs
|
|
57
|
-
(▟▙██) were tried first and read as chunky sprites against a design built
|
|
58
|
-
from fine line-work. Everything renders on macOS Terminal, GNOME Terminal,
|
|
59
|
-
Konsole, Alacritty, foot and over SSH — no image protocol, so no user gets a
|
|
60
|
-
degraded version of the identity.
|
|
61
|
-
- Friezes tile to an exact width and truncate rather than pad: a band that
|
|
62
|
-
overshoots its column budget wraps, and a wrapped frieze reads as corruption
|
|
63
|
-
rather than decoration. The ASCII gate is cell-for-cell the same size as the
|
|
64
|
-
Unicode one so a fallback does not shift the layout.
|
|
65
|
-
- Status-bar items degrade by dropping whole items, lowest priority first,
|
|
66
|
-
after trying short forms — never by truncating the assembled string, which
|
|
67
|
-
cuts through whichever number sits at the boundary.
|
|
68
|
-
- Section 11 of the design spec lists context usage at priority 2 but its own
|
|
69
|
-
narrow-width example keeps `ctx` while dropping state and agents. The
|
|
70
|
-
examples win: at a glance the two things worth knowing are how far along the
|
|
71
|
-
work is and how much room is left. Drop order is now an explicit per-item
|
|
72
|
-
rank rather than emerging from zone position.
|
|
73
|
-
|
|
74
|
-
## 1.68.15
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- Redesigned the fixed top shell and bottom status area. The full-width bordered
|
|
78
|
-
banner is replaced by a three-column command deck: identity and version left,
|
|
79
|
-
workspace and branch centre, clock right, with a single graphite separator
|
|
80
|
-
beneath. The bright orange frame is gone, bronze is reserved for UR branding
|
|
81
|
-
and structural accents, and lapis blue carries focus, selection and context
|
|
82
|
-
usage. The house artwork is imported unchanged, character for character; the
|
|
83
|
-
UR wordmark is kept but rendered at normal weight rather than as the headline.
|
|
84
|
-
- The footer is now a two-row rail with no surrounding box. Items declare a
|
|
85
|
-
priority, two widths and three renderings, so the rail degrades before it
|
|
86
|
-
drops and never wraps — verified at 80x24, 100x30, 120x40 and 160x50.
|
|
87
|
-
Mode and context usage are the last things to go.
|
|
88
|
-
- System metrics render vertically with fixed-width labels and right-aligned
|
|
89
|
-
values, so the column does not shift when 9% becomes 71%. Miniature bars
|
|
90
|
-
appear only when the column affords them. CPU is sampled on a timer rather
|
|
91
|
-
than read per render: os.cpus() reports cumulative ticks, so a single reading
|
|
92
|
-
carries no rate, and the first reading reports `--` instead of a fabricated 0%.
|
|
93
|
-
- Wired by composing around FullscreenLayout rather than adding a slot to it.
|
|
94
|
-
That file is React-Compiler output with hand-numbered memo slots and
|
|
95
|
-
@ts-nocheck; inserting a slot means renumbering the sequence, and an
|
|
96
|
-
off-by-one there produces cached JSX rendered against changed props — a fault
|
|
97
|
-
that neither throws nor typechecks. REPL changes by ten lines.
|
|
98
|
-
- The deck is fullscreen-only. Inline mode writes to native scrollback, where
|
|
99
|
-
there is no fixed viewport and a "fixed" region would scroll away with
|
|
100
|
-
everything else. When the terminal is too short for deck, rail and a few
|
|
101
|
-
lines of conversation, the shell steps aside and renders content alone rather
|
|
102
|
-
than letting Ink silently shrink the fixed regions.
|
|
103
|
-
|
|
104
|
-
## 1.68.14
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
- Gave the MCP settings types their real shapes. `components/mcp/types.ts`
|
|
108
|
-
declared seven **empty** interfaces under a "Stub: not included in leaked
|
|
109
|
-
source" comment. An empty interface does not mean "unknown shape" to
|
|
110
|
-
TypeScript, it means "has no members" — so every property access on one was an
|
|
111
|
-
error, and that single file produced ~221 of the 858 errors sitting behind
|
|
112
|
-
`@ts-nocheck`. The MCP menus were not wrong; their types were.
|
|
113
|
-
- The shapes are reconstructed from what the components actually access, with
|
|
114
|
-
`transport` as a literal discriminant so the server union narrows on
|
|
115
|
-
`transport === 'stdio'` instead of collapsing. Fields whose internals the UI
|
|
116
|
-
never inspects are `Record<string, unknown>` rather than `any`, so a consumer
|
|
117
|
-
must still narrow before reaching inside.
|
|
118
|
-
- 118 errors cleared, `MCPAgentServerMenu` off the suppression list (141 -> 140).
|
|
119
|
-
- Method note: of 42 files carrying exactly one error, nine shared one cause;
|
|
120
|
-
221 more came from this one stub. These cluster, so the productive next step
|
|
121
|
-
is grouping by error signature rather than opening files one at a time.
|
|
122
|
-
|
|
123
|
-
## 1.68.13
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- Eight more files came off `@ts-nocheck` (149 -> 141) from a single fix. The
|
|
127
|
-
compiled signature of `useRegisterOverlay(id, t0)` declared two required
|
|
128
|
-
parameters while its own first statement reads
|
|
129
|
-
`const enabled = t0 === undefined ? true : t0` — the argument was optional by
|
|
130
|
-
construction and required by declaration, so every caller passing only an id
|
|
131
|
-
was a type error. Marking it optional cleared 10 errors across 10 files.
|
|
132
|
-
- That is the shape worth looking for in the rest: of 42 files carrying exactly
|
|
133
|
-
one error, nine shared this one cause. The remaining suppressed files surface
|
|
134
|
-
~858 errors, and the useful next step is grouping them by cause rather than
|
|
135
|
-
working through them file by file.
|
|
136
|
-
|
|
137
|
-
## 1.68.12
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
- The Ollama request path now reports where a request's bytes actually go —
|
|
141
|
-
tool definitions, system prompt, conversation — once per session in the debug
|
|
142
|
-
log. The fixed cost of tools plus system prompt is what decides whether a
|
|
143
|
-
small-context model has room left to work, and until now it had only been
|
|
144
|
-
estimated by summing prompt source. That estimate is wrong by construction:
|
|
145
|
-
these prompts are full of `condition ? longText : shortText`, and summing the
|
|
146
|
-
file counts both branches when only one is ever sent. The measurement is
|
|
147
|
-
taken from the serialized request, so it is what the server receives.
|
|
148
|
-
- Reported as a share of the whole with the tool-definition count, because
|
|
149
|
-
"system prompt is large" and "conversation is large" call for opposite fixes
|
|
150
|
-
and are indistinguishable in a single total.
|
|
151
|
-
|
|
152
|
-
## 1.68.11
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
- Investigated turning the task-list gate advisory by default and did not do
|
|
156
|
-
it. The friction it causes is real, but the gate is also the final
|
|
157
|
-
revalidation before a tool executes, and defaulting it off removes two
|
|
158
|
-
properties nothing else provides: a permission handler or hook that rewrites
|
|
159
|
-
a read-only call into a mutating one is re-checked *after* the rewrite, and
|
|
160
|
-
task state is re-read at execution time so a plan that disappears while
|
|
161
|
-
permission is pending cannot let the mutation through. Eight tests in
|
|
162
|
-
`toolExecutionFinalInput` fail the moment enforcement is defaulted off, all
|
|
163
|
-
on those two paths. The rule and its revalidation are not separable: the
|
|
164
|
-
re-read is how the rule is applied at execution time, so with no rule there
|
|
165
|
-
is nothing to revalidate.
|
|
166
|
-
- The friction had two causes and both are already fixed forward: the
|
|
167
|
-
allowance counted messages instead of tool calls, so the gate fired on the
|
|
168
|
-
first Write (1.65.5), and the TodoWrite prompt had lost its worked examples,
|
|
169
|
-
so smaller models stopped producing task lists at all (1.68.0). The gate is
|
|
170
|
-
reached far less often as a result. `tasks.requireBeforeChanges.enabled`
|
|
171
|
-
remains available for anyone who wants it off knowingly.
|
|
172
|
-
|
|
173
|
-
## 1.68.10
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
- `ToolSearchTool` no longer registers on runtimes where it cannot work. Its
|
|
177
|
-
purpose is fetching schemas for tools whose definitions were deferred, and
|
|
178
|
-
deferral needs the runtime to expand `tool_reference` blocks — an
|
|
179
|
-
Anthropic-native beta shape that no UR runtime supports (UR runs on Ollama,
|
|
180
|
-
OpenAI-compatible servers and vendor CLIs). `isEnabled()` consulted only
|
|
181
|
-
`isToolSearchEnabledOptimistic()`, which reads the mode, and the mode
|
|
182
|
-
defaults to `'tst'` (on). The tool therefore registered on every run: its
|
|
183
|
-
description shipped with each request, and the model was offered a tool that
|
|
184
|
-
could not function, because nothing was ever deferred for it to fetch.
|
|
185
|
-
- Audit note on the surface as a whole: 168 commands, of which 8 touch a
|
|
186
|
-
feature flag that is not compiled in, and in each case the flag gates a
|
|
187
|
-
sub-feature rather than the command. 89 of 91 flags are absent from shipped
|
|
188
|
-
builds. Two of those (`CONTEXT_COLLAPSE`, `REACTIVE_COMPACT`) would have
|
|
189
|
-
failed on the first turn if enabled and were fixed in 1.68.2.
|
|
190
|
-
|
|
191
|
-
## 1.68.9
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
- Narrowed that allowlist entry from `ur.com` to `ur.com/docs`. Replacing a
|
|
195
|
-
docs-only host with a bare domain widened what WebFetch retrieves without
|
|
196
|
-
asking, on a list whose own header warns that broad entries are dangerous
|
|
197
|
-
where a host may serve user-supplied content — and the domain in question
|
|
198
|
-
does not exist yet, so whatever ends up hosted there would have inherited
|
|
199
|
-
that trust. The matcher enforces path-segment boundaries, so `/docs-evil/x`
|
|
200
|
-
does not match. Caught by `apiTool`, which asserted the old entry.
|
|
201
|
-
|
|
202
|
-
## 1.68.8
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- The bundled `ur-guide` agent no longer answers UR questions out of another
|
|
206
|
-
product's documentation. It instructed the model to fetch
|
|
207
|
-
`https://docs.claude.com/llms.txt` and present it to users as "UR SDK docs"
|
|
208
|
-
and "UR API docs", including the line "Agent SDK docs are part of the UR API
|
|
209
|
-
documentation at the same URL". Its other source, `docs.ur.dev`, was never
|
|
210
|
-
served. Both now resolve to `https://ur.com/docs`.
|
|
211
|
-
- Replaced the remaining 33 `docs.ur.dev` links across MCP help, the security
|
|
212
|
-
dialog, keybindings, settings validation tips, preflight checks and the
|
|
213
|
-
feedback survey. Two sandbox dialogs had been pointing their href at the new
|
|
214
|
-
domain while still displaying the old one.
|
|
215
|
-
- `docs.ur.dev` in the WebFetch preapproved-host allowlist now points at
|
|
216
|
-
ur.com. Changed on its own: it is a hostname the fetch tool trusts, not a
|
|
217
|
-
link.
|
|
218
|
-
- `KNOWN_AGENTS` listed `ur-code-guide`; the registered agent type is
|
|
219
|
-
`ur-guide`. A workflow naming the real agent was warned as unknown, while the
|
|
220
|
-
listed name would have been accepted despite resolving to nothing.
|
|
221
|
-
- Removed a dead `UR_CODE_DOCS_MAP_URL` export from `constants/prompts.ts` —
|
|
222
|
-
a duplicate of the live constant, imported by nothing.
|
|
223
|
-
- Added `test/docsUrlIntegrity.test.ts`, including a check that a link's
|
|
224
|
-
displayed text matches where it actually goes.
|
|
225
|
-
|
|
226
|
-
## 1.68.7
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
- Corrected the ur.ai -> ur.com replacement, which had rewritten identifiers as
|
|
230
|
-
well as URLs. `'ur.ai'` served two roles in this codebase: a domain in links
|
|
231
|
-
such as `https://ur.ai/settings/billing`, and a discriminant value in
|
|
232
|
-
`authTokenSource === 'ur.ai'`, `authMethod = 'ur.ai'` and
|
|
233
|
-
`source: 'ur.ai' as const`. A blanket replace changed both, which typechecked
|
|
234
|
-
and looked internally consistent but altered command availability — one
|
|
235
|
-
command that should have been hidden became visible, caught by
|
|
236
|
-
`commandRegistryIntegrity`. The 39 URLs now point at ur.com; the 11 auth
|
|
237
|
-
discriminants are back to their original values, which also keeps any
|
|
238
|
-
`"ur.ai"` already persisted in a user's auth state matching.
|
|
239
|
-
|
|
240
|
-
## 1.68.6
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
- An oversized Ollama request now recovers instead of only explaining itself.
|
|
244
|
-
1.68.3 reported "this request was 19.6 MB" clearly and then left the user to
|
|
245
|
-
run /compact by hand. UR already had both halves of the fix — `isMediaSizeError`
|
|
246
|
-
and `stripImagesFromMessages` — but both were wired to reactive compact's
|
|
247
|
-
retry, and REACTIVE_COMPACT is not compiled into any shipped build, so neither
|
|
248
|
-
was reachable. `isMediaSizeError` and `isMediaSizeErrorMessage` had no callers
|
|
249
|
-
at all outside their own file.
|
|
250
|
-
- On a body-size rejection the request is retried once with images from earlier
|
|
251
|
-
turns removed, keeping the most recent one. Stale attachments are the usual
|
|
252
|
-
bulk and the least valuable part of it: only the newest is normally still
|
|
253
|
-
under discussion.
|
|
254
|
-
- The retry is announced with both sizes and says to re-attach an earlier image
|
|
255
|
-
if it is needed. Dropping a user's attachments silently would be the same
|
|
256
|
-
invisible behaviour being fixed everywhere else.
|
|
257
|
-
- No retry is attempted when there is at most one image-bearing message, since
|
|
258
|
-
it would resend identical bytes and fail identically.
|
|
259
|
-
|
|
260
|
-
## 1.68.5
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
- Replaced every `ur.ai` reference in `src/` with `ur.com` (202 sites, 0 left).
|
|
264
|
-
Note what these are: most are upstream URL structures carried into the fork —
|
|
265
|
-
`/settings/billing`, `/settings/connectors`, `/upgrade/max`, `/chrome`,
|
|
266
|
-
`/chrome/reconnect`, `/admin-settings/usage`, and desktop auto-update
|
|
267
|
-
redirects like `/api/desktop/darwin/universal/dmg/latest/redirect`. Changing
|
|
268
|
-
the domain does not make those endpoints exist; it moves them to a domain UR
|
|
269
|
-
will control. The features behind them still need a backend or removal.
|
|
270
|
-
- `test/tipsAreReal.test.ts` still forbids `ur.ai` and `ur.com` in tips, since
|
|
271
|
-
the domain is not serving yet. Relax that deliberately once it is.
|
|
272
|
-
- Corrected a comment in that test which claimed both domains "have no DNS
|
|
273
|
-
records". That came from a lookup run where `github.com` and `example.com`
|
|
274
|
-
fail identically — the environment had no DNS — so it was never evidence.
|
|
275
|
-
|
|
276
|
-
## 1.68.4
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
- The status line now reports subagents running in the current turn:
|
|
280
|
-
`agents: 2 running`, separate from the existing background `tasks:` count.
|
|
281
|
-
`isBackgroundTask()` excludes foreground entries on purpose — it was narrowed
|
|
282
|
-
to stop stale ratios like `tasks: 0/4 active` outliving the work — but nothing
|
|
283
|
-
counted them instead, so while subagents ran the bar said nothing at all,
|
|
284
|
-
which is the one moment the number matters.
|
|
285
|
-
- Counted conservatively on purpose: a pending agent is not reported as running,
|
|
286
|
-
a backgrounded agent is not counted twice across both numbers, a foreground
|
|
287
|
-
shell is not labelled an agent, and zero renders nothing rather than
|
|
288
|
-
`agents: 0`. A wrong number in a status line is worse than a missing one.
|
|
289
|
-
- No tool count was added. A `toolCount` field was drafted and then removed
|
|
290
|
-
rather than shipped unpopulated; a meaningful count of in-flight tool calls
|
|
291
|
-
needs hooks into tool execution, and a static "tools registered" total is
|
|
292
|
-
noise.
|
|
293
|
-
|
|
294
|
-
## 1.68.3
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
- `Ollama request failed (400): http: request body too large` now explains
|
|
298
|
-
itself. That string comes from Go's `net/http` MaxBytesReader rejecting the
|
|
299
|
-
payload on **byte size**, which is a different limit from the model's context
|
|
300
|
-
window — so the token-based context warning added in 1.66.2 never fires for
|
|
301
|
-
it, and a couple of screenshots can breach it while the token estimate still
|
|
302
|
-
looks comfortable. The request body is now measured at the send site, and the
|
|
303
|
-
error reports its actual size, names images as the usual cause (base64 adds
|
|
304
|
-
roughly a third, and every image persists in the transcript on later turns),
|
|
305
|
-
offers `/compact` or a fresh session, and notes that a reverse proxy in front
|
|
306
|
-
of Ollama enforces its own limit (`client_max_body_size` for nginx) which
|
|
307
|
-
tuning Ollama would not affect.
|
|
308
|
-
- The classifier matches the 413 spellings a proxy returns as well as the Go
|
|
309
|
-
400, and is tested against unrelated 400s so it cannot replace a correct error
|
|
310
|
-
with confident, irrelevant advice.
|
|
311
|
-
|
|
312
|
-
## 1.68.2
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
- **Security: explicit file deny rules were not enforced.** `matchingRuleForInput`
|
|
316
|
-
resolved which permission rule matched a path by reading `igResult.rule.pattern`
|
|
317
|
-
from `ignore().test()`. That property does not exist — `TestResult` is
|
|
318
|
-
`{ ignored, unignored }` — and the access sat behind an `igResult.rule` guard,
|
|
319
|
-
so the guard was always false and the function returned `null` unconditionally.
|
|
320
|
-
Every caller (FileWriteTool, FileEditTool, FileReadTool, PowerShell path
|
|
321
|
-
validation, attachments, and the read/write permission checks themselves) does
|
|
322
|
-
`const denyRule = matchingRuleForInput(path, ctx, kind, 'deny'); if (denyRule)
|
|
323
|
-
{ deny }`, so a path the user had explicitly denied was reported as matching no
|
|
324
|
-
rule and allowed through. The comment above one call site reads "SECURITY: This
|
|
325
|
-
must come before any allow checks ... to prevent bypassing explicit read deny
|
|
326
|
-
rules"; the code beneath it had never run.
|
|
327
|
-
- The library cannot report which pattern matched, so resolution now tests
|
|
328
|
-
patterns individually after a combined fast-path check, and skips the empty
|
|
329
|
-
pattern that `/**` reduces to — which would otherwise deny every path.
|
|
330
|
-
- `filesystem.ts` and `toolExecution.ts` are off `@ts-nocheck` (149 files remain).
|
|
331
|
-
The missing property was invisible to `tsc` for exactly as long as the
|
|
332
|
-
suppression was there; this is the defect the ratchet in 1.68.0 was added for.
|
|
333
|
-
- Added `test/denyRuleMatching.test.ts`, which asserts the negative case as well
|
|
334
|
-
as the positive — the bug made *everything* return `null`, so "returns null for
|
|
335
|
-
an unmatched path" proves nothing on its own.
|
|
336
|
-
|
|
337
|
-
## 1.68.1
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
- A detected prompt-injection attempt is now reported to the user instead of
|
|
341
|
-
being refused in silence. Consolidating the scattered prompt guidance into the
|
|
342
|
-
execution contract was a genuine improvement, but one clause did not survive:
|
|
343
|
-
the older text said to "flag it directly to the user", and the replacement
|
|
344
|
-
told the model to refuse embedded directives and stopped there. So
|
|
345
|
-
`scanForInjection` would correctly flag hostile content, annotate the model's
|
|
346
|
-
own copy of the block, write an evidence-ledger entry — and say nothing to the
|
|
347
|
-
person whose fetched page or issue comment was carrying the attack. The
|
|
348
|
-
detection was never the weak part; the reporting was.
|
|
349
|
-
|
|
350
|
-
## 1.68.0
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
- Removed `@ts-nocheck` from 73 files, putting 21,503 previously unchecked lines
|
|
354
|
-
under `tsc`. Every one of those files produced **zero** errors once the
|
|
355
|
-
suppression was lifted — they were not suppressed because they were broken,
|
|
356
|
-
they were suppressed and then fixed, or never needed it. The blind spot was
|
|
357
|
-
33% larger than the actual debt. Typecheck remains clean at exit 0.
|
|
358
|
-
- Added `test/typeCheckCoverage.test.ts`, a ratchet: the `@ts-nocheck` count may
|
|
359
|
-
fall but never rise, and the budget must be lowered when files come off the
|
|
360
|
-
list so it cannot silently stop ratcheting. It also asserts that `query.ts`,
|
|
361
|
-
`permissions.ts`, `filesystem.ts` and `toolExecution.ts` are still suppressed
|
|
362
|
-
— a standing reminder that the highest-consequence files are the unchecked
|
|
363
|
-
ones, with instructions to delete the test when that stops being true.
|
|
364
|
-
- Remaining debt, measured rather than estimated: 150 files, ~870 errors, but
|
|
365
|
-
concentrated — 3 files hold 231 of them, while 95 files have 3 or fewer each
|
|
366
|
-
and 135 have 10 or fewer. Of the total, 32 are dead build-constant comparisons
|
|
367
|
-
from the fork (`'external' === 'ant'`) and 562 are property-access-on-`any`.
|
|
368
|
-
The 95 cheap files are the next batch.
|
|
369
|
-
|
|
370
|
-
- Restored the worked examples in the TodoWrite tool prompt, with their
|
|
371
|
-
narrated tool use removed. After 1.65.5 that
|
|
372
|
-
prompt was cut from 184 lines to 48, which removed every demonstration and
|
|
373
|
-
left only abstract rules ("work is non-trivial when it needs planning,
|
|
374
|
-
investigation, multiple deliverables..."). A large model infers intent from
|
|
375
|
-
rules; a small local model pattern-matches on examples. Task lists stopped
|
|
376
|
-
being produced, and the task-list gate was then hardened over five successive
|
|
377
|
-
commits to force what the prompt no longer taught — which is what produced
|
|
378
|
-
refused writes and retry loops on small models. The newer lifecycle rules are
|
|
379
|
-
good and are kept; what returns is seven worked examples covering when to use
|
|
380
|
-
the list, when not to, and why, including the single-file case where one Write
|
|
381
|
-
call still warrants a plan.
|
|
382
|
-
|
|
383
|
-
### Also in this release (was staged as 1.67.0)
|
|
384
|
-
|
|
385
|
-
- Two subsystems loaded behind feature flags were not merely disabled, they
|
|
386
|
-
were broken in a way that only showed if you enabled them.
|
|
387
|
-
`services/compact/reactiveCompact.ts` did not exist on disk at all, yet
|
|
388
|
-
`query.ts` requires it by path and `/compact` calls two functions on it;
|
|
389
|
-
`services/contextCollapse/index.ts` was a stub exporting four names while
|
|
390
|
-
`query.ts` called four different ones, three of which were absent. Setting
|
|
391
|
-
either flag would have failed on the first turn with MODULE_NOT_FOUND or
|
|
392
|
-
"is not a function" rather than degrading to "feature off". Both modules now
|
|
393
|
-
export the full surface their callers use, returning result-shaped objects
|
|
394
|
-
instead of null so property access on the result cannot throw.
|
|
395
|
-
- Neither was reachable in shipped builds — the bundler passes only VOICE_MODE
|
|
396
|
-
and CHICAGO_MCP, and live context management runs through
|
|
397
|
-
`services/compact/autoCompact.ts`, which is real and unaffected.
|
|
398
|
-
- Added `test/optionalSubsystems.test.ts`, which derives the required exports
|
|
399
|
-
from what `query.ts` actually calls rather than from a hand-written list, so
|
|
400
|
-
a new call site cannot reintroduce the gap. It also asserts autoCompact has
|
|
401
|
-
not itself become a stub.
|
|
402
|
-
- Audit note: 223 files carry `@ts-nocheck` and are invisible to
|
|
403
|
-
`tsc --noEmit`. Stripping the suppressions in a scratch copy surfaces 872
|
|
404
|
-
errors across ~108k lines, including `query.ts`, `permissions.ts` and
|
|
405
|
-
`filesystem.ts`. Both defects above sat inside that blind spot.
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
- The original examples narrated tool use as prose ("* Uses the Edit tool to
|
|
409
|
-
add a comment *", "*Executes: npm install*"), which is the exact anti-pattern
|
|
410
|
-
the same prompt forbids in its closing paragraph — and what a small model
|
|
411
|
-
copies when it reports a file as written without calling Write. That is why
|
|
412
|
-
the examples were cut, and cutting them was not baseless; it just took the
|
|
413
|
-
decision guidance with it. They now return without the narration.
|
|
414
|
-
|
|
415
|
-
## 1.66.2
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
- A long session on Ollama now says when it has run out of context instead of
|
|
419
|
-
quietly getting worse. Ollama truncates an oversized prompt from the front
|
|
420
|
-
rather than returning an error, and the front of the prompt is the system
|
|
421
|
-
prompt — so the first thing discarded is the instruction set. The model then
|
|
422
|
-
answers with no tool guidance and no task-list requirement, which from the
|
|
423
|
-
outside looks like the model degrading on long prompts rather than like
|
|
424
|
-
context running out. Both numbers needed to detect this were already computed
|
|
425
|
-
on every request; they were never compared. A near-full context now warns at
|
|
426
|
-
85% and a full one explains what was dropped and offers `/compact`, a fresh
|
|
427
|
-
session, a larger-context model, or `UR_OLLAMA_NUM_CTX`.
|
|
428
|
-
- Added `test/contextPressure.test.ts`, including that unknown sizing produces
|
|
429
|
-
no warning — an unmeasured context is not a full one.
|
|
430
|
-
|
|
431
|
-
## 1.66.1
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
- Corrected the warning-state result used by reactive compaction and context
|
|
435
|
-
collapse when a custom proactive threshold is configured. Their
|
|
436
|
-
effective-window override can no longer report that the separate proactive
|
|
437
|
-
auto-compact trigger was crossed.
|
|
438
|
-
|
|
439
|
-
## 1.66.0
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
- Unified proactive compaction around one model-aware threshold and one live
|
|
443
|
-
token estimator. Small context windows now retain positive warning, error,
|
|
444
|
-
and trigger thresholds; configured 50–95% thresholds are honored; prompt
|
|
445
|
-
notifications, `/context`, and the SDK expose a clamped live-estimated
|
|
446
|
-
percentage remaining until the real trigger; reactive/collapse modes do not
|
|
447
|
-
claim a false
|
|
448
|
-
countdown; and successful compaction clears stale warnings.
|
|
449
|
-
- Preserved exact task execution state across full, partial, and
|
|
450
|
-
session-memory compaction. The restored authoritative snapshot keeps Task V2
|
|
451
|
-
IDs, statuses, owners, and dependency edges (or TodoWrite order/status),
|
|
452
|
-
prioritizes actionable work under 64-record and estimated 6,000-token
|
|
453
|
-
bounds, and requires `TaskList` before mutations when records were omitted.
|
|
454
|
-
- Closed a task-gate bypass caused by compacted history. Compact boundaries
|
|
455
|
-
now carry durable metadata that consumes the initial trivial-call allowance,
|
|
456
|
-
including SDK serialization, so a model cannot compact and then mutate as
|
|
457
|
-
though no earlier tool calls occurred.
|
|
458
|
-
- Removed a competing private compaction path from in-process workers. Workers
|
|
459
|
-
now use the normal agent query loop and therefore inherit the same feature
|
|
460
|
-
flags, exact trigger, session-memory-first path, reactive/collapse policy,
|
|
461
|
-
failure circuit breaker, cleanup, and compact-boundary behavior.
|
|
462
|
-
- Brought Kimi/Ollama bare task-call recovery into parity with the live task
|
|
463
|
-
schemas. Dependency fields, numeric task/dependency IDs, and `failed` or
|
|
464
|
-
`skipped` terminal updates are normalized safely; invalid IDs, statuses, and
|
|
465
|
-
unknown fields fail closed.
|
|
466
|
-
- Audited v1.65.0 through v1.65.5 for regression-safe enhancements. Every
|
|
467
|
-
concrete earlier technique is already present or superseded by stricter
|
|
468
|
-
current behavior, so no legacy implementation or removed feature was copied
|
|
469
|
-
back.
|
|
470
|
-
|
|
471
|
-
## 1.65.14
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
- Restored the proactive task-first behavior that was present in v1.65.0 and
|
|
475
|
-
removed a prompt/gate contradiction introduced later. For any non-trivial
|
|
476
|
-
state change, including a feature-rich single-file build, the model is now
|
|
477
|
-
told at system, task-tool, approved-plan, Ollama/Kimi, file, notebook,
|
|
478
|
-
shell, and worker boundaries to complete the available task setup, inspect
|
|
479
|
-
its result, mark the selected task `in_progress`, inspect that result, and
|
|
480
|
-
only then mutate state.
|
|
481
|
-
- Made the ordering unambiguous for weaker models: task setup cannot be batched
|
|
482
|
-
with the mutation it enables, approved-plan handoffs require task calls as
|
|
483
|
-
the next state-changing calls, terminal task lists must be reopened or
|
|
484
|
-
extended before new work, and task guidance appears before file-tool
|
|
485
|
-
selection guidance.
|
|
486
|
-
- Closed planner availability and control-flow gaps across tool modes. Legacy
|
|
487
|
-
`TodoWrite` now follows the same feature-rich/terminal-list lifecycle and is
|
|
488
|
-
preferred when Task V2 is incomplete; bare/simple, REPL-simple, coordinator,
|
|
489
|
-
custom-agent, and override-prompt paths all receive a usable planner and the
|
|
490
|
-
task-state contract. Coordinator workers must be task-bound before launch;
|
|
491
|
-
an explicitly planner-less custom tool pool now fails closed with honest
|
|
492
|
-
configuration recovery instead of naming a missing tool.
|
|
493
|
-
- Prevented task-gate deadlocks and false mutations in supporting tools.
|
|
494
|
-
Team creation/deletion, shutdown/plan control messages, and emergency task
|
|
495
|
-
stop are narrow control transitions; skill loading and desktop screenshots
|
|
496
|
-
are read-only while downstream skill work, desktop input, and arbitrary
|
|
497
|
-
state-changing tools remain gated.
|
|
498
|
-
|
|
499
|
-
## 1.65.13
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
- Recovered otherwise valid `AskUserQuestion` calls whose UI header exceeds
|
|
503
|
-
the 12-character chip width. Native structured calls, bare/wrapped JSON, and
|
|
504
|
-
explicit-choice recovery now compact only that bounded presentation field;
|
|
505
|
-
questions, choices, labels, descriptions, previews, metadata, and selection
|
|
506
|
-
behavior remain unchanged, while unsafe or grossly oversized headers still
|
|
507
|
-
fail validation.
|
|
508
|
-
- Allowed strictly parsed syntax verification after a task-free one-shot
|
|
509
|
-
Write. `node --check <file>` and the bounded transcript-produced HTML script
|
|
510
|
-
checker bypass only the task-list requirement; arbitrary Node evaluation,
|
|
511
|
-
extra commands, redirects, backgrounding, sandbox overrides, and
|
|
512
|
-
permission-time rewrites fail closed, and normal Bash permission/sandbox
|
|
513
|
-
checks still apply.
|
|
514
|
-
|
|
515
|
-
## 1.65.12
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
- Forced explicit weak-model decision menus through the real
|
|
519
|
-
`AskUserQuestion` UI. A provider-neutral end-turn guard accepts only one
|
|
520
|
-
canonical Ask object from explicit reasoning or one complete rigid Markdown
|
|
521
|
-
choice menu, validates it unchanged against the live tool schema, and rejects
|
|
522
|
-
examples, ambiguity, ordinary prose, workers, and headless sessions.
|
|
523
|
-
- Removed two task-list dead ends without weakening the mutation boundary.
|
|
524
|
-
Live plan mode may run only the exact current plan-directory bootstrap Bash
|
|
525
|
-
shape before tasks exist, and the last actionable task remains `in_progress`
|
|
526
|
-
when a file mutation has no later successful observable check. The same task
|
|
527
|
-
can then be verified or corrected instead of creating a duplicate.
|
|
528
|
-
- Improved exact `Edit` mismatch recovery for stale HTML blocks. Diagnostics
|
|
529
|
-
now select the most distinctive verified line near the real target, such as
|
|
530
|
-
`<script>`, rather than an unrelated generic closing tag; edits remain
|
|
531
|
-
fail-closed and never apply fuzzy replacements.
|
|
532
|
-
- Raised the default Ollama Cloud timeout for the known-slow Kimi K2.7 family
|
|
533
|
-
from 120 to 300 seconds in both streaming and permitted non-streaming paths.
|
|
534
|
-
Explicit timeouts and the stricter remote-session ceiling still take
|
|
535
|
-
precedence.
|
|
536
|
-
|
|
537
|
-
## 1.65.11
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
- Hardened `AskUserQuestion` for weaker models without inventing user intent.
|
|
541
|
-
Its model schema now exposes only a strict 1–4-question request shape with
|
|
542
|
-
2–8 nested choices, compact validation explains malformed flat arrays, and
|
|
543
|
-
lossless recovery never fabricates labels, descriptions, or prose-derived
|
|
544
|
-
questions.
|
|
545
|
-
- Made question interaction truthful and safe. Answers are accepted only after
|
|
546
|
-
post-permission validation has collected one real response per question,
|
|
547
|
-
custom `Other` works in both menu layouts, question-keyed UI state is
|
|
548
|
-
prototype-safe, and HTML-configured previews render escaped inert text
|
|
549
|
-
instead of executable model markup.
|
|
550
|
-
- Improved weak-model file-tool recovery. `Write` now explains that
|
|
551
|
-
`file_path` and complete `content` must be supplied together and never treats
|
|
552
|
-
surrounding prose as file data; a narrow deletion-only `Edit` whose desired
|
|
553
|
-
replacement is already uniquely present reports “already up to date” without
|
|
554
|
-
writing, while ambiguous and general stale edits still fail closed.
|
|
555
|
-
- Corrected task-gate control flow and diagnostics. `ExitPlanMode` can reach
|
|
556
|
-
its approval transition without an implementation task, stale out-of-mode
|
|
557
|
-
calls remain invalid, and gate recovery distinguishes a missing plan from an
|
|
558
|
-
all-terminal task list so unfinished Edit/Bash work is reopened rather than
|
|
559
|
-
retried unchanged. A simple loopback browser preview bypasses only the task
|
|
560
|
-
gate while retaining Bash permission and rewrite checks.
|
|
561
|
-
- Kept package validation compatible with both npm 11 and npm 12
|
|
562
|
-
`npm pack --json` output shapes, so upgrading npm does not make a valid
|
|
563
|
-
tarball look missing during tests or release checks.
|
|
564
|
-
|
|
565
|
-
## 1.65.10
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
- Reworked approved-plan execution into a capability-aware task graph. Plans
|
|
569
|
-
now split separately completable outcomes, keep genuinely atomic work whole,
|
|
570
|
-
express review-to-fix and verification dependencies, and launch only ready,
|
|
571
|
-
non-conflicting work in parallel waves of at most eight. The handoff uses
|
|
572
|
-
`TaskCreate`/`TaskUpdate`, `TodoWrite`, or the numbered plan according to the
|
|
573
|
-
tools actually available, and never advertises a worker that is not active.
|
|
574
|
-
- Made the built-in Explore and Plan agents available in the standard CLI with
|
|
575
|
-
structurally read-only tools. Parent and child execution boundaries reject
|
|
576
|
-
mutations even after permission-hook rewrites, custom agents cannot inherit
|
|
577
|
-
the exemption by reusing a name, and team creation/deletion rechecks live
|
|
578
|
-
plan mode before changing state.
|
|
579
|
-
- Task tools now accept positive safe-integer JSON task IDs as well as strings
|
|
580
|
-
and normalize them to canonical persisted strings, fixing smaller models
|
|
581
|
-
that call `TaskUpdate` with `taskId: 1`.
|
|
582
|
-
- Exact edit failures now return a bounded preview and a verified line anchor
|
|
583
|
-
for a fresh, smaller contiguous match. Large cross-section replacements fail
|
|
584
|
-
closed with actionable recovery instead of retrying unchanged or applying a
|
|
585
|
-
risky fuzzy edit.
|
|
586
|
-
|
|
587
|
-
## 1.65.9
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
- Fixed the plan-file/task-list deadlock. While plan mode is active, the exact
|
|
591
|
-
normalized session plan file can be written before actionable tasks exist;
|
|
592
|
-
ordinary workspace mutations still require `TaskCreate`/`TodoWrite`, and
|
|
593
|
-
permission or hook rewrites are reclassified at the final execution boundary.
|
|
594
|
-
- Fixed `ExitPlanMode` approval races. Permission approval can change the mode
|
|
595
|
-
and rewrite allowed prompts or edited plan content without causing a false
|
|
596
|
-
“not in plan mode” error, while genuinely new out-of-mode calls remain
|
|
597
|
-
rejected. The compact execution contract now distinguishes ordered task
|
|
598
|
-
tracking from explicit plan mode for weaker models.
|
|
599
|
-
- Fixed Linux GitHub Actions and release validation without misrepresenting the
|
|
600
|
-
product surface. Registry checks now use the platform-neutral
|
|
601
|
-
167-command/160-visible/235-token baseline and verify the supported macOS and
|
|
602
|
-
x64 Windows `/desktop` (`/app`) delta separately.
|
|
603
|
-
|
|
604
|
-
## 1.65.8
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
- Fixed provider API-key entry in `/model`: the masked input now uses the
|
|
608
|
-
available terminal width, explicit cursor/focus state, and a one-line secret
|
|
609
|
-
viewport instead of rendering one masked character per row. Narrow and
|
|
610
|
-
invalid resize states retain a safe minimum width.
|
|
611
|
-
|
|
612
|
-
## 1.65.7
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
- Audited all 14 technical chapters against the shipped source and generated
|
|
616
|
-
CLI. The manual now distinguishes public runtime behavior from compile-time
|
|
617
|
-
flags, compatibility-only state, and source helpers; it is included in the
|
|
618
|
-
npm package and checked for valid paths, commands, configuration, and package
|
|
619
|
-
coverage.
|
|
620
|
-
- Reworked agent guidance into one compact, ordered execution contract plus
|
|
621
|
-
mode-specific code, research, debug, browser, image, video, and data
|
|
622
|
-
workflows. Structured tool calls, dependency-aware planning, bounded
|
|
623
|
-
parallelism, failure recovery, result inspection, verification, honest
|
|
624
|
-
completion, and prompt-injection boundaries remain explicit without unsafe
|
|
625
|
-
package-manager guesses or examples that merely narrate fake tool calls.
|
|
626
|
-
- Hardened task execution end to end. Both Task V2 and legacy TodoWrite plans
|
|
627
|
-
participate in mutation and completion gates, task order is numeric and
|
|
628
|
-
dependency-aware, failed/skipped states are rendered honestly, and the
|
|
629
|
-
verifier refuses an overall completion while actionable work remains or task
|
|
630
|
-
state cannot be read.
|
|
631
|
-
- Workflow execution now checks approval before invoking a side effect,
|
|
632
|
-
enforces verification unless explicitly advisory, records every settled
|
|
633
|
-
parallel branch, and persists progress atomically. Resume restores bounded
|
|
634
|
-
exact dependency outputs without replaying completed steps; missing or
|
|
635
|
-
oversized required output fails closed and explains how to recover.
|
|
636
|
-
- Multi-agent crews and planned `/exec` runs use bounded parallel workers,
|
|
637
|
-
dependency fan-in, exact verdicts, cancellation-aware respawn, isolated retry
|
|
638
|
-
worktrees, and a shared-checkout write gate. Ambiguous side effects are not
|
|
639
|
-
replayed, per-prompt worktrees keep dependent steps together, and concurrent
|
|
640
|
-
output files cannot overwrite one another.
|
|
641
|
-
- Fixed false-success and argument-parsing behavior across root and slash
|
|
642
|
-
commands. Invalid usage returns 2, failed operations return 1, child process
|
|
643
|
-
failures propagate, previews do not mutate, and claim-ledger persistence is
|
|
644
|
-
structurally validated, workspace-contained, private, atomic, and bounded.
|
|
645
|
-
- Strengthened provider and tool-call interoperability for smaller/local
|
|
646
|
-
models: streamed calls keep stable ordinals, cumulative fragments are
|
|
647
|
-
deduplicated conservatively, malformed or rewritten inputs are revalidated,
|
|
648
|
-
Ollama image results and session-host overrides are preserved, and OpenAI
|
|
649
|
-
Responses transport settings now reach actual client selection.
|
|
650
|
-
- Improved terminal task UX: live task/status displays use the selected
|
|
651
|
-
session model, show only actionable or active background work, preserve
|
|
652
|
-
selection as rows change, handle narrow terminals, expose blockers and every
|
|
653
|
-
terminal status, and never advertise blocked work as the next action.
|
|
654
|
-
- Hardened session, export, research, notes, file-operation, worktree, and
|
|
655
|
-
sandbox paths against traversal, symlink escape, oversized/corrupt state,
|
|
656
|
-
interrupted writes, stale replay, and misleading success. Unsupported
|
|
657
|
-
workflow/monitor task implementations remain inspectable as history but are
|
|
658
|
-
no longer presented as runnable.
|
|
659
|
-
- Added a typed `ur-agent/sdk` subpath for ESM and CommonJS with validated
|
|
660
|
-
subprocess inputs, deterministic JSON/NDJSON result parsing, environment
|
|
661
|
-
precedence, and nonzero-exit handling. Release gates rebuild generated
|
|
662
|
-
artifacts before publish, smoke-test both SDK module formats from the packed
|
|
663
|
-
tarball, require the technical manual, and verify runtime dependency ranges.
|
|
3
|
+
## 1.70.0
|
|
4
|
+
|
|
5
|
+
- Rolled the codebase back to the state shipped as 1.65.6. Everything released
|
|
6
|
+
between 1.65.7 and 1.68.19 is withdrawn from this line. The version number
|
|
7
|
+
moves forward rather than back so npm and existing installs upgrade cleanly.
|
|
8
|
+
Commit history for the withdrawn releases is retained and any part of it can
|
|
9
|
+
be reintroduced later. 1.69.0 was tagged as the rollback point and never
|
|
10
|
+
published.
|
|
11
|
+
- The task-list gate now ships disabled. It refused the first `Write` of
|
|
12
|
+
ordinary one-file work often enough that the friction cost more than the
|
|
13
|
+
plans it produced, and the refusal itself provoked the retry loops 1.65.4 was
|
|
14
|
+
written to stop. The mechanism is unchanged and returns with
|
|
15
|
+
`tasks.requireBeforeChanges.enabled=true`.
|
|
16
|
+
- The repeated-failure guard now ships disabled. It was introduced for a 4B
|
|
17
|
+
model that looped on an identical failing call; on a capable model it mostly
|
|
18
|
+
fires on legitimate retries and ends the turn. Callers that want loop
|
|
19
|
+
protection pass an enabled config.
|
|
20
|
+
- Raised the subagent fan-out limits from depth 3 / 20 concurrent to depth 10 /
|
|
21
|
+
100, with hard ceilings of 64 and 1000. The governor now catches only a
|
|
22
|
+
runaway tree rather than ordinary fan-out; it is deliberately not removed,
|
|
23
|
+
because an unbounded tree wedges the host, which is the slowest possible
|
|
24
|
+
failure.
|
|
25
|
+
- Fixed the packaged-CLI smoke check failing on npm 11 and later. It read the
|
|
26
|
+
`npm pack --json` report as an array, but npm now returns an object keyed by
|
|
27
|
+
package name, so a successful pack was reported as "npm pack did not report a
|
|
28
|
+
tarball" and the release gate failed on every modern npm. Both shapes are now
|
|
29
|
+
accepted. The check lives in `scripts/`, which is not published, so the
|
|
30
|
+
released artifact is unaffected.
|
|
31
|
+
- Unchanged: tool-call validation at the execution boundary still fails closed
|
|
32
|
+
on unknown tools, duplicate IDs and malformed inputs. It rejects only calls
|
|
33
|
+
that could not have succeeded, so disabling it would trade clear errors for
|
|
34
|
+
undefined execution rather than unlocking any capability.
|
|
664
35
|
|
|
665
36
|
## 1.65.6
|
|
666
37
|
|
|
667
|
-
|
|
668
38
|
- Remote sessions no longer reconnect forever when the server repeatedly
|
|
669
39
|
accepts a WebSocket upgrade and then reports that the session is missing.
|
|
670
40
|
Repeated `connect()` calls reuse the live client, malformed permission and
|
|
@@ -725,7 +95,6 @@
|
|
|
725
95
|
|
|
726
96
|
## 1.65.5
|
|
727
97
|
|
|
728
|
-
|
|
729
98
|
- Syntax highlighting works again — in assistant messages, code previews and
|
|
730
99
|
question dialogs. `cli-highlight` was imported by four rendering surfaces and
|
|
731
100
|
declared in `package.json` by none of them, so the import threw on every run
|
|
@@ -752,7 +121,6 @@
|
|
|
752
121
|
could leave a stale value on screen after a switch.
|
|
753
122
|
## 1.65.4
|
|
754
123
|
|
|
755
|
-
|
|
756
124
|
- A tool call that keeps failing identically is now stopped. A 4B model refused
|
|
757
125
|
once by the task-list gate answered by emitting `Write` with no arguments
|
|
758
126
|
repeatedly, and nothing intervened — the trajectory grader names this pattern
|
|
@@ -768,7 +136,6 @@
|
|
|
768
136
|
|
|
769
137
|
## 1.65.3
|
|
770
138
|
|
|
771
|
-
|
|
772
139
|
- Removed two tips for things that do not exist: `/mobile to use UR from the
|
|
773
140
|
UR app on your phone` (no such command, no such app) and a pointer to
|
|
774
141
|
`ur.ai/web` (no DNS record, same dead domain class as the `ur.com` links
|
|
@@ -786,7 +153,6 @@
|
|
|
786
153
|
|
|
787
154
|
## 1.65.2
|
|
788
155
|
|
|
789
|
-
|
|
790
156
|
- Fixed `--discover-ollama` having no effect on model discovery or requests.
|
|
791
157
|
`getOllamaBaseUrl` resolves the session host correctly, but three callers
|
|
792
158
|
read a persisted `provider.baseUrl` *before* consulting it, so a value
|
|
@@ -825,7 +191,6 @@
|
|
|
825
191
|
|
|
826
192
|
## 1.65.1
|
|
827
193
|
|
|
828
|
-
|
|
829
194
|
- Fixed `ur selftest run` reporting 0/5 anywhere but the UR repo. The drill
|
|
830
195
|
runner spawned `./bin/ur.js`, a path relative to the current directory, so
|
|
831
196
|
every drill failed instantly with an empty detail — which reads as five
|
|
@@ -839,7 +204,6 @@
|
|
|
839
204
|
|
|
840
205
|
## 1.65.0
|
|
841
206
|
|
|
842
|
-
|
|
843
207
|
- The release gate now asks the registry whether the packed dependency ranges
|
|
844
208
|
can actually be installed. This is the check that was missing when 1.61.2
|
|
845
209
|
through 1.64.0 shipped uninstallable: the tarball built, the CLI started,
|
|
@@ -855,7 +219,6 @@
|
|
|
855
219
|
|
|
856
220
|
## 1.64.1
|
|
857
221
|
|
|
858
|
-
|
|
859
222
|
- Fixed `npm install -g ur-agent` failing with
|
|
860
223
|
`No matching version found for playwright-core@^1.64.0`. Releases 1.61.2,
|
|
861
224
|
1.62.0, 1.63.0 and 1.64.0 were uninstallable: the version bump was a
|
|
@@ -873,7 +236,6 @@
|
|
|
873
236
|
|
|
874
237
|
## 1.64.0
|
|
875
238
|
|
|
876
|
-
|
|
877
239
|
- Tool-result pruning now announces itself. It changed context silently, so
|
|
878
240
|
there was no way to confirm it fired or to attribute a missing detail to it —
|
|
879
241
|
the same defect memory suggestions had when they went to stderr. A prune now
|
|
@@ -898,7 +260,6 @@
|
|
|
898
260
|
|
|
899
261
|
## 1.63.0
|
|
900
262
|
|
|
901
|
-
|
|
902
263
|
- Added size-triggered pruning of superseded tool results
|
|
903
264
|
(`context.pruneToolResults`). UR already had the clearing machinery, but
|
|
904
265
|
nothing external could reach it: cached microcompact is internal-only and
|
|
@@ -918,7 +279,6 @@
|
|
|
918
279
|
|
|
919
280
|
## 1.62.0
|
|
920
281
|
|
|
921
|
-
|
|
922
282
|
- `ur agent-inspect --costs` now labels each row with what the agent was
|
|
923
283
|
actually doing. A real 62-agent fan-out reported opaque hex ids, so you could
|
|
924
284
|
see that one agent burned 810k input tokens — 14% of the session — without
|
|
@@ -930,7 +290,6 @@
|
|
|
930
290
|
|
|
931
291
|
## 1.61.2
|
|
932
292
|
|
|
933
|
-
|
|
934
293
|
- Fixed `ur agent-inspect --costs` reporting nothing, always. It resolved the
|
|
935
294
|
*live* session, but every `ur` invocation mints a new session id, so bare it
|
|
936
295
|
pointed at a session created milliseconds earlier that had by definition
|
|
@@ -944,7 +303,6 @@
|
|
|
944
303
|
|
|
945
304
|
## 1.61.1
|
|
946
305
|
|
|
947
|
-
|
|
948
306
|
- Fixed secondary model queries failing on any Ollama setup whose session model
|
|
949
307
|
is not `qwen2.5-coder:7b`. `getSmallFastModel()` fell back to the compiled
|
|
950
308
|
default when auto-routing was off or no model list had been discovered, so a
|
|
@@ -961,7 +319,6 @@
|
|
|
961
319
|
|
|
962
320
|
## 1.61.0
|
|
963
321
|
|
|
964
|
-
|
|
965
322
|
- Added `ur selftest`, end-to-end drills for the gap that produced every
|
|
966
323
|
serious defect in recent releases: a module that is correct while something
|
|
967
324
|
between it and the user is not — a wire format, a CLI registration, an exit
|
|
@@ -981,7 +338,6 @@
|
|
|
981
338
|
|
|
982
339
|
## 1.60.1
|
|
983
340
|
|
|
984
|
-
|
|
985
341
|
- `ur memory-integrity verify` no longer reports an empty or missing store as
|
|
986
342
|
verified. It printed "verified — 0 file(s) match the recorded digests" for an
|
|
987
343
|
empty directory, and that identical reassurance would have appeared for a
|
|
@@ -997,7 +353,6 @@
|
|
|
997
353
|
|
|
998
354
|
## 1.60.0
|
|
999
355
|
|
|
1000
|
-
|
|
1001
356
|
- Added `ur memory-integrity`, tamper-evidence for the file-backed memory
|
|
1002
357
|
stores. Project task memory was hash-chained and could prove tampering; the
|
|
1003
358
|
auto-memory and team-memory directories had nothing, and their contents are
|
|
@@ -1025,7 +380,6 @@
|
|
|
1025
380
|
|
|
1026
381
|
## 1.59.0
|
|
1027
382
|
|
|
1028
|
-
|
|
1029
383
|
- Added `ur sources`, a claim-to-source ledger. `wrapUntrusted` already stamped
|
|
1030
384
|
every untrusted block with a nonce and a source label, but discarded both the
|
|
1031
385
|
moment the block reached the model, so there was no way to audit what web or
|
|
@@ -1052,7 +406,6 @@
|
|
|
1052
406
|
|
|
1053
407
|
## 1.58.1
|
|
1054
408
|
|
|
1055
|
-
|
|
1056
409
|
- Unified vision-capability detection behind
|
|
1057
410
|
`src/utils/model/visionCapability.ts`. Three implementations disagreed: the
|
|
1058
411
|
Ollama adapter's `modelCapabilityEnabled` returned `has(x) ?? true`, so a
|
|
@@ -1075,7 +428,6 @@
|
|
|
1075
428
|
|
|
1076
429
|
## 1.58.0
|
|
1077
430
|
|
|
1078
|
-
|
|
1079
431
|
- Added per-agent cost and token attribution: `ur agent-inspect --costs`.
|
|
1080
432
|
`stats.ts` already read every `{sessionId}/subagents/agent-{agentId}.jsonl`
|
|
1081
433
|
transcript, but only to fold those tokens into a single total, so a fan-out
|
|
@@ -1090,7 +442,6 @@
|
|
|
1090
442
|
|
|
1091
443
|
## 1.57.5
|
|
1092
444
|
|
|
1093
|
-
|
|
1094
445
|
- Fixed the release gate failing on `repoEditImports`. The gate runs
|
|
1095
446
|
`bun test --timeout 120000`, but a per-test budget silently overrides that
|
|
1096
447
|
global, and this test declared 15s while its body — which builds a
|
|
@@ -1102,7 +453,6 @@
|
|
|
1102
453
|
|
|
1103
454
|
## 1.57.4
|
|
1104
455
|
|
|
1105
|
-
|
|
1106
456
|
- Fixed slash command arguments being silently truncated. `parseArguments`
|
|
1107
457
|
kept only the string tokens shell-quote returned, but shell-quote classifies
|
|
1108
458
|
`left?` and `src/*.ts` as globs and `&`, `>`, `(` as operators — so
|
|
@@ -1126,7 +476,6 @@
|
|
|
1126
476
|
|
|
1127
477
|
## 1.57.3
|
|
1128
478
|
|
|
1129
|
-
|
|
1130
479
|
- Stopped a false diagnosis on failed tool calls. When a tool call failed
|
|
1131
480
|
schema validation, UR appended "this tool's schema was not sent to the API"
|
|
1132
481
|
and told the model to load it via `ToolSearch`. Both claims were wrong on
|
|
@@ -1143,7 +492,6 @@
|
|
|
1143
492
|
|
|
1144
493
|
## 1.57.2
|
|
1145
494
|
|
|
1146
|
-
|
|
1147
495
|
- Fixed the Ollama adapter discarding images returned by tools. A tool result
|
|
1148
496
|
containing an image was flattened with `contentBlockToText`, which renders an
|
|
1149
497
|
image block as the literal string `[Image output omitted]` — so a `Computer`
|
|
@@ -1158,7 +506,6 @@
|
|
|
1158
506
|
|
|
1159
507
|
## 1.57.1
|
|
1160
508
|
|
|
1161
|
-
|
|
1162
509
|
- Fixed the `Computer` tool returning a byte count instead of the screenshot.
|
|
1163
510
|
`mapToolResultToToolResultBlockParam` dropped the captured image, so the
|
|
1164
511
|
model saw only "Captured 5164460 bytes" and had to ask the user where to save
|
|
@@ -1170,7 +517,6 @@
|
|
|
1170
517
|
|
|
1171
518
|
## 1.57.0
|
|
1172
519
|
|
|
1173
|
-
|
|
1174
520
|
- Connected four features that were built, tested and then left unreachable.
|
|
1175
521
|
Each had passing unit tests while contributing nothing to a real session.
|
|
1176
522
|
- `wrapUntrusted()` now runs on WebFetch and WebSearch results, at the
|
|
@@ -1199,7 +545,6 @@
|
|
|
1199
545
|
|
|
1200
546
|
## 1.56.1
|
|
1201
547
|
|
|
1202
|
-
|
|
1203
548
|
- Documented the 1.52.0–1.56.0 features, which had reached `technical/03` as
|
|
1204
549
|
command rows but nowhere else. Doc 09 now covers the fan-out limits and how
|
|
1205
550
|
to run several workers at once; doc 12 covers the prompt-injection module and
|
|
@@ -1210,7 +555,6 @@
|
|
|
1210
555
|
|
|
1211
556
|
## 1.56.0
|
|
1212
557
|
|
|
1213
|
-
|
|
1214
558
|
- Added a subagent fan-out governor. Agents could spawn agents with no depth or
|
|
1215
559
|
concurrency bound, and `/crew`, `/arena`, `/bg fanout` and `/pattern` all
|
|
1216
560
|
spawn several at once, so a single prompt could expand into an unbounded tree
|
|
@@ -1239,7 +583,6 @@
|
|
|
1239
583
|
|
|
1240
584
|
## 1.55.0
|
|
1241
585
|
|
|
1242
|
-
|
|
1243
586
|
- Narrowed `APIProvider` to the two values `getAPIProvider()` can actually
|
|
1244
587
|
return, `'foundry' | 'ollama'`, and let the compiler find every dead branch.
|
|
1245
588
|
It surfaced 66 errors across 25 files; all are now resolved and the
|
|
@@ -1266,7 +609,6 @@
|
|
|
1266
609
|
|
|
1267
610
|
## 1.54.1
|
|
1268
611
|
|
|
1269
|
-
|
|
1270
612
|
- Fixed `/speak`, `/computer`, `/memory-suggest`, `/import-session` and
|
|
1271
613
|
`/permission-profile` being unreachable from the shell. They were registered
|
|
1272
614
|
as slash commands but never wired into the Commander tree in `main.tsx`, so
|
|
@@ -1282,7 +624,6 @@
|
|
|
1282
624
|
|
|
1283
625
|
## 1.54.0
|
|
1284
626
|
|
|
1285
|
-
|
|
1286
627
|
- Wired the 1.53.0 capability libraries into runnable commands. They were
|
|
1287
628
|
verified modules but nothing invoked them; these are the execution paths.
|
|
1288
629
|
- Added `/speak <text>` (alias `/say`), which drives the platform speech
|
|
@@ -1302,7 +643,6 @@
|
|
|
1302
643
|
|
|
1303
644
|
## 1.53.0
|
|
1304
645
|
|
|
1305
|
-
|
|
1306
646
|
- Added automatic memory extraction (`src/memdir/extractFacts.ts`). Durable
|
|
1307
647
|
preferences and project conventions are proposed from user messages, deduped
|
|
1308
648
|
against stored memory by normalized key and containment, and ranked by
|
|
@@ -1333,7 +673,6 @@
|
|
|
1333
673
|
|
|
1334
674
|
## 1.52.0
|
|
1335
675
|
|
|
1336
|
-
|
|
1337
676
|
- Implemented Ollama Cloud authentication. The Ollama client sent no
|
|
1338
677
|
`Authorization` header at all, so the hosted API was unreachable: local
|
|
1339
678
|
sessions only worked because the signed-in daemon proxies `:cloud` models on
|
|
@@ -1354,7 +693,6 @@
|
|
|
1354
693
|
|
|
1355
694
|
## 1.51.0
|
|
1356
695
|
|
|
1357
|
-
|
|
1358
696
|
- Added named permission profiles. `settings.permissions.profiles` holds named
|
|
1359
697
|
rule sets (allow/deny/ask plus a description) and
|
|
1360
698
|
`settings.permissions.activeProfile` selects one; its rules are appended to
|
|
@@ -1373,7 +711,6 @@
|
|
|
1373
711
|
|
|
1374
712
|
## 1.50.6
|
|
1375
713
|
|
|
1376
|
-
|
|
1377
714
|
- Implemented `--effort` on Ollama. The support predicate compared
|
|
1378
715
|
`getAPIProvider()` against `'firstParty'` — a value it can never return — so
|
|
1379
716
|
the advertised flag was silently dropped everywhere. Effort is now advertised
|
|
@@ -1409,7 +746,6 @@
|
|
|
1409
746
|
|
|
1410
747
|
## 1.50.5
|
|
1411
748
|
|
|
1412
|
-
|
|
1413
749
|
- Added `.github/workflows/release.yml`. The repository had only a test
|
|
1414
750
|
workflow, so tags never became production releases: 18 tags existed with no
|
|
1415
751
|
GitHub Release and no automated publish. Pushing a `v*` tag now runs the full
|
|
@@ -1424,7 +760,6 @@
|
|
|
1424
760
|
|
|
1425
761
|
## 1.50.4
|
|
1426
762
|
|
|
1427
|
-
|
|
1428
763
|
- Removed the `/install-github-app` command and its GitHub App setup flow,
|
|
1429
764
|
along with the startup tip suggesting `@ur` be tagged from issues and pull
|
|
1430
765
|
requests. The composite action at the repository root is removed with it.
|
|
@@ -1435,7 +770,6 @@
|
|
|
1435
770
|
|
|
1436
771
|
## 1.50.3
|
|
1437
772
|
|
|
1438
|
-
|
|
1439
773
|
- Removed the GitHub App installation step from `/install-github-app`. UR
|
|
1440
774
|
authenticates in CI with the workflow's built-in `GITHUB_TOKEN` and a
|
|
1441
775
|
repository secret, so there is no app to install and no bot identity to
|
|
@@ -1451,7 +785,6 @@
|
|
|
1451
785
|
|
|
1452
786
|
## 1.50.2
|
|
1453
787
|
|
|
1454
|
-
|
|
1455
788
|
- Fixed local-provider sessions showing "Not logged in · Run /login" with no
|
|
1456
789
|
account to log in to, introduced in 1.50.1. Credential ownership and URHQ
|
|
1457
790
|
auth applicability are separate questions: an Ollama session uses the user's
|
|
@@ -1466,7 +799,6 @@
|
|
|
1466
799
|
|
|
1467
800
|
## 1.50.1
|
|
1468
801
|
|
|
1469
|
-
|
|
1470
802
|
- Fixed an always-true provider test that silently disabled a large part of the
|
|
1471
803
|
command surface. `isUsing3PServices()` was derived from `getAPIProvider()`,
|
|
1472
804
|
a request-shaping enum that never returns `'firstParty'`, so the comparison
|
|
@@ -1485,7 +817,6 @@
|
|
|
1485
817
|
|
|
1486
818
|
## 1.50.0
|
|
1487
819
|
|
|
1488
|
-
|
|
1489
820
|
- Completed `/install-github-app` so `@ur <task>` works from GitHub. The
|
|
1490
821
|
mention now triggers on issue comments, pull-request comments, inline review
|
|
1491
822
|
comments, submitted reviews, and new issues; `/ur` remains accepted. Matching
|
|
@@ -1518,7 +849,6 @@
|
|
|
1518
849
|
|
|
1519
850
|
## 1.49.0
|
|
1520
851
|
|
|
1521
|
-
|
|
1522
852
|
- Added cryptographically signed A2A Agent Cards: RFC 7515 detached JWS over
|
|
1523
853
|
the RFC 8785 canonical form of the card, using Ed25519 (`alg: "EdDSA"`).
|
|
1524
854
|
Verification recomputes the payload with `signatures` excluded, so a card can
|
|
@@ -1535,7 +865,6 @@
|
|
|
1535
865
|
|
|
1536
866
|
## 1.48.0
|
|
1537
867
|
|
|
1538
|
-
|
|
1539
868
|
- Added managed cloud fan-out with durable, idempotent steering, owner-scoped
|
|
1540
869
|
mobile/A2A control, explicit PASS plus safe-branch selection, and
|
|
1541
870
|
cancellation-safe task transitions.
|
|
@@ -1554,7 +883,6 @@
|
|
|
1554
883
|
|
|
1555
884
|
## 1.47.1
|
|
1556
885
|
|
|
1557
|
-
|
|
1558
886
|
- Hardened file downloads, filesystem permission checks, and signed skill
|
|
1559
887
|
trees against traversal and chained-symlink escapes.
|
|
1560
888
|
- Fixed task-memory integrity validation, prompt-plan file locking and change
|
|
@@ -1568,7 +896,6 @@
|
|
|
1568
896
|
|
|
1569
897
|
## 1.47.0
|
|
1570
898
|
|
|
1571
|
-
|
|
1572
899
|
- Added a secure, opt-in AG-UI HTTP/SSE adapter with official schema/encoder
|
|
1573
900
|
integration, truthful capability discovery, ordered text/tool/state events,
|
|
1574
901
|
cancellation, exact CORS, bearer protection for network exposure, resource
|
|
@@ -1607,7 +934,6 @@
|
|
|
1607
934
|
|
|
1608
935
|
## 1.46.0
|
|
1609
936
|
|
|
1610
|
-
|
|
1611
937
|
- Added a stable, official-SDK ACP v1 stdio agent with resumable sessions,
|
|
1612
938
|
client MCP transports and additional roots, streamed updates, native
|
|
1613
939
|
permission requests, cancellation, and private persisted session identity.
|
|
@@ -1639,7 +965,6 @@
|
|
|
1639
965
|
|
|
1640
966
|
## 1.45.6
|
|
1641
967
|
|
|
1642
|
-
|
|
1643
968
|
- Deduplicated project verification approval so compile/test/lint commands are
|
|
1644
969
|
offered at most once per user turn. The approval marker is cleared for the
|
|
1645
970
|
next user task, preserving one explicit decision per task.
|
|
@@ -1649,7 +974,6 @@
|
|
|
1649
974
|
|
|
1650
975
|
## 1.45.5
|
|
1651
976
|
|
|
1652
|
-
|
|
1653
977
|
- Bounded Ollama Cloud response-header and streaming phases to 120 seconds by
|
|
1654
978
|
default while preserving the five-minute allowance for local Ollama models.
|
|
1655
979
|
`API_TIMEOUT_MS` and per-request timeouts still take precedence.
|
|
@@ -1665,7 +989,6 @@
|
|
|
1665
989
|
|
|
1666
990
|
## 1.45.4
|
|
1667
991
|
|
|
1668
|
-
|
|
1669
992
|
- Added mandatory provider-first model selection for the first interactive run
|
|
1670
993
|
in every workspace that has no project-local model. The validated provider
|
|
1671
994
|
and model pair is saved to `.ur/settings.local.json` before the REPL starts.
|
|
@@ -1678,7 +1001,6 @@
|
|
|
1678
1001
|
|
|
1679
1002
|
## 1.45.3
|
|
1680
1003
|
|
|
1681
|
-
|
|
1682
1004
|
- Made slash-command resolution deterministic across bundled skills, plugins,
|
|
1683
1005
|
project skills, workflows, and built-ins. Duplicate canonical tokens are
|
|
1684
1006
|
rejected by source priority and conflicting aliases are removed; registry
|
|
@@ -1699,7 +1021,6 @@
|
|
|
1699
1021
|
|
|
1700
1022
|
## 1.45.2
|
|
1701
1023
|
|
|
1702
|
-
|
|
1703
1024
|
Correctness and containment release completing the runtime audit.
|
|
1704
1025
|
|
|
1705
1026
|
- Made sandbox, security-scope, WebFetch, API, browser, database, test-runner,
|
|
@@ -1732,7 +1053,6 @@ Correctness and containment release completing the runtime audit.
|
|
|
1732
1053
|
|
|
1733
1054
|
## 1.45.1
|
|
1734
1055
|
|
|
1735
|
-
|
|
1736
1056
|
Completes the three partially-delivered 1.45.0 items to 100%.
|
|
1737
1057
|
|
|
1738
1058
|
- Semantic code search is now zero-config: the CodeSearch tool auto-enables
|
|
@@ -1749,7 +1069,6 @@ Completes the three partially-delivered 1.45.0 items to 100%.
|
|
|
1749
1069
|
|
|
1750
1070
|
## 1.45.0
|
|
1751
1071
|
|
|
1752
|
-
|
|
1753
1072
|
Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
1754
1073
|
|
|
1755
1074
|
- `ur cloud` — detached best-of-N tasks (the local-first codex-cloud
|
|
@@ -1794,7 +1113,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1794
1113
|
|
|
1795
1114
|
## 1.44.10
|
|
1796
1115
|
|
|
1797
|
-
|
|
1798
1116
|
- Render `AskUserQuestion` permission requests inside a `PermissionDialog` so
|
|
1799
1117
|
multiple-choice options appear as a bordered dialog box rather than a plain
|
|
1800
1118
|
list.
|
|
@@ -1807,7 +1125,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1807
1125
|
|
|
1808
1126
|
## 1.44.9
|
|
1809
1127
|
|
|
1810
|
-
|
|
1811
1128
|
- Fix recurring "String to replace not found in file" Edit errors by adding
|
|
1812
1129
|
whitespace-tolerant matching (trailing whitespace, tab/space indentation).
|
|
1813
1130
|
- Fix AskUserQuestion "questions type expected as array" validation errors by
|
|
@@ -1815,7 +1132,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1815
1132
|
|
|
1816
1133
|
## 1.44.8
|
|
1817
1134
|
|
|
1818
|
-
|
|
1819
1135
|
- Keep auto-memory and automatic learning on by default with explicit opt-outs.
|
|
1820
1136
|
Automatic learning can now be disabled with `automaticLearningEnabled: false`
|
|
1821
1137
|
or `UR_CODE_DISABLE_AUTO_LEARNING=1`.
|
|
@@ -1826,7 +1142,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1826
1142
|
|
|
1827
1143
|
## 1.44.7
|
|
1828
1144
|
|
|
1829
|
-
|
|
1830
1145
|
- Add `autoApprove` permission mode for command/tool approval prompts. It
|
|
1831
1146
|
auto-approves operations that would otherwise require permission approval,
|
|
1832
1147
|
while preserving user-input dialogs and explicit denials.
|
|
@@ -1834,17 +1149,14 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1834
1149
|
|
|
1835
1150
|
## 1.44.6
|
|
1836
1151
|
|
|
1837
|
-
|
|
1838
1152
|
- Internal permission-mode iteration superseded by `1.44.7`.
|
|
1839
1153
|
|
|
1840
1154
|
## 1.44.5
|
|
1841
1155
|
|
|
1842
|
-
|
|
1843
1156
|
- Internal permission-mode iteration superseded by `1.44.6`.
|
|
1844
1157
|
|
|
1845
1158
|
## 1.44.4
|
|
1846
1159
|
|
|
1847
|
-
|
|
1848
1160
|
- The agent now learns from every run automatically — no `/learn run` needed.
|
|
1849
1161
|
ci-loop, arena, escalation, and test-first completions fold their pass/fail
|
|
1850
1162
|
outcome (per task category and model) into `.ur/learning/stats.json` as a
|
|
@@ -1866,7 +1178,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1866
1178
|
|
|
1867
1179
|
## 1.44.3
|
|
1868
1180
|
|
|
1869
|
-
|
|
1870
1181
|
- Make thinking visually distinct from answers: thinking blocks are labeled
|
|
1871
1182
|
"model reasoning to itself — not the answer" (dim italic, left-bordered when
|
|
1872
1183
|
expanded); answer text carries an accent-colored ⏺ marker.
|
|
@@ -1900,7 +1211,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1900
1211
|
|
|
1901
1212
|
## 1.44.2
|
|
1902
1213
|
|
|
1903
|
-
|
|
1904
1214
|
- Fix Ollama streamed tool-call accumulation: Ollama streams each completed
|
|
1905
1215
|
tool call in its own chunk, but the merge logic overwrote call N-1 with
|
|
1906
1216
|
call N, collapsing multi-call turns (e.g. several `Write` calls scaffolding
|
|
@@ -1925,7 +1235,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1925
1235
|
|
|
1926
1236
|
## 1.44.1
|
|
1927
1237
|
|
|
1928
|
-
|
|
1929
1238
|
- Fix task board rendering: finished, failed, and skipped tasks now render as
|
|
1930
1239
|
checked instead of unchecked.
|
|
1931
1240
|
- Deduplicate consecutive task board emissions and keep final boards clean
|
|
@@ -1933,7 +1242,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1933
1242
|
|
|
1934
1243
|
## 1.44.0
|
|
1935
1244
|
|
|
1936
|
-
|
|
1937
1245
|
- Add `verifier.askBeforeGates` setting (default `false`). When enabled, UR asks
|
|
1938
1246
|
via `AskUserQuestion` whether to run project verification commands after a
|
|
1939
1247
|
task, instead of auto-running tests/typecheck/lint gates. Available in
|
|
@@ -1944,7 +1252,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1944
1252
|
|
|
1945
1253
|
## 1.43.6
|
|
1946
1254
|
|
|
1947
|
-
|
|
1948
1255
|
- Render output from reasoning models on OpenAI-compatible providers (LM Studio,
|
|
1949
1256
|
vLLM). The streaming and non-streaming parsers now read `reasoning_content`
|
|
1950
1257
|
(and `reasoning`) deltas and surface them as thinking blocks. Models that emit
|
|
@@ -1953,7 +1260,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1953
1260
|
|
|
1954
1261
|
## 1.43.5
|
|
1955
1262
|
|
|
1956
|
-
|
|
1957
1263
|
- Fix model discovery for OpenAI-compatible providers (LM Studio, llama.cpp,
|
|
1958
1264
|
vLLM) when base_url omits the API version segment. Discovery and `ur provider
|
|
1959
1265
|
doctor` now also try `/v1/models` when base_url is just `host:port`, so
|
|
@@ -1963,7 +1269,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1963
1269
|
|
|
1964
1270
|
## 1.43.4
|
|
1965
1271
|
|
|
1966
|
-
|
|
1967
1272
|
- Tolerate hallucinated extra parameters on tool calls: when input validation
|
|
1968
1273
|
fails only because of unrecognized keys (e.g. `title`/`description` on a
|
|
1969
1274
|
`Write` call), those keys are stripped and the call is re-validated instead
|
|
@@ -1972,7 +1277,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1972
1277
|
|
|
1973
1278
|
## 1.43.3
|
|
1974
1279
|
|
|
1975
|
-
|
|
1976
1280
|
- Bias the assistant toward the interactive arrow-key select menu: the
|
|
1977
1281
|
AskUserQuestion tool guidance now instructs the model to use the selectable
|
|
1978
1282
|
menu whenever it offers the user a choice, instead of asking a free-form
|
|
@@ -1980,7 +1284,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1980
1284
|
|
|
1981
1285
|
## 1.43.2
|
|
1982
1286
|
|
|
1983
|
-
|
|
1984
1287
|
- Fix artifact pages hanging blank: diff viewer assets (diff2html,
|
|
1985
1288
|
highlight.js theme) are now served locally from `/assets` via the new
|
|
1986
1289
|
`diff2html` dependency instead of render-blocking CDN tags, and the viewer
|
|
@@ -1991,7 +1294,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
1991
1294
|
|
|
1992
1295
|
## 1.43.1
|
|
1993
1296
|
|
|
1994
|
-
|
|
1995
1297
|
- Artifacts page renders diffs VS Code-style: side-by-side/inline views with
|
|
1996
1298
|
syntax highlighting via diff2html (plain-text fallback when offline). New
|
|
1997
1299
|
live view `/diff` shows current working-tree changes without manual capture,
|
|
@@ -2003,7 +1305,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2003
1305
|
|
|
2004
1306
|
## 1.43.0
|
|
2005
1307
|
|
|
2006
|
-
|
|
2007
1308
|
- Add `ur artifacts serve [--port 4180]`: a local web page for artifacts.
|
|
2008
1309
|
`GET /artifacts/<id>` renders one artifact (status, summary, feedback,
|
|
2009
1310
|
content), `/` lists all, with `/artifacts/<id>/raw` and `/api/artifacts[/<id>]`
|
|
@@ -2011,7 +1312,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2011
1312
|
|
|
2012
1313
|
## 1.42.0
|
|
2013
1314
|
|
|
2014
|
-
|
|
2015
1315
|
- Project safety policy no longer hard-blocks commands. Risky or deny-matched
|
|
2016
1316
|
commands (package installs, destructive git operations, secret access,
|
|
2017
1317
|
sandbox-required commands when the sandbox is unavailable) now surface as
|
|
@@ -2020,7 +1320,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2020
1320
|
|
|
2021
1321
|
## 1.41.1
|
|
2022
1322
|
|
|
2023
|
-
|
|
2024
1323
|
- Harden provider tests against stored API keys in the local secure storage.
|
|
2025
1324
|
- Revert sandbox default to disabled; expose `sandbox.enabled`,
|
|
2026
1325
|
`sandbox.failIfUnavailable`, and `sandbox.allowUnsandboxedCommands` through
|
|
@@ -2028,7 +1327,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2028
1327
|
|
|
2029
1328
|
## 1.41.0
|
|
2030
1329
|
|
|
2031
|
-
|
|
2032
1330
|
- Persist the model chosen through the interactive `/model` picker to settings
|
|
2033
1331
|
and clear saved model state when `/model default` is used.
|
|
2034
1332
|
- Enable the sandbox by default when no explicit `sandbox.enabled` setting is
|
|
@@ -2036,7 +1334,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2036
1334
|
|
|
2037
1335
|
## 1.40.1
|
|
2038
1336
|
|
|
2039
|
-
|
|
2040
1337
|
- Pin `diff` to ^7 and OpenTelemetry packages to 2.6.1/0.214.0 to match the
|
|
2041
1338
|
source API, fixing type errors from accidental dependency bumps, and rebuild
|
|
2042
1339
|
the shipped bundle against these versions.
|
|
@@ -2044,13 +1341,11 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2044
1341
|
|
|
2045
1342
|
## 1.40.0
|
|
2046
1343
|
|
|
2047
|
-
|
|
2048
1344
|
- Version bump: align package, build macro, VS Code extension, docs eyebrow, and
|
|
2049
1345
|
changelog for the 1.40.0 release.
|
|
2050
1346
|
|
|
2051
1347
|
## 1.37.5
|
|
2052
1348
|
|
|
2053
|
-
|
|
2054
1349
|
- Version bump: align package, build macro, VS Code extension, docs eyebrow, and
|
|
2055
1350
|
changelog for the 1.37.5 patch release.
|
|
2056
1351
|
- Rename user-facing product/package branding to UR-Nexus while preserving the
|
|
@@ -2071,13 +1366,11 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2071
1366
|
|
|
2072
1367
|
## 1.37.3
|
|
2073
1368
|
|
|
2074
|
-
|
|
2075
1369
|
- Version bump: align package, build macro, VS Code extension, docs eyebrow, and
|
|
2076
1370
|
changelog for the 1.37.3 patch release.
|
|
2077
1371
|
|
|
2078
1372
|
## 1.37.2
|
|
2079
1373
|
|
|
2080
|
-
|
|
2081
1374
|
- Tightened provider reliability: API-provider calls now use a finite default
|
|
2082
1375
|
timeout, consistent retry handling for transient network/provider failures,
|
|
2083
1376
|
and safer OpenAI-compatible base URL normalization without changing streaming,
|
|
@@ -2099,7 +1392,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2099
1392
|
|
|
2100
1393
|
## 1.35.1
|
|
2101
1394
|
|
|
2102
|
-
|
|
2103
1395
|
- Polished the bundled VS Code inline-diffs view with native toolbar icons,
|
|
2104
1396
|
useful empty-state rows, clearer diff labels, and a cleaner review webview.
|
|
2105
1397
|
- Fixed `ur ide status` routing so the IDE extension status action reports
|
|
@@ -2109,7 +1401,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2109
1401
|
|
|
2110
1402
|
## 1.35.0
|
|
2111
1403
|
|
|
2112
|
-
|
|
2113
1404
|
- New `ur connect` CLI command (same implementation as the `/connect` slash
|
|
2114
1405
|
command): `ur connect status`, `ur connect <provider>`,
|
|
2115
1406
|
`ur connect <provider> --key <KEY>`, and `ur connect logout <provider>`.
|
|
@@ -2134,7 +1425,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2134
1425
|
|
|
2135
1426
|
## 1.34.0
|
|
2136
1427
|
|
|
2137
|
-
|
|
2138
1428
|
- Restore the 1.30.3 subscription approach: Codex CLI, Claude Code, Gemini CLI
|
|
2139
1429
|
and Antigravity are first-class in `/model` again — shown by default and
|
|
2140
1430
|
usable directly (no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` opt-in and no runtime
|
|
@@ -2146,7 +1436,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2146
1436
|
|
|
2147
1437
|
## 1.33.0
|
|
2148
1438
|
|
|
2149
|
-
|
|
2150
1439
|
- Add API keys from inside UR while it is running: in `/model`, selecting an
|
|
2151
1440
|
API provider (OpenAI, Anthropic, Gemini, OpenRouter) that isn't connected now
|
|
2152
1441
|
shows a masked key-entry step. The key is stored in the OS keychain, then the
|
|
@@ -2157,7 +1446,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2157
1446
|
|
|
2158
1447
|
## 1.32.0
|
|
2159
1448
|
|
|
2160
|
-
|
|
2161
1449
|
- `/model` now shows the subscription providers (Codex CLI, Claude Code, Gemini
|
|
2162
1450
|
CLI, Antigravity) again. They are enabled the moment you `ur connect` them
|
|
2163
1451
|
(persisted per-account opt-in) — no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` env var
|
|
@@ -2173,7 +1461,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2173
1461
|
|
|
2174
1462
|
## 1.31.0
|
|
2175
1463
|
|
|
2176
|
-
|
|
2177
1464
|
- Add in-app provider connection: `ur connect` / `/connect` connects a provider
|
|
2178
1465
|
once and persists it. Subscription providers (Codex, Claude Code, Gemini,
|
|
2179
1466
|
Antigravity) launch their official CLI login using your own account; API
|
|
@@ -2190,7 +1477,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2190
1477
|
|
|
2191
1478
|
## 1.30.6
|
|
2192
1479
|
|
|
2193
|
-
|
|
2194
1480
|
- Restore a visible `subscription` access entry in provider lists without
|
|
2195
1481
|
exposing provider app bridges as normal runtimes.
|
|
2196
1482
|
- Keep subscription selection honest: no fake UR model IDs are listed, and the
|
|
@@ -2199,7 +1485,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2199
1485
|
|
|
2200
1486
|
## 1.30.5
|
|
2201
1487
|
|
|
2202
|
-
|
|
2203
1488
|
- Hide external app bridge providers from normal `/model`, `/provider`, and
|
|
2204
1489
|
`ur provider list` output. The default provider UX now shows only UR-native
|
|
2205
1490
|
API, local, and OpenAI-compatible server runtimes.
|
|
@@ -2209,7 +1494,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2209
1494
|
|
|
2210
1495
|
## 1.30.4
|
|
2211
1496
|
|
|
2212
|
-
|
|
2213
1497
|
- Make the default provider runtime independent of provider apps. Codex CLI,
|
|
2214
1498
|
Claude Code, Gemini CLI, and Antigravity are now treated as explicit external
|
|
2215
1499
|
app bridges and are blocked from normal `/model`, config save, and runtime
|
|
@@ -2220,7 +1504,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2220
1504
|
|
|
2221
1505
|
## 1.30.3
|
|
2222
1506
|
|
|
2223
|
-
|
|
2224
1507
|
- Fix Codex CLI dispatch for real interactive terminals by inheriting terminal
|
|
2225
1508
|
stdin for `codex exec`. Codex treats both `/dev/null` and closed pipes as
|
|
2226
1509
|
piped stdin, so the previous `1.30.2` EOF approach still triggered
|
|
@@ -2228,7 +1511,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2228
1511
|
|
|
2229
1512
|
## 1.30.2
|
|
2230
1513
|
|
|
2231
|
-
|
|
2232
1514
|
- Fix Codex subscription dispatch failing with `exited 1 ... Reading additional
|
|
2233
1515
|
input from stdin`. `codex exec` reads stdin even when the prompt is an
|
|
2234
1516
|
argument; UR now gives it a closed, empty stdin pipe (EOF) instead of
|
|
@@ -2237,7 +1519,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2237
1519
|
|
|
2238
1520
|
## 1.30.1
|
|
2239
1521
|
|
|
2240
|
-
|
|
2241
1522
|
- Fix Codex CLI runtime dispatch by ignoring stdin when UR already passes the
|
|
2242
1523
|
prompt as a command argument. This prevents `codex exec` from treating UR's
|
|
2243
1524
|
closed pipe as extra stdin and exiting after `Reading additional input from
|
|
@@ -2245,7 +1526,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2245
1526
|
|
|
2246
1527
|
## 1.30.0
|
|
2247
1528
|
|
|
2248
|
-
|
|
2249
1529
|
- IDE integration commands: `ur ide status`, `ur ide doctor`, and `ur ide config
|
|
2250
1530
|
<editor>` for VS Code, Cursor, Windsurf, Zed, JetBrains, Neovim, and generic
|
|
2251
1531
|
ACP clients. Status shows workspace, ACP server, provider/model, plugin count,
|
|
@@ -2266,7 +1546,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2266
1546
|
|
|
2267
1547
|
## 1.29.1
|
|
2268
1548
|
|
|
2269
|
-
|
|
2270
1549
|
- Replace fabricated Claude Code and Gemini CLI static model names with
|
|
2271
1550
|
provider-scoped CLI model aliases/names that the official CLIs can receive.
|
|
2272
1551
|
- Reject stale subscription CLI selections such as `claude-code/sonnet-5` before
|
|
@@ -2276,7 +1555,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2276
1555
|
|
|
2277
1556
|
## 1.29.0
|
|
2278
1557
|
|
|
2279
|
-
|
|
2280
1558
|
- Customer release consolidating the multi-provider selection and runtime
|
|
2281
1559
|
dispatch work (1.27.5–1.28.1) into a single production line.
|
|
2282
1560
|
- System-prompt identity now reflects the selected provider and runtime backend
|
|
@@ -2288,7 +1566,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2288
1566
|
|
|
2289
1567
|
## 1.28.1
|
|
2290
1568
|
|
|
2291
|
-
|
|
2292
1569
|
- Keep the status bar synchronized with in-session provider/model changes from
|
|
2293
1570
|
`/model`, `/model <model>`, and `/provider`, instead of waiting for persisted
|
|
2294
1571
|
settings to reload.
|
|
@@ -2297,7 +1574,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2297
1574
|
|
|
2298
1575
|
## 1.28.0
|
|
2299
1576
|
|
|
2300
|
-
|
|
2301
1577
|
- Subscription CLI providers (Codex, Claude Code, Gemini, Antigravity) now
|
|
2302
1578
|
perform real dispatch: the official CLI is spawned in non-interactive mode with
|
|
2303
1579
|
the scoped model and prompt, and its stdout becomes the response. Non-zero exit
|
|
@@ -2319,7 +1595,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2319
1595
|
|
|
2320
1596
|
## 1.27.6
|
|
2321
1597
|
|
|
2322
|
-
|
|
2323
1598
|
- Route runtime requests through the selected provider/model pair instead of
|
|
2324
1599
|
allowing stale Ollama/default-provider paths to handle non-Ollama requests.
|
|
2325
1600
|
- Add runtime dispatch validation, backend labels, and focused mocked dispatch
|
|
@@ -2329,7 +1604,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2329
1604
|
|
|
2330
1605
|
## 1.27.5
|
|
2331
1606
|
|
|
2332
|
-
|
|
2333
1607
|
- Make `/model` provider-first and provider-scoped, with clear subscription,
|
|
2334
1608
|
API-key, local runtime, and OpenAI-compatible server labels.
|
|
2335
1609
|
- Keep model discovery, validation, fallback, and saved config scoped to the
|
|
@@ -2340,7 +1614,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2340
1614
|
|
|
2341
1615
|
## 1.25.3
|
|
2342
1616
|
|
|
2343
|
-
|
|
2344
1617
|
- Add provider alias resolution so `ur config set provider claude`,
|
|
2345
1618
|
`ur config set provider "Claude Code"`, and `ur provider doctor agy`
|
|
2346
1619
|
resolve to canonical provider IDs.
|
|
@@ -2349,7 +1622,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2349
1622
|
|
|
2350
1623
|
## 1.25.2
|
|
2351
1624
|
|
|
2352
|
-
|
|
2353
1625
|
- Refresh public documentation so README, docs, static site, validation runbook,
|
|
2354
1626
|
and code inventory all describe the current UR-Nexus feature set.
|
|
2355
1627
|
- Document the recent provider auth, status bar, bundled VS Code extension,
|
|
@@ -2360,20 +1632,17 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2360
1632
|
|
|
2361
1633
|
## 1.25.1
|
|
2362
1634
|
|
|
2363
|
-
|
|
2364
1635
|
- Fix VS Code extension installation to use the bundled UR-Nexus inline-diffs extension instead of the stale unpublished `urhq.ur` marketplace ID.
|
|
2365
1636
|
- Harden AskUserQuestion normalization for description-only option objects and keep the eight-option schema in the production bundle.
|
|
2366
1637
|
|
|
2367
1638
|
## 1.25.0
|
|
2368
1639
|
|
|
2369
|
-
|
|
2370
1640
|
- Add legal multi-provider auth/provider management for subscription CLI, API-key, and local runtime access paths.
|
|
2371
1641
|
- Add provider doctor/status/config commands, provider-aware status bar display, and explicit no-token-scraping safety policy.
|
|
2372
1642
|
- Relax plan-mode clarification choices so professional redesign prompts do not fail when more than four options are supplied.
|
|
2373
1643
|
|
|
2374
1644
|
## 1.24.0
|
|
2375
1645
|
|
|
2376
|
-
|
|
2377
1646
|
### Added
|
|
2378
1647
|
- Plugin marketplace capability metadata for MCP tools, executable skills,
|
|
2379
1648
|
templates, validators, language adapters, LSP servers, hooks, agents, and
|
|
@@ -2392,13 +1661,11 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2392
1661
|
|
|
2393
1662
|
## 1.23.3
|
|
2394
1663
|
|
|
2395
|
-
|
|
2396
1664
|
### Fixed
|
|
2397
1665
|
- `repoIndex` tests failing in CI because `listIndexableFiles` silently returned `[]` when ripgrep (`rg`) was unavailable. Added a Node.js recursive file walker fallback that applies the same extension and skip-segment filters.
|
|
2398
1666
|
|
|
2399
1667
|
## 1.23.2
|
|
2400
1668
|
|
|
2401
|
-
|
|
2402
1669
|
### Added
|
|
2403
1670
|
- **CI failure diagnostics** in `.github/workflows/test.yml`: environment-info step, verbose test reporter, captured `test-output.log`, and artifact upload on failure so the production test runner exposes which test fails without requiring admin log access.
|
|
2404
1671
|
|
|
@@ -2407,7 +1674,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2407
1674
|
|
|
2408
1675
|
## 1.23.1
|
|
2409
1676
|
|
|
2410
|
-
|
|
2411
1677
|
### Added
|
|
2412
1678
|
- **CI agent (`ur ci-loop`)** with agent constitution: hard rules against hiding failures, deleting without approval, editing generated/vendor files, claiming tests passed without execution, and changing public API without warning.
|
|
2413
1679
|
- **Plugin marketplace extensibility** for `templates`, `validators`, and `languageAdapters` alongside existing MCP tools and skills.
|
|
@@ -2417,7 +1683,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2417
1683
|
|
|
2418
1684
|
## 1.22.8
|
|
2419
1685
|
|
|
2420
|
-
|
|
2421
1686
|
### Added
|
|
2422
1687
|
-
|
|
2423
1688
|
|
|
@@ -2429,7 +1694,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2429
1694
|
|
|
2430
1695
|
## 1.22.7
|
|
2431
1696
|
|
|
2432
|
-
|
|
2433
1697
|
### Added
|
|
2434
1698
|
- **Benchmark mode (`ur eval`).**
|
|
2435
1699
|
- `ur eval run <suite> [--model <m>] [--metrics]` runs eval suites with explicit model overrides and per-case metrics files.
|
|
@@ -2474,7 +1738,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2474
1738
|
|
|
2475
1739
|
## 1.22.6
|
|
2476
1740
|
|
|
2477
|
-
|
|
2478
1741
|
### Fixed
|
|
2479
1742
|
- Fixed Bash tool runtime execution failing every command with
|
|
2480
1743
|
`timeoutMs is not defined` by keeping the command hook timeout value in scope
|
|
@@ -2490,7 +1753,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2490
1753
|
|
|
2491
1754
|
## 1.22.5
|
|
2492
1755
|
|
|
2493
|
-
|
|
2494
1756
|
### Added
|
|
2495
1757
|
- **Real sandbox core architecture (`ur sandbox`).** New first-class command to inspect sandbox status, run dependency checks, initialize `.ur/safety-policy.json`, and evaluate shell-command approval levels.
|
|
2496
1758
|
- **Worktree-per-task (`ur task`).** New command surface to start, run, list, and hand off agent tasks in isolated git branches/worktrees: `task start <name> [--worktree]`, `task run <id>`, `task pr <id> [--create]`, `task list`, `task status <id>`.
|
|
@@ -2506,7 +1768,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2506
1768
|
|
|
2507
1769
|
## 1.22.4
|
|
2508
1770
|
|
|
2509
|
-
|
|
2510
1771
|
### Added
|
|
2511
1772
|
- **AST-aware `ur repo-edit` (P7).** Added
|
|
2512
1773
|
`src/services/repoEditing/ast/types.ts`,
|
|
@@ -2546,7 +1807,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2546
1807
|
|
|
2547
1808
|
## 1.22.3
|
|
2548
1809
|
|
|
2549
|
-
|
|
2550
1810
|
### Added
|
|
2551
1811
|
- **Executable skill directories.** A `.ur/skills/<name>/` directory containing
|
|
2552
1812
|
`skill.yaml` is now an executable skill that compiles into a `WorkflowSpec`.
|
|
@@ -2577,7 +1837,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2577
1837
|
|
|
2578
1838
|
## 1.22.2
|
|
2579
1839
|
|
|
2580
|
-
|
|
2581
1840
|
### Added
|
|
2582
1841
|
- **Lifecycle hooks.** Added six new hook events in `src/entrypoints/sdk/coreTypes.ts`
|
|
2583
1842
|
and `src/entrypoints/sdk/coreSchemas.ts`: `BeforeEdit`, `AfterEdit`,
|
|
@@ -2604,7 +1863,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2604
1863
|
|
|
2605
1864
|
## 1.22.1
|
|
2606
1865
|
|
|
2607
|
-
|
|
2608
1866
|
### Added
|
|
2609
1867
|
- **Rich task decomposition.** `src/services/agents/decomposer.ts` splits large
|
|
2610
1868
|
goals into atomic subtasks with `goal`, `filesTouched`, `risk` (low/medium/high),
|
|
@@ -2637,7 +1895,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2637
1895
|
|
|
2638
1896
|
## 1.22.0
|
|
2639
1897
|
|
|
2640
|
-
|
|
2641
1898
|
### Added
|
|
2642
1899
|
- **Agent execution metrics in `ur eval`.** `ur eval run` now captures
|
|
2643
1900
|
cost, input/output tokens, model used, API duration, files changed,
|
|
@@ -2701,7 +1958,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2701
1958
|
|
|
2702
1959
|
## 1.21.0
|
|
2703
1960
|
|
|
2704
|
-
|
|
2705
1961
|
### Added
|
|
2706
1962
|
- **Agent skill runner (`agentSkillRunner.ts`).** Reusable helper that wraps
|
|
2707
1963
|
`startBackgroundTask({ worktree: true, pr: true })`, polls the background
|
|
@@ -2731,7 +1987,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2731
1987
|
|
|
2732
1988
|
## 1.20.0
|
|
2733
1989
|
|
|
2734
|
-
|
|
2735
1990
|
### Added
|
|
2736
1991
|
- **ACP server (`ur acp`).** Added an HTTP+JSON-RPC Agent Communication
|
|
2737
1992
|
Protocol server for IDE extensions. Supports `initialize`, `tools/list`,
|
|
@@ -2767,7 +2022,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2767
2022
|
|
|
2768
2023
|
## 1.19.0
|
|
2769
2024
|
|
|
2770
|
-
|
|
2771
2025
|
### Added
|
|
2772
2026
|
- **Permission and safety policy (`ur safety`).** Added a project shell safety
|
|
2773
2027
|
evaluator that separates read, write, execute, and network command classes;
|
|
@@ -2795,7 +2049,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2795
2049
|
|
|
2796
2050
|
## 1.18.0
|
|
2797
2051
|
|
|
2798
|
-
|
|
2799
2052
|
### Added
|
|
2800
2053
|
- **Test-first execution loop (`ur test-first`).** Added a P0 quality loop that
|
|
2801
2054
|
detects the project stack, orders compile/test/lint commands, runs them as
|
|
@@ -2820,7 +2073,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2820
2073
|
|
|
2821
2074
|
## 1.17.0
|
|
2822
2075
|
|
|
2823
|
-
|
|
2824
2076
|
### Added
|
|
2825
2077
|
- **Reliable repo editing (`ur repo-edit`).** Added a P0 repo-editing workflow
|
|
2826
2078
|
with dependency-free file/symbol indexing, indexed search, AST-aware
|
|
@@ -2837,7 +2089,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2837
2089
|
|
|
2838
2090
|
## 1.16.0
|
|
2839
2091
|
|
|
2840
|
-
|
|
2841
2092
|
### Added
|
|
2842
2093
|
- **Network Ollama discovery.** `ur --discover-ollama` scans active local subnets
|
|
2843
2094
|
for Ollama servers on port 11434, verifies each via `/api/tags`, and shows an
|
|
@@ -2860,7 +2111,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2860
2111
|
|
|
2861
2112
|
## 1.15.0
|
|
2862
2113
|
|
|
2863
|
-
|
|
2864
2114
|
### Changed
|
|
2865
2115
|
- **Version bump.** Updated from 1.14.0 to 1.15.0 across `package.json`, `bunfig.toml`, and bundled CLI.
|
|
2866
2116
|
|
|
@@ -2869,7 +2119,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2869
2119
|
|
|
2870
2120
|
## 1.14.1
|
|
2871
2121
|
|
|
2872
|
-
|
|
2873
2122
|
### Changed
|
|
2874
2123
|
- Removed the `desktop-app` startup tip pointing to the legacy desktop URL.
|
|
2875
2124
|
|
|
@@ -2878,7 +2127,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2878
2127
|
|
|
2879
2128
|
## 1.14.0
|
|
2880
2129
|
|
|
2881
|
-
|
|
2882
2130
|
### Changed
|
|
2883
2131
|
- **Version bump.** Updated from 1.13.9 to 1.14.0 across `package.json`, `bunfig.toml`, and bundled CLI.
|
|
2884
2132
|
|
|
@@ -2887,7 +2135,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2887
2135
|
|
|
2888
2136
|
## 1.13.9
|
|
2889
2137
|
|
|
2890
|
-
|
|
2891
2138
|
### Added
|
|
2892
2139
|
- **Spec-driven development (`ur spec`).** Scaffolds `requirements.md ->
|
|
2893
2140
|
design.md -> tasks.md` plus a phase/approval `spec.json` under `.ur/specs/`,
|
|
@@ -2923,7 +2170,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2923
2170
|
|
|
2924
2171
|
## 1.13.8
|
|
2925
2172
|
|
|
2926
|
-
|
|
2927
2173
|
### Fixed
|
|
2928
2174
|
- **Image paste resize fallback.** Clipboard image paste now falls back to
|
|
2929
2175
|
macOS `sips` when the normal Sharp/native resize path cannot process an
|
|
@@ -2939,7 +2185,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2939
2185
|
|
|
2940
2186
|
## 1.13.7
|
|
2941
2187
|
|
|
2942
|
-
|
|
2943
2188
|
### Added
|
|
2944
2189
|
- **Explicit update notice.** Interactive sessions now show
|
|
2945
2190
|
`Update available: <current> -> <latest>` when a newer published package is
|
|
@@ -2956,7 +2201,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2956
2201
|
|
|
2957
2202
|
## 1.13.6
|
|
2958
2203
|
|
|
2959
|
-
|
|
2960
2204
|
### Added
|
|
2961
2205
|
- **Professional static documentation site.** Added `documentation/` with a
|
|
2962
2206
|
full HTML/CSS/JS documentation project covering installation, architecture,
|
|
@@ -2971,7 +2215,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2971
2215
|
|
|
2972
2216
|
## 1.13.5
|
|
2973
2217
|
|
|
2974
|
-
|
|
2975
2218
|
### Added
|
|
2976
2219
|
- **Headless agent crews.** Added `ur crew` for lead/worker task boards that
|
|
2977
2220
|
split a goal into subtasks, let worker subagents claim work, and support
|
|
@@ -2996,7 +2239,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
2996
2239
|
|
|
2997
2240
|
## 1.13.4
|
|
2998
2241
|
|
|
2999
|
-
|
|
3000
2242
|
### Added
|
|
3001
2243
|
- **Parallel workflow execution.** The declarative workflow executor now runs
|
|
3002
2244
|
independent ready steps concurrently. `ur workflow run --concurrency <n>`
|
|
@@ -3029,7 +2271,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3029
2271
|
|
|
3030
2272
|
## 1.13.3
|
|
3031
2273
|
|
|
3032
|
-
|
|
3033
2274
|
### Added
|
|
3034
2275
|
- **Checkpointed agent workflows.** Added `ur workflow` for declaring,
|
|
3035
2276
|
validating, graphing, planning, resuming, and dry-running multi-step agent
|
|
@@ -3054,7 +2295,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3054
2295
|
|
|
3055
2296
|
## 1.13.2
|
|
3056
2297
|
|
|
3057
|
-
|
|
3058
2298
|
### Added
|
|
3059
2299
|
- **Top-level code-index and role-mode commands.** `ur code-index` and
|
|
3060
2300
|
`ur role-mode` are now registered in the main CLI, matching the shipped
|
|
@@ -3077,7 +2317,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3077
2317
|
|
|
3078
2318
|
## 1.13.1
|
|
3079
2319
|
|
|
3080
|
-
|
|
3081
2320
|
### Added
|
|
3082
2321
|
- **AGENTS.md as runtime context.** UR now loads `AGENTS.md` (the cross-tool
|
|
3083
2322
|
standard) from project roots at runtime, alongside `UR.md` and `.ur/rules/`.
|
|
@@ -3111,7 +2350,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3111
2350
|
|
|
3112
2351
|
## 1.12.3
|
|
3113
2352
|
|
|
3114
|
-
|
|
3115
2353
|
### Added
|
|
3116
2354
|
- **Agent feature expansion commands.** Added `ur agent-features`,
|
|
3117
2355
|
`ur agent-templates`, `ur automation`, `ur agent-task`, `ur model-doctor`,
|
|
@@ -3140,7 +2378,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3140
2378
|
|
|
3141
2379
|
## 1.12.2
|
|
3142
2380
|
|
|
3143
|
-
|
|
3144
2381
|
### Changed
|
|
3145
2382
|
- **Ziggurat of Ur spinner.** Replaced the canoe spinner with the Ziggurat of
|
|
3146
2383
|
Ur catching light: an up-pyramid whose lit face sweeps across (`△ ◭ ▲ ◮`)
|
|
@@ -3152,7 +2389,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3152
2389
|
|
|
3153
2390
|
## 1.12.1
|
|
3154
2391
|
|
|
3155
|
-
|
|
3156
2392
|
### Changed
|
|
3157
2393
|
- **Mashoof spinner.** The activity spinner is now a Mashoof (مشحوف) — the
|
|
3158
2394
|
marsh canoe — bobbing on the water. It cycles boat-hull arcs (`⌣ ⏝ ‿`) into
|
|
@@ -3161,7 +2397,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3161
2397
|
|
|
3162
2398
|
## 1.12.0
|
|
3163
2399
|
|
|
3164
|
-
|
|
3165
2400
|
### Added
|
|
3166
2401
|
- **Agent trend coverage.** New `ur agent-trends` CLI command and
|
|
3167
2402
|
`/agent-trends` slash command report how UR maps to current agent trends:
|
|
@@ -3181,7 +2416,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3181
2416
|
|
|
3182
2417
|
## 1.11.3
|
|
3183
2418
|
|
|
3184
|
-
|
|
3185
2419
|
### Changed
|
|
3186
2420
|
- **Read-only web browsing.** `WebSearch` and `WebFetch` now run without
|
|
3187
2421
|
prompting by default, while still respecting explicit deny or ask rules.
|
|
@@ -3190,7 +2424,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3190
2424
|
|
|
3191
2425
|
## 1.11.2
|
|
3192
2426
|
|
|
3193
|
-
|
|
3194
2427
|
### Fixed
|
|
3195
2428
|
- **Clarification dialogs.** `AskUserQuestion` is now loaded without a
|
|
3196
2429
|
`ToolSearch` round trip and accepts common question text aliases such as
|
|
@@ -3199,7 +2432,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3199
2432
|
|
|
3200
2433
|
## 1.11.1
|
|
3201
2434
|
|
|
3202
|
-
|
|
3203
2435
|
### Changed
|
|
3204
2436
|
- **Npm publication docs.** README installation guidance now reflects that
|
|
3205
2437
|
`ur-nexus` is published on npm, while keeping the GitHub install path for
|
|
@@ -3207,7 +2439,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3207
2439
|
|
|
3208
2440
|
## 1.11.0
|
|
3209
2441
|
|
|
3210
|
-
|
|
3211
2442
|
### Changed
|
|
3212
2443
|
- **Ollama model selection now lets routing work by default.** The launcher no
|
|
3213
2444
|
longer forces `OLLAMA_MODEL` when neither `OLLAMA_MODEL` nor `UR_MODEL` is
|
|
@@ -3238,13 +2469,11 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3238
2469
|
|
|
3239
2470
|
## 1.10.2
|
|
3240
2471
|
|
|
3241
|
-
|
|
3242
2472
|
### Fixed
|
|
3243
2473
|
- **Clipboard image paste — the fix that actually ships.** The 1.10.1 change edited the native NSPasteboard branch, which is dead-code-eliminated from the bundle (its feature gate compiles out), so it never ran. The live path is osascript, whose `saveImage` reused a fixed temp file (`ur_cli_latest_screenshot.png`) opened `with write permission` but never truncated — so a smaller image pasted over a previously larger one kept the old trailing bytes, producing a corrupt PNG ("found in clipboard but not attached"). Added `set eof fp to 0` to truncate before writing.
|
|
3244
2474
|
|
|
3245
2475
|
## 1.10.1
|
|
3246
2476
|
|
|
3247
|
-
|
|
3248
2477
|
### Fixed
|
|
3249
2478
|
- **Clipboard image paste.** An image the clipboard reported as present but the native reader couldn't decode was silently dropped — "found in clipboard but not attached." `getImageFromClipboard` now falls back to the osascript path instead of treating a native `null` as authoritative.
|
|
3250
2479
|
- **Token truncation on Ollama Cloud models.** Cloud models (the `-cloud` / `:cloud` suffix) now default to a 128K-token context floor for both `num_ctx` and auto-compaction, instead of the small or missing value `/api/show` reports for them — so prompts are no longer silently truncated, with no env vars required. The reported value is still used when it is larger, and `UR_OLLAMA_NUM_CTX` (no longer capped to the detected value) / `OLLAMA_CONTEXT_TOKENS` still override.
|
|
@@ -3255,7 +2484,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3255
2484
|
|
|
3256
2485
|
## 1.10.0
|
|
3257
2486
|
|
|
3258
|
-
|
|
3259
2487
|
### Added
|
|
3260
2488
|
- **`skill-forge` plugin** in the `ur-plugins-official` marketplace — have the agent author skills for you. `/forge-skill <description>` runs on the active session model: it designs the skill (name, `when_to_use` triggers, arguments, minimal `allowed-tools`, inline vs fork, and steps that each carry a success criterion), shows the `SKILL.md` for a single confirmation, then saves it to `~/.ur/skills/<name>/` (or `./.ur/skills/` with `--project`) without clobbering an existing one. `/skill-refine <name> : <change>` improves an existing skill, and a bundled `skill-authoring` skill encodes the conventions. Complements the built-in `/create-skill`, which only scaffolds an empty template.
|
|
3261
2489
|
|
|
@@ -3264,7 +2492,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3264
2492
|
|
|
3265
2493
|
## 1.9.0
|
|
3266
2494
|
|
|
3267
|
-
|
|
3268
2495
|
### Added
|
|
3269
2496
|
- **Seven first-party integration plugins** in the `ur-plugins-official` marketplace. Each bundles an official MCP server, curated slash commands, and a methodology skill, and falls back to a CLI or local library so the commands still work before any token is configured:
|
|
3270
2497
|
- **`obsidian`** — operate a vault as a second brain: `/second-brain`, `/daily-note`, `/moc`, `/backlinks`, `/vault-search`. Direct vault file edits or the Obsidian Local REST API MCP server, plus a Zettelkasten/PARA/MOC skill.
|
|
@@ -3281,7 +2508,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3281
2508
|
|
|
3282
2509
|
## 1.8.0
|
|
3283
2510
|
|
|
3284
|
-
|
|
3285
2511
|
### Added
|
|
3286
2512
|
- **`/create-skill` command.** Scaffold a new skill without leaving the REPL: `/create-skill <name> [: <description>] [--project]` writes a ready-to-edit `SKILL.md` (with frontmatter) to `~/.ur/skills/<name>/` — or `.ur/skills/` with `--project` — refuses to clobber an existing skill, and clears caches so it shows up immediately (alias `/new-skill`).
|
|
3287
2513
|
- **Game Designer mode.** A new built-in output style (`/output-style`) that makes UR reason like a game designer — core loops, player fantasy, game feel, and tunable balance constants — while it writes working code.
|
|
@@ -3292,7 +2518,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3292
2518
|
|
|
3293
2519
|
## 1.7.0
|
|
3294
2520
|
|
|
3295
|
-
|
|
3296
2521
|
### Added
|
|
3297
2522
|
- **Adaptive model routing (Ollama).** The agent auto-selects the best installed model per tier — the strongest coder model for the main loop, the smallest fast model for light internal work (titles, classification, session search, hooks). Honors `OLLAMA_MODEL` / `OLLAMA_SMALL_FAST_MODEL`; gated by `UR_OLLAMA_AUTO_ROUTE`.
|
|
3298
2523
|
- **Per-model context auto-tuning.** Each request sets `num_ctx` from the model's real context window and the prompt size (floored at 32K for agent work, bucketed so the KV cache stays warm), fixing silent truncation at Ollama's 4096 default. Override with `UR_OLLAMA_NUM_CTX`.
|
|
@@ -3304,7 +2529,6 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
|
|
|
3304
2529
|
|
|
3305
2530
|
## 1.6.0
|
|
3306
2531
|
|
|
3307
|
-
|
|
3308
2532
|
### Added
|
|
3309
2533
|
- **Proactive clarification & planning prompts.** The agent now uses the `AskUserQuestion` multiple-choice popup before significant or ambiguous work and at key planning decisions. Options are navigated with arrow keys and submitted; the last "Other" entry always lets you type a custom answer.
|
|
3310
2534
|
- **Smarter prompt handling.** New always-on guidance makes the agent resolve ambiguity before acting, work in verifiable steps and check each step's output against the request before continuing, verify work actually runs before reporting done, report outcomes faithfully, and keep changes precisely scoped and professional.
|