ur-agent 1.70.0 → 1.73.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
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.73.0
|
|
4
|
+
|
|
5
|
+
- Provider API key entry no longer renders one character per line. The field in
|
|
6
|
+
the provider picker omitted `columns`, `cursorOffset` and
|
|
7
|
+
`onChangeCursorOffset`; the file carries `@ts-nocheck`, so the compiler could
|
|
8
|
+
not flag the missing required props. An absent width reached
|
|
9
|
+
`normalizeCursorColumns`, which floors a non-finite value at 2, leaving a
|
|
10
|
+
1-column `MeasuredText`. The same omission pinned the cursor at offset 0, so
|
|
11
|
+
every keystroke inserted at the head and the stored key came out reversed,
|
|
12
|
+
and the undefined setter threw on each accepted key. `TextInput` now resolves
|
|
13
|
+
a usable width from the live terminal size and keeps the offset internally
|
|
14
|
+
when a call site does not lift it, so no future call site can reproduce this.
|
|
15
|
+
- Pasted provider keys are normalised to a single line. A bracketed paste
|
|
16
|
+
carries the newline that terminated the copied line, which is not legal in an
|
|
17
|
+
HTTP header value and previously failed later requests with an opaque
|
|
18
|
+
transport error instead of a 401.
|
|
19
|
+
- The provider picker can now change or remove a stored API key. Selecting a
|
|
20
|
+
provider whose key UR stores offers "Continue to models", "Change API key"
|
|
21
|
+
and "Disconnect"; a key supplied through the environment is left alone. The
|
|
22
|
+
key-entry step's advertised Esc-to-go-back now actually works.
|
|
23
|
+
- Subagent completion summaries no longer print "0 tokens" beside a real tool
|
|
24
|
+
count. Tool calls and model tokens are separate quantities, and when a
|
|
25
|
+
provider reports no usage the token segment is omitted rather than rendered
|
|
26
|
+
as zero. Provider-reported input, output, cached and creation tokens are
|
|
27
|
+
unchanged.
|
|
28
|
+
- AskUserQuestion keeps every choice in one continuous list. The select
|
|
29
|
+
components default to a 5-item window, so a question with five or more
|
|
30
|
+
entries (four choices plus "Other") pushed the tail below the footer divider
|
|
31
|
+
and read as a detached second group. The list is now sized to the terminal
|
|
32
|
+
and only windows when the height genuinely cannot fit it.
|
|
33
|
+
|
|
34
|
+
## 1.72.0
|
|
35
|
+
|
|
36
|
+
- `AskUserQuestion` no longer rejects a well-formed question because the model
|
|
37
|
+
named the array something else. The question text accepted eight aliases
|
|
38
|
+
while the options array accepted exactly one key, and the options check ran
|
|
39
|
+
first — so a model that sent `choices` was told that *both* `question` and
|
|
40
|
+
`options` were missing, which is what the error reported. `choices`,
|
|
41
|
+
`values`, `items`, `alternatives`, `candidates` and `selections` are now
|
|
42
|
+
accepted, and per-question options that arrive as a JSON string are parsed,
|
|
43
|
+
which previously only happened for the single-question form.
|
|
44
|
+
- Exiting plan mode no longer prints an error every time it is approved. The
|
|
45
|
+
tool stays advertised regardless of mode, so once the user accepts, the model
|
|
46
|
+
routinely calls it a second time against a session that is already out of
|
|
47
|
+
plan mode — and that was answered with "You are not in plan mode". The echo
|
|
48
|
+
is now a no-op that tells the model to continue, does not re-prompt for
|
|
49
|
+
approval, and does not rewrite the plan file with a stale copy. A call with
|
|
50
|
+
no approved exit behind it still fails, since that one is a real mistake.
|
|
51
|
+
|
|
52
|
+
## 1.71.0
|
|
53
|
+
|
|
54
|
+
- Consolidated every UR-branded link onto `ur.com`. 259 references across 106
|
|
55
|
+
files moved off the retired `ur.ai` and `ur.dev` hostnames. Subdomains and
|
|
56
|
+
paths are preserved exactly, so `docs.ur.dev/docs/en/sandboxing` became
|
|
57
|
+
`docs.ur.com/docs/en/sandboxing` and `ur.ai/settings/billing` became
|
|
58
|
+
`ur.com/settings/billing`. Nothing was flattened to a landing page.
|
|
59
|
+
- Provider, registry and authentication endpoints are untouched, and the
|
|
60
|
+
rewrite asserts that rather than assuming it: `api.anthropic.com`,
|
|
61
|
+
`api.openai.com`, `platform.openai.com`, `developers.openai.com`,
|
|
62
|
+
`ollama.com`, `openrouter.ai`, `registry.npmjs.org`, `googleapis.com`,
|
|
63
|
+
`huggingface.co`, `modelcontextprotocol.io`, `json-schema.org` and
|
|
64
|
+
`github.com` all have identical occurrence counts before and after. Anyone
|
|
65
|
+
connecting to Claude, OpenAI, Ollama or any other provider reaches the same
|
|
66
|
+
host as before.
|
|
67
|
+
- The substitution is anchored so it cannot match more than it means: a
|
|
68
|
+
preceding letter, digit or hyphen blocks it, which is what keeps
|
|
69
|
+
`ur-ai.staging.ant.dev` and hostnames such as `go.dev` and `react.dev`
|
|
70
|
+
intact. A pattern that matched too broadly is what shipped 1.61.2 through
|
|
71
|
+
1.64.0 uninstallable.
|
|
72
|
+
- `tipsAreReal` now bans the retired hostnames instead of `ur.com`. It was
|
|
73
|
+
written when every UR domain was dead, so leaving it would have forbidden
|
|
74
|
+
links to the current site.
|
|
75
|
+
- The auth token source discriminant follows the domain, from `ur.ai` to
|
|
76
|
+
`ur.com`. It is computed per session and never persisted, so no stored
|
|
77
|
+
credential carries the old value.
|
|
78
|
+
|
|
3
79
|
## 1.70.0
|
|
4
80
|
|
|
5
81
|
- Rolled the codebase back to the state shipped as 1.65.6. Everything released
|