ur-agent 1.68.10 → 1.68.16

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,116 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.68.16
4
+
5
+ - First pieces of the UR Nexus visual identity, as terminal primitives rather
6
+ than artwork: `constants/urPalette.ts` (obsidian/bronze/electrum/lapis tokens
7
+ in true-colour, ANSI-256 and monochrome tiers, with depth detection),
8
+ `constants/urOrnament.ts` (frieze bands, the four border styles, the gate
9
+ brand mark), and `utils/statusBarItems.ts` (width-aware status-bar registry).
10
+ - The ornaments are thin box-drawing strokes, not solid blocks. Heavy glyphs
11
+ (▟▙██) were tried first and read as chunky sprites against a design built
12
+ from fine line-work. Everything renders on macOS Terminal, GNOME Terminal,
13
+ Konsole, Alacritty, foot and over SSH — no image protocol, so no user gets a
14
+ degraded version of the identity.
15
+ - Friezes tile to an exact width and truncate rather than pad: a band that
16
+ overshoots its column budget wraps, and a wrapped frieze reads as corruption
17
+ rather than decoration. The ASCII gate is cell-for-cell the same size as the
18
+ Unicode one so a fallback does not shift the layout.
19
+ - Status-bar items degrade by dropping whole items, lowest priority first,
20
+ after trying short forms — never by truncating the assembled string, which
21
+ cuts through whichever number sits at the boundary.
22
+ - Section 11 of the design spec lists context usage at priority 2 but its own
23
+ narrow-width example keeps `ctx` while dropping state and agents. The
24
+ examples win: at a glance the two things worth knowing are how far along the
25
+ work is and how much room is left. Drop order is now an explicit per-item
26
+ rank rather than emerging from zone position.
27
+
28
+ ## 1.68.15
29
+
30
+ - Reconstructed three more stub type files, clearing 177 further errors:
31
+ `keybindings/types.ts` (six empty interfaces), `ink/cursor.ts`, and
32
+ `commands/plugin/unifiedTypes.ts`. Same defect as the MCP types in 1.68.14 —
33
+ an empty interface means "has no members" to TypeScript, not "shape unknown",
34
+ so every property access on one was an error and the consuming files carried
35
+ `@ts-nocheck` as a result.
36
+ - `KeybindingBlock.bindings` is keyed by chord string, not an array. A first
37
+ attempt typed it `ParsedBinding[]`, which made every entry in the default
38
+ binding table an error — the declaration form (`'ctrl+d': 'app:exit'`) and the
39
+ parsed form (chord resolved into keystrokes) are different shapes, and
40
+ conflating them broke a file that had been fine.
41
+ - `KeybindingAction` is a string rather than a union of known actions:
42
+ `defaultBindings.ts` assembles entries conditionally from feature flags, so a
43
+ value missing from a union would turn a working binding into an error.
44
+ - Suppression list: 140 -> 132. Eight keybinding and ink files came off.
45
+ - Totals for the sweep so far: 223 -> 132 files, 868 -> 563 errors, and almost
46
+ none of it file-by-file. Four stub files accounted for 258 errors on their
47
+ own.
48
+
49
+ ## 1.68.14
50
+
51
+ - Gave the MCP settings types their real shapes. `components/mcp/types.ts`
52
+ declared seven **empty** interfaces under a "Stub: not included in leaked
53
+ source" comment. An empty interface does not mean "unknown shape" to
54
+ TypeScript, it means "has no members" — so every property access on one was an
55
+ error, and that single file produced ~221 of the 858 errors sitting behind
56
+ `@ts-nocheck`. The MCP menus were not wrong; their types were.
57
+ - The shapes are reconstructed from what the components actually access, with
58
+ `transport` as a literal discriminant so the server union narrows on
59
+ `transport === 'stdio'` instead of collapsing. Fields whose internals the UI
60
+ never inspects are `Record<string, unknown>` rather than `any`, so a consumer
61
+ must still narrow before reaching inside.
62
+ - 118 errors cleared, `MCPAgentServerMenu` off the suppression list (141 -> 140).
63
+ - Method note: of 42 files carrying exactly one error, nine shared one cause;
64
+ 221 more came from this one stub. These cluster, so the productive next step
65
+ is grouping by error signature rather than opening files one at a time.
66
+
67
+ ## 1.68.13
68
+
69
+ - Eight more files came off `@ts-nocheck` (149 -> 141) from a single fix. The
70
+ compiled signature of `useRegisterOverlay(id, t0)` declared two required
71
+ parameters while its own first statement reads
72
+ `const enabled = t0 === undefined ? true : t0` — the argument was optional by
73
+ construction and required by declaration, so every caller passing only an id
74
+ was a type error. Marking it optional cleared 10 errors across 10 files.
75
+ - That is the shape worth looking for in the rest: of 42 files carrying exactly
76
+ one error, nine shared this one cause. The remaining suppressed files surface
77
+ ~858 errors, and the useful next step is grouping them by cause rather than
78
+ working through them file by file.
79
+
80
+ ## 1.68.12
81
+
82
+ - The Ollama request path now reports where a request's bytes actually go —
83
+ tool definitions, system prompt, conversation — once per session in the debug
84
+ log. The fixed cost of tools plus system prompt is what decides whether a
85
+ small-context model has room left to work, and until now it had only been
86
+ estimated by summing prompt source. That estimate is wrong by construction:
87
+ these prompts are full of `condition ? longText : shortText`, and summing the
88
+ file counts both branches when only one is ever sent. The measurement is
89
+ taken from the serialized request, so it is what the server receives.
90
+ - Reported as a share of the whole with the tool-definition count, because
91
+ "system prompt is large" and "conversation is large" call for opposite fixes
92
+ and are indistinguishable in a single total.
93
+
94
+ ## 1.68.11
95
+
96
+ - Investigated turning the task-list gate advisory by default and did not do
97
+ it. The friction it causes is real, but the gate is also the final
98
+ revalidation before a tool executes, and defaulting it off removes two
99
+ properties nothing else provides: a permission handler or hook that rewrites
100
+ a read-only call into a mutating one is re-checked *after* the rewrite, and
101
+ task state is re-read at execution time so a plan that disappears while
102
+ permission is pending cannot let the mutation through. Eight tests in
103
+ `toolExecutionFinalInput` fail the moment enforcement is defaulted off, all
104
+ on those two paths. The rule and its revalidation are not separable: the
105
+ re-read is how the rule is applied at execution time, so with no rule there
106
+ is nothing to revalidate.
107
+ - The friction had two causes and both are already fixed forward: the
108
+ allowance counted messages instead of tool calls, so the gate fired on the
109
+ first Write (1.65.5), and the TodoWrite prompt had lost its worked examples,
110
+ so smaller models stopped producing task lists at all (1.68.0). The gate is
111
+ reached far less often as a result. `tasks.requireBeforeChanges.enabled`
112
+ remains available for anyone who wants it off knowingly.
113
+
3
114
  ## 1.68.10
4
115
 
5
116
  - `ToolSearchTool` no longer registers on runtimes where it cannot work. Its
package/dist/cli.js CHANGED
@@ -57524,6 +57524,7 @@ __export(exports_ollama, {
57524
57524
  getOllamaModelDefaultTimeoutMs: () => getOllamaModelDefaultTimeoutMs,
57525
57525
  getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
57526
57526
  dropStaleImagesFromRequest: () => dropStaleImagesFromRequest,
57527
+ describeRequestComposition: () => describeRequestComposition,
57527
57528
  describeOversizedOllamaRequest: () => describeOversizedOllamaRequest,
57528
57529
  describeImageRetry: () => describeImageRetry,
57529
57530
  createOllamaURHQClient: () => createOllamaURHQClient,
@@ -57596,6 +57597,7 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
57596
57597
  const textToolFallbackAllowed = (params.tools?.length ?? 0) > 0 && !modelCapabilityEnabled(capabilities, "tools");
57597
57598
  const chatRequest = toOllamaChatRequest(params, stream4, capabilities, baseUrl);
57598
57599
  const requestBody = JSON.stringify(chatRequest);
57600
+ logRequestComposition(chatRequest, requestBody.length);
57599
57601
  let response = await fetch(`${baseUrl}/api/chat`, {
57600
57602
  method: "POST",
57601
57603
  headers: buildOllamaHeaders(),
@@ -57647,6 +57649,19 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
57647
57649
  function isOllamaRequestTooLarge(status, message) {
57648
57650
  return (status === 400 || status === 413) && /request body too large|payload too large|entity too large/i.test(message);
57649
57651
  }
57652
+ function describeRequestComposition(request, totalBytes) {
57653
+ const toolBytes = request.tools ? JSON.stringify(request.tools).length : 0;
57654
+ const systemBytes = request.messages.filter((message) => message.role === "system").reduce((sum, message) => sum + JSON.stringify(message).length, 0);
57655
+ const conversationBytes = Math.max(0, totalBytes - toolBytes - systemBytes);
57656
+ const pct = (n2) => totalBytes > 0 ? `${Math.round(100 * n2 / totalBytes)}%` : "0%";
57657
+ return `request ${formatBytes(totalBytes)} = ` + `tools ${formatBytes(toolBytes)} (${pct(toolBytes)}, ` + `${request.tools?.length ?? 0} defs) + ` + `system ${formatBytes(systemBytes)} (${pct(systemBytes)}) + ` + `conversation ${formatBytes(conversationBytes)} (${pct(conversationBytes)})`;
57658
+ }
57659
+ function logRequestComposition(request, totalBytes) {
57660
+ if (loggedComposition)
57661
+ return;
57662
+ loggedComposition = true;
57663
+ logForDebugging(`[ollama] ${describeRequestComposition(request, totalBytes)}`);
57664
+ }
57650
57665
  function formatBytes(bytes) {
57651
57666
  if (bytes >= 1024 * 1024)
57652
57667
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
@@ -58682,7 +58697,7 @@ function parseToolInput(input) {
58682
58697
  }
58683
58698
  return normalized;
58684
58699
  }
58685
- var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, KIMI_CLOUD_REQUEST_TIMEOUT_MS = 300000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
58700
+ var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, KIMI_CLOUD_REQUEST_TIMEOUT_MS = 300000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, loggedComposition = false, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
58686
58701
  var init_ollama = __esm(() => {
58687
58702
  init_urhq_sdk();
58688
58703
  init_ollamaModels();
@@ -75702,7 +75717,7 @@ var init_auth = __esm(() => {
75702
75717
 
75703
75718
  // src/utils/userAgent.ts
75704
75719
  function getURCodeUserAgent() {
75705
- return `ur/${"1.68.10"}`;
75720
+ return `ur/${"1.68.16"}`;
75706
75721
  }
75707
75722
 
75708
75723
  // src/utils/workloadContext.ts
@@ -75724,7 +75739,7 @@ function getUserAgent() {
75724
75739
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75725
75740
  const workload = getWorkload();
75726
75741
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75727
- return `ur-cli/${"1.68.10"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75742
+ return `ur-cli/${"1.68.16"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75728
75743
  }
75729
75744
  function getMCPUserAgent() {
75730
75745
  const parts = [];
@@ -75738,7 +75753,7 @@ function getMCPUserAgent() {
75738
75753
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75739
75754
  }
75740
75755
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75741
- return `ur/${"1.68.10"}${suffix}`;
75756
+ return `ur/${"1.68.16"}${suffix}`;
75742
75757
  }
75743
75758
  function getWebFetchUserAgent() {
75744
75759
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75876,7 +75891,7 @@ var init_user = __esm(() => {
75876
75891
  deviceId,
75877
75892
  sessionId: getSessionId(),
75878
75893
  email: getEmail(),
75879
- appVersion: "1.68.10",
75894
+ appVersion: "1.68.16",
75880
75895
  platform: getHostPlatformForAnalytics(),
75881
75896
  organizationUuid,
75882
75897
  accountUuid,
@@ -84076,7 +84091,7 @@ var init_metadata = __esm(() => {
84076
84091
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
84077
84092
  WHITESPACE_REGEX = /\s+/;
84078
84093
  getVersionBase = memoize_default(() => {
84079
- const match = "1.68.10".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
84094
+ const match = "1.68.16".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
84080
84095
  return match ? match[0] : undefined;
84081
84096
  });
84082
84097
  buildEnvContext = memoize_default(async () => {
@@ -84116,7 +84131,7 @@ var init_metadata = __esm(() => {
84116
84131
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
84117
84132
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
84118
84133
  isURAiAuth: isURAISubscriber(),
84119
- version: "1.68.10",
84134
+ version: "1.68.16",
84120
84135
  versionBase: getVersionBase(),
84121
84136
  buildTime: "",
84122
84137
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84786,7 +84801,7 @@ function initialize1PEventLogging() {
84786
84801
  const platform2 = getPlatform();
84787
84802
  const attributes = {
84788
84803
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84789
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.10"
84804
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.16"
84790
84805
  };
84791
84806
  if (platform2 === "wsl") {
84792
84807
  const wslVersion = getWslVersion();
@@ -84814,7 +84829,7 @@ function initialize1PEventLogging() {
84814
84829
  })
84815
84830
  ]
84816
84831
  });
84817
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.10");
84832
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.16");
84818
84833
  }
84819
84834
  async function reinitialize1PEventLoggingIfConfigChanged() {
84820
84835
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94702,7 +94717,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94702
94717
  function formatA2AAgentCard(options = {}, pretty = true) {
94703
94718
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94704
94719
  }
94705
- var urVersion = "1.68.10", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94720
+ var urVersion = "1.68.16", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94706
94721
  var init_trends = __esm(() => {
94707
94722
  init_a2aCardSignature();
94708
94723
  coverage = [
@@ -97505,7 +97520,7 @@ function getAttributionHeader(fingerprint) {
97505
97520
  if (!isAttributionHeaderEnabled()) {
97506
97521
  return "";
97507
97522
  }
97508
- const version2 = `${"1.68.10"}.${fingerprint}`;
97523
+ const version2 = `${"1.68.16"}.${fingerprint}`;
97509
97524
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
97510
97525
  const cch = "";
97511
97526
  const workload = getWorkload();
@@ -155383,7 +155398,7 @@ var init_projectSafety = __esm(() => {
155383
155398
  function getInstruments() {
155384
155399
  if (instruments)
155385
155400
  return instruments;
155386
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.10");
155401
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.16");
155387
155402
  instruments = {
155388
155403
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
155389
155404
  description: "GenAI operation duration.",
@@ -155481,7 +155496,7 @@ function genAiAgentAttributes() {
155481
155496
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
155482
155497
  "gen_ai.provider.name": "ur",
155483
155498
  "gen_ai.agent.name": "UR-Nexus",
155484
- "gen_ai.agent.version": "1.68.10"
155499
+ "gen_ai.agent.version": "1.68.16"
155485
155500
  };
155486
155501
  }
155487
155502
  function genAiWorkflowAttributes(workflowName) {
@@ -155497,7 +155512,7 @@ function genAiWorkflowAttributes(workflowName) {
155497
155512
  function startGenAiWorkflowSpan(workflowName) {
155498
155513
  const attributes = genAiWorkflowAttributes(workflowName);
155499
155514
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
155500
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.10").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155515
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.16").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155501
155516
  }
155502
155517
  function endGenAiWorkflowSpan(span, options2 = {}) {
155503
155518
  try {
@@ -155535,7 +155550,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
155535
155550
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
155536
155551
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
155537
155552
  }
155538
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.10").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155553
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.16").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155539
155554
  }
155540
155555
  function endGenAiMemorySpan(span, options2 = {}) {
155541
155556
  try {
@@ -249018,7 +249033,7 @@ function getTelemetryAttributes() {
249018
249033
  attributes["session.id"] = sessionId;
249019
249034
  }
249020
249035
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
249021
- attributes["app.version"] = "1.68.10";
249036
+ attributes["app.version"] = "1.68.16";
249022
249037
  }
249023
249038
  const oauthAccount = getOauthAccountInfo();
249024
249039
  if (oauthAccount) {
@@ -295498,7 +295513,7 @@ function getInstallationEnv() {
295498
295513
  return;
295499
295514
  }
295500
295515
  function getURCodeVersion() {
295501
- return "1.68.10";
295516
+ return "1.68.16";
295502
295517
  }
295503
295518
  async function getInstalledVSCodeExtensionVersion(command) {
295504
295519
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -302829,7 +302844,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
302829
302844
  const client2 = new Client({
302830
302845
  name: "ur",
302831
302846
  title: "UR",
302832
- version: "1.68.10",
302847
+ version: "1.68.16",
302833
302848
  description: "UR-Nexus autonomous engineering workflow engine",
302834
302849
  websiteUrl: PRODUCT_URL
302835
302850
  }, {
@@ -303189,7 +303204,7 @@ var init_client5 = __esm(() => {
303189
303204
  const client2 = new Client({
303190
303205
  name: "ur",
303191
303206
  title: "UR",
303192
- version: "1.68.10",
303207
+ version: "1.68.16",
303193
303208
  description: "UR-Nexus autonomous engineering workflow engine",
303194
303209
  websiteUrl: PRODUCT_URL
303195
303210
  }, {
@@ -315728,7 +315743,7 @@ async function createRuntime() {
315728
315743
  bootstrapTelemetry();
315729
315744
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
315730
315745
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
315731
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.10"
315746
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.16"
315732
315747
  }));
315733
315748
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
315734
315749
  resource,
@@ -315761,11 +315776,11 @@ async function createRuntime() {
315761
315776
  setMeterProvider(meterProvider);
315762
315777
  setLoggerProvider(loggerProvider);
315763
315778
  if (meterProvider) {
315764
- const meter = meterProvider.getMeter("ur-agent", "1.68.10");
315779
+ const meter = meterProvider.getMeter("ur-agent", "1.68.16");
315765
315780
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
315766
315781
  }
315767
315782
  if (loggerProvider) {
315768
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.10"));
315783
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.16"));
315769
315784
  }
315770
315785
  if (!cleanupRegistered2) {
315771
315786
  cleanupRegistered2 = true;
@@ -316427,9 +316442,9 @@ async function assertMinVersion() {
316427
316442
  if (false) {}
316428
316443
  try {
316429
316444
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
316430
- if (versionConfig.minVersion && lt("1.68.10", versionConfig.minVersion)) {
316445
+ if (versionConfig.minVersion && lt("1.68.16", versionConfig.minVersion)) {
316431
316446
  console.error(`
316432
- It looks like your version of UR (${"1.68.10"}) needs an update.
316447
+ It looks like your version of UR (${"1.68.16"}) needs an update.
316433
316448
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
316434
316449
 
316435
316450
  To update, please run:
@@ -316645,7 +316660,7 @@ async function installGlobalPackage(specificVersion) {
316645
316660
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
316646
316661
  logEvent("tengu_auto_updater_lock_contention", {
316647
316662
  pid: process.pid,
316648
- currentVersion: "1.68.10"
316663
+ currentVersion: "1.68.16"
316649
316664
  });
316650
316665
  return "in_progress";
316651
316666
  }
@@ -316654,7 +316669,7 @@ async function installGlobalPackage(specificVersion) {
316654
316669
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
316655
316670
  logError2(new Error("Windows NPM detected in WSL environment"));
316656
316671
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
316657
- currentVersion: "1.68.10"
316672
+ currentVersion: "1.68.16"
316658
316673
  });
316659
316674
  console.error(`
316660
316675
  Error: Windows NPM detected in WSL
@@ -317189,7 +317204,7 @@ function detectLinuxGlobPatternWarnings() {
317189
317204
  }
317190
317205
  async function getDoctorDiagnostic() {
317191
317206
  const installationType = await getCurrentInstallationType();
317192
- const version2 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
317207
+ const version2 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
317193
317208
  const installationPath = await getInstallationPath();
317194
317209
  const invokedBinary = getInvokedBinary();
317195
317210
  const multipleInstallations = await detectMultipleInstallations();
@@ -318124,8 +318139,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318124
318139
  const maxVersion = await getMaxVersion();
318125
318140
  if (maxVersion && gt(version2, maxVersion)) {
318126
318141
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
318127
- if (gte("1.68.10", maxVersion)) {
318128
- logForDebugging(`Native installer: current version ${"1.68.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
318142
+ if (gte("1.68.16", maxVersion)) {
318143
+ logForDebugging(`Native installer: current version ${"1.68.16"} is already at or above maxVersion ${maxVersion}, skipping update`);
318129
318144
  logEvent("tengu_native_update_skipped_max_version", {
318130
318145
  latency_ms: Date.now() - startTime,
318131
318146
  max_version: maxVersion,
@@ -318136,7 +318151,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318136
318151
  version2 = maxVersion;
318137
318152
  }
318138
318153
  }
318139
- if (!forceReinstall && version2 === "1.68.10" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318154
+ if (!forceReinstall && version2 === "1.68.16" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318140
318155
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
318141
318156
  logEvent("tengu_native_update_complete", {
318142
318157
  latency_ms: Date.now() - startTime,
@@ -388347,7 +388362,7 @@ function isAnyTracingEnabled() {
388347
388362
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
388348
388363
  }
388349
388364
  function getTracer() {
388350
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.10");
388365
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.16");
388351
388366
  }
388352
388367
  function createSpanAttributes(spanType, customAttributes = {}) {
388353
388368
  const baseAttributes = getTelemetryAttributes();
@@ -419591,7 +419606,7 @@ function Feedback({
419591
419606
  platform: env2.platform,
419592
419607
  gitRepo: envInfo.isGit,
419593
419608
  terminal: env2.terminal,
419594
- version: "1.68.10",
419609
+ version: "1.68.16",
419595
419610
  transcript: normalizeMessagesForAPI(messages),
419596
419611
  errors: sanitizedErrors,
419597
419612
  lastApiRequest: getLastAPIRequest(),
@@ -419783,7 +419798,7 @@ function Feedback({
419783
419798
  ", ",
419784
419799
  env2.terminal,
419785
419800
  ", v",
419786
- "1.68.10"
419801
+ "1.68.16"
419787
419802
  ]
419788
419803
  }, undefined, true, undefined, this)
419789
419804
  ]
@@ -419889,7 +419904,7 @@ ${sanitizedDescription}
419889
419904
  ` + `**Environment Info**
419890
419905
  ` + `- Platform: ${env2.platform}
419891
419906
  ` + `- Terminal: ${env2.terminal}
419892
- ` + `- Version: ${"1.68.10"}
419907
+ ` + `- Version: ${"1.68.16"}
419893
419908
  ` + `- Feedback ID: ${feedbackId}
419894
419909
  ` + `
419895
419910
  **Errors**
@@ -422999,7 +423014,7 @@ function buildPrimarySection() {
422999
423014
  }, undefined, false, undefined, this);
423000
423015
  return [{
423001
423016
  label: "Version",
423002
- value: "1.68.10"
423017
+ value: "1.68.16"
423003
423018
  }, {
423004
423019
  label: "Session name",
423005
423020
  value: nameValue
@@ -426329,7 +426344,7 @@ function Config({
426329
426344
  }
426330
426345
  }, undefined, false, undefined, this)
426331
426346
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426332
- currentVersion: "1.68.10",
426347
+ currentVersion: "1.68.16",
426333
426348
  onChoice: (choice) => {
426334
426349
  setShowSubmenu(null);
426335
426350
  setTabsHidden(false);
@@ -426341,7 +426356,7 @@ function Config({
426341
426356
  autoUpdatesChannel: "stable"
426342
426357
  };
426343
426358
  if (choice === "stay") {
426344
- newSettings.minimumVersion = "1.68.10";
426359
+ newSettings.minimumVersion = "1.68.16";
426345
426360
  }
426346
426361
  updateSettingsForSource("userSettings", newSettings);
426347
426362
  setSettingsData((prev_27) => ({
@@ -434415,7 +434430,7 @@ function HelpV2(t0) {
434415
434430
  let t6;
434416
434431
  if ($2[31] !== tabs) {
434417
434432
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434418
- title: `UR v${"1.68.10"}`,
434433
+ title: `UR v${"1.68.16"}`,
434419
434434
  color: "professionalBlue",
434420
434435
  defaultTab: "general",
434421
434436
  children: tabs
@@ -435348,7 +435363,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435348
435363
  async function handleInitialize(options2) {
435349
435364
  return {
435350
435365
  name: "UR",
435351
- version: "1.68.10",
435366
+ version: "1.68.16",
435352
435367
  protocolVersion: "0.1.0",
435353
435368
  workspaceRoot: options2.cwd,
435354
435369
  capabilities: {
@@ -452456,7 +452471,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452456
452471
  return [];
452457
452472
  }
452458
452473
  }
452459
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.10") {
452474
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.16") {
452460
452475
  if (process.env.USER_TYPE === "ant") {
452461
452476
  const changelog = "";
452462
452477
  if (changelog) {
@@ -452483,7 +452498,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.10")
452483
452498
  releaseNotes
452484
452499
  };
452485
452500
  }
452486
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.10") {
452501
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.16") {
452487
452502
  if (process.env.USER_TYPE === "ant") {
452488
452503
  const changelog = "";
452489
452504
  if (changelog) {
@@ -455349,7 +455364,7 @@ function getRecentActivitySync() {
455349
455364
  return cachedActivity;
455350
455365
  }
455351
455366
  function getLogoDisplayData() {
455352
- const version2 = process.env.DEMO_VERSION ?? "1.68.10";
455367
+ const version2 = process.env.DEMO_VERSION ?? "1.68.16";
455353
455368
  const serverUrl = getDirectConnectServerUrl();
455354
455369
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455355
455370
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456216,7 +456231,7 @@ function LogoV2() {
456216
456231
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456217
456232
  t2 = () => {
456218
456233
  const currentConfig2 = getGlobalConfig();
456219
- if (currentConfig2.lastReleaseNotesSeen === "1.68.10") {
456234
+ if (currentConfig2.lastReleaseNotesSeen === "1.68.16") {
456220
456235
  return;
456221
456236
  }
456222
456237
  saveGlobalConfig(_temp325);
@@ -456901,12 +456916,12 @@ function LogoV2() {
456901
456916
  return t41;
456902
456917
  }
456903
456918
  function _temp325(current) {
456904
- if (current.lastReleaseNotesSeen === "1.68.10") {
456919
+ if (current.lastReleaseNotesSeen === "1.68.16") {
456905
456920
  return current;
456906
456921
  }
456907
456922
  return {
456908
456923
  ...current,
456909
- lastReleaseNotesSeen: "1.68.10"
456924
+ lastReleaseNotesSeen: "1.68.16"
456910
456925
  };
456911
456926
  }
456912
456927
  function _temp241(s_0) {
@@ -473852,7 +473867,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473852
473867
  if (spec.name !== specName) {
473853
473868
  throw new Error("Agentic CI workflow spec name does not match");
473854
473869
  }
473855
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10");
473870
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16");
473856
473871
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473857
473872
  throw new Error("invalid ur-agent package version");
473858
473873
  }
@@ -474845,7 +474860,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474845
474860
  path: ".github/workflows/ur.yml",
474846
474861
  root: "project",
474847
474862
  content: compileAgenticCiWorkflow("default", {
474848
- packageVersion: typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10"
474863
+ packageVersion: typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16"
474849
474864
  })
474850
474865
  },
474851
474866
  {
@@ -474915,7 +474930,7 @@ function value(tokens, flag) {
474915
474930
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
474916
474931
  }
474917
474932
  function cliVersion() {
474918
- return typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10";
474933
+ return typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16";
474919
474934
  }
474920
474935
  function workflowPath(cwd2) {
474921
474936
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480780,7 +480795,7 @@ function createAcpStdioApp(deps) {
480780
480795
  }
480781
480796
  },
480782
480797
  authMethods: [],
480783
- agentInfo: { name: "UR-Nexus", version: "1.68.10" }
480798
+ agentInfo: { name: "UR-Nexus", version: "1.68.16" }
480784
480799
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480785
480800
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480786
480801
  await runtime2.announce({
@@ -480877,7 +480892,7 @@ function createAcpStdioAgent(deps) {
480877
480892
  }
480878
480893
  },
480879
480894
  authMethods: [],
480880
- agentInfo: { name: "UR-Nexus", version: "1.68.10" }
480895
+ agentInfo: { name: "UR-Nexus", version: "1.68.16" }
480881
480896
  });
480882
480897
  return;
480883
480898
  case "authenticate":
@@ -692037,7 +692052,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
692037
692052
  smapsRollup,
692038
692053
  platform: process.platform,
692039
692054
  nodeVersion: process.version,
692040
- ccVersion: "1.68.10"
692055
+ ccVersion: "1.68.16"
692041
692056
  };
692042
692057
  }
692043
692058
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -692617,7 +692632,7 @@ var init_bridge_kick = __esm(() => {
692617
692632
  var call153 = async () => {
692618
692633
  return {
692619
692634
  type: "text",
692620
- value: "1.68.10"
692635
+ value: "1.68.16"
692621
692636
  };
692622
692637
  }, version2, version_default;
692623
692638
  var init_version = __esm(() => {
@@ -703797,7 +703812,7 @@ function generateHtmlReport(data, insights) {
703797
703812
  </html>`;
703798
703813
  }
703799
703814
  function buildExportData(data, insights, facets, remoteStats) {
703800
- const version3 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
703815
+ const version3 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
703801
703816
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
703802
703817
  const facets_summary = {
703803
703818
  total: facets.size,
@@ -708124,7 +708139,7 @@ var init_sessionStorage = __esm(() => {
708124
708139
  init_settings2();
708125
708140
  init_slowOperations();
708126
708141
  init_uuid();
708127
- VERSION7 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
708142
+ VERSION7 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
708128
708143
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
708129
708144
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
708130
708145
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -709341,7 +709356,7 @@ var init_filesystem = __esm(() => {
709341
709356
  });
709342
709357
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
709343
709358
  const nonce = randomBytes20(16).toString("hex");
709344
- return join230(getURTempDir(), "bundled-skills", "1.68.10", nonce);
709359
+ return join230(getURTempDir(), "bundled-skills", "1.68.16", nonce);
709345
709360
  });
709346
709361
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
709347
709362
  });
@@ -715647,7 +715662,7 @@ function computeFingerprint(messageText2, version3) {
715647
715662
  }
715648
715663
  function computeFingerprintFromMessages(messages) {
715649
715664
  const firstMessageText = extractFirstMessageText(messages);
715650
- return computeFingerprint(firstMessageText, "1.68.10");
715665
+ return computeFingerprint(firstMessageText, "1.68.16");
715651
715666
  }
715652
715667
  var FINGERPRINT_SALT = "59cf53e54c78";
715653
715668
  var init_fingerprint = () => {};
@@ -717546,7 +717561,7 @@ async function sideQuery(opts) {
717546
717561
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
717547
717562
  }
717548
717563
  const messageText2 = extractFirstUserMessageText(messages);
717549
- const fingerprint2 = computeFingerprint(messageText2, "1.68.10");
717564
+ const fingerprint2 = computeFingerprint(messageText2, "1.68.16");
717550
717565
  const attributionHeader = getAttributionHeader(fingerprint2);
717551
717566
  const systemBlocks = [
717552
717567
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -722333,7 +722348,7 @@ function buildSystemInitMessage(inputs) {
722333
722348
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
722334
722349
  apiKeySource: getURHQApiKeyWithSource().source,
722335
722350
  betas: getSdkBetas(),
722336
- ur_version: "1.68.10",
722351
+ ur_version: "1.68.16",
722337
722352
  output_style: outputStyle2,
722338
722353
  agents: inputs.agents.map((agent2) => agent2.agentType),
722339
722354
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -736284,7 +736299,7 @@ var init_useVoiceEnabled = __esm(() => {
736284
736299
  function getSemverPart(version3) {
736285
736300
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
736286
736301
  }
736287
- function useUpdateNotification(updatedVersion, initialVersion = "1.68.10") {
736302
+ function useUpdateNotification(updatedVersion, initialVersion = "1.68.16") {
736288
736303
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
736289
736304
  if (!updatedVersion) {
736290
736305
  return null;
@@ -736333,7 +736348,7 @@ function AutoUpdater({
736333
736348
  return;
736334
736349
  }
736335
736350
  if (false) {}
736336
- const currentVersion = "1.68.10";
736351
+ const currentVersion = "1.68.16";
736337
736352
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
736338
736353
  let latestVersion = await getLatestVersion(channel);
736339
736354
  const isDisabled = isAutoUpdaterDisabled();
@@ -736562,12 +736577,12 @@ function NativeAutoUpdater({
736562
736577
  logEvent("tengu_native_auto_updater_start", {});
736563
736578
  try {
736564
736579
  const maxVersion = await getMaxVersion();
736565
- if (maxVersion && gt("1.68.10", maxVersion)) {
736580
+ if (maxVersion && gt("1.68.16", maxVersion)) {
736566
736581
  const msg = await getMaxVersionMessage();
736567
736582
  setMaxVersionIssue(msg ?? "affects your version");
736568
736583
  }
736569
736584
  const result = await installLatest(channel);
736570
- const currentVersion = "1.68.10";
736585
+ const currentVersion = "1.68.16";
736571
736586
  const latencyMs = Date.now() - startTime;
736572
736587
  if (result.lockFailed) {
736573
736588
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -736704,17 +736719,17 @@ function PackageManagerAutoUpdater(t0) {
736704
736719
  const maxVersion = await getMaxVersion();
736705
736720
  if (maxVersion && latest && gt(latest, maxVersion)) {
736706
736721
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
736707
- if (gte("1.68.10", maxVersion)) {
736708
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
736722
+ if (gte("1.68.16", maxVersion)) {
736723
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.16"} is already at or above maxVersion ${maxVersion}, skipping update`);
736709
736724
  setUpdateAvailable(false);
736710
736725
  return;
736711
736726
  }
736712
736727
  latest = maxVersion;
736713
736728
  }
736714
- const hasUpdate = latest && !gte("1.68.10", latest) && !shouldSkipVersion(latest);
736729
+ const hasUpdate = latest && !gte("1.68.16", latest) && !shouldSkipVersion(latest);
736715
736730
  setUpdateAvailable(!!hasUpdate);
736716
736731
  if (hasUpdate) {
736717
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.10"} -> ${latest}`);
736732
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.16"} -> ${latest}`);
736718
736733
  }
736719
736734
  };
736720
736735
  $2[0] = t1;
@@ -736748,7 +736763,7 @@ function PackageManagerAutoUpdater(t0) {
736748
736763
  wrap: "truncate",
736749
736764
  children: [
736750
736765
  "currentVersion: ",
736751
- "1.68.10"
736766
+ "1.68.16"
736752
736767
  ]
736753
736768
  }, undefined, true, undefined, this);
736754
736769
  $2[3] = verbose;
@@ -747458,7 +747473,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
747458
747473
  project_dir: getOriginalCwd(),
747459
747474
  added_dirs: addedDirs
747460
747475
  },
747461
- version: "1.68.10",
747476
+ version: "1.68.16",
747462
747477
  output_style: {
747463
747478
  name: outputStyleName
747464
747479
  },
@@ -747537,7 +747552,7 @@ function StatusLineInner({
747537
747552
  const taskRunningCount = countActiveBackgroundTasks(taskValues);
747538
747553
  const agentRunningCount = countActiveForegroundAgents(taskValues);
747539
747554
  const defaultStatusLineText = buildDefaultStatusBar({
747540
- version: "1.68.10",
747555
+ version: "1.68.16",
747541
747556
  providerLabel: providerRuntime.providerLabel,
747542
747557
  authMode: providerRuntime.authLabel,
747543
747558
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -759718,7 +759733,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
759718
759733
  } catch {}
759719
759734
  const data = {
759720
759735
  trigger: trigger2,
759721
- version: "1.68.10",
759736
+ version: "1.68.16",
759722
759737
  platform: process.platform,
759723
759738
  transcript,
759724
759739
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -772086,7 +772101,7 @@ function WelcomeV2() {
772086
772101
  dimColor: true,
772087
772102
  children: [
772088
772103
  "v",
772089
- "1.68.10"
772104
+ "1.68.16"
772090
772105
  ]
772091
772106
  }, undefined, true, undefined, this)
772092
772107
  ]
@@ -773346,7 +773361,7 @@ function completeOnboarding() {
773346
773361
  saveGlobalConfig((current) => ({
773347
773362
  ...current,
773348
773363
  hasCompletedOnboarding: true,
773349
- lastOnboardingVersion: "1.68.10"
773364
+ lastOnboardingVersion: "1.68.16"
773350
773365
  }));
773351
773366
  }
773352
773367
  function showDialog(root2, renderer) {
@@ -778390,7 +778405,7 @@ function appendToLog(path24, message) {
778390
778405
  cwd: getFsImplementation().cwd(),
778391
778406
  userType: process.env.USER_TYPE,
778392
778407
  sessionId: getSessionId(),
778393
- version: "1.68.10"
778408
+ version: "1.68.16"
778394
778409
  };
778395
778410
  getLogWriter(path24).write(messageWithTimestamp);
778396
778411
  }
@@ -782554,8 +782569,8 @@ async function getEnvLessBridgeConfig() {
782554
782569
  }
782555
782570
  async function checkEnvLessBridgeMinVersion() {
782556
782571
  const cfg = await getEnvLessBridgeConfig();
782557
- if (cfg.min_version && lt("1.68.10", cfg.min_version)) {
782558
- return `Your version of UR (${"1.68.10"}) is too old for Remote Control.
782572
+ if (cfg.min_version && lt("1.68.16", cfg.min_version)) {
782573
+ return `Your version of UR (${"1.68.16"}) is too old for Remote Control.
782559
782574
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
782560
782575
  }
782561
782576
  return null;
@@ -783029,7 +783044,7 @@ async function initBridgeCore(params) {
783029
783044
  const rawApi = createBridgeApiClient({
783030
783045
  baseUrl,
783031
783046
  getAccessToken,
783032
- runnerVersion: "1.68.10",
783047
+ runnerVersion: "1.68.16",
783033
783048
  onDebug: logForDebugging,
783034
783049
  onAuth401,
783035
783050
  getTrustedDeviceToken
@@ -792502,7 +792517,7 @@ function getAgUiCapabilities() {
792502
792517
  name: "UR-Nexus",
792503
792518
  type: "ur-nexus",
792504
792519
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
792505
- version: "1.68.10",
792520
+ version: "1.68.16",
792506
792521
  provider: "UR",
792507
792522
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
792508
792523
  },
@@ -793642,7 +793657,7 @@ function createMCPServer(cwd4, debug2, verbose) {
793642
793657
  };
793643
793658
  const server2 = new Server({
793644
793659
  name: "ur-nexus",
793645
- version: "1.68.10"
793660
+ version: "1.68.16"
793646
793661
  }, {
793647
793662
  capabilities: {
793648
793663
  tools: {}
@@ -794800,7 +794815,7 @@ function thrownResponse(error40) {
794800
794815
  }
794801
794816
  async function createUrMcp2026Runtime(options4) {
794802
794817
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
794803
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.10" }, { capabilities: {} });
794818
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.16" }, { capabilities: {} });
794804
794819
  const [clientTransport, serverTransport] = createLinkedTransportPair();
794805
794820
  try {
794806
794821
  await server2.connect(serverTransport);
@@ -794811,7 +794826,7 @@ async function createUrMcp2026Runtime(options4) {
794811
794826
  }
794812
794827
  const runtime2 = new Mcp2026Runtime({
794813
794828
  cwd: options4.cwd,
794814
- version: "1.68.10",
794829
+ version: "1.68.16",
794815
794830
  backend: {
794816
794831
  listTools: async () => {
794817
794832
  const listed = await client2.listTools();
@@ -796944,7 +796959,7 @@ async function update() {
796944
796959
  logEvent("tengu_update_check", {});
796945
796960
  const diagnostic2 = await getDoctorDiagnostic();
796946
796961
  const result = await checkUpgradeStatus({
796947
- currentVersion: "1.68.10",
796962
+ currentVersion: "1.68.16",
796948
796963
  packageName: UR_AGENT_PACKAGE_NAME,
796949
796964
  installationType: diagnostic2.installationType,
796950
796965
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -798260,7 +798275,7 @@ ${customInstructions}` : customInstructions;
798260
798275
  }
798261
798276
  }
798262
798277
  logForDiagnosticsNoPII("info", "started", {
798263
- version: "1.68.10",
798278
+ version: "1.68.16",
798264
798279
  is_native_binary: isInBundledMode()
798265
798280
  });
798266
798281
  registerCleanup(async () => {
@@ -799046,7 +799061,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
799046
799061
  pendingHookMessages
799047
799062
  }, renderAndRun);
799048
799063
  }
799049
- }).version("1.68.10 (UR-Nexus)", "-v, --version", "Output the version number");
799064
+ }).version("1.68.16 (UR-Nexus)", "-v, --version", "Output the version number");
799050
799065
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
799051
799066
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
799052
799067
  if (canUserConfigureAdvisor()) {
@@ -800105,7 +800120,7 @@ if (false) {}
800105
800120
  async function main2() {
800106
800121
  const args = process.argv.slice(2);
800107
800122
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
800108
- console.log(`${"1.68.10"} (UR-Nexus)`);
800123
+ console.log(`${"1.68.16"} (UR-Nexus)`);
800109
800124
  return;
800110
800125
  }
800111
800126
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.68.10 (UR-Nexus)"
22
+ # expected for this release: "1.68.16 (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.68.10</p>
48
+ <p class="eyebrow">Version 1.68.16</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.68.10"
10
+ version = "1.68.16"
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.68.10",
5
+ "version": "1.68.16",
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.68.10",
3
+ "version": "1.68.16",
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",
@@ -1,6 +1,6 @@
1
1
  # UR-Nexus — Technical Specifications
2
2
 
3
- > Audited against the executable source and tests for `ur-agent` v1.68.10.
3
+ > Audited against the executable source and tests for `ur-agent` v1.68.16.
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/`