ur-agent 1.80.2 → 1.80.4

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/docs/A2A.md CHANGED
@@ -53,6 +53,14 @@ Inspect the live card:
53
53
  curl -s http://127.0.0.1:8765/.well-known/agent-card.json
54
54
  ```
55
55
 
56
+ Preview either card without starting the server:
57
+
58
+ ```sh
59
+ ur a2a card --v1 # current A2A 1.0 card
60
+ ur a2a card # legacy 0.3 compatibility card
61
+ ur a2a card --v1 --base-url https://agent.example.com
62
+ ```
63
+
56
64
  Without a version header, discovery returns the v1 ProtoJSON card with
57
65
  `supportedInterfaces` for JSON-RPC, HTTP+JSON, and the legacy v0.3 binding. Use
58
66
  `A2A-Version: 0.3` to retrieve the standalone v0.3 SDK card. Both cards report
@@ -9,6 +9,21 @@ reproducible autonomous software engineering agent: every substantial task can
9
9
  be driven as `spec -> plan -> patch -> test -> report -> rollback`, with the
10
10
  spec as the durable source of truth and command evidence as the success gate.
11
11
 
12
+ ## v1.80.4 Additions
13
+
14
+ | Addition | Surface | What it adds |
15
+ | --- | --- | --- |
16
+ | Permanent-link circuit breaker | `WebFetch` | Stops repeat and alternating loops over dead 4xx URLs without disabling legitimate retries for transient network or server failures. URL identities are prompt-independent, hashed, bounded, and query-scoped. |
17
+ | Plan/task recovery | `EnterPlanMode`, `TaskCreate` gate | Makes the distinction between an implementation plan and visible executable tasks explicit before workspace mutation. |
18
+ | Safe CLI parity | `ur config set|get|list`, `ur a2a card --v1`, `ur session status` | Makes accessibility/editor configuration, current Agent Card preview, and conversation inspection available to scripts without weakening compatibility defaults. |
19
+ | Complete command display hardening | Background shell details | Escapes deceptive control, invisible, and bidirectional characters before truncation. |
20
+
21
+ ## v1.80.3 Addition
22
+
23
+ | Addition | Surface | What it adds |
24
+ | --- | --- | --- |
25
+ | Strict-hybrid task planning | Interactive `TaskCreate` lifecycle, `tasks.requireBeforeChanges` | Keeps atomic low-risk work direct, but requires a visible actionable task before mutation for multi-outcome, sequenced, planned, delegated, project-sized, and high-risk lifecycle work. Reads stay open, custom profiles without `TaskCreate` cannot deadlock, and operators retain advisory and fully strict modes. |
26
+
12
27
  ## v1.80.0 Additions
13
28
 
14
29
  | Addition | Surface | What it adds |
@@ -12,6 +12,7 @@ linked primary sources before acting on prerelease standards.
12
12
  ur agent-trends
13
13
  ur agent-trends --json
14
14
  ur a2a card
15
+ ur a2a card --v1
15
16
  ur a2a card --base-url https://example.com
16
17
  ur ag-ui serve --help
17
18
  ur agent-features
@@ -17,6 +17,47 @@ Start UR with `--screen-reader`, set `UR_SCREEN_READER=1`, or use
17
17
  edits, and reduced animation. `vimEscape` accepts 2–8 printable non-whitespace
18
18
  characters or `off`.
19
19
 
20
+ The same settings are available without starting the interactive interface,
21
+ which is useful for CI setup and accessibility-first startup:
22
+
23
+ ```sh
24
+ ur config set screenReader true
25
+ ur config set reducedMotion true
26
+ ur config set editor vim
27
+ ur config set vimEscape jj
28
+ ur config get screenReader
29
+ ur config list --json
30
+ ```
31
+
32
+ `ur config get` and `list` expose only the validated, non-secret settings that
33
+ `ur config set` accepts. Screen-reader and reduced-motion values use the local
34
+ workspace settings source; editor and Vim escape preferences are global.
35
+
36
+ ## Interactive task planning
37
+
38
+ UR uses strict-hybrid task tracking by default: one atomic, low-risk outcome
39
+ can proceed directly, while multi-outcome, sequenced, planned, delegated,
40
+ project-sized, release, migration, security, sandbox, and production work must
41
+ create a visible task before the first mutation. Read-only investigation is
42
+ never blocked.
43
+
44
+ ```jsonc
45
+ {
46
+ "tasks": {
47
+ "requireBeforeChanges": {
48
+ "enabled": true,
49
+ "freeReads": 3
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ `freeReads` is a compatibility allowance for non-interactive integrations that
56
+ do not carry a classified user turn; it is not a limit on investigation. Set
57
+ it to `0` to require a task before every mutation. Set `enabled` to `false` to
58
+ return to advisory task tracking. Profiles that omit `TaskCreate` are not
59
+ gated, because they could not satisfy the requirement.
60
+
20
61
  ## Model Providers
21
62
 
22
63
  UR-Nexus supports official provider access paths only:
@@ -26,7 +26,7 @@ unchanged. UR does not add automated approval delegation.
26
26
  | Accessibility | Added `--screen-reader`, `screenReaderMode`, append-only plain-text rendering, edit announcements, and reduced animation. |
27
27
  | In-session configuration | Added `/config key=value`, including thinking, screen reader, reduced motion, verbose output, auto-compaction, editor mode, and Vim escape sequence. |
28
28
  | Directory automation | Added the `DirectoryAdded` hook and roots-change notification after `/add-dir`. |
29
- | Session lifecycle | Added `/session status|list|archive|unarchive` and `ur session list|archive|unarchive`. Archived sessions cannot appear in resume/fork discovery until restored. |
29
+ | Session lifecycle | Added `/session status|list|archive|unarchive` and `ur session status|list|archive|unarchive`. Archived sessions cannot appear in resume/fork discovery until restored. |
30
30
  | Vim input | Added `vimEscape=<sequence>`; for example, `/config editor=vim vimEscape=jj`. |
31
31
  | Telemetry | Added privacy-safe `assistant_response` events, message/request/tool correlation, and workflow name/run identifiers. |
32
32
  | Command quality | Removed the no-op `/output-style` command and dormant `/ultraplan` registration, renamed `/debug-v2` to `/fix-bug`, removed duplicate 3D aliases, expanded protocol names in help, and added registry checks against public version jargon. |
@@ -70,6 +70,27 @@ ur provider status
70
70
  Bash. A successful result confirms the harness; `/design3d doctor` alone
71
71
  validates the local slash command but does not exercise Bash execution.
72
72
 
73
+ ### Fetch repeatedly reports `404`
74
+
75
+ - Likely cause: the page moved or the model generated a stale URL. A successful
76
+ fetch from another page proves the network path is working; retrying the same
77
+ missing URL cannot change its HTTP status.
78
+ - Fix: upgrade to UR 1.80.4 or newer. WebFetch now records permanent 4xx
79
+ failures by normalized URL, independent of its hidden summarization prompt.
80
+ It refuses another network request for that URL and stops the turn if the
81
+ model keeps retrying. Alternating between two dead URLs is bounded as well.
82
+ - Recovery: use WebSearch, fetch the site’s parent/index page, or choose a
83
+ different source. Timeouts, `408`, `409`, `425`, `429`, and `5xx` responses
84
+ remain retryable because they may be transient.
85
+
86
+ ### Plan mode says `TaskListRequired`
87
+
88
+ - Likely cause: the agent entered or updated plan mode but did not create the
89
+ visible implementation tasks. A plan and a task list have separate roles.
90
+ - Fix: call `TaskCreate` for the concrete outcomes before the first workspace
91
+ mutation. Do not disable `tasks.requireBeforeChanges` merely to bypass this
92
+ recovery message; the gate is preventing untracked implementation.
93
+
73
94
  ## Providers and models
74
95
 
75
96
  ### Provider selected but the model is unavailable
package/docs/USAGE.md CHANGED
@@ -313,7 +313,8 @@ UR includes slash commands and CLI subcommands for common workflows:
313
313
  before installation.
314
314
  - `ur agents` to list configured agents
315
315
  - `ur agent-trends` to inspect coverage for current agent technology trends
316
- - `ur a2a card` to print UR's Agent Card metadata for A2A discovery
316
+ - `ur a2a card` to print legacy Agent Card metadata, or
317
+ `ur a2a card --v1` to preview the current A2A 1.0 card
317
318
  - `ur bg ...` to run and idempotently steer detached local background agents
318
319
  with optional worktrees and PRs
319
320
  - `ur cloud ...` to run, synchronize, steer, and cancel local or managed
@@ -428,6 +429,33 @@ in dependency order. `ur exec` materializes this graph deterministically; the
428
429
  interactive agent follows the same lifecycle and its task/agent tools enforce
429
430
  the concurrency boundary.
430
431
 
432
+ Interactive work uses a strict-hybrid task policy by default. One atomic,
433
+ low-risk outcome can be implemented directly. Before the first mutation, UR
434
+ requires a visible task for requests with two or more outcomes, enumerated or
435
+ sequenced work, plan mode, delegation, dependencies, project-sized work, and
436
+ release, publishing, deployment, migration, security, credential, permission,
437
+ sandbox, or production risk. Read-only inspection never needs a task, so the
438
+ agent can understand the repository before it creates the board. A custom tool
439
+ profile without `TaskCreate` remains usable and does not deadlock.
440
+
441
+ The default can be tuned in `.ur/settings.json` or user settings:
442
+
443
+ ```json
444
+ {
445
+ "tasks": {
446
+ "requireBeforeChanges": {
447
+ "enabled": true,
448
+ "freeReads": 3
449
+ }
450
+ }
451
+ }
452
+ ```
453
+
454
+ Set `enabled` to `false` for advisory task tracking. Set `freeReads` to `0` for
455
+ the fully strict policy that requires a task before every mutation, including
456
+ an atomic change. The positive atomic classification otherwise stays direct
457
+ regardless of how many read-only tools were needed.
458
+
431
459
  A user prompt does not create a placeholder task. The task panel stays quiet
432
460
  for informational conversation, direct one-step changes, acknowledgements, and
433
461
  small corrections. For genuinely multi-step work, multiple independently
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.80.2 (UR-Nexus)"
22
+ # expected for this release: "1.80.4 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -316,6 +316,15 @@ Expected: after the 3rd identical Bash call, the agent receives a "stop
316
316
  repeating the same call" reminder and switches strategy (or asks for
317
317
  clarification).
318
318
 
319
+ ### 3.1 Permanent WebFetch loop stops
320
+
321
+ Ask the agent to fetch one known-missing public URL repeatedly while changing
322
+ the WebFetch prompt. Expected: the first request reports the permanent HTTP
323
+ 4xx response, the next is refused without network I/O, and another unchanged
324
+ attempt stops the turn. Repeat with two missing URLs in alternating order; the
325
+ same bounded behavior applies independently to both. A `429` or `5xx` fixture
326
+ must remain retryable.
327
+
319
328
  ## 4. Project gate from `.ur/verify.json`
320
329
 
321
330
  Create one:
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.80.2</p>
48
+ <p class="eyebrow">Version 1.80.4</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.80.2"
10
+ version = "1.80.4"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.80.2",
5
+ "version": "1.80.4",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.80.2",
3
+ "version": "1.80.4",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",