ur-agent 1.79.0 → 1.80.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 +50 -0
- package/README.md +6 -6
- package/dist/cli.js +157925 -129811
- package/docs/A2A.md +5 -4
- package/docs/AGENT_FEATURES.md +23 -5
- package/docs/AGENT_TRENDS.md +34 -28
- package/docs/CONFIGURATION.md +43 -2
- package/docs/GAP_ANALYSIS_2026-08-11.md +64 -0
- package/docs/TROUBLESHOOTING.md +14 -0
- package/docs/USAGE.md +32 -4
- package/docs/VALIDATION.md +1 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +2 -1
- package/plugins/bunBundleDev.ts +6 -5
package/docs/A2A.md
CHANGED
|
@@ -12,10 +12,11 @@ surfaces:
|
|
|
12
12
|
| UR compatibility API | `/a2a/tasks` and `/a2a/tasks/:id` | UR-specific REST-style background-task controls; not an A2A REST binding |
|
|
13
13
|
|
|
14
14
|
The two protocol versions deliberately use separate schemas and handlers. The
|
|
15
|
-
stable SDK remains pinned for
|
|
16
|
-
translates strict
|
|
17
|
-
engine. It is covered by UR tests and the
|
|
18
|
-
certification by the
|
|
15
|
+
stable SDK remains pinned for the older binding; UR's dependency-free final
|
|
16
|
+
protocol compatibility layer translates strict messages and tasks onto the
|
|
17
|
+
same bounded durable execution engine. It is covered by UR tests and the
|
|
18
|
+
official A2A TCK. UR does not claim a gRPC interface or certification by the
|
|
19
|
+
alpha JavaScript SDK binding.
|
|
19
20
|
|
|
20
21
|
## Start the server
|
|
21
22
|
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -9,6 +9,24 @@ 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.0 Additions
|
|
13
|
+
|
|
14
|
+
| Addition | Surface | What it adds |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| Credential-safe sandbox | `sandbox.credentials`, `sandbox.network.strictAllowlist`, `sandbox.network.tlsTerminate` | Masked file/environment credentials, JWT claims, AWS/SigV4 handling, strict unattended egress, trusted-source-only policy, and trailing-slash deny regression coverage. |
|
|
17
|
+
| Permission parser hardening | `Tool(parameter:value)`, Bash/PowerShell checks | Parameter-aware wildcard rules, zsh conditional command detection, visible hidden characters, and quoted PowerShell path validation. |
|
|
18
|
+
| Accessible terminal | `--screen-reader`, `/config screenReader=true` | Append-only plain output, edit announcements, and reduced animation. |
|
|
19
|
+
| Current agent protocols | `ur mcp serve-web`, roots notifications, `input_required` | Final tool-input continuation results, compatibility roots, added-directory notifications, Tasks, and Apps under one professionally named web surface. |
|
|
20
|
+
| Bounded observable delegation | `--forward-subagent-text`, session budgets, OpenTelemetry | Nested-agent text correlation, WebSearch session limits, advisory spawn warnings, assistant response events, and workflow/run correlation. |
|
|
21
|
+
| Session and input ergonomics | `/session`, `ur session`, `/config key=value`, `DirectoryAdded`, `vimEscape` | Explicit archive/restore, direct settings, directory automation, and Vim insert escape sequences. |
|
|
22
|
+
| Command cleanup | `/fix-bug`, command registry integrity | Replaces the versioned debug-skill name, removes no-op command registrations and duplicate 3D aliases, and rejects version jargon in public command descriptions. |
|
|
23
|
+
|
|
24
|
+
## v1.79.1 Addition
|
|
25
|
+
|
|
26
|
+
| Addition | Surface | What it adds |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| Self-healing Bash task output | `src/utils/Shell.ts`, `src/utils/permissions/filesystem.ts`, `test/shellExecutionIntegration.test.ts` | Uses the platform temp directory instead of assuming `/tmp`, aligns sandbox and permission roots, re-ensures temporary output storage for every launch, and atomically retries stdout/stderr creation after external directory cleanup so Bash recovers without restarting UR. |
|
|
29
|
+
|
|
12
30
|
## v1.79.0 Additions
|
|
13
31
|
|
|
14
32
|
| Addition | Surface | What it adds |
|
|
@@ -91,7 +109,7 @@ trust boundaries.
|
|
|
91
109
|
- ACP stdio now implements durable list/load/delete/resume/close, bounded exact
|
|
92
110
|
history replay, modes, configuration options, and available commands in
|
|
93
111
|
addition to streaming prompts, permission requests, MCP servers, and roots.
|
|
94
|
-
- `ur mcp serve-
|
|
112
|
+
- `ur mcp serve-web` exposes the opt-in stateless Model Context Protocol
|
|
95
113
|
surface with Tasks and a self-contained Apps resource. It is loopback-only
|
|
96
114
|
without authentication and enforces request metadata, capability negotiation,
|
|
97
115
|
owner isolation, limits, private persistence, and corrupt-state quarantine.
|
|
@@ -237,7 +255,7 @@ automatically changes the active provider.
|
|
|
237
255
|
| Deterministic slash registry | `src/commands.ts`, `test/commandRegistryIntegrity.test.ts` | Resolves bundled, plugin, project, workflow, and built-in commands by explicit source priority; rejects duplicate canonical tokens, removes only conflicting aliases, validates every lazy loader, and keeps the technical command catalog complete. |
|
|
238
256
|
| Unified sandbox command | `/sandbox [status\|check\|init\|eval\|exclude]` | One interactive slash command now owns both the settings UI and text subcommands; the shell-facing `ur sandbox` implementation is shared rather than separately registered. |
|
|
239
257
|
| Actionable CI cwd handling | `ur ci-loop --cwd <path>` | Reports the absolute execution directory, retains assertion and stack context, and stops "No tests found" after one attempt without wasting a fix-agent run. |
|
|
240
|
-
| Explicit worktree completion | `/
|
|
258
|
+
| Explicit worktree completion | `/fix-bug`, `/refactor`, `/paper-implementation`, `/benchmark`, `/security-review`, `/dockerize`, `/latex-paper`, `/batch` | Keeps changes local, asks before the final full suite, and never commits, pushes, or opens a PR unless separately requested. |
|
|
241
259
|
|
|
242
260
|
## v1.25.x Additions
|
|
243
261
|
|
|
@@ -299,8 +317,8 @@ components instead of one giant prompt.
|
|
|
299
317
|
| Addition | Surface | What it adds |
|
|
300
318
|
| --- | --- | --- |
|
|
301
319
|
| Agent skill runner | `src/services/agents/agentSkillRunner.ts` | Reusable isolated-worktree wrapper that polls to completion; PR creation is available only with explicit `createPr: true`. |
|
|
302
|
-
| Worktree slash skills | `/
|
|
303
|
-
| Agent templates | `ur agent-templates install` | Adds `
|
|
320
|
+
| Worktree slash skills | `/fix-bug`, `/refactor`, `/paper-implementation`, `/benchmark`, `/security-review`, `/dockerize`, `/latex-paper`, `/batch` | Bundled slash skills keep changes local, run focused checks, ask before the final full suite, and never publish automatically. |
|
|
321
|
+
| Agent templates | `ur agent-templates install` | Adds `bug-fixer`, `refactor`, `paper-implementation`, `benchmark`, `security-review`, `dockerize`, and `latex-paper` reusable agent templates under `.ur/agents/`. |
|
|
304
322
|
| Worktree command | `ur worktree list\|status\|clean` | Inspect and clean up UR agent worktrees created by `ur bg` or slash skills. |
|
|
305
323
|
|
|
306
324
|
## v1.20.0 Additions
|
|
@@ -325,7 +343,7 @@ while keeping them project-local and manifest-backed:
|
|
|
325
343
|
| --- | --- | --- |
|
|
326
344
|
| Agent | `ur`, `ur agents`, `ur crew`, `ur bg`, `ur agent-templates` | `.ur/agents/`, `AGENTS.md`, `UR.md` |
|
|
327
345
|
| Rules | `ur context-pack scan`, `ur safety`, `/guardrails`, `/hooks` | `AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, `.ur/safety-policy.json`, `.ur/guardrails.json`, `.ur/hooks.json` |
|
|
328
|
-
|
|
|
346
|
+
| Model Context Protocol | `ur mcp`, standard-input mode, opt-in web Tasks/Apps, tools/resources | `.mcp.json`, `.ur/mcp/`, plugin manifests |
|
|
329
347
|
| Skills | `/skills`, `/create-skill`, `ur skill verify\|sign\|keygen`, bundled/plugin skills | `.ur/skills/`, `.agents/skills/`, user skills, plugin skill folders, trusted key store |
|
|
330
348
|
| CLI | `ur --help`, `ur -p`, `ur exec`, `ur acp`, workflow subcommands | `package.json` scripts, `.ur/project-manifest.json`, `.ur/verify.json` |
|
|
331
349
|
| Models | `/model`, `ur model-doctor`, model router, Ollama discovery | Ollama endpoint, settings, `OLLAMA_MODEL`, model metadata cache |
|
package/docs/AGENT_TRENDS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
UR is a provider-flexible, local-first terminal coding agent. This page tracks
|
|
4
4
|
how UR maps to current agent-platform trends and where future work should go
|
|
5
|
-
next. The factual comparison below is a **2026-08-
|
|
5
|
+
next. The factual comparison below is a **2026-08-11 research snapshot**; run
|
|
6
6
|
`ur agent-trends` for the versioned machine-readable report and re-check the
|
|
7
7
|
linked primary sources before acting on prerelease standards.
|
|
8
8
|
|
|
@@ -80,8 +80,8 @@ Inside an interactive session:
|
|
|
80
80
|
| Trend | UR status | Current coverage | Professional next step |
|
|
81
81
|
| --- | --- | --- | --- |
|
|
82
82
|
| Provider-flexible, local-first runtime | Covered | Local Ollama; direct OpenAI, Anthropic, Gemini, OpenRouter, and OpenAI-compatible APIs; authenticated subscription-CLI adapters; explicit provider selection | Normalize capability discovery across providers and make automatic per-step routing opt-in |
|
|
83
|
-
|
|
|
84
|
-
|
|
|
83
|
+
| Model Context Protocol ecosystem | Covered | `ur mcp`, OAuth/XAA, fail-closed bounded tools, final `input_required` continuation, all workspace roots with change notifications, and the opt-in stateless web server | Broaden independent-client interoperability fixtures |
|
|
84
|
+
| Protocol Tasks and Apps | Covered | Negotiated Tasks lifecycle, owner-isolated durable state, and a self-contained Apps resource through `ur mcp serve-web` | Broaden independent-client interoperability fixtures |
|
|
85
85
|
| A2A / Agent Card interoperability | Covered | Stable-SDK v0.3 plus strict v1 ProtoJSON JSON-RPC/HTTP+JSON, negotiated cards, tenant isolation, durable artifacts, and TCK coverage | Adopt the stable v1 SDK when released; add signed-card verification and streaming only with truthful end-to-end tests |
|
|
86
86
|
| AG-UI agent-to-frontend interoperability | Covered | Official-schema HTTP/SSE adapter, truthful capabilities, ordered state/text/tool events, cancellation, exact CORS, bounded requests/output, and loopback-or-bearer security | Add independent frontend fixtures before advertising optional interrupts, binary/WebSocket transport, or client tools |
|
|
87
87
|
| Durable workflows and checkpoints | Covered | resume, rewind, steerable `ur bg`/managed-cloud runs, optional worktrees/PRs, cron/workflow internals, file restore, and resumable multi-repo DAG state | Add authenticated cross-machine checkpoint replication |
|
|
@@ -104,10 +104,10 @@ Inside an interactive session:
|
|
|
104
104
|
| AGENTS.md interoperability | Covered | `AGENTS.md` loaded as runtime project context (before `UR.md`), plus imported by the `/init` command | Keep aligned as the AGENTS.md spec evolves |
|
|
105
105
|
| Browser and computer-use workflows | Covered | `/browser`, `/chrome`, Playwright-aware tasks, plus bounded Electron desktop fixtures with assertions, teardown, masked screenshots, and optional raw video/trace only when selector redaction is disabled | Add OS-native non-Electron fixtures behind equally testable drivers |
|
|
106
106
|
| Provenance and citations | Partial | WebFetch source URLs, `/cite`, `/graph`, `/trace`, evidence ledgers, and task-memory citations with digest freshness | Add authenticated reopening for user citations and explicit network refresh for web/MCP citations |
|
|
107
|
-
| Evals and observability | Covered | isolated eval worktrees, redacted structured trajectories, policy/outcome/cost/duration CI gates,
|
|
108
|
-
| Standard GenAI telemetry | Covered | Explicit OTLP/console exporters;
|
|
107
|
+
| Evals and observability | Covered | isolated eval worktrees, redacted structured trajectories, policy/outcome/cost/duration CI gates, dashboards, nested-agent stream forwarding, and correlated OpenTelemetry assistant/workflow/tool events | Publish opt-in signed versioned pass-rate snapshots by category |
|
|
108
|
+
| Standard GenAI telemetry | Covered | Explicit OTLP/console exporters; privacy-safe assistant response, message/request/tool correlation, workflow run identity, inference, token, cache, response, latency, streaming, and error semantics; content off by default | Add trajectory policy graders and cross-provider dashboards without increasing content capture/cardinality |
|
|
109
109
|
| Test-first execution | Covered | `ur test-first` detects compile/test/lint commands, stores failure traces, retries through a fix agent, and installs detected commands into `.ur/verify.json` for edit-time gates | Add per-package command plans for large monorepos |
|
|
110
|
-
| Security and prompt-injection resistance | Covered | allow/ask/deny permissions,
|
|
110
|
+
| Security and prompt-injection resistance | Covered | parameter-aware allow/ask/deny permissions, hardened Bash/PowerShell approval parsing, credential masking, TLS proxying, strict egress, secret scan, untrusted-content framing, and OS sandboxing | Continuously test web/protocol/repository/skill/memory injection, confused-deputy, and tool-abuse cases |
|
|
111
111
|
| Agent identity and delegated authorization | Covered | MCP OAuth/XAA helpers, issuer-minted A2A bearer/delegation tokens, subject/audience/expiry/skill binding, local trust boundaries, permission rules | Keep delegated scopes narrow and auditable; HMAC child-token narrowing remains issuer-side |
|
|
112
112
|
| Multimodal workflows | Partial | `/image`, `/video`, `/youtube`, `/voice`, browser workflows | Add model-aware multimodal capability reporting for local Ollama setups |
|
|
113
113
|
| Spec-driven development | Covered | `ur spec` scaffolds requirements/design/tasks under `.ur/specs/`, tracks phase/approvals, and runs the Spec Kit / Kiro task list one task at a time | Add bidirectional sync with an external `specs/` directory |
|
|
@@ -157,10 +157,11 @@ The server refuses unauthenticated off-loopback binds and requires
|
|
|
157
157
|
`--public-base-url` for wildcard binds so discovery never advertises
|
|
158
158
|
`0.0.0.0`. Prefer `UR_A2A_TOKEN` and `UR_A2A_DELEGATION_SECRET` over argv
|
|
159
159
|
secrets. Request size, prompt size, output size, submission rate, concurrent
|
|
160
|
-
submissions, and active tasks are bounded by `UR_A2A_*` settings. UR's
|
|
161
|
-
compatibility layer is covered by the official TCK
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
submissions, and active tasks are bounded by `UR_A2A_*` settings. UR's
|
|
161
|
+
final-protocol compatibility layer is covered by the official TCK. The
|
|
162
|
+
official JavaScript SDK's matching binding remains alpha, so UR keeps the
|
|
163
|
+
stable older SDK binding as a separately negotiated compatibility path rather
|
|
164
|
+
than relabeling or silently translating it.
|
|
164
165
|
|
|
165
166
|
## Model Runtime Position
|
|
166
167
|
|
|
@@ -171,26 +172,31 @@ and model selection are explicit, credentials are resolved through the
|
|
|
171
172
|
credential layer, and the optional fallback setting is diagnostic advice rather
|
|
172
173
|
than an automatic provider switch.
|
|
173
174
|
|
|
174
|
-
##
|
|
175
|
-
|
|
176
|
-
The
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
trust:
|
|
181
|
-
|
|
182
|
-
1.
|
|
183
|
-
|
|
184
|
-
2.
|
|
185
|
-
with
|
|
186
|
-
|
|
175
|
+
## 1.80 Frontier Priorities
|
|
176
|
+
|
|
177
|
+
The final Model Context Protocol release is implemented, including Tasks,
|
|
178
|
+
Apps, multi-round-trip tool input, roots compatibility, and strict request
|
|
179
|
+
metadata. Agent-to-Agent 1.0 JSON-RPC and HTTP+JSON remain separately
|
|
180
|
+
negotiated from the older stable JavaScript SDK binding. The current backlog
|
|
181
|
+
focuses on proven interoperability and narrow trust boundaries:
|
|
182
|
+
|
|
183
|
+
1. Broaden independent-client fixtures for final Model Context Protocol and
|
|
184
|
+
Agent-to-Agent requests before adding more advertised protocol surface.
|
|
185
|
+
2. Adopt a stable official Agent-to-Agent JavaScript binding when one exists.
|
|
186
|
+
Add gRPC only for a real transport consumer with TLS/authentication and TCK
|
|
187
|
+
coverage; do not advertise it from the Agent Card before that proof exists.
|
|
188
|
+
3. Keep AP2 payments outside the coding agent until UR has an explicitly
|
|
189
|
+
authorized commerce use case, mandate/signature policy, credential model,
|
|
190
|
+
and end-to-end payment conformance suite.
|
|
191
|
+
4. Extend task-memory citations, deletion proofs, quarantine, and rollback to
|
|
187
192
|
every semantic, embedding-backed, and legacy memory store.
|
|
188
|
-
|
|
193
|
+
5. Publish opt-in, signed, versioned trajectory/outcome pass-rate snapshots and
|
|
189
194
|
calibrate model-judge agreement without capturing prompt/tool content.
|
|
190
|
-
|
|
195
|
+
6. Require registry attestations, dependency review, revocation, and update
|
|
191
196
|
transparency before one-command community skill/plugin installation.
|
|
192
|
-
|
|
193
|
-
enforce final claim-to-source links, and complete Windows
|
|
197
|
+
7. Reopen authenticated user citations, explicitly refresh web/protocol
|
|
198
|
+
citations, enforce final claim-to-source links, and complete Windows
|
|
199
|
+
OS-sandbox parity.
|
|
194
200
|
|
|
195
201
|
## Source And Trust Policy
|
|
196
202
|
|
|
@@ -222,7 +228,7 @@ Professional answer requirements:
|
|
|
222
228
|
- OpenAI deferred tool search: https://developers.openai.com/api/docs/guides/tools-tool-search
|
|
223
229
|
- OpenAI agent evals: https://developers.openai.com/api/docs/guides/agent-evals
|
|
224
230
|
- Model Context Protocol: https://modelcontextprotocol.io/docs/getting-started/intro
|
|
225
|
-
-
|
|
231
|
+
- Final Model Context Protocol 2026-07-28 release: https://blog.modelcontextprotocol.io/posts/2026-07-28/
|
|
226
232
|
- MCP Tasks extension: https://tasks.extensions.modelcontextprotocol.io/
|
|
227
233
|
- MCP Apps extension: https://apps.extensions.modelcontextprotocol.io/
|
|
228
234
|
- ACP v1 schema: https://agentclientprotocol.com/protocol/v1/schema
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
UR reads configuration from CLI flags, environment variables, and project or user settings files.
|
|
4
4
|
|
|
5
|
+
Inside an interactive UR session, `/config` opens the settings panel and
|
|
6
|
+
`/config key=value` applies common settings directly:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
/config thinking=false screenReader=true reducedMotion=true
|
|
10
|
+
/config editor=vim vimEscape=jj
|
|
11
|
+
/config verbose=true autoCompact=false
|
|
12
|
+
/config --help
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Start UR with `--screen-reader`, set `UR_SCREEN_READER=1`, or use
|
|
16
|
+
`/config screenReader=true` for append-only plain-text output, announced text
|
|
17
|
+
edits, and reduced animation. `vimEscape` accepts 2–8 printable non-whitespace
|
|
18
|
+
characters or `off`.
|
|
19
|
+
|
|
5
20
|
## Model Providers
|
|
6
21
|
|
|
7
22
|
UR-Nexus supports official provider access paths only:
|
|
@@ -427,6 +442,32 @@ This sandbox covers UR-run Bash/File tool commands only. For subscription CLI
|
|
|
427
442
|
providers, it does not extend to actions the external CLI performs internally
|
|
428
443
|
— see [Provider Guide](providers.md).
|
|
429
444
|
|
|
445
|
+
Security-sensitive sandbox proxy and credential settings are accepted only
|
|
446
|
+
from user, flag, or managed-policy settings. Project settings cannot opt into
|
|
447
|
+
credential injection. Example user settings:
|
|
448
|
+
|
|
449
|
+
```json
|
|
450
|
+
{
|
|
451
|
+
"sandbox": {
|
|
452
|
+
"enabled": true,
|
|
453
|
+
"network": {
|
|
454
|
+
"allowedDomains": ["api.example.com"],
|
|
455
|
+
"strictAllowlist": true,
|
|
456
|
+
"tlsTerminate": {}
|
|
457
|
+
},
|
|
458
|
+
"credentials": {
|
|
459
|
+
"envVars": [
|
|
460
|
+
{ "name": "API_TOKEN", "mode": "mask", "injectHosts": ["api.example.com"] }
|
|
461
|
+
]
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
Credential entries support `deny` or `mask`, regex extraction, JWT claim
|
|
468
|
+
masking, host-scoped injection, AWS key pairs, and SigV4 rewriting. Unknown
|
|
469
|
+
destinations are rejected without prompting when `strictAllowlist` is true.
|
|
470
|
+
|
|
430
471
|
## Project Context Pack
|
|
431
472
|
|
|
432
473
|
`ur context-pack` writes durable architecture context and task memory:
|
|
@@ -480,7 +521,7 @@ ur mcp get <name>
|
|
|
480
521
|
ur mcp add-json <name> '<json>'
|
|
481
522
|
ur mcp remove <name>
|
|
482
523
|
ur mcp serve
|
|
483
|
-
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-
|
|
524
|
+
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-web --port 8976
|
|
484
525
|
```
|
|
485
526
|
|
|
486
527
|
MCP servers may execute code or access external services. Only enable servers you trust, and keep credentials out of committed config.
|
|
@@ -492,7 +533,7 @@ adjusted with `UR_MCP_MAX_CALLS_PER_MINUTE`,
|
|
|
492
533
|
`UR_MCP_MAX_CONCURRENT_CALLS`, `UR_MCP_TOOL_TIMEOUT_MS`,
|
|
493
534
|
`UR_MCP_MAX_INPUT_CHARS`, and `UR_MCP_MAX_OUTPUT_CHARS`.
|
|
494
535
|
|
|
495
|
-
`serve-
|
|
536
|
+
`serve-web` is the separate, opt-in stateless Model Context Protocol web surface at
|
|
496
537
|
`POST /mcp`. It is stateless at the transport layer and exposes capability-
|
|
497
538
|
negotiated Tasks and a self-contained overview App backed by UR's real MCP
|
|
498
539
|
tool registry. Every call must supply matching protocol/method/name metadata.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# UR Gap Analysis — 2026-08-11 Implemented Release Audit
|
|
2
|
+
|
|
3
|
+
Baseline audited: `ur-agent@1.79.1`, commit `6faed11`. Release target: `1.80.0`.
|
|
4
|
+
Primary references were rechecked before implementation: Claude Code
|
|
5
|
+
2.1.221–2.1.224, the final Model Context Protocol specification dated
|
|
6
|
+
2026-07-28, and the Agent2Agent 1.0 release.
|
|
7
|
+
|
|
8
|
+
## Result
|
|
9
|
+
|
|
10
|
+
All recommended gaps that strengthen UR without weakening its operator trust
|
|
11
|
+
boundary are implemented. “Approve all”/`autoApprove` remains available and
|
|
12
|
+
unchanged. UR does not add automated approval delegation.
|
|
13
|
+
|
|
14
|
+
| Area | Release result |
|
|
15
|
+
|---|---|
|
|
16
|
+
| Credential-safe sandboxing | Added the official sandbox runtime, trusted-source-only `sandbox.credentials`, file/environment masking, regex extraction, JWT claim masking, AWS credential pairs, SigV4 rewriting, and `network.tlsTerminate`. |
|
|
17
|
+
| Strict egress | Added trusted `sandbox.network.strictAllowlist`; non-allowlisted destinations are denied instead of prompting. |
|
|
18
|
+
| Filesystem deny regression | Verified canonical path normalization handles both `~/.aws` and `~/.aws/`; regression tests cover both forms. |
|
|
19
|
+
| Parameter-aware permissions | Added `Tool(parameter:value)` matching with wildcards, including rules such as `Agent(model:opus)` and `Bash(timeout:*)`. |
|
|
20
|
+
| Shell approval hardening | Added tree-sitter enforcement for production Bash, zsh `[[ ... ]]` command-substitution detection, visible rendering for tabs/control/zero-width/bidirectional characters, and PowerShell quote-path validation. |
|
|
21
|
+
| Session containment | Added a 200-search default WebSearch session budget (`UR_MAX_WEB_SEARCHES_PER_SESSION`) and a non-fatal subagent-spawn advisory (`UR_SUBAGENT_SPAWN_ADVISORY_PER_SESSION`). |
|
|
22
|
+
| Headless subagents | Added `--forward-subagent-text` for nested assistant output in `stream-json`, correlated to the spawning tool-use ID. |
|
|
23
|
+
| Model Context Protocol | Added final `input_required` results and codes while retaining older elicitation compatibility. Existing roots support now includes all added directories plus `notifications/roots/list_changed`. |
|
|
24
|
+
| Agent-to-Agent cards | Audit disproved the reported mismatch: `protocolVersion: 0.3.0` belongs to the deliberately retained legacy card; the negotiated modern card is produced separately and signed correctly. No false version change was made. |
|
|
25
|
+
| Accessibility | Added `--screen-reader`, `screenReaderMode`, append-only plain-text rendering, edit announcements, and reduced animation. |
|
|
26
|
+
| In-session configuration | Added `/config key=value`, including thinking, screen reader, reduced motion, verbose output, auto-compaction, editor mode, and Vim escape sequence. |
|
|
27
|
+
| Directory automation | Added the `DirectoryAdded` hook and roots-change notification after `/add-dir`. |
|
|
28
|
+
| 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
|
+
| Vim input | Added `vimEscape=<sequence>`; for example, `/config editor=vim vimEscape=jj`. |
|
|
30
|
+
| Telemetry | Added privacy-safe `assistant_response` events, message/request/tool correlation, and workflow name/run identifiers. |
|
|
31
|
+
| 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. |
|
|
32
|
+
|
|
33
|
+
## Corrected findings and deliberate omissions
|
|
34
|
+
|
|
35
|
+
- `roots/list` was not absent. UR already served the initial working directory;
|
|
36
|
+
this release extends it to added directories and change notifications.
|
|
37
|
+
- The old and modern Agent-to-Agent cards are separate negotiated compatibility
|
|
38
|
+
representations. The old card’s version is truthful and must not be relabeled.
|
|
39
|
+
- gRPC transport and AP2 payments are optional integrations, not correctness
|
|
40
|
+
requirements for UR’s local coding-agent surface. Shipping either without a
|
|
41
|
+
real transport consumer, payment policy, credential model, and end-to-end
|
|
42
|
+
conformance suite would add attack surface without useful capability, so they
|
|
43
|
+
are deliberately omitted.
|
|
44
|
+
- Anthropic removed `ultraplan` in Claude Code 2.1.222. UR’s registered command
|
|
45
|
+
was also permanently disabled, so the registration was removed as dead public
|
|
46
|
+
weight. Shared remote-planning internals used by active features remain.
|
|
47
|
+
- `EndConversation`, managed-gateway spend UX, `/dataviz`, and automated
|
|
48
|
+
approval delegation remain intentionally omitted. They either duplicate
|
|
49
|
+
existing controls, are content rather than capability, or weaken the explicit
|
|
50
|
+
operator trust boundary.
|
|
51
|
+
|
|
52
|
+
## Primary sources
|
|
53
|
+
|
|
54
|
+
- [Claude Code 2.1.221](https://github.com/anthropics/claude-code/releases/tag/v2.1.221)
|
|
55
|
+
- [Claude Code 2.1.222](https://github.com/anthropics/claude-code/releases/tag/v2.1.222)
|
|
56
|
+
- [Claude Code 2.1.223](https://github.com/anthropics/claude-code/releases/tag/v2.1.223)
|
|
57
|
+
- [Claude Code 2.1.224](https://github.com/anthropics/claude-code/releases/tag/v2.1.224)
|
|
58
|
+
- [Anthropic sandboxing documentation](https://code.claude.com/docs/en/sandboxing)
|
|
59
|
+
- [Model Context Protocol 2026-07-28 release](https://blog.modelcontextprotocol.io/posts/2026-07-28/)
|
|
60
|
+
- [Model Context Protocol final schema](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/schema/2026-07-28/schema.ts)
|
|
61
|
+
- [Agent2Agent 1.0 changes](https://a2a-protocol.org/latest/whats-new-v1/)
|
|
62
|
+
- [Agent2Agent 1.0 specification](https://a2a-protocol.org/latest/specification/)
|
|
63
|
+
- [Agent Payments Protocol reference repository](https://github.com/google-agentic-commerce/AP2)
|
|
64
|
+
- [OpenTelemetry generative-AI attributes](https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/)
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -56,6 +56,20 @@ ur config set provider ollama
|
|
|
56
56
|
ur provider status
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
### Every Bash call fails with `ENOENT .../tasks/<id>.output`
|
|
60
|
+
|
|
61
|
+
- Likely cause: the operating system or a cleanup process reclaimed UR's
|
|
62
|
+
session task-output directory, or the conventional Unix `/tmp` path is
|
|
63
|
+
unavailable. The command itself never started; identical failure from
|
|
64
|
+
`echo ok` distinguishes this harness failure from an application error.
|
|
65
|
+
- Fix: upgrade to UR 1.79.1 or newer. UR now uses `os.tmpdir()`, ensures the
|
|
66
|
+
output directory for every launch, and automatically recreates and retries
|
|
67
|
+
when it disappears. Restarting an older session is only a temporary
|
|
68
|
+
workaround.
|
|
69
|
+
- Verification: start a new UR session and ask it to run `echo ok` through
|
|
70
|
+
Bash. A successful result confirms the harness; `/design3d doctor` alone
|
|
71
|
+
validates the local slash command but does not exercise Bash execution.
|
|
72
|
+
|
|
59
73
|
## Providers and models
|
|
60
74
|
|
|
61
75
|
### Provider selected but the model is unavailable
|
package/docs/USAGE.md
CHANGED
|
@@ -25,8 +25,29 @@ ur --add-dir ../other-project
|
|
|
25
25
|
ur --permission-mode ask
|
|
26
26
|
ur --continue
|
|
27
27
|
ur --resume
|
|
28
|
+
ur --screen-reader
|
|
28
29
|
```
|
|
29
30
|
|
|
31
|
+
Useful commands from inside UR:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
/config thinking=false screenReader=true
|
|
35
|
+
/config editor=vim vimEscape=jj
|
|
36
|
+
/session list
|
|
37
|
+
/session archive
|
|
38
|
+
/session unarchive <session-id>
|
|
39
|
+
/fix-bug describe the failure and reproduction steps
|
|
40
|
+
/research init current-tools --question "What changed?"
|
|
41
|
+
/design3d doctor
|
|
42
|
+
/design3d init product-shot --engine blender --units mm --format blend
|
|
43
|
+
/design3d init studio-scene --engine 3dsmax --units cm --format max
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`/design3d doctor` reports installed applications. `MISSING` means that optional
|
|
47
|
+
application is not installed or is not on `PATH`; it is not a UR failure. On
|
|
48
|
+
macOS, Autodesk 3ds Max is expected to be missing because it is a Windows
|
|
49
|
+
application. Use Blender locally, or run the 3ds Max project on a Windows host.
|
|
50
|
+
|
|
30
51
|
When UR needs a focused clarification, it uses the `AskUserQuestion` dialog.
|
|
31
52
|
Professional clarification prompts can provide up to eight concrete options;
|
|
32
53
|
UR also accepts custom "Other" answers when the dialog includes one.
|
|
@@ -49,8 +70,13 @@ Output formats:
|
|
|
49
70
|
ur -p --output-format text "explain src/main.tsx"
|
|
50
71
|
ur -p --output-format json "return a JSON summary of this repo"
|
|
51
72
|
ur -p --output-format stream-json "stream progress while answering"
|
|
73
|
+
ur -p --output-format stream-json --forward-subagent-text "delegate and stream nested results"
|
|
52
74
|
```
|
|
53
75
|
|
|
76
|
+
WebSearch allows 200 provider searches per session by default. Set
|
|
77
|
+
`UR_MAX_WEB_SEARCHES_PER_SESSION` to another positive integer, or to
|
|
78
|
+
`unlimited` only for a trusted long-running job.
|
|
79
|
+
|
|
54
80
|
Structured output can be validated with a JSON schema:
|
|
55
81
|
|
|
56
82
|
```sh
|
|
@@ -264,6 +290,8 @@ hooks:
|
|
|
264
290
|
```
|
|
265
291
|
|
|
266
292
|
Hooks are advisory by default. A `BeforeEdit`/`BeforeCommand`/`BeforeCommit` hook can block the action by returning `{"decision":"block","reason":"..."}` or exit code 2. `AfterEdit` and `OnFailure` hooks can return `{"hookSpecificOutput":{"hookEventName":"...","memory":{"kind":"accepted","text":"..."}}}` to append project memory automatically.
|
|
293
|
+
`DirectoryAdded` fires after `/add-dir` authorizes and adds a directory, so
|
|
294
|
+
plugins and project automation can initialize directory-specific state.
|
|
267
295
|
|
|
268
296
|
## Commands
|
|
269
297
|
|
|
@@ -272,7 +300,7 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
272
300
|
- `/help` or `ur --help` for command discovery
|
|
273
301
|
- `ur connect ...` to connect provider accounts (subscription login or stored API key)
|
|
274
302
|
- `ur mcp ...` to configure MCP servers, run the stdio server, or start the
|
|
275
|
-
opt-in stateless
|
|
303
|
+
opt-in stateless Model Context Protocol Tasks/Apps server with `ur mcp serve-web`
|
|
276
304
|
- `ur ag-ui serve` to expose the secure AG-UI HTTP/SSE adapter to an explicitly
|
|
277
305
|
allowed user-facing application
|
|
278
306
|
- `ur plugin ...` to manage plugins and marketplaces. Marketplace plugins can
|
|
@@ -319,7 +347,7 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
319
347
|
- `ur artifacts ...` to capture reviewable diffs, test runs, notes, feedback,
|
|
320
348
|
and bounded non-symlink attachments with safe download headers/MIME fallback
|
|
321
349
|
- `ur ide diff ...` to capture editor-readable inline diff bundles
|
|
322
|
-
- `ur acp stdio` for the
|
|
350
|
+
- `ur acp stdio` for the standard Agent Client Protocol editor transport with durable
|
|
323
351
|
list/load/delete/resume, modes, config options, and commands; and
|
|
324
352
|
`ur acp serve|stop|status` for the separate UR HTTP JSON-RPC API
|
|
325
353
|
- `ur exec ...` to run prompts in non-interactive mode with optional concurrency
|
|
@@ -372,7 +400,7 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
372
400
|
money column is omitted rather than printing a wall of `$0.00`. Add `--json`
|
|
373
401
|
for the raw rows.
|
|
374
402
|
- `ur role-mode ...` to install built-in Architect, Code, Debug, and Ask role modes
|
|
375
|
-
- `ur a2a ...` for negotiated
|
|
403
|
+
- `ur a2a ...` for a negotiated Agent-to-Agent server with automatic compatibility
|
|
376
404
|
binding, scoped delegation tokens, durable protocol state, and separate UR
|
|
377
405
|
compatibility task routes
|
|
378
406
|
- `ur sdk ...` to scaffold TS/Python headless SDK examples
|
|
@@ -501,7 +529,7 @@ ur context-pack remember --decision "Keep streaming" --cite-file src/parser.ts -
|
|
|
501
529
|
ur context-pack memory verify
|
|
502
530
|
ur context-pack memory revalidate
|
|
503
531
|
ur context-pack compress
|
|
504
|
-
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-
|
|
532
|
+
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-web --port 8976
|
|
505
533
|
ur acp serve --port 8123
|
|
506
534
|
ur exec "add tests for the parser" --concurrency 4 --json
|
|
507
535
|
ur ci-loop --command "bun test" --cwd . --dry-run
|
package/docs/VALIDATION.md
CHANGED
package/documentation/index.html
CHANGED
|
@@ -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.
|
|
48
|
+
<p class="eyebrow">Version 1.80.0</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>
|
|
@@ -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.
|
|
5
|
+
"version": "1.80.0",
|
|
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.
|
|
3
|
+
"version": "1.80.0",
|
|
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",
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
"@a2a-js/sdk": "0.3.14",
|
|
85
85
|
"@ag-ui/core": "0.0.57",
|
|
86
86
|
"@ag-ui/encoder": "0.0.57",
|
|
87
|
+
"@anthropic-ai/sandbox-runtime": "0.0.71",
|
|
87
88
|
"diff2html": "^3.4.56",
|
|
88
89
|
"playwright-core": "^1.61.1",
|
|
89
90
|
"sharp": "^0.35.3"
|
package/plugins/bunBundleDev.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* In production, Bun's bundler statically replaces `feature()` calls at compile
|
|
5
5
|
* time. During development (running unbundled with `bun run`), this plugin
|
|
6
|
-
* intercepts `bun:bundle` imports and returns a stub
|
|
7
|
-
*
|
|
6
|
+
* intercepts `bun:bundle` imports and returns a stub. Security-critical flags
|
|
7
|
+
* mirror production by default; optional product flags remain disabled.
|
|
8
8
|
*
|
|
9
9
|
* To enable specific flags during dev, set the env var FEATURE_FLAGS as a
|
|
10
10
|
* comma-separated list:
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { plugin } from 'bun'
|
|
15
15
|
|
|
16
|
-
const enabledFlags = new Set(
|
|
17
|
-
|
|
18
|
-
)
|
|
16
|
+
const enabledFlags = new Set([
|
|
17
|
+
'TREE_SITTER_BASH',
|
|
18
|
+
...(process.env.FEATURE_FLAGS ?? '').split(',').filter(Boolean),
|
|
19
|
+
])
|
|
19
20
|
|
|
20
21
|
plugin({
|
|
21
22
|
name: 'bun-bundle-dev',
|