ur-agent 1.68.16 → 1.68.18

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 CHANGED
@@ -1,7 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.68.18
4
+
5
+ - The shell is presentational and imports only ink and useTerminalSize. A first
6
+ version read live state itself (settings, provider registry, app state, git),
7
+ and importing it from REPL changed REPL's module graph enough to flip a
8
+ command from hidden to visible — caught by `commandRegistryIntegrity`, which
9
+ passed with the REPL edit stashed and failed with it applied. Loading a module
10
+ is not free here; some register on load. Session values now arrive as props
11
+ from a caller that already holds them.
12
+
13
+ - Reconstructed three more stub type files, clearing 177 further errors:
14
+ `keybindings/types.ts` (six empty interfaces), `ink/cursor.ts`, and
15
+ `commands/plugin/unifiedTypes.ts`. Same defect as the MCP types in 1.68.14 —
16
+ an empty interface means "has no members" to TypeScript, not "shape unknown",
17
+ so every property access on one was an error and the consuming files carried
18
+ `@ts-nocheck` as a result.
19
+ - `KeybindingBlock.bindings` is keyed by chord string, not an array. A first
20
+ attempt typed it `ParsedBinding[]`, which made every entry in the default
21
+ binding table an error — the declaration form (`'ctrl+d': 'app:exit'`) and the
22
+ parsed form (chord resolved into keystrokes) are different shapes, and
23
+ conflating them broke a file that had been fine.
24
+ - `KeybindingAction` is a string rather than a union of known actions:
25
+ `defaultBindings.ts` assembles entries conditionally from feature flags, so a
26
+ value missing from a union would turn a working binding into an error.
27
+ - Suppression list: 140 -> 132. Eight keybinding and ink files came off.
28
+ - Totals for the sweep so far: 223 -> 132 files, 868 -> 563 errors, and almost
29
+ none of it file-by-file. Four stub files accounted for 258 errors on their
30
+ own.
31
+
32
+ ## 1.68.17
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
+
3
48
  ## 1.68.16
4
49
 
50
+
5
51
  - First pieces of the UR Nexus visual identity, as terminal primitives rather
6
52
  than artwork: `constants/urPalette.ts` (obsidian/bronze/electrum/lapis tokens
7
53
  in true-colour, ANSI-256 and monochrome tiers, with depth detection),
@@ -27,27 +73,37 @@
27
73
 
28
74
  ## 1.68.15
29
75
 
30
- - Reconstructed three more stub type files, clearing 177 further errors:
31
- `keybindings/types.ts` (six empty interfaces), `ink/cursor.ts`, and
32
- `commands/plugin/unifiedTypes.ts`. Same defect as the MCP types in 1.68.14
33
- an empty interface means "has no members" to TypeScript, not "shape unknown",
34
- so every property access on one was an error and the consuming files carried
35
- `@ts-nocheck` as a result.
36
- - `KeybindingBlock.bindings` is keyed by chord string, not an array. A first
37
- attempt typed it `ParsedBinding[]`, which made every entry in the default
38
- binding table an error the declaration form (`'ctrl+d': 'app:exit'`) and the
39
- parsed form (chord resolved into keystrokes) are different shapes, and
40
- conflating them broke a file that had been fine.
41
- - `KeybindingAction` is a string rather than a union of known actions:
42
- `defaultBindings.ts` assembles entries conditionally from feature flags, so a
43
- value missing from a union would turn a working binding into an error.
44
- - Suppression list: 140 -> 132. Eight keybinding and ink files came off.
45
- - Totals for the sweep so far: 223 -> 132 files, 868 -> 563 errors, and almost
46
- none of it file-by-file. Four stub files accounted for 258 errors on their
47
- own.
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.
48
103
 
49
104
  ## 1.68.14
50
105
 
106
+
51
107
  - Gave the MCP settings types their real shapes. `components/mcp/types.ts`
52
108
  declared seven **empty** interfaces under a "Stub: not included in leaked
53
109
  source" comment. An empty interface does not mean "unknown shape" to
@@ -66,6 +122,7 @@
66
122
 
67
123
  ## 1.68.13
68
124
 
125
+
69
126
  - Eight more files came off `@ts-nocheck` (149 -> 141) from a single fix. The
70
127
  compiled signature of `useRegisterOverlay(id, t0)` declared two required
71
128
  parameters while its own first statement reads
@@ -79,6 +136,7 @@
79
136
 
80
137
  ## 1.68.12
81
138
 
139
+
82
140
  - The Ollama request path now reports where a request's bytes actually go —
83
141
  tool definitions, system prompt, conversation — once per session in the debug
84
142
  log. The fixed cost of tools plus system prompt is what decides whether a
@@ -93,6 +151,7 @@
93
151
 
94
152
  ## 1.68.11
95
153
 
154
+
96
155
  - Investigated turning the task-list gate advisory by default and did not do
97
156
  it. The friction it causes is real, but the gate is also the final
98
157
  revalidation before a tool executes, and defaulting it off removes two
@@ -113,6 +172,7 @@
113
172
 
114
173
  ## 1.68.10
115
174
 
175
+
116
176
  - `ToolSearchTool` no longer registers on runtimes where it cannot work. Its
117
177
  purpose is fetching schemas for tools whose definitions were deferred, and
118
178
  deferral needs the runtime to expand `tool_reference` blocks — an
@@ -130,6 +190,7 @@
130
190
 
131
191
  ## 1.68.9
132
192
 
193
+
133
194
  - Narrowed that allowlist entry from `ur.com` to `ur.com/docs`. Replacing a
134
195
  docs-only host with a bare domain widened what WebFetch retrieves without
135
196
  asking, on a list whose own header warns that broad entries are dangerous
@@ -140,6 +201,7 @@
140
201
 
141
202
  ## 1.68.8
142
203
 
204
+
143
205
  - The bundled `ur-guide` agent no longer answers UR questions out of another
144
206
  product's documentation. It instructed the model to fetch
145
207
  `https://docs.claude.com/llms.txt` and present it to users as "UR SDK docs"
@@ -163,6 +225,7 @@
163
225
 
164
226
  ## 1.68.7
165
227
 
228
+
166
229
  - Corrected the ur.ai -> ur.com replacement, which had rewritten identifiers as
167
230
  well as URLs. `'ur.ai'` served two roles in this codebase: a domain in links
168
231
  such as `https://ur.ai/settings/billing`, and a discriminant value in
@@ -176,6 +239,7 @@
176
239
 
177
240
  ## 1.68.6
178
241
 
242
+
179
243
  - An oversized Ollama request now recovers instead of only explaining itself.
180
244
  1.68.3 reported "this request was 19.6 MB" clearly and then left the user to
181
245
  run /compact by hand. UR already had both halves of the fix — `isMediaSizeError`
@@ -195,6 +259,7 @@
195
259
 
196
260
  ## 1.68.5
197
261
 
262
+
198
263
  - Replaced every `ur.ai` reference in `src/` with `ur.com` (202 sites, 0 left).
199
264
  Note what these are: most are upstream URL structures carried into the fork —
200
265
  `/settings/billing`, `/settings/connectors`, `/upgrade/max`, `/chrome`,
@@ -210,6 +275,7 @@
210
275
 
211
276
  ## 1.68.4
212
277
 
278
+
213
279
  - The status line now reports subagents running in the current turn:
214
280
  `agents: 2 running`, separate from the existing background `tasks:` count.
215
281
  `isBackgroundTask()` excludes foreground entries on purpose — it was narrowed
@@ -227,6 +293,7 @@
227
293
 
228
294
  ## 1.68.3
229
295
 
296
+
230
297
  - `Ollama request failed (400): http: request body too large` now explains
231
298
  itself. That string comes from Go's `net/http` MaxBytesReader rejecting the
232
299
  payload on **byte size**, which is a different limit from the model's context
@@ -244,6 +311,7 @@
244
311
 
245
312
  ## 1.68.2
246
313
 
314
+
247
315
  - **Security: explicit file deny rules were not enforced.** `matchingRuleForInput`
248
316
  resolved which permission rule matched a path by reading `igResult.rule.pattern`
249
317
  from `ignore().test()`. That property does not exist — `TestResult` is
@@ -268,6 +336,7 @@
268
336
 
269
337
  ## 1.68.1
270
338
 
339
+
271
340
  - A detected prompt-injection attempt is now reported to the user instead of
272
341
  being refused in silence. Consolidating the scattered prompt guidance into the
273
342
  execution contract was a genuine improvement, but one clause did not survive:
@@ -280,6 +349,7 @@
280
349
 
281
350
  ## 1.68.0
282
351
 
352
+
283
353
  - Removed `@ts-nocheck` from 73 files, putting 21,503 previously unchecked lines
284
354
  under `tsc`. Every one of those files produced **zero** errors once the
285
355
  suppression was lifted — they were not suppressed because they were broken,
@@ -344,6 +414,7 @@
344
414
 
345
415
  ## 1.66.2
346
416
 
417
+
347
418
  - A long session on Ollama now says when it has run out of context instead of
348
419
  quietly getting worse. Ollama truncates an oversized prompt from the front
349
420
  rather than returning an error, and the front of the prompt is the system
@@ -359,6 +430,7 @@
359
430
 
360
431
  ## 1.66.1
361
432
 
433
+
362
434
  - Corrected the warning-state result used by reactive compaction and context
363
435
  collapse when a custom proactive threshold is configured. Their
364
436
  effective-window override can no longer report that the separate proactive
@@ -366,6 +438,7 @@
366
438
 
367
439
  ## 1.66.0
368
440
 
441
+
369
442
  - Unified proactive compaction around one model-aware threshold and one live
370
443
  token estimator. Small context windows now retain positive warning, error,
371
444
  and trigger thresholds; configured 50–95% thresholds are honored; prompt
@@ -397,6 +470,7 @@
397
470
 
398
471
  ## 1.65.14
399
472
 
473
+
400
474
  - Restored the proactive task-first behavior that was present in v1.65.0 and
401
475
  removed a prompt/gate contradiction introduced later. For any non-trivial
402
476
  state change, including a feature-rich single-file build, the model is now
@@ -424,6 +498,7 @@
424
498
 
425
499
  ## 1.65.13
426
500
 
501
+
427
502
  - Recovered otherwise valid `AskUserQuestion` calls whose UI header exceeds
428
503
  the 12-character chip width. Native structured calls, bare/wrapped JSON, and
429
504
  explicit-choice recovery now compact only that bounded presentation field;
@@ -439,6 +514,7 @@
439
514
 
440
515
  ## 1.65.12
441
516
 
517
+
442
518
  - Forced explicit weak-model decision menus through the real
443
519
  `AskUserQuestion` UI. A provider-neutral end-turn guard accepts only one
444
520
  canonical Ask object from explicit reasoning or one complete rigid Markdown
@@ -460,6 +536,7 @@
460
536
 
461
537
  ## 1.65.11
462
538
 
539
+
463
540
  - Hardened `AskUserQuestion` for weaker models without inventing user intent.
464
541
  Its model schema now exposes only a strict 1–4-question request shape with
465
542
  2–8 nested choices, compact validation explains malformed flat arrays, and
@@ -487,6 +564,7 @@
487
564
 
488
565
  ## 1.65.10
489
566
 
567
+
490
568
  - Reworked approved-plan execution into a capability-aware task graph. Plans
491
569
  now split separately completable outcomes, keep genuinely atomic work whole,
492
570
  express review-to-fix and verification dependencies, and launch only ready,
@@ -508,6 +586,7 @@
508
586
 
509
587
  ## 1.65.9
510
588
 
589
+
511
590
  - Fixed the plan-file/task-list deadlock. While plan mode is active, the exact
512
591
  normalized session plan file can be written before actionable tasks exist;
513
592
  ordinary workspace mutations still require `TaskCreate`/`TodoWrite`, and
@@ -524,6 +603,7 @@
524
603
 
525
604
  ## 1.65.8
526
605
 
606
+
527
607
  - Fixed provider API-key entry in `/model`: the masked input now uses the
528
608
  available terminal width, explicit cursor/focus state, and a one-line secret
529
609
  viewport instead of rendering one masked character per row. Narrow and
@@ -531,6 +611,7 @@
531
611
 
532
612
  ## 1.65.7
533
613
 
614
+
534
615
  - Audited all 14 technical chapters against the shipped source and generated
535
616
  CLI. The manual now distinguishes public runtime behavior from compile-time
536
617
  flags, compatibility-only state, and source helpers; it is included in the
@@ -583,6 +664,7 @@
583
664
 
584
665
  ## 1.65.6
585
666
 
667
+
586
668
  - Remote sessions no longer reconnect forever when the server repeatedly
587
669
  accepts a WebSocket upgrade and then reports that the session is missing.
588
670
  Repeated `connect()` calls reuse the live client, malformed permission and
@@ -643,6 +725,7 @@
643
725
 
644
726
  ## 1.65.5
645
727
 
728
+
646
729
  - Syntax highlighting works again — in assistant messages, code previews and
647
730
  question dialogs. `cli-highlight` was imported by four rendering surfaces and
648
731
  declared in `package.json` by none of them, so the import threw on every run
@@ -669,6 +752,7 @@
669
752
  could leave a stale value on screen after a switch.
670
753
  ## 1.65.4
671
754
 
755
+
672
756
  - A tool call that keeps failing identically is now stopped. A 4B model refused
673
757
  once by the task-list gate answered by emitting `Write` with no arguments
674
758
  repeatedly, and nothing intervened — the trajectory grader names this pattern
@@ -684,6 +768,7 @@
684
768
 
685
769
  ## 1.65.3
686
770
 
771
+
687
772
  - Removed two tips for things that do not exist: `/mobile to use UR from the
688
773
  UR app on your phone` (no such command, no such app) and a pointer to
689
774
  `ur.ai/web` (no DNS record, same dead domain class as the `ur.com` links
@@ -701,6 +786,7 @@
701
786
 
702
787
  ## 1.65.2
703
788
 
789
+
704
790
  - Fixed `--discover-ollama` having no effect on model discovery or requests.
705
791
  `getOllamaBaseUrl` resolves the session host correctly, but three callers
706
792
  read a persisted `provider.baseUrl` *before* consulting it, so a value
@@ -739,6 +825,7 @@
739
825
 
740
826
  ## 1.65.1
741
827
 
828
+
742
829
  - Fixed `ur selftest run` reporting 0/5 anywhere but the UR repo. The drill
743
830
  runner spawned `./bin/ur.js`, a path relative to the current directory, so
744
831
  every drill failed instantly with an empty detail — which reads as five
@@ -752,6 +839,7 @@
752
839
 
753
840
  ## 1.65.0
754
841
 
842
+
755
843
  - The release gate now asks the registry whether the packed dependency ranges
756
844
  can actually be installed. This is the check that was missing when 1.61.2
757
845
  through 1.64.0 shipped uninstallable: the tarball built, the CLI started,
@@ -767,6 +855,7 @@
767
855
 
768
856
  ## 1.64.1
769
857
 
858
+
770
859
  - Fixed `npm install -g ur-agent` failing with
771
860
  `No matching version found for playwright-core@^1.64.0`. Releases 1.61.2,
772
861
  1.62.0, 1.63.0 and 1.64.0 were uninstallable: the version bump was a
@@ -784,6 +873,7 @@
784
873
 
785
874
  ## 1.64.0
786
875
 
876
+
787
877
  - Tool-result pruning now announces itself. It changed context silently, so
788
878
  there was no way to confirm it fired or to attribute a missing detail to it —
789
879
  the same defect memory suggestions had when they went to stderr. A prune now
@@ -808,6 +898,7 @@
808
898
 
809
899
  ## 1.63.0
810
900
 
901
+
811
902
  - Added size-triggered pruning of superseded tool results
812
903
  (`context.pruneToolResults`). UR already had the clearing machinery, but
813
904
  nothing external could reach it: cached microcompact is internal-only and
@@ -827,6 +918,7 @@
827
918
 
828
919
  ## 1.62.0
829
920
 
921
+
830
922
  - `ur agent-inspect --costs` now labels each row with what the agent was
831
923
  actually doing. A real 62-agent fan-out reported opaque hex ids, so you could
832
924
  see that one agent burned 810k input tokens — 14% of the session — without
@@ -838,6 +930,7 @@
838
930
 
839
931
  ## 1.61.2
840
932
 
933
+
841
934
  - Fixed `ur agent-inspect --costs` reporting nothing, always. It resolved the
842
935
  *live* session, but every `ur` invocation mints a new session id, so bare it
843
936
  pointed at a session created milliseconds earlier that had by definition
@@ -851,6 +944,7 @@
851
944
 
852
945
  ## 1.61.1
853
946
 
947
+
854
948
  - Fixed secondary model queries failing on any Ollama setup whose session model
855
949
  is not `qwen2.5-coder:7b`. `getSmallFastModel()` fell back to the compiled
856
950
  default when auto-routing was off or no model list had been discovered, so a
@@ -867,6 +961,7 @@
867
961
 
868
962
  ## 1.61.0
869
963
 
964
+
870
965
  - Added `ur selftest`, end-to-end drills for the gap that produced every
871
966
  serious defect in recent releases: a module that is correct while something
872
967
  between it and the user is not — a wire format, a CLI registration, an exit
@@ -886,6 +981,7 @@
886
981
 
887
982
  ## 1.60.1
888
983
 
984
+
889
985
  - `ur memory-integrity verify` no longer reports an empty or missing store as
890
986
  verified. It printed "verified — 0 file(s) match the recorded digests" for an
891
987
  empty directory, and that identical reassurance would have appeared for a
@@ -901,6 +997,7 @@
901
997
 
902
998
  ## 1.60.0
903
999
 
1000
+
904
1001
  - Added `ur memory-integrity`, tamper-evidence for the file-backed memory
905
1002
  stores. Project task memory was hash-chained and could prove tampering; the
906
1003
  auto-memory and team-memory directories had nothing, and their contents are
@@ -928,6 +1025,7 @@
928
1025
 
929
1026
  ## 1.59.0
930
1027
 
1028
+
931
1029
  - Added `ur sources`, a claim-to-source ledger. `wrapUntrusted` already stamped
932
1030
  every untrusted block with a nonce and a source label, but discarded both the
933
1031
  moment the block reached the model, so there was no way to audit what web or
@@ -954,6 +1052,7 @@
954
1052
 
955
1053
  ## 1.58.1
956
1054
 
1055
+
957
1056
  - Unified vision-capability detection behind
958
1057
  `src/utils/model/visionCapability.ts`. Three implementations disagreed: the
959
1058
  Ollama adapter's `modelCapabilityEnabled` returned `has(x) ?? true`, so a
@@ -976,6 +1075,7 @@
976
1075
 
977
1076
  ## 1.58.0
978
1077
 
1078
+
979
1079
  - Added per-agent cost and token attribution: `ur agent-inspect --costs`.
980
1080
  `stats.ts` already read every `{sessionId}/subagents/agent-{agentId}.jsonl`
981
1081
  transcript, but only to fold those tokens into a single total, so a fan-out
@@ -990,6 +1090,7 @@
990
1090
 
991
1091
  ## 1.57.5
992
1092
 
1093
+
993
1094
  - Fixed the release gate failing on `repoEditImports`. The gate runs
994
1095
  `bun test --timeout 120000`, but a per-test budget silently overrides that
995
1096
  global, and this test declared 15s while its body — which builds a
@@ -1001,6 +1102,7 @@
1001
1102
 
1002
1103
  ## 1.57.4
1003
1104
 
1105
+
1004
1106
  - Fixed slash command arguments being silently truncated. `parseArguments`
1005
1107
  kept only the string tokens shell-quote returned, but shell-quote classifies
1006
1108
  `left?` and `src/*.ts` as globs and `&`, `>`, `(` as operators — so
@@ -1024,6 +1126,7 @@
1024
1126
 
1025
1127
  ## 1.57.3
1026
1128
 
1129
+
1027
1130
  - Stopped a false diagnosis on failed tool calls. When a tool call failed
1028
1131
  schema validation, UR appended "this tool's schema was not sent to the API"
1029
1132
  and told the model to load it via `ToolSearch`. Both claims were wrong on
@@ -1040,6 +1143,7 @@
1040
1143
 
1041
1144
  ## 1.57.2
1042
1145
 
1146
+
1043
1147
  - Fixed the Ollama adapter discarding images returned by tools. A tool result
1044
1148
  containing an image was flattened with `contentBlockToText`, which renders an
1045
1149
  image block as the literal string `[Image output omitted]` — so a `Computer`
@@ -1054,6 +1158,7 @@
1054
1158
 
1055
1159
  ## 1.57.1
1056
1160
 
1161
+
1057
1162
  - Fixed the `Computer` tool returning a byte count instead of the screenshot.
1058
1163
  `mapToolResultToToolResultBlockParam` dropped the captured image, so the
1059
1164
  model saw only "Captured 5164460 bytes" and had to ask the user where to save
@@ -1065,6 +1170,7 @@
1065
1170
 
1066
1171
  ## 1.57.0
1067
1172
 
1173
+
1068
1174
  - Connected four features that were built, tested and then left unreachable.
1069
1175
  Each had passing unit tests while contributing nothing to a real session.
1070
1176
  - `wrapUntrusted()` now runs on WebFetch and WebSearch results, at the
@@ -1093,6 +1199,7 @@
1093
1199
 
1094
1200
  ## 1.56.1
1095
1201
 
1202
+
1096
1203
  - Documented the 1.52.0–1.56.0 features, which had reached `technical/03` as
1097
1204
  command rows but nowhere else. Doc 09 now covers the fan-out limits and how
1098
1205
  to run several workers at once; doc 12 covers the prompt-injection module and
@@ -1103,6 +1210,7 @@
1103
1210
 
1104
1211
  ## 1.56.0
1105
1212
 
1213
+
1106
1214
  - Added a subagent fan-out governor. Agents could spawn agents with no depth or
1107
1215
  concurrency bound, and `/crew`, `/arena`, `/bg fanout` and `/pattern` all
1108
1216
  spawn several at once, so a single prompt could expand into an unbounded tree
@@ -1131,6 +1239,7 @@
1131
1239
 
1132
1240
  ## 1.55.0
1133
1241
 
1242
+
1134
1243
  - Narrowed `APIProvider` to the two values `getAPIProvider()` can actually
1135
1244
  return, `'foundry' | 'ollama'`, and let the compiler find every dead branch.
1136
1245
  It surfaced 66 errors across 25 files; all are now resolved and the
@@ -1157,6 +1266,7 @@
1157
1266
 
1158
1267
  ## 1.54.1
1159
1268
 
1269
+
1160
1270
  - Fixed `/speak`, `/computer`, `/memory-suggest`, `/import-session` and
1161
1271
  `/permission-profile` being unreachable from the shell. They were registered
1162
1272
  as slash commands but never wired into the Commander tree in `main.tsx`, so
@@ -1172,6 +1282,7 @@
1172
1282
 
1173
1283
  ## 1.54.0
1174
1284
 
1285
+
1175
1286
  - Wired the 1.53.0 capability libraries into runnable commands. They were
1176
1287
  verified modules but nothing invoked them; these are the execution paths.
1177
1288
  - Added `/speak <text>` (alias `/say`), which drives the platform speech
@@ -1191,6 +1302,7 @@
1191
1302
 
1192
1303
  ## 1.53.0
1193
1304
 
1305
+
1194
1306
  - Added automatic memory extraction (`src/memdir/extractFacts.ts`). Durable
1195
1307
  preferences and project conventions are proposed from user messages, deduped
1196
1308
  against stored memory by normalized key and containment, and ranked by
@@ -1221,6 +1333,7 @@
1221
1333
 
1222
1334
  ## 1.52.0
1223
1335
 
1336
+
1224
1337
  - Implemented Ollama Cloud authentication. The Ollama client sent no
1225
1338
  `Authorization` header at all, so the hosted API was unreachable: local
1226
1339
  sessions only worked because the signed-in daemon proxies `:cloud` models on
@@ -1241,6 +1354,7 @@
1241
1354
 
1242
1355
  ## 1.51.0
1243
1356
 
1357
+
1244
1358
  - Added named permission profiles. `settings.permissions.profiles` holds named
1245
1359
  rule sets (allow/deny/ask plus a description) and
1246
1360
  `settings.permissions.activeProfile` selects one; its rules are appended to
@@ -1259,6 +1373,7 @@
1259
1373
 
1260
1374
  ## 1.50.6
1261
1375
 
1376
+
1262
1377
  - Implemented `--effort` on Ollama. The support predicate compared
1263
1378
  `getAPIProvider()` against `'firstParty'` — a value it can never return — so
1264
1379
  the advertised flag was silently dropped everywhere. Effort is now advertised
@@ -1294,6 +1409,7 @@
1294
1409
 
1295
1410
  ## 1.50.5
1296
1411
 
1412
+
1297
1413
  - Added `.github/workflows/release.yml`. The repository had only a test
1298
1414
  workflow, so tags never became production releases: 18 tags existed with no
1299
1415
  GitHub Release and no automated publish. Pushing a `v*` tag now runs the full
@@ -1308,6 +1424,7 @@
1308
1424
 
1309
1425
  ## 1.50.4
1310
1426
 
1427
+
1311
1428
  - Removed the `/install-github-app` command and its GitHub App setup flow,
1312
1429
  along with the startup tip suggesting `@ur` be tagged from issues and pull
1313
1430
  requests. The composite action at the repository root is removed with it.
@@ -1318,6 +1435,7 @@
1318
1435
 
1319
1436
  ## 1.50.3
1320
1437
 
1438
+
1321
1439
  - Removed the GitHub App installation step from `/install-github-app`. UR
1322
1440
  authenticates in CI with the workflow's built-in `GITHUB_TOKEN` and a
1323
1441
  repository secret, so there is no app to install and no bot identity to
@@ -1333,6 +1451,7 @@
1333
1451
 
1334
1452
  ## 1.50.2
1335
1453
 
1454
+
1336
1455
  - Fixed local-provider sessions showing "Not logged in · Run /login" with no
1337
1456
  account to log in to, introduced in 1.50.1. Credential ownership and URHQ
1338
1457
  auth applicability are separate questions: an Ollama session uses the user's
@@ -1347,6 +1466,7 @@
1347
1466
 
1348
1467
  ## 1.50.1
1349
1468
 
1469
+
1350
1470
  - Fixed an always-true provider test that silently disabled a large part of the
1351
1471
  command surface. `isUsing3PServices()` was derived from `getAPIProvider()`,
1352
1472
  a request-shaping enum that never returns `'firstParty'`, so the comparison
@@ -1365,6 +1485,7 @@
1365
1485
 
1366
1486
  ## 1.50.0
1367
1487
 
1488
+
1368
1489
  - Completed `/install-github-app` so `@ur <task>` works from GitHub. The
1369
1490
  mention now triggers on issue comments, pull-request comments, inline review
1370
1491
  comments, submitted reviews, and new issues; `/ur` remains accepted. Matching
@@ -1397,6 +1518,7 @@
1397
1518
 
1398
1519
  ## 1.49.0
1399
1520
 
1521
+
1400
1522
  - Added cryptographically signed A2A Agent Cards: RFC 7515 detached JWS over
1401
1523
  the RFC 8785 canonical form of the card, using Ed25519 (`alg: "EdDSA"`).
1402
1524
  Verification recomputes the payload with `signatures` excluded, so a card can
@@ -1413,6 +1535,7 @@
1413
1535
 
1414
1536
  ## 1.48.0
1415
1537
 
1538
+
1416
1539
  - Added managed cloud fan-out with durable, idempotent steering, owner-scoped
1417
1540
  mobile/A2A control, explicit PASS plus safe-branch selection, and
1418
1541
  cancellation-safe task transitions.
@@ -1431,6 +1554,7 @@
1431
1554
 
1432
1555
  ## 1.47.1
1433
1556
 
1557
+
1434
1558
  - Hardened file downloads, filesystem permission checks, and signed skill
1435
1559
  trees against traversal and chained-symlink escapes.
1436
1560
  - Fixed task-memory integrity validation, prompt-plan file locking and change
@@ -1444,6 +1568,7 @@
1444
1568
 
1445
1569
  ## 1.47.0
1446
1570
 
1571
+
1447
1572
  - Added a secure, opt-in AG-UI HTTP/SSE adapter with official schema/encoder
1448
1573
  integration, truthful capability discovery, ordered text/tool/state events,
1449
1574
  cancellation, exact CORS, bearer protection for network exposure, resource
@@ -1482,6 +1607,7 @@
1482
1607
 
1483
1608
  ## 1.46.0
1484
1609
 
1610
+
1485
1611
  - Added a stable, official-SDK ACP v1 stdio agent with resumable sessions,
1486
1612
  client MCP transports and additional roots, streamed updates, native
1487
1613
  permission requests, cancellation, and private persisted session identity.
@@ -1513,6 +1639,7 @@
1513
1639
 
1514
1640
  ## 1.45.6
1515
1641
 
1642
+
1516
1643
  - Deduplicated project verification approval so compile/test/lint commands are
1517
1644
  offered at most once per user turn. The approval marker is cleared for the
1518
1645
  next user task, preserving one explicit decision per task.
@@ -1522,6 +1649,7 @@
1522
1649
 
1523
1650
  ## 1.45.5
1524
1651
 
1652
+
1525
1653
  - Bounded Ollama Cloud response-header and streaming phases to 120 seconds by
1526
1654
  default while preserving the five-minute allowance for local Ollama models.
1527
1655
  `API_TIMEOUT_MS` and per-request timeouts still take precedence.
@@ -1537,6 +1665,7 @@
1537
1665
 
1538
1666
  ## 1.45.4
1539
1667
 
1668
+
1540
1669
  - Added mandatory provider-first model selection for the first interactive run
1541
1670
  in every workspace that has no project-local model. The validated provider
1542
1671
  and model pair is saved to `.ur/settings.local.json` before the REPL starts.
@@ -1549,6 +1678,7 @@
1549
1678
 
1550
1679
  ## 1.45.3
1551
1680
 
1681
+
1552
1682
  - Made slash-command resolution deterministic across bundled skills, plugins,
1553
1683
  project skills, workflows, and built-ins. Duplicate canonical tokens are
1554
1684
  rejected by source priority and conflicting aliases are removed; registry
@@ -1569,6 +1699,7 @@
1569
1699
 
1570
1700
  ## 1.45.2
1571
1701
 
1702
+
1572
1703
  Correctness and containment release completing the runtime audit.
1573
1704
 
1574
1705
  - Made sandbox, security-scope, WebFetch, API, browser, database, test-runner,
@@ -1601,6 +1732,7 @@ Correctness and containment release completing the runtime audit.
1601
1732
 
1602
1733
  ## 1.45.1
1603
1734
 
1735
+
1604
1736
  Completes the three partially-delivered 1.45.0 items to 100%.
1605
1737
 
1606
1738
  - Semantic code search is now zero-config: the CodeSearch tool auto-enables
@@ -1617,6 +1749,7 @@ Completes the three partially-delivered 1.45.0 items to 100%.
1617
1749
 
1618
1750
  ## 1.45.0
1619
1751
 
1752
+
1620
1753
  Top-tier feature release — closes the gaps against 2026's leading agents.
1621
1754
 
1622
1755
  - `ur cloud` — detached best-of-N tasks (the local-first codex-cloud
@@ -1661,6 +1794,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1661
1794
 
1662
1795
  ## 1.44.10
1663
1796
 
1797
+
1664
1798
  - Render `AskUserQuestion` permission requests inside a `PermissionDialog` so
1665
1799
  multiple-choice options appear as a bordered dialog box rather than a plain
1666
1800
  list.
@@ -1673,6 +1807,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1673
1807
 
1674
1808
  ## 1.44.9
1675
1809
 
1810
+
1676
1811
  - Fix recurring "String to replace not found in file" Edit errors by adding
1677
1812
  whitespace-tolerant matching (trailing whitespace, tab/space indentation).
1678
1813
  - Fix AskUserQuestion "questions type expected as array" validation errors by
@@ -1680,6 +1815,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1680
1815
 
1681
1816
  ## 1.44.8
1682
1817
 
1818
+
1683
1819
  - Keep auto-memory and automatic learning on by default with explicit opt-outs.
1684
1820
  Automatic learning can now be disabled with `automaticLearningEnabled: false`
1685
1821
  or `UR_CODE_DISABLE_AUTO_LEARNING=1`.
@@ -1690,6 +1826,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1690
1826
 
1691
1827
  ## 1.44.7
1692
1828
 
1829
+
1693
1830
  - Add `autoApprove` permission mode for command/tool approval prompts. It
1694
1831
  auto-approves operations that would otherwise require permission approval,
1695
1832
  while preserving user-input dialogs and explicit denials.
@@ -1697,14 +1834,17 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1697
1834
 
1698
1835
  ## 1.44.6
1699
1836
 
1837
+
1700
1838
  - Internal permission-mode iteration superseded by `1.44.7`.
1701
1839
 
1702
1840
  ## 1.44.5
1703
1841
 
1842
+
1704
1843
  - Internal permission-mode iteration superseded by `1.44.6`.
1705
1844
 
1706
1845
  ## 1.44.4
1707
1846
 
1847
+
1708
1848
  - The agent now learns from every run automatically — no `/learn run` needed.
1709
1849
  ci-loop, arena, escalation, and test-first completions fold their pass/fail
1710
1850
  outcome (per task category and model) into `.ur/learning/stats.json` as a
@@ -1726,6 +1866,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1726
1866
 
1727
1867
  ## 1.44.3
1728
1868
 
1869
+
1729
1870
  - Make thinking visually distinct from answers: thinking blocks are labeled
1730
1871
  "model reasoning to itself — not the answer" (dim italic, left-bordered when
1731
1872
  expanded); answer text carries an accent-colored ⏺ marker.
@@ -1759,6 +1900,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1759
1900
 
1760
1901
  ## 1.44.2
1761
1902
 
1903
+
1762
1904
  - Fix Ollama streamed tool-call accumulation: Ollama streams each completed
1763
1905
  tool call in its own chunk, but the merge logic overwrote call N-1 with
1764
1906
  call N, collapsing multi-call turns (e.g. several `Write` calls scaffolding
@@ -1783,6 +1925,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1783
1925
 
1784
1926
  ## 1.44.1
1785
1927
 
1928
+
1786
1929
  - Fix task board rendering: finished, failed, and skipped tasks now render as
1787
1930
  checked instead of unchecked.
1788
1931
  - Deduplicate consecutive task board emissions and keep final boards clean
@@ -1790,6 +1933,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1790
1933
 
1791
1934
  ## 1.44.0
1792
1935
 
1936
+
1793
1937
  - Add `verifier.askBeforeGates` setting (default `false`). When enabled, UR asks
1794
1938
  via `AskUserQuestion` whether to run project verification commands after a
1795
1939
  task, instead of auto-running tests/typecheck/lint gates. Available in
@@ -1800,6 +1944,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1800
1944
 
1801
1945
  ## 1.43.6
1802
1946
 
1947
+
1803
1948
  - Render output from reasoning models on OpenAI-compatible providers (LM Studio,
1804
1949
  vLLM). The streaming and non-streaming parsers now read `reasoning_content`
1805
1950
  (and `reasoning`) deltas and surface them as thinking blocks. Models that emit
@@ -1808,6 +1953,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1808
1953
 
1809
1954
  ## 1.43.5
1810
1955
 
1956
+
1811
1957
  - Fix model discovery for OpenAI-compatible providers (LM Studio, llama.cpp,
1812
1958
  vLLM) when base_url omits the API version segment. Discovery and `ur provider
1813
1959
  doctor` now also try `/v1/models` when base_url is just `host:port`, so
@@ -1817,6 +1963,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1817
1963
 
1818
1964
  ## 1.43.4
1819
1965
 
1966
+
1820
1967
  - Tolerate hallucinated extra parameters on tool calls: when input validation
1821
1968
  fails only because of unrecognized keys (e.g. `title`/`description` on a
1822
1969
  `Write` call), those keys are stripped and the call is re-validated instead
@@ -1825,6 +1972,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1825
1972
 
1826
1973
  ## 1.43.3
1827
1974
 
1975
+
1828
1976
  - Bias the assistant toward the interactive arrow-key select menu: the
1829
1977
  AskUserQuestion tool guidance now instructs the model to use the selectable
1830
1978
  menu whenever it offers the user a choice, instead of asking a free-form
@@ -1832,6 +1980,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1832
1980
 
1833
1981
  ## 1.43.2
1834
1982
 
1983
+
1835
1984
  - Fix artifact pages hanging blank: diff viewer assets (diff2html,
1836
1985
  highlight.js theme) are now served locally from `/assets` via the new
1837
1986
  `diff2html` dependency instead of render-blocking CDN tags, and the viewer
@@ -1842,6 +1991,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1842
1991
 
1843
1992
  ## 1.43.1
1844
1993
 
1994
+
1845
1995
  - Artifacts page renders diffs VS Code-style: side-by-side/inline views with
1846
1996
  syntax highlighting via diff2html (plain-text fallback when offline). New
1847
1997
  live view `/diff` shows current working-tree changes without manual capture,
@@ -1853,6 +2003,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1853
2003
 
1854
2004
  ## 1.43.0
1855
2005
 
2006
+
1856
2007
  - Add `ur artifacts serve [--port 4180]`: a local web page for artifacts.
1857
2008
  `GET /artifacts/<id>` renders one artifact (status, summary, feedback,
1858
2009
  content), `/` lists all, with `/artifacts/<id>/raw` and `/api/artifacts[/<id>]`
@@ -1860,6 +2011,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1860
2011
 
1861
2012
  ## 1.42.0
1862
2013
 
2014
+
1863
2015
  - Project safety policy no longer hard-blocks commands. Risky or deny-matched
1864
2016
  commands (package installs, destructive git operations, secret access,
1865
2017
  sandbox-required commands when the sandbox is unavailable) now surface as
@@ -1868,6 +2020,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1868
2020
 
1869
2021
  ## 1.41.1
1870
2022
 
2023
+
1871
2024
  - Harden provider tests against stored API keys in the local secure storage.
1872
2025
  - Revert sandbox default to disabled; expose `sandbox.enabled`,
1873
2026
  `sandbox.failIfUnavailable`, and `sandbox.allowUnsandboxedCommands` through
@@ -1875,6 +2028,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1875
2028
 
1876
2029
  ## 1.41.0
1877
2030
 
2031
+
1878
2032
  - Persist the model chosen through the interactive `/model` picker to settings
1879
2033
  and clear saved model state when `/model default` is used.
1880
2034
  - Enable the sandbox by default when no explicit `sandbox.enabled` setting is
@@ -1882,6 +2036,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1882
2036
 
1883
2037
  ## 1.40.1
1884
2038
 
2039
+
1885
2040
  - Pin `diff` to ^7 and OpenTelemetry packages to 2.6.1/0.214.0 to match the
1886
2041
  source API, fixing type errors from accidental dependency bumps, and rebuild
1887
2042
  the shipped bundle against these versions.
@@ -1889,11 +2044,13 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1889
2044
 
1890
2045
  ## 1.40.0
1891
2046
 
2047
+
1892
2048
  - Version bump: align package, build macro, VS Code extension, docs eyebrow, and
1893
2049
  changelog for the 1.40.0 release.
1894
2050
 
1895
2051
  ## 1.37.5
1896
2052
 
2053
+
1897
2054
  - Version bump: align package, build macro, VS Code extension, docs eyebrow, and
1898
2055
  changelog for the 1.37.5 patch release.
1899
2056
  - Rename user-facing product/package branding to UR-Nexus while preserving the
@@ -1914,11 +2071,13 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1914
2071
 
1915
2072
  ## 1.37.3
1916
2073
 
2074
+
1917
2075
  - Version bump: align package, build macro, VS Code extension, docs eyebrow, and
1918
2076
  changelog for the 1.37.3 patch release.
1919
2077
 
1920
2078
  ## 1.37.2
1921
2079
 
2080
+
1922
2081
  - Tightened provider reliability: API-provider calls now use a finite default
1923
2082
  timeout, consistent retry handling for transient network/provider failures,
1924
2083
  and safer OpenAI-compatible base URL normalization without changing streaming,
@@ -1940,6 +2099,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1940
2099
 
1941
2100
  ## 1.35.1
1942
2101
 
2102
+
1943
2103
  - Polished the bundled VS Code inline-diffs view with native toolbar icons,
1944
2104
  useful empty-state rows, clearer diff labels, and a cleaner review webview.
1945
2105
  - Fixed `ur ide status` routing so the IDE extension status action reports
@@ -1949,6 +2109,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1949
2109
 
1950
2110
  ## 1.35.0
1951
2111
 
2112
+
1952
2113
  - New `ur connect` CLI command (same implementation as the `/connect` slash
1953
2114
  command): `ur connect status`, `ur connect <provider>`,
1954
2115
  `ur connect <provider> --key <KEY>`, and `ur connect logout <provider>`.
@@ -1973,6 +2134,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1973
2134
 
1974
2135
  ## 1.34.0
1975
2136
 
2137
+
1976
2138
  - Restore the 1.30.3 subscription approach: Codex CLI, Claude Code, Gemini CLI
1977
2139
  and Antigravity are first-class in `/model` again — shown by default and
1978
2140
  usable directly (no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` opt-in and no runtime
@@ -1984,6 +2146,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1984
2146
 
1985
2147
  ## 1.33.0
1986
2148
 
2149
+
1987
2150
  - Add API keys from inside UR while it is running: in `/model`, selecting an
1988
2151
  API provider (OpenAI, Anthropic, Gemini, OpenRouter) that isn't connected now
1989
2152
  shows a masked key-entry step. The key is stored in the OS keychain, then the
@@ -1994,6 +2157,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
1994
2157
 
1995
2158
  ## 1.32.0
1996
2159
 
2160
+
1997
2161
  - `/model` now shows the subscription providers (Codex CLI, Claude Code, Gemini
1998
2162
  CLI, Antigravity) again. They are enabled the moment you `ur connect` them
1999
2163
  (persisted per-account opt-in) — no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` env var
@@ -2009,6 +2173,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2009
2173
 
2010
2174
  ## 1.31.0
2011
2175
 
2176
+
2012
2177
  - Add in-app provider connection: `ur connect` / `/connect` connects a provider
2013
2178
  once and persists it. Subscription providers (Codex, Claude Code, Gemini,
2014
2179
  Antigravity) launch their official CLI login using your own account; API
@@ -2025,6 +2190,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2025
2190
 
2026
2191
  ## 1.30.6
2027
2192
 
2193
+
2028
2194
  - Restore a visible `subscription` access entry in provider lists without
2029
2195
  exposing provider app bridges as normal runtimes.
2030
2196
  - Keep subscription selection honest: no fake UR model IDs are listed, and the
@@ -2033,6 +2199,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2033
2199
 
2034
2200
  ## 1.30.5
2035
2201
 
2202
+
2036
2203
  - Hide external app bridge providers from normal `/model`, `/provider`, and
2037
2204
  `ur provider list` output. The default provider UX now shows only UR-native
2038
2205
  API, local, and OpenAI-compatible server runtimes.
@@ -2042,6 +2209,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2042
2209
 
2043
2210
  ## 1.30.4
2044
2211
 
2212
+
2045
2213
  - Make the default provider runtime independent of provider apps. Codex CLI,
2046
2214
  Claude Code, Gemini CLI, and Antigravity are now treated as explicit external
2047
2215
  app bridges and are blocked from normal `/model`, config save, and runtime
@@ -2052,6 +2220,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2052
2220
 
2053
2221
  ## 1.30.3
2054
2222
 
2223
+
2055
2224
  - Fix Codex CLI dispatch for real interactive terminals by inheriting terminal
2056
2225
  stdin for `codex exec`. Codex treats both `/dev/null` and closed pipes as
2057
2226
  piped stdin, so the previous `1.30.2` EOF approach still triggered
@@ -2059,6 +2228,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2059
2228
 
2060
2229
  ## 1.30.2
2061
2230
 
2231
+
2062
2232
  - Fix Codex subscription dispatch failing with `exited 1 ... Reading additional
2063
2233
  input from stdin`. `codex exec` reads stdin even when the prompt is an
2064
2234
  argument; UR now gives it a closed, empty stdin pipe (EOF) instead of
@@ -2067,6 +2237,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2067
2237
 
2068
2238
  ## 1.30.1
2069
2239
 
2240
+
2070
2241
  - Fix Codex CLI runtime dispatch by ignoring stdin when UR already passes the
2071
2242
  prompt as a command argument. This prevents `codex exec` from treating UR's
2072
2243
  closed pipe as extra stdin and exiting after `Reading additional input from
@@ -2074,6 +2245,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2074
2245
 
2075
2246
  ## 1.30.0
2076
2247
 
2248
+
2077
2249
  - IDE integration commands: `ur ide status`, `ur ide doctor`, and `ur ide config
2078
2250
  <editor>` for VS Code, Cursor, Windsurf, Zed, JetBrains, Neovim, and generic
2079
2251
  ACP clients. Status shows workspace, ACP server, provider/model, plugin count,
@@ -2094,6 +2266,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2094
2266
 
2095
2267
  ## 1.29.1
2096
2268
 
2269
+
2097
2270
  - Replace fabricated Claude Code and Gemini CLI static model names with
2098
2271
  provider-scoped CLI model aliases/names that the official CLIs can receive.
2099
2272
  - Reject stale subscription CLI selections such as `claude-code/sonnet-5` before
@@ -2103,6 +2276,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2103
2276
 
2104
2277
  ## 1.29.0
2105
2278
 
2279
+
2106
2280
  - Customer release consolidating the multi-provider selection and runtime
2107
2281
  dispatch work (1.27.5–1.28.1) into a single production line.
2108
2282
  - System-prompt identity now reflects the selected provider and runtime backend
@@ -2114,6 +2288,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2114
2288
 
2115
2289
  ## 1.28.1
2116
2290
 
2291
+
2117
2292
  - Keep the status bar synchronized with in-session provider/model changes from
2118
2293
  `/model`, `/model <model>`, and `/provider`, instead of waiting for persisted
2119
2294
  settings to reload.
@@ -2122,6 +2297,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2122
2297
 
2123
2298
  ## 1.28.0
2124
2299
 
2300
+
2125
2301
  - Subscription CLI providers (Codex, Claude Code, Gemini, Antigravity) now
2126
2302
  perform real dispatch: the official CLI is spawned in non-interactive mode with
2127
2303
  the scoped model and prompt, and its stdout becomes the response. Non-zero exit
@@ -2143,6 +2319,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2143
2319
 
2144
2320
  ## 1.27.6
2145
2321
 
2322
+
2146
2323
  - Route runtime requests through the selected provider/model pair instead of
2147
2324
  allowing stale Ollama/default-provider paths to handle non-Ollama requests.
2148
2325
  - Add runtime dispatch validation, backend labels, and focused mocked dispatch
@@ -2152,6 +2329,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2152
2329
 
2153
2330
  ## 1.27.5
2154
2331
 
2332
+
2155
2333
  - Make `/model` provider-first and provider-scoped, with clear subscription,
2156
2334
  API-key, local runtime, and OpenAI-compatible server labels.
2157
2335
  - Keep model discovery, validation, fallback, and saved config scoped to the
@@ -2162,6 +2340,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2162
2340
 
2163
2341
  ## 1.25.3
2164
2342
 
2343
+
2165
2344
  - Add provider alias resolution so `ur config set provider claude`,
2166
2345
  `ur config set provider "Claude Code"`, and `ur provider doctor agy`
2167
2346
  resolve to canonical provider IDs.
@@ -2170,6 +2349,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2170
2349
 
2171
2350
  ## 1.25.2
2172
2351
 
2352
+
2173
2353
  - Refresh public documentation so README, docs, static site, validation runbook,
2174
2354
  and code inventory all describe the current UR-Nexus feature set.
2175
2355
  - Document the recent provider auth, status bar, bundled VS Code extension,
@@ -2180,17 +2360,20 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2180
2360
 
2181
2361
  ## 1.25.1
2182
2362
 
2363
+
2183
2364
  - Fix VS Code extension installation to use the bundled UR-Nexus inline-diffs extension instead of the stale unpublished `urhq.ur` marketplace ID.
2184
2365
  - Harden AskUserQuestion normalization for description-only option objects and keep the eight-option schema in the production bundle.
2185
2366
 
2186
2367
  ## 1.25.0
2187
2368
 
2369
+
2188
2370
  - Add legal multi-provider auth/provider management for subscription CLI, API-key, and local runtime access paths.
2189
2371
  - Add provider doctor/status/config commands, provider-aware status bar display, and explicit no-token-scraping safety policy.
2190
2372
  - Relax plan-mode clarification choices so professional redesign prompts do not fail when more than four options are supplied.
2191
2373
 
2192
2374
  ## 1.24.0
2193
2375
 
2376
+
2194
2377
  ### Added
2195
2378
  - Plugin marketplace capability metadata for MCP tools, executable skills,
2196
2379
  templates, validators, language adapters, LSP servers, hooks, agents, and
@@ -2209,11 +2392,13 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2209
2392
 
2210
2393
  ## 1.23.3
2211
2394
 
2395
+
2212
2396
  ### Fixed
2213
2397
  - `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.
2214
2398
 
2215
2399
  ## 1.23.2
2216
2400
 
2401
+
2217
2402
  ### Added
2218
2403
  - **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.
2219
2404
 
@@ -2222,6 +2407,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2222
2407
 
2223
2408
  ## 1.23.1
2224
2409
 
2410
+
2225
2411
  ### Added
2226
2412
  - **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.
2227
2413
  - **Plugin marketplace extensibility** for `templates`, `validators`, and `languageAdapters` alongside existing MCP tools and skills.
@@ -2231,6 +2417,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2231
2417
 
2232
2418
  ## 1.22.8
2233
2419
 
2420
+
2234
2421
  ### Added
2235
2422
  -
2236
2423
 
@@ -2242,6 +2429,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2242
2429
 
2243
2430
  ## 1.22.7
2244
2431
 
2432
+
2245
2433
  ### Added
2246
2434
  - **Benchmark mode (`ur eval`).**
2247
2435
  - `ur eval run <suite> [--model <m>] [--metrics]` runs eval suites with explicit model overrides and per-case metrics files.
@@ -2286,6 +2474,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2286
2474
 
2287
2475
  ## 1.22.6
2288
2476
 
2477
+
2289
2478
  ### Fixed
2290
2479
  - Fixed Bash tool runtime execution failing every command with
2291
2480
  `timeoutMs is not defined` by keeping the command hook timeout value in scope
@@ -2301,6 +2490,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2301
2490
 
2302
2491
  ## 1.22.5
2303
2492
 
2493
+
2304
2494
  ### Added
2305
2495
  - **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.
2306
2496
  - **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>`.
@@ -2316,6 +2506,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2316
2506
 
2317
2507
  ## 1.22.4
2318
2508
 
2509
+
2319
2510
  ### Added
2320
2511
  - **AST-aware `ur repo-edit` (P7).** Added
2321
2512
  `src/services/repoEditing/ast/types.ts`,
@@ -2355,6 +2546,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2355
2546
 
2356
2547
  ## 1.22.3
2357
2548
 
2549
+
2358
2550
  ### Added
2359
2551
  - **Executable skill directories.** A `.ur/skills/<name>/` directory containing
2360
2552
  `skill.yaml` is now an executable skill that compiles into a `WorkflowSpec`.
@@ -2385,6 +2577,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2385
2577
 
2386
2578
  ## 1.22.2
2387
2579
 
2580
+
2388
2581
  ### Added
2389
2582
  - **Lifecycle hooks.** Added six new hook events in `src/entrypoints/sdk/coreTypes.ts`
2390
2583
  and `src/entrypoints/sdk/coreSchemas.ts`: `BeforeEdit`, `AfterEdit`,
@@ -2411,6 +2604,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2411
2604
 
2412
2605
  ## 1.22.1
2413
2606
 
2607
+
2414
2608
  ### Added
2415
2609
  - **Rich task decomposition.** `src/services/agents/decomposer.ts` splits large
2416
2610
  goals into atomic subtasks with `goal`, `filesTouched`, `risk` (low/medium/high),
@@ -2443,6 +2637,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2443
2637
 
2444
2638
  ## 1.22.0
2445
2639
 
2640
+
2446
2641
  ### Added
2447
2642
  - **Agent execution metrics in `ur eval`.** `ur eval run` now captures
2448
2643
  cost, input/output tokens, model used, API duration, files changed,
@@ -2506,6 +2701,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2506
2701
 
2507
2702
  ## 1.21.0
2508
2703
 
2704
+
2509
2705
  ### Added
2510
2706
  - **Agent skill runner (`agentSkillRunner.ts`).** Reusable helper that wraps
2511
2707
  `startBackgroundTask({ worktree: true, pr: true })`, polls the background
@@ -2535,6 +2731,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2535
2731
 
2536
2732
  ## 1.20.0
2537
2733
 
2734
+
2538
2735
  ### Added
2539
2736
  - **ACP server (`ur acp`).** Added an HTTP+JSON-RPC Agent Communication
2540
2737
  Protocol server for IDE extensions. Supports `initialize`, `tools/list`,
@@ -2570,6 +2767,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2570
2767
 
2571
2768
  ## 1.19.0
2572
2769
 
2770
+
2573
2771
  ### Added
2574
2772
  - **Permission and safety policy (`ur safety`).** Added a project shell safety
2575
2773
  evaluator that separates read, write, execute, and network command classes;
@@ -2597,6 +2795,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2597
2795
 
2598
2796
  ## 1.18.0
2599
2797
 
2798
+
2600
2799
  ### Added
2601
2800
  - **Test-first execution loop (`ur test-first`).** Added a P0 quality loop that
2602
2801
  detects the project stack, orders compile/test/lint commands, runs them as
@@ -2621,6 +2820,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2621
2820
 
2622
2821
  ## 1.17.0
2623
2822
 
2823
+
2624
2824
  ### Added
2625
2825
  - **Reliable repo editing (`ur repo-edit`).** Added a P0 repo-editing workflow
2626
2826
  with dependency-free file/symbol indexing, indexed search, AST-aware
@@ -2637,6 +2837,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2637
2837
 
2638
2838
  ## 1.16.0
2639
2839
 
2840
+
2640
2841
  ### Added
2641
2842
  - **Network Ollama discovery.** `ur --discover-ollama` scans active local subnets
2642
2843
  for Ollama servers on port 11434, verifies each via `/api/tags`, and shows an
@@ -2659,6 +2860,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2659
2860
 
2660
2861
  ## 1.15.0
2661
2862
 
2863
+
2662
2864
  ### Changed
2663
2865
  - **Version bump.** Updated from 1.14.0 to 1.15.0 across `package.json`, `bunfig.toml`, and bundled CLI.
2664
2866
 
@@ -2667,6 +2869,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2667
2869
 
2668
2870
  ## 1.14.1
2669
2871
 
2872
+
2670
2873
  ### Changed
2671
2874
  - Removed the `desktop-app` startup tip pointing to the legacy desktop URL.
2672
2875
 
@@ -2675,6 +2878,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2675
2878
 
2676
2879
  ## 1.14.0
2677
2880
 
2881
+
2678
2882
  ### Changed
2679
2883
  - **Version bump.** Updated from 1.13.9 to 1.14.0 across `package.json`, `bunfig.toml`, and bundled CLI.
2680
2884
 
@@ -2683,6 +2887,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2683
2887
 
2684
2888
  ## 1.13.9
2685
2889
 
2890
+
2686
2891
  ### Added
2687
2892
  - **Spec-driven development (`ur spec`).** Scaffolds `requirements.md ->
2688
2893
  design.md -> tasks.md` plus a phase/approval `spec.json` under `.ur/specs/`,
@@ -2718,6 +2923,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2718
2923
 
2719
2924
  ## 1.13.8
2720
2925
 
2926
+
2721
2927
  ### Fixed
2722
2928
  - **Image paste resize fallback.** Clipboard image paste now falls back to
2723
2929
  macOS `sips` when the normal Sharp/native resize path cannot process an
@@ -2733,6 +2939,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2733
2939
 
2734
2940
  ## 1.13.7
2735
2941
 
2942
+
2736
2943
  ### Added
2737
2944
  - **Explicit update notice.** Interactive sessions now show
2738
2945
  `Update available: <current> -> <latest>` when a newer published package is
@@ -2749,6 +2956,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2749
2956
 
2750
2957
  ## 1.13.6
2751
2958
 
2959
+
2752
2960
  ### Added
2753
2961
  - **Professional static documentation site.** Added `documentation/` with a
2754
2962
  full HTML/CSS/JS documentation project covering installation, architecture,
@@ -2763,6 +2971,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2763
2971
 
2764
2972
  ## 1.13.5
2765
2973
 
2974
+
2766
2975
  ### Added
2767
2976
  - **Headless agent crews.** Added `ur crew` for lead/worker task boards that
2768
2977
  split a goal into subtasks, let worker subagents claim work, and support
@@ -2787,6 +2996,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2787
2996
 
2788
2997
  ## 1.13.4
2789
2998
 
2999
+
2790
3000
  ### Added
2791
3001
  - **Parallel workflow execution.** The declarative workflow executor now runs
2792
3002
  independent ready steps concurrently. `ur workflow run --concurrency <n>`
@@ -2819,6 +3029,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2819
3029
 
2820
3030
  ## 1.13.3
2821
3031
 
3032
+
2822
3033
  ### Added
2823
3034
  - **Checkpointed agent workflows.** Added `ur workflow` for declaring,
2824
3035
  validating, graphing, planning, resuming, and dry-running multi-step agent
@@ -2843,6 +3054,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2843
3054
 
2844
3055
  ## 1.13.2
2845
3056
 
3057
+
2846
3058
  ### Added
2847
3059
  - **Top-level code-index and role-mode commands.** `ur code-index` and
2848
3060
  `ur role-mode` are now registered in the main CLI, matching the shipped
@@ -2865,6 +3077,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2865
3077
 
2866
3078
  ## 1.13.1
2867
3079
 
3080
+
2868
3081
  ### Added
2869
3082
  - **AGENTS.md as runtime context.** UR now loads `AGENTS.md` (the cross-tool
2870
3083
  standard) from project roots at runtime, alongside `UR.md` and `.ur/rules/`.
@@ -2898,6 +3111,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2898
3111
 
2899
3112
  ## 1.12.3
2900
3113
 
3114
+
2901
3115
  ### Added
2902
3116
  - **Agent feature expansion commands.** Added `ur agent-features`,
2903
3117
  `ur agent-templates`, `ur automation`, `ur agent-task`, `ur model-doctor`,
@@ -2926,6 +3140,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2926
3140
 
2927
3141
  ## 1.12.2
2928
3142
 
3143
+
2929
3144
  ### Changed
2930
3145
  - **Ziggurat of Ur spinner.** Replaced the canoe spinner with the Ziggurat of
2931
3146
  Ur catching light: an up-pyramid whose lit face sweeps across (`△ ◭ ▲ ◮`)
@@ -2937,6 +3152,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2937
3152
 
2938
3153
  ## 1.12.1
2939
3154
 
3155
+
2940
3156
  ### Changed
2941
3157
  - **Mashoof spinner.** The activity spinner is now a Mashoof (مشحوف) — the
2942
3158
  marsh canoe — bobbing on the water. It cycles boat-hull arcs (`⌣ ⏝ ‿`) into
@@ -2945,6 +3161,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2945
3161
 
2946
3162
  ## 1.12.0
2947
3163
 
3164
+
2948
3165
  ### Added
2949
3166
  - **Agent trend coverage.** New `ur agent-trends` CLI command and
2950
3167
  `/agent-trends` slash command report how UR maps to current agent trends:
@@ -2964,6 +3181,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2964
3181
 
2965
3182
  ## 1.11.3
2966
3183
 
3184
+
2967
3185
  ### Changed
2968
3186
  - **Read-only web browsing.** `WebSearch` and `WebFetch` now run without
2969
3187
  prompting by default, while still respecting explicit deny or ask rules.
@@ -2972,6 +3190,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2972
3190
 
2973
3191
  ## 1.11.2
2974
3192
 
3193
+
2975
3194
  ### Fixed
2976
3195
  - **Clarification dialogs.** `AskUserQuestion` is now loaded without a
2977
3196
  `ToolSearch` round trip and accepts common question text aliases such as
@@ -2980,6 +3199,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2980
3199
 
2981
3200
  ## 1.11.1
2982
3201
 
3202
+
2983
3203
  ### Changed
2984
3204
  - **Npm publication docs.** README installation guidance now reflects that
2985
3205
  `ur-nexus` is published on npm, while keeping the GitHub install path for
@@ -2987,6 +3207,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
2987
3207
 
2988
3208
  ## 1.11.0
2989
3209
 
3210
+
2990
3211
  ### Changed
2991
3212
  - **Ollama model selection now lets routing work by default.** The launcher no
2992
3213
  longer forces `OLLAMA_MODEL` when neither `OLLAMA_MODEL` nor `UR_MODEL` is
@@ -3017,11 +3238,13 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3017
3238
 
3018
3239
  ## 1.10.2
3019
3240
 
3241
+
3020
3242
  ### Fixed
3021
3243
  - **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.
3022
3244
 
3023
3245
  ## 1.10.1
3024
3246
 
3247
+
3025
3248
  ### Fixed
3026
3249
  - **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.
3027
3250
  - **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.
@@ -3032,6 +3255,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3032
3255
 
3033
3256
  ## 1.10.0
3034
3257
 
3258
+
3035
3259
  ### Added
3036
3260
  - **`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.
3037
3261
 
@@ -3040,6 +3264,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3040
3264
 
3041
3265
  ## 1.9.0
3042
3266
 
3267
+
3043
3268
  ### Added
3044
3269
  - **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:
3045
3270
  - **`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.
@@ -3056,6 +3281,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3056
3281
 
3057
3282
  ## 1.8.0
3058
3283
 
3284
+
3059
3285
  ### Added
3060
3286
  - **`/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`).
3061
3287
  - **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.
@@ -3066,6 +3292,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3066
3292
 
3067
3293
  ## 1.7.0
3068
3294
 
3295
+
3069
3296
  ### Added
3070
3297
  - **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`.
3071
3298
  - **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`.
@@ -3077,6 +3304,7 @@ Top-tier feature release — closes the gaps against 2026's leading agents.
3077
3304
 
3078
3305
  ## 1.6.0
3079
3306
 
3307
+
3080
3308
  ### Added
3081
3309
  - **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.
3082
3310
  - **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.