ur-agent 1.68.9 → 1.68.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.68.10
4
+
5
+ - `ToolSearchTool` no longer registers on runtimes where it cannot work. Its
6
+ purpose is fetching schemas for tools whose definitions were deferred, and
7
+ deferral needs the runtime to expand `tool_reference` blocks — an
8
+ Anthropic-native beta shape that no UR runtime supports (UR runs on Ollama,
9
+ OpenAI-compatible servers and vendor CLIs). `isEnabled()` consulted only
10
+ `isToolSearchEnabledOptimistic()`, which reads the mode, and the mode
11
+ defaults to `'tst'` (on). The tool therefore registered on every run: its
12
+ description shipped with each request, and the model was offered a tool that
13
+ could not function, because nothing was ever deferred for it to fetch.
14
+ - Audit note on the surface as a whole: 168 commands, of which 8 touch a
15
+ feature flag that is not compiled in, and in each case the flag gates a
16
+ sub-feature rather than the command. 89 of 91 flags are absent from shipped
17
+ builds. Two of those (`CONTEXT_COLLAPSE`, `REACTIVE_COMPACT`) would have
18
+ failed on the first turn if enabled and were fixed in 1.68.2.
19
+
3
20
  ## 1.68.9
4
21
 
5
22
  - Narrowed that allowlist entry from `ur.com` to `ur.com/docs`. Replacing a
package/dist/cli.js CHANGED
@@ -75702,7 +75702,7 @@ var init_auth = __esm(() => {
75702
75702
 
75703
75703
  // src/utils/userAgent.ts
75704
75704
  function getURCodeUserAgent() {
75705
- return `ur/${"1.68.9"}`;
75705
+ return `ur/${"1.68.10"}`;
75706
75706
  }
75707
75707
 
75708
75708
  // src/utils/workloadContext.ts
@@ -75724,7 +75724,7 @@ function getUserAgent() {
75724
75724
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75725
75725
  const workload = getWorkload();
75726
75726
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75727
- return `ur-cli/${"1.68.9"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75727
+ return `ur-cli/${"1.68.10"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75728
75728
  }
75729
75729
  function getMCPUserAgent() {
75730
75730
  const parts = [];
@@ -75738,7 +75738,7 @@ function getMCPUserAgent() {
75738
75738
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75739
75739
  }
75740
75740
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75741
- return `ur/${"1.68.9"}${suffix}`;
75741
+ return `ur/${"1.68.10"}${suffix}`;
75742
75742
  }
75743
75743
  function getWebFetchUserAgent() {
75744
75744
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75876,7 +75876,7 @@ var init_user = __esm(() => {
75876
75876
  deviceId,
75877
75877
  sessionId: getSessionId(),
75878
75878
  email: getEmail(),
75879
- appVersion: "1.68.9",
75879
+ appVersion: "1.68.10",
75880
75880
  platform: getHostPlatformForAnalytics(),
75881
75881
  organizationUuid,
75882
75882
  accountUuid,
@@ -84076,7 +84076,7 @@ var init_metadata = __esm(() => {
84076
84076
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
84077
84077
  WHITESPACE_REGEX = /\s+/;
84078
84078
  getVersionBase = memoize_default(() => {
84079
- const match = "1.68.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
84079
+ const match = "1.68.10".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
84080
84080
  return match ? match[0] : undefined;
84081
84081
  });
84082
84082
  buildEnvContext = memoize_default(async () => {
@@ -84116,7 +84116,7 @@ var init_metadata = __esm(() => {
84116
84116
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
84117
84117
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
84118
84118
  isURAiAuth: isURAISubscriber(),
84119
- version: "1.68.9",
84119
+ version: "1.68.10",
84120
84120
  versionBase: getVersionBase(),
84121
84121
  buildTime: "",
84122
84122
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84786,7 +84786,7 @@ function initialize1PEventLogging() {
84786
84786
  const platform2 = getPlatform();
84787
84787
  const attributes = {
84788
84788
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84789
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.9"
84789
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.10"
84790
84790
  };
84791
84791
  if (platform2 === "wsl") {
84792
84792
  const wslVersion = getWslVersion();
@@ -84814,7 +84814,7 @@ function initialize1PEventLogging() {
84814
84814
  })
84815
84815
  ]
84816
84816
  });
84817
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.9");
84817
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.10");
84818
84818
  }
84819
84819
  async function reinitialize1PEventLoggingIfConfigChanged() {
84820
84820
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94702,7 +94702,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94702
94702
  function formatA2AAgentCard(options = {}, pretty = true) {
94703
94703
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94704
94704
  }
94705
- var urVersion = "1.68.9", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94705
+ var urVersion = "1.68.10", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94706
94706
  var init_trends = __esm(() => {
94707
94707
  init_a2aCardSignature();
94708
94708
  coverage = [
@@ -97505,7 +97505,7 @@ function getAttributionHeader(fingerprint) {
97505
97505
  if (!isAttributionHeaderEnabled()) {
97506
97506
  return "";
97507
97507
  }
97508
- const version2 = `${"1.68.9"}.${fingerprint}`;
97508
+ const version2 = `${"1.68.10"}.${fingerprint}`;
97509
97509
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
97510
97510
  const cch = "";
97511
97511
  const workload = getWorkload();
@@ -152493,6 +152493,9 @@ var init_ToolSearchTool = __esm(() => {
152493
152493
  }, (toolName) => toolName);
152494
152494
  ToolSearchTool = buildTool({
152495
152495
  isEnabled() {
152496
+ if (!supportsToolReferenceExpansion()) {
152497
+ return false;
152498
+ }
152496
152499
  return isToolSearchEnabledOptimistic();
152497
152500
  },
152498
152501
  isConcurrencySafe() {
@@ -155380,7 +155383,7 @@ var init_projectSafety = __esm(() => {
155380
155383
  function getInstruments() {
155381
155384
  if (instruments)
155382
155385
  return instruments;
155383
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.9");
155386
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.10");
155384
155387
  instruments = {
155385
155388
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
155386
155389
  description: "GenAI operation duration.",
@@ -155478,7 +155481,7 @@ function genAiAgentAttributes() {
155478
155481
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
155479
155482
  "gen_ai.provider.name": "ur",
155480
155483
  "gen_ai.agent.name": "UR-Nexus",
155481
- "gen_ai.agent.version": "1.68.9"
155484
+ "gen_ai.agent.version": "1.68.10"
155482
155485
  };
155483
155486
  }
155484
155487
  function genAiWorkflowAttributes(workflowName) {
@@ -155494,7 +155497,7 @@ function genAiWorkflowAttributes(workflowName) {
155494
155497
  function startGenAiWorkflowSpan(workflowName) {
155495
155498
  const attributes = genAiWorkflowAttributes(workflowName);
155496
155499
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
155497
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.9").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155500
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.10").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155498
155501
  }
155499
155502
  function endGenAiWorkflowSpan(span, options2 = {}) {
155500
155503
  try {
@@ -155532,7 +155535,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
155532
155535
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
155533
155536
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
155534
155537
  }
155535
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.9").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155538
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.10").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155536
155539
  }
155537
155540
  function endGenAiMemorySpan(span, options2 = {}) {
155538
155541
  try {
@@ -249015,7 +249018,7 @@ function getTelemetryAttributes() {
249015
249018
  attributes["session.id"] = sessionId;
249016
249019
  }
249017
249020
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
249018
- attributes["app.version"] = "1.68.9";
249021
+ attributes["app.version"] = "1.68.10";
249019
249022
  }
249020
249023
  const oauthAccount = getOauthAccountInfo();
249021
249024
  if (oauthAccount) {
@@ -295495,7 +295498,7 @@ function getInstallationEnv() {
295495
295498
  return;
295496
295499
  }
295497
295500
  function getURCodeVersion() {
295498
- return "1.68.9";
295501
+ return "1.68.10";
295499
295502
  }
295500
295503
  async function getInstalledVSCodeExtensionVersion(command) {
295501
295504
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -302826,7 +302829,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
302826
302829
  const client2 = new Client({
302827
302830
  name: "ur",
302828
302831
  title: "UR",
302829
- version: "1.68.9",
302832
+ version: "1.68.10",
302830
302833
  description: "UR-Nexus autonomous engineering workflow engine",
302831
302834
  websiteUrl: PRODUCT_URL
302832
302835
  }, {
@@ -303186,7 +303189,7 @@ var init_client5 = __esm(() => {
303186
303189
  const client2 = new Client({
303187
303190
  name: "ur",
303188
303191
  title: "UR",
303189
- version: "1.68.9",
303192
+ version: "1.68.10",
303190
303193
  description: "UR-Nexus autonomous engineering workflow engine",
303191
303194
  websiteUrl: PRODUCT_URL
303192
303195
  }, {
@@ -315725,7 +315728,7 @@ async function createRuntime() {
315725
315728
  bootstrapTelemetry();
315726
315729
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
315727
315730
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
315728
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.9"
315731
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.10"
315729
315732
  }));
315730
315733
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
315731
315734
  resource,
@@ -315758,11 +315761,11 @@ async function createRuntime() {
315758
315761
  setMeterProvider(meterProvider);
315759
315762
  setLoggerProvider(loggerProvider);
315760
315763
  if (meterProvider) {
315761
- const meter = meterProvider.getMeter("ur-agent", "1.68.9");
315764
+ const meter = meterProvider.getMeter("ur-agent", "1.68.10");
315762
315765
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
315763
315766
  }
315764
315767
  if (loggerProvider) {
315765
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.9"));
315768
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.10"));
315766
315769
  }
315767
315770
  if (!cleanupRegistered2) {
315768
315771
  cleanupRegistered2 = true;
@@ -316424,9 +316427,9 @@ async function assertMinVersion() {
316424
316427
  if (false) {}
316425
316428
  try {
316426
316429
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
316427
- if (versionConfig.minVersion && lt("1.68.9", versionConfig.minVersion)) {
316430
+ if (versionConfig.minVersion && lt("1.68.10", versionConfig.minVersion)) {
316428
316431
  console.error(`
316429
- It looks like your version of UR (${"1.68.9"}) needs an update.
316432
+ It looks like your version of UR (${"1.68.10"}) needs an update.
316430
316433
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
316431
316434
 
316432
316435
  To update, please run:
@@ -316642,7 +316645,7 @@ async function installGlobalPackage(specificVersion) {
316642
316645
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
316643
316646
  logEvent("tengu_auto_updater_lock_contention", {
316644
316647
  pid: process.pid,
316645
- currentVersion: "1.68.9"
316648
+ currentVersion: "1.68.10"
316646
316649
  });
316647
316650
  return "in_progress";
316648
316651
  }
@@ -316651,7 +316654,7 @@ async function installGlobalPackage(specificVersion) {
316651
316654
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
316652
316655
  logError2(new Error("Windows NPM detected in WSL environment"));
316653
316656
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
316654
- currentVersion: "1.68.9"
316657
+ currentVersion: "1.68.10"
316655
316658
  });
316656
316659
  console.error(`
316657
316660
  Error: Windows NPM detected in WSL
@@ -317186,7 +317189,7 @@ function detectLinuxGlobPatternWarnings() {
317186
317189
  }
317187
317190
  async function getDoctorDiagnostic() {
317188
317191
  const installationType = await getCurrentInstallationType();
317189
- const version2 = typeof MACRO !== "undefined" ? "1.68.9" : "unknown";
317192
+ const version2 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
317190
317193
  const installationPath = await getInstallationPath();
317191
317194
  const invokedBinary = getInvokedBinary();
317192
317195
  const multipleInstallations = await detectMultipleInstallations();
@@ -318121,8 +318124,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318121
318124
  const maxVersion = await getMaxVersion();
318122
318125
  if (maxVersion && gt(version2, maxVersion)) {
318123
318126
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
318124
- if (gte("1.68.9", maxVersion)) {
318125
- logForDebugging(`Native installer: current version ${"1.68.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
318126
318129
  logEvent("tengu_native_update_skipped_max_version", {
318127
318130
  latency_ms: Date.now() - startTime,
318128
318131
  max_version: maxVersion,
@@ -318133,7 +318136,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318133
318136
  version2 = maxVersion;
318134
318137
  }
318135
318138
  }
318136
- if (!forceReinstall && version2 === "1.68.9" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318139
+ if (!forceReinstall && version2 === "1.68.10" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318137
318140
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
318138
318141
  logEvent("tengu_native_update_complete", {
318139
318142
  latency_ms: Date.now() - startTime,
@@ -388344,7 +388347,7 @@ function isAnyTracingEnabled() {
388344
388347
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
388345
388348
  }
388346
388349
  function getTracer() {
388347
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.9");
388350
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.10");
388348
388351
  }
388349
388352
  function createSpanAttributes(spanType, customAttributes = {}) {
388350
388353
  const baseAttributes = getTelemetryAttributes();
@@ -419588,7 +419591,7 @@ function Feedback({
419588
419591
  platform: env2.platform,
419589
419592
  gitRepo: envInfo.isGit,
419590
419593
  terminal: env2.terminal,
419591
- version: "1.68.9",
419594
+ version: "1.68.10",
419592
419595
  transcript: normalizeMessagesForAPI(messages),
419593
419596
  errors: sanitizedErrors,
419594
419597
  lastApiRequest: getLastAPIRequest(),
@@ -419780,7 +419783,7 @@ function Feedback({
419780
419783
  ", ",
419781
419784
  env2.terminal,
419782
419785
  ", v",
419783
- "1.68.9"
419786
+ "1.68.10"
419784
419787
  ]
419785
419788
  }, undefined, true, undefined, this)
419786
419789
  ]
@@ -419886,7 +419889,7 @@ ${sanitizedDescription}
419886
419889
  ` + `**Environment Info**
419887
419890
  ` + `- Platform: ${env2.platform}
419888
419891
  ` + `- Terminal: ${env2.terminal}
419889
- ` + `- Version: ${"1.68.9"}
419892
+ ` + `- Version: ${"1.68.10"}
419890
419893
  ` + `- Feedback ID: ${feedbackId}
419891
419894
  ` + `
419892
419895
  **Errors**
@@ -422996,7 +422999,7 @@ function buildPrimarySection() {
422996
422999
  }, undefined, false, undefined, this);
422997
423000
  return [{
422998
423001
  label: "Version",
422999
- value: "1.68.9"
423002
+ value: "1.68.10"
423000
423003
  }, {
423001
423004
  label: "Session name",
423002
423005
  value: nameValue
@@ -426326,7 +426329,7 @@ function Config({
426326
426329
  }
426327
426330
  }, undefined, false, undefined, this)
426328
426331
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426329
- currentVersion: "1.68.9",
426332
+ currentVersion: "1.68.10",
426330
426333
  onChoice: (choice) => {
426331
426334
  setShowSubmenu(null);
426332
426335
  setTabsHidden(false);
@@ -426338,7 +426341,7 @@ function Config({
426338
426341
  autoUpdatesChannel: "stable"
426339
426342
  };
426340
426343
  if (choice === "stay") {
426341
- newSettings.minimumVersion = "1.68.9";
426344
+ newSettings.minimumVersion = "1.68.10";
426342
426345
  }
426343
426346
  updateSettingsForSource("userSettings", newSettings);
426344
426347
  setSettingsData((prev_27) => ({
@@ -434412,7 +434415,7 @@ function HelpV2(t0) {
434412
434415
  let t6;
434413
434416
  if ($2[31] !== tabs) {
434414
434417
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434415
- title: `UR v${"1.68.9"}`,
434418
+ title: `UR v${"1.68.10"}`,
434416
434419
  color: "professionalBlue",
434417
434420
  defaultTab: "general",
434418
434421
  children: tabs
@@ -435345,7 +435348,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435345
435348
  async function handleInitialize(options2) {
435346
435349
  return {
435347
435350
  name: "UR",
435348
- version: "1.68.9",
435351
+ version: "1.68.10",
435349
435352
  protocolVersion: "0.1.0",
435350
435353
  workspaceRoot: options2.cwd,
435351
435354
  capabilities: {
@@ -452453,7 +452456,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452453
452456
  return [];
452454
452457
  }
452455
452458
  }
452456
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.9") {
452459
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.10") {
452457
452460
  if (process.env.USER_TYPE === "ant") {
452458
452461
  const changelog = "";
452459
452462
  if (changelog) {
@@ -452480,7 +452483,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.9")
452480
452483
  releaseNotes
452481
452484
  };
452482
452485
  }
452483
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.9") {
452486
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.10") {
452484
452487
  if (process.env.USER_TYPE === "ant") {
452485
452488
  const changelog = "";
452486
452489
  if (changelog) {
@@ -455346,7 +455349,7 @@ function getRecentActivitySync() {
455346
455349
  return cachedActivity;
455347
455350
  }
455348
455351
  function getLogoDisplayData() {
455349
- const version2 = process.env.DEMO_VERSION ?? "1.68.9";
455352
+ const version2 = process.env.DEMO_VERSION ?? "1.68.10";
455350
455353
  const serverUrl = getDirectConnectServerUrl();
455351
455354
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455352
455355
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456213,7 +456216,7 @@ function LogoV2() {
456213
456216
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456214
456217
  t2 = () => {
456215
456218
  const currentConfig2 = getGlobalConfig();
456216
- if (currentConfig2.lastReleaseNotesSeen === "1.68.9") {
456219
+ if (currentConfig2.lastReleaseNotesSeen === "1.68.10") {
456217
456220
  return;
456218
456221
  }
456219
456222
  saveGlobalConfig(_temp325);
@@ -456898,12 +456901,12 @@ function LogoV2() {
456898
456901
  return t41;
456899
456902
  }
456900
456903
  function _temp325(current) {
456901
- if (current.lastReleaseNotesSeen === "1.68.9") {
456904
+ if (current.lastReleaseNotesSeen === "1.68.10") {
456902
456905
  return current;
456903
456906
  }
456904
456907
  return {
456905
456908
  ...current,
456906
- lastReleaseNotesSeen: "1.68.9"
456909
+ lastReleaseNotesSeen: "1.68.10"
456907
456910
  };
456908
456911
  }
456909
456912
  function _temp241(s_0) {
@@ -473849,7 +473852,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473849
473852
  if (spec.name !== specName) {
473850
473853
  throw new Error("Agentic CI workflow spec name does not match");
473851
473854
  }
473852
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.9" : "1.68.9");
473855
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10");
473853
473856
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473854
473857
  throw new Error("invalid ur-agent package version");
473855
473858
  }
@@ -474842,7 +474845,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474842
474845
  path: ".github/workflows/ur.yml",
474843
474846
  root: "project",
474844
474847
  content: compileAgenticCiWorkflow("default", {
474845
- packageVersion: typeof MACRO !== "undefined" ? "1.68.9" : "1.68.9"
474848
+ packageVersion: typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10"
474846
474849
  })
474847
474850
  },
474848
474851
  {
@@ -474912,7 +474915,7 @@ function value(tokens, flag) {
474912
474915
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
474913
474916
  }
474914
474917
  function cliVersion() {
474915
- return typeof MACRO !== "undefined" ? "1.68.9" : "1.68.9";
474918
+ return typeof MACRO !== "undefined" ? "1.68.10" : "1.68.10";
474916
474919
  }
474917
474920
  function workflowPath(cwd2) {
474918
474921
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480777,7 +480780,7 @@ function createAcpStdioApp(deps) {
480777
480780
  }
480778
480781
  },
480779
480782
  authMethods: [],
480780
- agentInfo: { name: "UR-Nexus", version: "1.68.9" }
480783
+ agentInfo: { name: "UR-Nexus", version: "1.68.10" }
480781
480784
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480782
480785
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480783
480786
  await runtime2.announce({
@@ -480874,7 +480877,7 @@ function createAcpStdioAgent(deps) {
480874
480877
  }
480875
480878
  },
480876
480879
  authMethods: [],
480877
- agentInfo: { name: "UR-Nexus", version: "1.68.9" }
480880
+ agentInfo: { name: "UR-Nexus", version: "1.68.10" }
480878
480881
  });
480879
480882
  return;
480880
480883
  case "authenticate":
@@ -692034,7 +692037,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
692034
692037
  smapsRollup,
692035
692038
  platform: process.platform,
692036
692039
  nodeVersion: process.version,
692037
- ccVersion: "1.68.9"
692040
+ ccVersion: "1.68.10"
692038
692041
  };
692039
692042
  }
692040
692043
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -692614,7 +692617,7 @@ var init_bridge_kick = __esm(() => {
692614
692617
  var call153 = async () => {
692615
692618
  return {
692616
692619
  type: "text",
692617
- value: "1.68.9"
692620
+ value: "1.68.10"
692618
692621
  };
692619
692622
  }, version2, version_default;
692620
692623
  var init_version = __esm(() => {
@@ -703794,7 +703797,7 @@ function generateHtmlReport(data, insights) {
703794
703797
  </html>`;
703795
703798
  }
703796
703799
  function buildExportData(data, insights, facets, remoteStats) {
703797
- const version3 = typeof MACRO !== "undefined" ? "1.68.9" : "unknown";
703800
+ const version3 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
703798
703801
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
703799
703802
  const facets_summary = {
703800
703803
  total: facets.size,
@@ -708121,7 +708124,7 @@ var init_sessionStorage = __esm(() => {
708121
708124
  init_settings2();
708122
708125
  init_slowOperations();
708123
708126
  init_uuid();
708124
- VERSION7 = typeof MACRO !== "undefined" ? "1.68.9" : "unknown";
708127
+ VERSION7 = typeof MACRO !== "undefined" ? "1.68.10" : "unknown";
708125
708128
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
708126
708129
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
708127
708130
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -709338,7 +709341,7 @@ var init_filesystem = __esm(() => {
709338
709341
  });
709339
709342
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
709340
709343
  const nonce = randomBytes20(16).toString("hex");
709341
- return join230(getURTempDir(), "bundled-skills", "1.68.9", nonce);
709344
+ return join230(getURTempDir(), "bundled-skills", "1.68.10", nonce);
709342
709345
  });
709343
709346
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
709344
709347
  });
@@ -715644,7 +715647,7 @@ function computeFingerprint(messageText2, version3) {
715644
715647
  }
715645
715648
  function computeFingerprintFromMessages(messages) {
715646
715649
  const firstMessageText = extractFirstMessageText(messages);
715647
- return computeFingerprint(firstMessageText, "1.68.9");
715650
+ return computeFingerprint(firstMessageText, "1.68.10");
715648
715651
  }
715649
715652
  var FINGERPRINT_SALT = "59cf53e54c78";
715650
715653
  var init_fingerprint = () => {};
@@ -717543,7 +717546,7 @@ async function sideQuery(opts) {
717543
717546
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
717544
717547
  }
717545
717548
  const messageText2 = extractFirstUserMessageText(messages);
717546
- const fingerprint2 = computeFingerprint(messageText2, "1.68.9");
717549
+ const fingerprint2 = computeFingerprint(messageText2, "1.68.10");
717547
717550
  const attributionHeader = getAttributionHeader(fingerprint2);
717548
717551
  const systemBlocks = [
717549
717552
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -722330,7 +722333,7 @@ function buildSystemInitMessage(inputs) {
722330
722333
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
722331
722334
  apiKeySource: getURHQApiKeyWithSource().source,
722332
722335
  betas: getSdkBetas(),
722333
- ur_version: "1.68.9",
722336
+ ur_version: "1.68.10",
722334
722337
  output_style: outputStyle2,
722335
722338
  agents: inputs.agents.map((agent2) => agent2.agentType),
722336
722339
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -736281,7 +736284,7 @@ var init_useVoiceEnabled = __esm(() => {
736281
736284
  function getSemverPart(version3) {
736282
736285
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
736283
736286
  }
736284
- function useUpdateNotification(updatedVersion, initialVersion = "1.68.9") {
736287
+ function useUpdateNotification(updatedVersion, initialVersion = "1.68.10") {
736285
736288
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
736286
736289
  if (!updatedVersion) {
736287
736290
  return null;
@@ -736330,7 +736333,7 @@ function AutoUpdater({
736330
736333
  return;
736331
736334
  }
736332
736335
  if (false) {}
736333
- const currentVersion = "1.68.9";
736336
+ const currentVersion = "1.68.10";
736334
736337
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
736335
736338
  let latestVersion = await getLatestVersion(channel);
736336
736339
  const isDisabled = isAutoUpdaterDisabled();
@@ -736559,12 +736562,12 @@ function NativeAutoUpdater({
736559
736562
  logEvent("tengu_native_auto_updater_start", {});
736560
736563
  try {
736561
736564
  const maxVersion = await getMaxVersion();
736562
- if (maxVersion && gt("1.68.9", maxVersion)) {
736565
+ if (maxVersion && gt("1.68.10", maxVersion)) {
736563
736566
  const msg = await getMaxVersionMessage();
736564
736567
  setMaxVersionIssue(msg ?? "affects your version");
736565
736568
  }
736566
736569
  const result = await installLatest(channel);
736567
- const currentVersion = "1.68.9";
736570
+ const currentVersion = "1.68.10";
736568
736571
  const latencyMs = Date.now() - startTime;
736569
736572
  if (result.lockFailed) {
736570
736573
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -736701,17 +736704,17 @@ function PackageManagerAutoUpdater(t0) {
736701
736704
  const maxVersion = await getMaxVersion();
736702
736705
  if (maxVersion && latest && gt(latest, maxVersion)) {
736703
736706
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
736704
- if (gte("1.68.9", maxVersion)) {
736705
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
736707
+ if (gte("1.68.10", maxVersion)) {
736708
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
736706
736709
  setUpdateAvailable(false);
736707
736710
  return;
736708
736711
  }
736709
736712
  latest = maxVersion;
736710
736713
  }
736711
- const hasUpdate = latest && !gte("1.68.9", latest) && !shouldSkipVersion(latest);
736714
+ const hasUpdate = latest && !gte("1.68.10", latest) && !shouldSkipVersion(latest);
736712
736715
  setUpdateAvailable(!!hasUpdate);
736713
736716
  if (hasUpdate) {
736714
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.9"} -> ${latest}`);
736717
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.10"} -> ${latest}`);
736715
736718
  }
736716
736719
  };
736717
736720
  $2[0] = t1;
@@ -736745,7 +736748,7 @@ function PackageManagerAutoUpdater(t0) {
736745
736748
  wrap: "truncate",
736746
736749
  children: [
736747
736750
  "currentVersion: ",
736748
- "1.68.9"
736751
+ "1.68.10"
736749
736752
  ]
736750
736753
  }, undefined, true, undefined, this);
736751
736754
  $2[3] = verbose;
@@ -747455,7 +747458,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
747455
747458
  project_dir: getOriginalCwd(),
747456
747459
  added_dirs: addedDirs
747457
747460
  },
747458
- version: "1.68.9",
747461
+ version: "1.68.10",
747459
747462
  output_style: {
747460
747463
  name: outputStyleName
747461
747464
  },
@@ -747534,7 +747537,7 @@ function StatusLineInner({
747534
747537
  const taskRunningCount = countActiveBackgroundTasks(taskValues);
747535
747538
  const agentRunningCount = countActiveForegroundAgents(taskValues);
747536
747539
  const defaultStatusLineText = buildDefaultStatusBar({
747537
- version: "1.68.9",
747540
+ version: "1.68.10",
747538
747541
  providerLabel: providerRuntime.providerLabel,
747539
747542
  authMode: providerRuntime.authLabel,
747540
747543
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -759715,7 +759718,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
759715
759718
  } catch {}
759716
759719
  const data = {
759717
759720
  trigger: trigger2,
759718
- version: "1.68.9",
759721
+ version: "1.68.10",
759719
759722
  platform: process.platform,
759720
759723
  transcript,
759721
759724
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -772083,7 +772086,7 @@ function WelcomeV2() {
772083
772086
  dimColor: true,
772084
772087
  children: [
772085
772088
  "v",
772086
- "1.68.9"
772089
+ "1.68.10"
772087
772090
  ]
772088
772091
  }, undefined, true, undefined, this)
772089
772092
  ]
@@ -773343,7 +773346,7 @@ function completeOnboarding() {
773343
773346
  saveGlobalConfig((current) => ({
773344
773347
  ...current,
773345
773348
  hasCompletedOnboarding: true,
773346
- lastOnboardingVersion: "1.68.9"
773349
+ lastOnboardingVersion: "1.68.10"
773347
773350
  }));
773348
773351
  }
773349
773352
  function showDialog(root2, renderer) {
@@ -778387,7 +778390,7 @@ function appendToLog(path24, message) {
778387
778390
  cwd: getFsImplementation().cwd(),
778388
778391
  userType: process.env.USER_TYPE,
778389
778392
  sessionId: getSessionId(),
778390
- version: "1.68.9"
778393
+ version: "1.68.10"
778391
778394
  };
778392
778395
  getLogWriter(path24).write(messageWithTimestamp);
778393
778396
  }
@@ -782551,8 +782554,8 @@ async function getEnvLessBridgeConfig() {
782551
782554
  }
782552
782555
  async function checkEnvLessBridgeMinVersion() {
782553
782556
  const cfg = await getEnvLessBridgeConfig();
782554
- if (cfg.min_version && lt("1.68.9", cfg.min_version)) {
782555
- return `Your version of UR (${"1.68.9"}) is too old for Remote Control.
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.
782556
782559
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
782557
782560
  }
782558
782561
  return null;
@@ -783026,7 +783029,7 @@ async function initBridgeCore(params) {
783026
783029
  const rawApi = createBridgeApiClient({
783027
783030
  baseUrl,
783028
783031
  getAccessToken,
783029
- runnerVersion: "1.68.9",
783032
+ runnerVersion: "1.68.10",
783030
783033
  onDebug: logForDebugging,
783031
783034
  onAuth401,
783032
783035
  getTrustedDeviceToken
@@ -792499,7 +792502,7 @@ function getAgUiCapabilities() {
792499
792502
  name: "UR-Nexus",
792500
792503
  type: "ur-nexus",
792501
792504
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
792502
- version: "1.68.9",
792505
+ version: "1.68.10",
792503
792506
  provider: "UR",
792504
792507
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
792505
792508
  },
@@ -793639,7 +793642,7 @@ function createMCPServer(cwd4, debug2, verbose) {
793639
793642
  };
793640
793643
  const server2 = new Server({
793641
793644
  name: "ur-nexus",
793642
- version: "1.68.9"
793645
+ version: "1.68.10"
793643
793646
  }, {
793644
793647
  capabilities: {
793645
793648
  tools: {}
@@ -794797,7 +794800,7 @@ function thrownResponse(error40) {
794797
794800
  }
794798
794801
  async function createUrMcp2026Runtime(options4) {
794799
794802
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
794800
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.9" }, { capabilities: {} });
794803
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.10" }, { capabilities: {} });
794801
794804
  const [clientTransport, serverTransport] = createLinkedTransportPair();
794802
794805
  try {
794803
794806
  await server2.connect(serverTransport);
@@ -794808,7 +794811,7 @@ async function createUrMcp2026Runtime(options4) {
794808
794811
  }
794809
794812
  const runtime2 = new Mcp2026Runtime({
794810
794813
  cwd: options4.cwd,
794811
- version: "1.68.9",
794814
+ version: "1.68.10",
794812
794815
  backend: {
794813
794816
  listTools: async () => {
794814
794817
  const listed = await client2.listTools();
@@ -796941,7 +796944,7 @@ async function update() {
796941
796944
  logEvent("tengu_update_check", {});
796942
796945
  const diagnostic2 = await getDoctorDiagnostic();
796943
796946
  const result = await checkUpgradeStatus({
796944
- currentVersion: "1.68.9",
796947
+ currentVersion: "1.68.10",
796945
796948
  packageName: UR_AGENT_PACKAGE_NAME,
796946
796949
  installationType: diagnostic2.installationType,
796947
796950
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -798257,7 +798260,7 @@ ${customInstructions}` : customInstructions;
798257
798260
  }
798258
798261
  }
798259
798262
  logForDiagnosticsNoPII("info", "started", {
798260
- version: "1.68.9",
798263
+ version: "1.68.10",
798261
798264
  is_native_binary: isInBundledMode()
798262
798265
  });
798263
798266
  registerCleanup(async () => {
@@ -799043,7 +799046,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
799043
799046
  pendingHookMessages
799044
799047
  }, renderAndRun);
799045
799048
  }
799046
- }).version("1.68.9 (UR-Nexus)", "-v, --version", "Output the version number");
799049
+ }).version("1.68.10 (UR-Nexus)", "-v, --version", "Output the version number");
799047
799050
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
799048
799051
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
799049
799052
  if (canUserConfigureAdvisor()) {
@@ -800102,7 +800105,7 @@ if (false) {}
800102
800105
  async function main2() {
800103
800106
  const args = process.argv.slice(2);
800104
800107
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
800105
- console.log(`${"1.68.9"} (UR-Nexus)`);
800108
+ console.log(`${"1.68.10"} (UR-Nexus)`);
800106
800109
  return;
800107
800110
  }
800108
800111
  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.9 (UR-Nexus)"
22
+ # expected for this release: "1.68.10 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.68.9</p>
48
+ <p class="eyebrow">Version 1.68.10</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.68.9"
10
+ version = "1.68.10"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.68.9",
5
+ "version": "1.68.10",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.68.9",
3
+ "version": "1.68.10",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",
@@ -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.9.
3
+ > Audited against the executable source and tests for `ur-agent` v1.68.10.
4
4
  > Command, tool, flag, provider, and setting claims are checked against the
5
5
  > implementation rather than copied from product prose. Release validation
6
6
  > keeps this version synchronized and packages the complete `technical/`