ur-agent 1.65.9 → 1.65.10

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.
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.65.9 (UR-Nexus)"
22
+ # expected for this release: "1.65.10 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -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.65.9</p>
48
+ <p class="eyebrow">Version 1.65.10</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.65.9"
10
+ version = "1.65.10"
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.65.9",
5
+ "version": "1.65.10",
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.65.9",
3
+ "version": "1.65.10",
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",
@@ -62,6 +62,25 @@ only after `EnterPlanMode` (or `/plan`) has successfully made the active mode
62
62
  revalidated; the executor labels that second validation as post-permission so
63
63
  the already-validated exit can finish, while new out-of-mode calls still fail.
64
64
 
65
+ For non-trivial work, the task list uses one record per cohesive outcome with
66
+ an observable done check rather than one omnibus record. Genuine single-outcome
67
+ work remains one task; files, commands, and tiny mechanical steps are not
68
+ artificial task boundaries. Dependency edges represent only real ordering
69
+ constraints. Mutually independent tasks with no conflicting shared mutations
70
+ can be delegated together, while dependent or conflicting work stays
71
+ sequential.
72
+
73
+ Task IDs remain strings in storage and tool output. Model inputs for
74
+ `TaskCreate` dependencies and `TaskGet`/`TaskUpdate` identifiers may also use a
75
+ positive safe-integer JSON number; the tool boundary normalizes it to the
76
+ canonical decimal string. Zero, negative, fractional, non-finite, Boolean, and
77
+ precision-losing numeric IDs are rejected.
78
+
79
+ Task-gate recovery names the tracking surface that is actually present:
80
+ interactive Task V2 sessions use `TaskCreate`, while default headless sessions
81
+ use `TodoWrite`. It never instructs a model to recover by calling a tool absent
82
+ from that runtime.
83
+
65
84
  ## Multi-agent tools
66
85
 
67
86
  The table below separates the ordinary Agent/Skill tools from coordination
@@ -124,3 +143,9 @@ File Edit/Write/NotebookEdit require the exact content snapshot the model read,
124
143
  not only a modification timestamp. Full and ranged reads are compared at the
125
144
  final write boundary, preventing same-timestamp external replacements from
126
145
  being overwritten.
146
+
147
+ `Edit` remains fail-closed rather than applying a fuzzy replacement to similar
148
+ code. When an exact contiguous `old_string` is absent, its bounded error points
149
+ to a verified matching line when one exists and tells the model to re-read that
150
+ region, use a smaller current 2–4-line anchor, split distant HTML/CSS/JavaScript
151
+ sections, and never retry the unchanged call.
@@ -15,7 +15,31 @@ The main agent can spawn subagents. Built-in agent types
15
15
  | `verification` | verifies a change actually works (used by `/verify`) |
16
16
  | `statusline-setup` | configures the status line |
17
17
  | `ur-code-guide` | answers UR/SDK/API questions |
18
- | `Explore`, `Plan` | read-only search and planning agents, available only in builds compiled with `BUILTIN_EXPLORE_PLAN_AGENTS` and when their runtime gate is enabled; the standard npm bundle does not compile that feature |
18
+ | `Explore`, `Plan` | built-in read-only search and planning agents; registered in the standard npm bundle so plan-mode instructions never advertise missing worker types |
19
+
20
+ Ordinary `Agent` subagents do not require experimental Teams/swarm mode.
21
+ Approved-plan handoff checks the actual tool pool, agent-type allowlist, live
22
+ `Agent(type)` deny rules, and active built-in definitions. It can fan out
23
+ independent ready tasks only when a selectable implementation worker remains.
24
+ The Teams gate applies only to named teammates, team files/mailboxes, and
25
+ `TeamCreate`/`TeamDelete`.
26
+
27
+ While the parent is in plan mode, only the exact active built-in `Explore` and
28
+ `Plan` definitions may pass the task-list gate as read-only delegations.
29
+ Plan prompts apply the same type allowlist and live deny rules as the eventual
30
+ `Agent` call, so they do not advertise a planning worker that policy will
31
+ reject.
32
+ Custom agents reusing those names, generic agents, teammates, background
33
+ launches, custom working directories, and worktree launches remain mutating and
34
+ task-gated. `TeamCreate` and `TeamDelete` also reject plan mode explicitly;
35
+ team lifecycle state starts only after the plan is approved.
36
+
37
+ In the standard bundle, `Explore` and `Plan` receive only `Glob`, `Grep`, and
38
+ `Read`, use `dontAsk` permission mode, and have a second runtime boundary that
39
+ rejects any operation classified as mutating even if an actionable task or
40
+ inherited allow rule exists. Ant-native embedded-search builds substitute
41
+ read-only Bash `find`/`grep` access for the dedicated search tools; the same
42
+ runtime mutation boundary remains in force.
19
43
 
20
44
  Custom agents:
21
45
  - `/agents` — interactive management UI.
@@ -30,7 +54,7 @@ Custom agents:
30
54
  `/role-mode install architect|code|debug|ask` installs the four classic role modes as
31
55
  scoped agents.
32
56
 
33
- When present, read-only `Explore`/`Plan` agents omit the UR.md hierarchy only
57
+ Read-only `Explore`/`Plan` agents omit the UR.md hierarchy only
34
58
  when the default-on `tengu_slim_subagent_agentmd` gate remains enabled and the
35
59
  caller did not explicitly provide user context (token saving; see
36
60
  `loadAgentsDir.ts`).
@@ -105,6 +129,21 @@ Interactive sessions use the canonical Task V2 tools. Print/headless sessions
105
129
  use legacy `TodoWrite` by default, or Task V2 when
106
130
  `UR_CODE_ENABLE_TASKS=1`. Both feed the same mutation gate:
107
131
 
132
+ - Approved non-trivial plans are translated into a complete task graph before
133
+ workspace changes: one task record per cohesive outcome with its own
134
+ observable completion check. Separate deliverables are not hidden in one
135
+ umbrella item, while files, tool calls, and tiny mechanical steps are not
136
+ artificial task boundaries.
137
+ - Independent Task V2 records are created together (up to the eight-call
138
+ prompt batch limit), then real dependency edges are added once task IDs are
139
+ known. Default headless sessions instead write the complete outcome list
140
+ through `TodoWrite`; approval handoff detects this capability rather than
141
+ naming unavailable Task V2 tools. When an actual built-in implementation
142
+ worker is active, ready tasks without conflicting shared mutations launch in
143
+ waves of up to eight with bounded scope, acceptance checks, and dependency
144
+ inputs. Dependent or conflicting writes stay sequential, and the lead
145
+ verifies worker evidence before completion. An exposed `Agent` tool with no
146
+ selectable implementation worker is not advertised as delegation support.
108
147
  - Task IDs are ordered numerically (`1, 2, 10`), with non-numeric external IDs
109
148
  sorted stably after numeric IDs.
110
149
  - Dependencies block transition or claim until prerequisites are complete.
@@ -113,6 +152,9 @@ use legacy `TodoWrite` by default, or Task V2 when
113
152
  - Reads remain unrestricted. Ordinary mutations have a default allowance of
114
153
  three preceding tool calls, counted by tool call rather than message.
115
154
  Delegation and child mutations always require an actionable parent task.
155
+ The sole delegation exception is a foreground built-in `Explore` or `Plan`
156
+ call during live plan mode; those agents omit workspace-editing and nested
157
+ delegation tools and remain subject to their child permission checks.
116
158
  - An unreadable task store fails closed. Task create/update/list/get tools stay
117
159
  exempt so the agent can repair the plan.
118
160
  - Creating or updating the exact current-session plan-mode Markdown file is
@@ -124,10 +166,12 @@ use legacy `TodoWrite` by default, or Task V2 when
124
166
  - Configure the behavior at
125
167
  `tasks.requireBeforeChanges.{enabled,freeReads}`.
126
168
 
127
- The prompt contract tells the model to update each task after observing its
128
- tool result. Runtime dependencies and mutation gating enforce ordering and
169
+ The prompt contract, plan-file structure, plan-agent output, approval handoff,
170
+ task-tool result, and gate recovery text all reinforce the same decomposition
171
+ and worker rules. Runtime dependencies and mutation gating enforce ordering and
129
172
  plan presence; they cannot prove that an arbitrary natural-language task is
130
- semantically complete. Workflows and crews add stricter verdict rules where a
173
+ semantically complete, so the gate deliberately does not require a fake
174
+ minimum task count. Workflows and crews add stricter verdict rules where a
131
175
  machine-checkable execution boundary exists.
132
176
 
133
177
  ## Task routing
@@ -222,6 +266,9 @@ to false.
222
266
  `TeamDelete`, `SendMessage`, `InProcessTeammateTask`, and the
223
267
  `TeammateIdle` hook. `--agent-teams` is registered only in ant builds, so it
224
268
  is not a supported external CLI flag.
269
+ - Team creation and deletion are unavailable while plan mode is active. Use the
270
+ standard read-only `Explore`/`Plan` subagents for parallel planning, then
271
+ create an implementation team after approval.
225
272
  - Coordinator mode (`UR_CODE_COORDINATOR_MODE=1`) is additionally behind the
226
273
  compile-time `COORDINATOR_MODE` feature. The standard npm bundle does not
227
274
  include it; setting the environment variable there has no effect.
@@ -1,6 +1,6 @@
1
1
  # UR-Nexus — Technical Specifications
2
2
 
3
- > Audited against the executable source and tests for `ur-agent` v1.65.9.
3
+ > Audited against the executable source and tests for `ur-agent` v1.65.10.
4
4
  > Command, tool, flag, provider, and setting claims are checked against the
5
5
  > implementation rather than copied from product prose. Release validation
6
6
  > keeps this version synchronized and packages the complete `technical/`