ur-agent 1.74.0 → 1.76.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,70 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.76.0
4
+
5
+ - Provider catalogues now refresh from each provider's official models API on
6
+ selection, connection, reconnection, explicit refresh, and cold runtime use.
7
+ Endpoint-scoped TTL caches, guarded Anthropic/Gemini pagination, OpenRouter
8
+ pricing/capability metadata, unavailable-model rejection, cancellation-safe
9
+ request coalescing, and explicit loading/empty/error/retry states prevent a
10
+ stale or unrelated model list from being presented as current.
11
+ - Tool definitions are prepared and validated before every supported provider
12
+ request. Local references and definitions remain intact, Gemini receives its
13
+ current JSON Schema form, malformed roots/nesting/arrays/enums/references and
14
+ duplicate names fail before network retries, and swarm-only fields are
15
+ removed from both properties and required lists.
16
+ - Every accepted non-trivial prompt starts a fresh dependency-ordered task-list
17
+ generation unless the user explicitly asks to extend the active one.
18
+ Completed and stale generations are archived as history, concurrent task
19
+ creation is atomic, and pending/running/completed/failed/skipped plus derived
20
+ blocked states are shown without deleting finished work after five seconds.
21
+ - Queue reservations now have an owner token and observable completion. A
22
+ prompt is processed as its own turn, dispatch failures are reported, expired
23
+ reservations cannot start late, and the UI releases a prompt that never
24
+ reached model execution instead of remaining falsely on working.
25
+ - Bash execution preserves stdout and stderr separately together with the real
26
+ exit code, signal, duration, command, and working directory. Timeouts request
27
+ termination, escalate only when needed, wait for terminal process evidence,
28
+ and distinguish timeout/cancellation/output-limit failures without retrying
29
+ a command or treating spawn as completion.
30
+ - AskUserQuestion payloads are normalized and validated before rendering,
31
+ accept common provider aliases and up to eight choices, reject malformed
32
+ payloads once with field-specific diagnostics, and run serially so duplicate
33
+ questions cannot race. Existing adaptive continuous-list navigation remains
34
+ intact for long and narrow views.
35
+ - Token accounting now aggregates unique provider-reported responses across
36
+ sequential, split, parallel, nested, failed, and retried operations. Tool
37
+ counts remain separate; unavailable token values are omitted rather than
38
+ fabricated as zero, while cached, reasoning, and provider-total fields are
39
+ preserved when reported.
40
+ - The compact status bar is wired to live task, agent, tool, provider/model,
41
+ runtime, context, update, and attention state. Saved field visibility wins
42
+ over stale custom output, width handling is Unicode-safe, and rapid or narrow
43
+ updates drop low-priority duplicates without hiding critical errors.
44
+ - Subagent completion is honest under partial failure: synchronous partial
45
+ results are marked as errors, asynchronous post-processing failures are
46
+ attached as warnings after successful work, active names cannot be silently
47
+ overwritten, and terminal tasks cannot transition from completed to failed.
48
+
49
+ ## 1.75.0
50
+
51
+ - The UI can no longer stay on "working" for a prompt that is running nowhere.
52
+ `QueryGuard`'s `dispatching` state — the gap between `reserve()` and
53
+ `tryStart()` — has no owner: if that chain dies where handlePromptSubmit's
54
+ `finally` cannot observe it, nothing calls `cancelReservation()`, `isActive`
55
+ stays true forever, and the queue behind it never drains. The guard now
56
+ records when it entered a state, and an outstanding reservation older than
57
+ 120s is released and logged. `running` is deliberately excluded — a long
58
+ query is legitimate and is bounded by the request and stream-inactivity
59
+ timeouts instead.
60
+ - New work no longer lands in a finished task list. `useTasksV2` clears a fully
61
+ completed list on a 5s hide timer, so a `TaskCreate` inside that window
62
+ appended to it: the new list arrived pre-populated with ticked items and the
63
+ progress count was wrong from the first task. `TaskCreate` now retires a
64
+ fully completed list before adding, making the rule deterministic rather than
65
+ timing-dependent. A list with any pending, running, failed or blocked task is
66
+ left alone, so "add this to the current list" still works.
67
+
3
68
  ## 1.74.0
4
69
 
5
70
  - Provider API key entry no longer renders one character per line. The field in