ur-agent 1.65.14 → 1.66.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.
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.65.14 (UR-Nexus)"
22
+ # expected for this release: "1.66.0 (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.14</p>
48
+ <p class="eyebrow">Version 1.66.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>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.65.14"
10
+ version = "1.66.0"
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.14",
5
+ "version": "1.66.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.65.14",
3
+ "version": "1.66.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",
@@ -103,6 +103,13 @@ positive safe-integer JSON number; the tool boundary normalizes it to the
103
103
  canonical decimal string. Zero, negative, fractional, non-finite, Boolean, and
104
104
  precision-losing numeric IDs are rejected.
105
105
 
106
+ The Kimi/Ollama compatibility parser applies the same task schema instead of a
107
+ smaller parallel implementation. A clearly delimited bare `TaskCreate` object
108
+ may contain `blocks`, `blockedBy`, `addBlocks`, or `addBlockedBy`; a bare
109
+ `TaskUpdate` accepts the live terminal `failed` and `skipped` statuses as well
110
+ as numeric IDs. IDs are normalized to canonical strings, while unknown fields,
111
+ invalid IDs/statuses, ambiguous prose, and unavailable tools fail closed.
112
+
106
113
  Task-gate recovery names the tracking surface that is actually present:
107
114
  interactive Task V2 sessions use `TaskCreate`, while default headless sessions
108
115
  use `TodoWrite`. It never instructs a model to recover by calling a tool absent
@@ -105,6 +105,27 @@ Fan-out limits clamp rather than disable: out-of-range, negative and
105
105
  non-numeric values fall back to the default or the ceiling, so a settings file
106
106
  cannot switch the governor off.
107
107
 
108
+ ### Global app compaction controls
109
+
110
+ `autoCompactEnabled` and `compaction.autoThreshold` are global app controls
111
+ managed by `/config` or the `Config` tool and persisted in the global UR
112
+ configuration (`~/.ur.json`, or `.config.json` in a legacy UR config home).
113
+ They are not keys in the project `settings.json` schema.
114
+
115
+ ```text
116
+ autoCompactEnabled = true
117
+ compaction.autoThreshold = 80
118
+ ```
119
+
120
+ The threshold accepts an inclusive percentage from 50 through 95. It is
121
+ applied to the effective model context window and retains a 3,000-token manual
122
+ compaction reserve. `UR_AUTOCOMPACT_PCT_OVERRIDE` has higher precedence for
123
+ the current process; `DISABLE_AUTO_COMPACT` or `DISABLE_COMPACT` disables the
124
+ proactive trigger. `/context` and the prompt notification report an
125
+ approximate percentage left to this same resolved threshold; the active query
126
+ may free additional context through bounded pruning immediately before the
127
+ trigger.
128
+
108
129
  Rule syntax: `ToolName` (blanket) or `ToolName(specifier)` — e.g. `Bash(npm run *)`,
109
130
  `Edit(src/**)`, `mcp__server__tool`. Managed via `/permissions` UI as well.
110
131
 
@@ -104,12 +104,40 @@ rollback preserve a private copy of the full original before replacement.
104
104
  |---|---|
105
105
  | Visualize usage | `/context` (colored grid); `/files` is an ant-only command and is absent from the standard npm CLI |
106
106
  | Manual compaction | `/compact [focus instructions]` |
107
- | Auto-compaction | `src/services/compact` — triggers near the limit; `DISABLE_AUTO_COMPACT` env disables; PreCompact/PostCompact hooks fire |
107
+ | Auto-compaction | `src/services/compact` — triggers at one canonical model-aware threshold; `DISABLE_AUTO_COMPACT` env disables; PreCompact/PostCompact hooks fire |
108
108
  | Context collapse | `src/services/contextCollapse` and `CtxInspect` are behind the compile-time `CONTEXT_COLLAPSE` feature, which the standard npm bundle does not include |
109
109
  | Micro-compaction | session-memory compact (`sessionMemoryCompact.ts`): force on with `ENABLE_UR_CODE_SM_COMPACT=1`, force off with `DISABLE_UR_CODE_SM_COMPACT=1`; otherwise both `tengu_session_memory` and `tengu_sm_compact` runtime gates must be on |
110
110
  | Clear | `/clear` (aliases `/reset`, `/new`) |
111
111
  | Read caps | Read tool truncates large files/lines; `/read`, `/analyze`, `/summarize` for deliberate loads |
112
112
 
113
+ The effective context window always stays positive, including for small local
114
+ models. By default proactive compaction reserves a scaled output buffer (up to
115
+ 20,000 tokens) plus a 13,000-token compact/manual safety band. The global
116
+ `compaction.autoThreshold` setting can instead select 50–95% of the effective
117
+ window while retaining a 3,000-token manual reserve;
118
+ `UR_AUTOCOMPACT_PCT_OVERRIDE` is the explicit environment override. Trigger
119
+ logic, prompt notifications, `/context`, and the SDK all use this same
120
+ threshold and estimated live usage, including messages added after the last
121
+ provider response.
122
+
123
+ When proactive auto-compaction is active, the prompt notification and
124
+ `/context` show a clamped approximate 0–100% value remaining until the actual
125
+ trigger, with separate warning and final-error bands. The estimate uses the
126
+ same live token counter, while the query may conservatively improve it by
127
+ snipping or pruning immediately before the trigger. Reactive-compaction and
128
+ context-collapse modes own their thresholds and therefore do not display a
129
+ misleading proactive countdown. A successful compaction suppresses the stale
130
+ pre-compact warning.
131
+
132
+ Full, partial, and session-memory compaction restore the authoritative live
133
+ task state after the boundary. Task V2 snapshots retain exact IDs, statuses,
134
+ owners, and dependency edges; legacy TodoWrite snapshots retain order and
135
+ status. The snapshot is bounded to 64 actionable-first records and an
136
+ estimated 6,000-token budget. If more exist, the model is required to call
137
+ `TaskList` before task mutation rather than guessing omitted IDs. Compact
138
+ boundaries also permanently consume the task-gate's initial trivial-call
139
+ allowance so compaction cannot reopen an implementation bypass.
140
+
113
141
  ## Repo wiki & map
114
142
 
115
143
  ```
@@ -184,6 +184,12 @@ use legacy `TodoWrite` by default, or Task V2 when
184
184
  alone outside live plan mode are not exempt.
185
185
  - Configure the behavior at
186
186
  `tasks.requireBeforeChanges.{enabled,freeReads}`.
187
+ - Full, partial, and session-memory compaction restore the live task board as
188
+ an authoritative bounded snapshot, including exact Task V2 IDs, statuses,
189
+ owners, and dependency edges. In-process workers do not run a second private
190
+ compaction algorithm: they use the same `runAgent` query-loop policy,
191
+ feature gates, session-memory-first behavior, threshold, circuit breaker,
192
+ and compact-boundary handling as the main agent.
187
193
 
188
194
  The prompt contract, plan-file structure, plan-agent output, approval handoff,
189
195
  task-tool result, and gate recovery text all reinforce the same decomposition
@@ -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.14.
3
+ > Audited against the executable source and tests for `ur-agent` v1.66.0.
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/`