ur-agent 1.50.1 → 1.50.2

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.50.2
4
+
5
+ - Fixed local-provider sessions showing "Not logged in · Run /login" with no
6
+ account to log in to, introduced in 1.50.1. Credential ownership and URHQ
7
+ auth applicability are separate questions: an Ollama session uses the user's
8
+ own local runtime, so it is not third-party, but inference never reaches
9
+ URHQ and no URHQ credential exists to verify. `isURHQAuthEnabled()` now keys
10
+ off a dedicated `usesURHQSubscriptionAuth()` predicate, so only the
11
+ subscription provider — where `/login` is actionable — can report a missing
12
+ key. `/login` and `/logout` stay registered everywhere they are useful.
13
+ - Skipped a keychain and settings read on every session that cannot use URHQ
14
+ auth, by returning before the external-credential lookup instead of folding
15
+ the provider test into the final condition.
16
+
3
17
  ## 1.50.1
4
18
 
5
19
  - Fixed an always-true provider test that silently disabled a large part of the
package/dist/cli.js CHANGED
@@ -73878,6 +73878,7 @@ var require_src6 = __commonJS((exports) => {
73878
73878
  var exports_auth = {};
73879
73879
  __export(exports_auth, {
73880
73880
  validateForceLoginOrg: () => validateForceLoginOrg,
73881
+ usesURHQSubscriptionAuth: () => usesURHQSubscriptionAuth,
73881
73882
  saveOAuthTokensIfNeeded: () => saveOAuthTokensIfNeeded,
73882
73883
  saveApiKey: () => saveApiKey,
73883
73884
  removeApiKey: () => removeApiKey,
@@ -73944,7 +73945,8 @@ function isURHQAuthEnabled() {
73944
73945
  if (process.env.URHQ_UNIX_SOCKET) {
73945
73946
  return !!process.env.UR_CODE_OAUTH_TOKEN;
73946
73947
  }
73947
- const is3P = isUsing3PServices();
73948
+ if (!usesURHQSubscriptionAuth())
73949
+ return false;
73948
73950
  const settings = getSettings_DEPRECATED() || {};
73949
73951
  const apiKeyHelper = settings.apiKeyHelper;
73950
73952
  const hasExternalAuthToken = process.env.URHQ_AUTH_TOKEN || apiKeyHelper || process.env.UR_CODE_API_KEY_FILE_DESCRIPTOR;
@@ -73952,7 +73954,7 @@ function isURHQAuthEnabled() {
73952
73954
  skipRetrievingKeyFromApiKeyHelper: true
73953
73955
  });
73954
73956
  const hasExternalApiKey = apiKeySource === "URHQ_API_KEY" || apiKeySource === "apiKeyHelper";
73955
- const shouldDisableAuth = is3P || hasExternalAuthToken && !isManagedOAuthContext() || hasExternalApiKey && !isManagedOAuthContext();
73957
+ const shouldDisableAuth = hasExternalAuthToken && !isManagedOAuthContext() || hasExternalApiKey && !isManagedOAuthContext();
73956
73958
  return !shouldDisableAuth;
73957
73959
  }
73958
73960
  function getAuthTokenSource() {
@@ -74823,6 +74825,9 @@ function isUsing3PServices() {
74823
74825
  return true;
74824
74826
  return provider.credentialType === "cli-login";
74825
74827
  }
74828
+ function usesURHQSubscriptionAuth() {
74829
+ return getProviderDefinition(getRuntimeProviderId()).credentialType === "subscription-login";
74830
+ }
74826
74831
  function getConfiguredOtelHeadersHelper() {
74827
74832
  const mergedSettings = getSettings_DEPRECATED() || {};
74828
74833
  return mergedSettings.otelHeadersHelper;
@@ -75083,7 +75088,7 @@ var init_auth = __esm(() => {
75083
75088
 
75084
75089
  // src/utils/userAgent.ts
75085
75090
  function getURCodeUserAgent() {
75086
- return `ur/${"1.50.1"}`;
75091
+ return `ur/${"1.50.2"}`;
75087
75092
  }
75088
75093
 
75089
75094
  // src/utils/workloadContext.ts
@@ -75105,7 +75110,7 @@ function getUserAgent() {
75105
75110
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75106
75111
  const workload = getWorkload();
75107
75112
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75108
- return `ur-cli/${"1.50.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75113
+ return `ur-cli/${"1.50.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75109
75114
  }
75110
75115
  function getMCPUserAgent() {
75111
75116
  const parts = [];
@@ -75119,7 +75124,7 @@ function getMCPUserAgent() {
75119
75124
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75120
75125
  }
75121
75126
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75122
- return `ur/${"1.50.1"}${suffix}`;
75127
+ return `ur/${"1.50.2"}${suffix}`;
75123
75128
  }
75124
75129
  function getWebFetchUserAgent() {
75125
75130
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75257,7 +75262,7 @@ var init_user = __esm(() => {
75257
75262
  deviceId,
75258
75263
  sessionId: getSessionId(),
75259
75264
  email: getEmail(),
75260
- appVersion: "1.50.1",
75265
+ appVersion: "1.50.2",
75261
75266
  platform: getHostPlatformForAnalytics(),
75262
75267
  organizationUuid,
75263
75268
  accountUuid,
@@ -83457,7 +83462,7 @@ var init_metadata = __esm(() => {
83457
83462
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83458
83463
  WHITESPACE_REGEX = /\s+/;
83459
83464
  getVersionBase = memoize_default(() => {
83460
- const match = "1.50.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83465
+ const match = "1.50.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83461
83466
  return match ? match[0] : undefined;
83462
83467
  });
83463
83468
  buildEnvContext = memoize_default(async () => {
@@ -83497,7 +83502,7 @@ var init_metadata = __esm(() => {
83497
83502
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83498
83503
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83499
83504
  isURAiAuth: isURAISubscriber(),
83500
- version: "1.50.1",
83505
+ version: "1.50.2",
83501
83506
  versionBase: getVersionBase(),
83502
83507
  buildTime: "",
83503
83508
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84167,7 +84172,7 @@ function initialize1PEventLogging() {
84167
84172
  const platform2 = getPlatform();
84168
84173
  const attributes = {
84169
84174
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84170
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.50.1"
84175
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.50.2"
84171
84176
  };
84172
84177
  if (platform2 === "wsl") {
84173
84178
  const wslVersion = getWslVersion();
@@ -84195,7 +84200,7 @@ function initialize1PEventLogging() {
84195
84200
  })
84196
84201
  ]
84197
84202
  });
84198
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.50.1");
84203
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.50.2");
84199
84204
  }
84200
84205
  async function reinitialize1PEventLoggingIfConfigChanged() {
84201
84206
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94011,7 +94016,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94011
94016
  function formatA2AAgentCard(options = {}, pretty = true) {
94012
94017
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94013
94018
  }
94014
- var urVersion = "1.50.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94019
+ var urVersion = "1.50.2", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94015
94020
  var init_trends = __esm(() => {
94016
94021
  init_a2aCardSignature();
94017
94022
  coverage = [
@@ -96812,7 +96817,7 @@ function getAttributionHeader(fingerprint) {
96812
96817
  if (!isAttributionHeaderEnabled()) {
96813
96818
  return "";
96814
96819
  }
96815
- const version2 = `${"1.50.1"}.${fingerprint}`;
96820
+ const version2 = `${"1.50.2"}.${fingerprint}`;
96816
96821
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96817
96822
  const cch = "";
96818
96823
  const workload = getWorkload();
@@ -154497,7 +154502,7 @@ var init_projectSafety = __esm(() => {
154497
154502
  function getInstruments() {
154498
154503
  if (instruments)
154499
154504
  return instruments;
154500
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.50.1");
154505
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.50.2");
154501
154506
  instruments = {
154502
154507
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154503
154508
  description: "GenAI operation duration.",
@@ -154595,7 +154600,7 @@ function genAiAgentAttributes() {
154595
154600
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154596
154601
  "gen_ai.provider.name": "ur",
154597
154602
  "gen_ai.agent.name": "UR-Nexus",
154598
- "gen_ai.agent.version": "1.50.1"
154603
+ "gen_ai.agent.version": "1.50.2"
154599
154604
  };
154600
154605
  }
154601
154606
  function genAiWorkflowAttributes(workflowName) {
@@ -154611,7 +154616,7 @@ function genAiWorkflowAttributes(workflowName) {
154611
154616
  function startGenAiWorkflowSpan(workflowName) {
154612
154617
  const attributes = genAiWorkflowAttributes(workflowName);
154613
154618
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154614
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.50.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154619
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.50.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154615
154620
  }
154616
154621
  function endGenAiWorkflowSpan(span, options2 = {}) {
154617
154622
  try {
@@ -154649,7 +154654,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154649
154654
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154650
154655
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154651
154656
  }
154652
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.50.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154657
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.50.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154653
154658
  }
154654
154659
  function endGenAiMemorySpan(span, options2 = {}) {
154655
154660
  try {
@@ -206168,7 +206173,7 @@ function getTelemetryAttributes() {
206168
206173
  attributes["session.id"] = sessionId;
206169
206174
  }
206170
206175
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206171
- attributes["app.version"] = "1.50.1";
206176
+ attributes["app.version"] = "1.50.2";
206172
206177
  }
206173
206178
  const oauthAccount = getOauthAccountInfo();
206174
206179
  if (oauthAccount) {
@@ -252419,7 +252424,7 @@ function getInstallationEnv() {
252419
252424
  return;
252420
252425
  }
252421
252426
  function getURCodeVersion() {
252422
- return "1.50.1";
252427
+ return "1.50.2";
252423
252428
  }
252424
252429
  async function getInstalledVSCodeExtensionVersion(command) {
252425
252430
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -259750,7 +259755,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
259750
259755
  const client2 = new Client({
259751
259756
  name: "ur",
259752
259757
  title: "UR",
259753
- version: "1.50.1",
259758
+ version: "1.50.2",
259754
259759
  description: "UR-Nexus autonomous engineering workflow engine",
259755
259760
  websiteUrl: PRODUCT_URL
259756
259761
  }, {
@@ -260110,7 +260115,7 @@ var init_client5 = __esm(() => {
260110
260115
  const client2 = new Client({
260111
260116
  name: "ur",
260112
260117
  title: "UR",
260113
- version: "1.50.1",
260118
+ version: "1.50.2",
260114
260119
  description: "UR-Nexus autonomous engineering workflow engine",
260115
260120
  websiteUrl: PRODUCT_URL
260116
260121
  }, {
@@ -272711,7 +272716,7 @@ async function createRuntime() {
272711
272716
  bootstrapTelemetry();
272712
272717
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
272713
272718
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
272714
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.50.1"
272719
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.50.2"
272715
272720
  }));
272716
272721
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
272717
272722
  resource,
@@ -272744,11 +272749,11 @@ async function createRuntime() {
272744
272749
  setMeterProvider(meterProvider);
272745
272750
  setLoggerProvider(loggerProvider);
272746
272751
  if (meterProvider) {
272747
- const meter = meterProvider.getMeter("ur-agent", "1.50.1");
272752
+ const meter = meterProvider.getMeter("ur-agent", "1.50.2");
272748
272753
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
272749
272754
  }
272750
272755
  if (loggerProvider) {
272751
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.50.1"));
272756
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.50.2"));
272752
272757
  }
272753
272758
  if (!cleanupRegistered2) {
272754
272759
  cleanupRegistered2 = true;
@@ -273410,9 +273415,9 @@ async function assertMinVersion() {
273410
273415
  if (false) {}
273411
273416
  try {
273412
273417
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
273413
- if (versionConfig.minVersion && lt("1.50.1", versionConfig.minVersion)) {
273418
+ if (versionConfig.minVersion && lt("1.50.2", versionConfig.minVersion)) {
273414
273419
  console.error(`
273415
- It looks like your version of UR (${"1.50.1"}) needs an update.
273420
+ It looks like your version of UR (${"1.50.2"}) needs an update.
273416
273421
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
273417
273422
 
273418
273423
  To update, please run:
@@ -273628,7 +273633,7 @@ async function installGlobalPackage(specificVersion) {
273628
273633
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
273629
273634
  logEvent("tengu_auto_updater_lock_contention", {
273630
273635
  pid: process.pid,
273631
- currentVersion: "1.50.1"
273636
+ currentVersion: "1.50.2"
273632
273637
  });
273633
273638
  return "in_progress";
273634
273639
  }
@@ -273637,7 +273642,7 @@ async function installGlobalPackage(specificVersion) {
273637
273642
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
273638
273643
  logError2(new Error("Windows NPM detected in WSL environment"));
273639
273644
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
273640
- currentVersion: "1.50.1"
273645
+ currentVersion: "1.50.2"
273641
273646
  });
273642
273647
  console.error(`
273643
273648
  Error: Windows NPM detected in WSL
@@ -274172,7 +274177,7 @@ function detectLinuxGlobPatternWarnings() {
274172
274177
  }
274173
274178
  async function getDoctorDiagnostic() {
274174
274179
  const installationType = await getCurrentInstallationType();
274175
- const version2 = typeof MACRO !== "undefined" ? "1.50.1" : "unknown";
274180
+ const version2 = typeof MACRO !== "undefined" ? "1.50.2" : "unknown";
274176
274181
  const installationPath = await getInstallationPath();
274177
274182
  const invokedBinary = getInvokedBinary();
274178
274183
  const multipleInstallations = await detectMultipleInstallations();
@@ -275107,8 +275112,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
275107
275112
  const maxVersion = await getMaxVersion();
275108
275113
  if (maxVersion && gt(version2, maxVersion)) {
275109
275114
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
275110
- if (gte("1.50.1", maxVersion)) {
275111
- logForDebugging(`Native installer: current version ${"1.50.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
275115
+ if (gte("1.50.2", maxVersion)) {
275116
+ logForDebugging(`Native installer: current version ${"1.50.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
275112
275117
  logEvent("tengu_native_update_skipped_max_version", {
275113
275118
  latency_ms: Date.now() - startTime,
275114
275119
  max_version: maxVersion,
@@ -275119,7 +275124,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
275119
275124
  version2 = maxVersion;
275120
275125
  }
275121
275126
  }
275122
- if (!forceReinstall && version2 === "1.50.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
275127
+ if (!forceReinstall && version2 === "1.50.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
275123
275128
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
275124
275129
  logEvent("tengu_native_update_complete", {
275125
275130
  latency_ms: Date.now() - startTime,
@@ -344912,7 +344917,7 @@ function isAnyTracingEnabled() {
344912
344917
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
344913
344918
  }
344914
344919
  function getTracer() {
344915
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.50.1");
344920
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.50.2");
344916
344921
  }
344917
344922
  function createSpanAttributes(spanType, customAttributes = {}) {
344918
344923
  const baseAttributes = getTelemetryAttributes();
@@ -374006,7 +374011,7 @@ function Feedback({
374006
374011
  platform: env2.platform,
374007
374012
  gitRepo: envInfo.isGit,
374008
374013
  terminal: env2.terminal,
374009
- version: "1.50.1",
374014
+ version: "1.50.2",
374010
374015
  transcript: normalizeMessagesForAPI(messages),
374011
374016
  errors: sanitizedErrors,
374012
374017
  lastApiRequest: getLastAPIRequest(),
@@ -374198,7 +374203,7 @@ function Feedback({
374198
374203
  ", ",
374199
374204
  env2.terminal,
374200
374205
  ", v",
374201
- "1.50.1"
374206
+ "1.50.2"
374202
374207
  ]
374203
374208
  }, undefined, true, undefined, this)
374204
374209
  ]
@@ -374304,7 +374309,7 @@ ${sanitizedDescription}
374304
374309
  ` + `**Environment Info**
374305
374310
  ` + `- Platform: ${env2.platform}
374306
374311
  ` + `- Terminal: ${env2.terminal}
374307
- ` + `- Version: ${"1.50.1"}
374312
+ ` + `- Version: ${"1.50.2"}
374308
374313
  ` + `- Feedback ID: ${feedbackId}
374309
374314
  ` + `
374310
374315
  **Errors**
@@ -377415,7 +377420,7 @@ function buildPrimarySection() {
377415
377420
  }, undefined, false, undefined, this);
377416
377421
  return [{
377417
377422
  label: "Version",
377418
- value: "1.50.1"
377423
+ value: "1.50.2"
377419
377424
  }, {
377420
377425
  label: "Session name",
377421
377426
  value: nameValue
@@ -380745,7 +380750,7 @@ function Config({
380745
380750
  }
380746
380751
  }, undefined, false, undefined, this)
380747
380752
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
380748
- currentVersion: "1.50.1",
380753
+ currentVersion: "1.50.2",
380749
380754
  onChoice: (choice) => {
380750
380755
  setShowSubmenu(null);
380751
380756
  setTabsHidden(false);
@@ -380757,7 +380762,7 @@ function Config({
380757
380762
  autoUpdatesChannel: "stable"
380758
380763
  };
380759
380764
  if (choice === "stay") {
380760
- newSettings.minimumVersion = "1.50.1";
380765
+ newSettings.minimumVersion = "1.50.2";
380761
380766
  }
380762
380767
  updateSettingsForSource("userSettings", newSettings);
380763
380768
  setSettingsData((prev_27) => ({
@@ -388827,7 +388832,7 @@ function HelpV2(t0) {
388827
388832
  let t6;
388828
388833
  if ($2[31] !== tabs) {
388829
388834
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
388830
- title: `UR v${"1.50.1"}`,
388835
+ title: `UR v${"1.50.2"}`,
388831
388836
  color: "professionalBlue",
388832
388837
  defaultTab: "general",
388833
388838
  children: tabs
@@ -389744,7 +389749,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
389744
389749
  async function handleInitialize(options2) {
389745
389750
  return {
389746
389751
  name: "UR",
389747
- version: "1.50.1",
389752
+ version: "1.50.2",
389748
389753
  protocolVersion: "0.1.0",
389749
389754
  workspaceRoot: options2.cwd,
389750
389755
  capabilities: {
@@ -393396,7 +393401,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
393396
393401
  if (spec.name !== specName) {
393397
393402
  throw new Error("Agentic CI workflow spec name does not match");
393398
393403
  }
393399
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.50.1" : "1.50.1");
393404
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.50.2" : "1.50.2");
393400
393405
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
393401
393406
  throw new Error("invalid ur-agent package version");
393402
393407
  }
@@ -393822,7 +393827,7 @@ jobs:
393822
393827
  var init_github_app = __esm(() => {
393823
393828
  init_agenticCi();
393824
393829
  import_yaml3 = __toESM(require_dist4(), 1);
393825
- urVersion2 = typeof MACRO !== "undefined" ? "1.50.1" : "1.50.1";
393830
+ urVersion2 = typeof MACRO !== "undefined" ? "1.50.2" : "1.50.2";
393826
393831
  WORKFLOW_CONTENT = compileAgenticCiWorkflow("default", {
393827
393832
  packageVersion: urVersion2
393828
393833
  });
@@ -411820,7 +411825,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
411820
411825
  return [];
411821
411826
  }
411822
411827
  }
411823
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.50.1") {
411828
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.50.2") {
411824
411829
  if (process.env.USER_TYPE === "ant") {
411825
411830
  const changelog = "";
411826
411831
  if (changelog) {
@@ -411847,7 +411852,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.50.1")
411847
411852
  releaseNotes
411848
411853
  };
411849
411854
  }
411850
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.50.1") {
411855
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.50.2") {
411851
411856
  if (process.env.USER_TYPE === "ant") {
411852
411857
  const changelog = "";
411853
411858
  if (changelog) {
@@ -414704,7 +414709,7 @@ function getRecentActivitySync() {
414704
414709
  return cachedActivity;
414705
414710
  }
414706
414711
  function getLogoDisplayData() {
414707
- const version2 = process.env.DEMO_VERSION ?? "1.50.1";
414712
+ const version2 = process.env.DEMO_VERSION ?? "1.50.2";
414708
414713
  const serverUrl = getDirectConnectServerUrl();
414709
414714
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
414710
414715
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -415588,7 +415593,7 @@ function LogoV2() {
415588
415593
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
415589
415594
  t2 = () => {
415590
415595
  const currentConfig2 = getGlobalConfig();
415591
- if (currentConfig2.lastReleaseNotesSeen === "1.50.1") {
415596
+ if (currentConfig2.lastReleaseNotesSeen === "1.50.2") {
415592
415597
  return;
415593
415598
  }
415594
415599
  saveGlobalConfig(_temp327);
@@ -416273,12 +416278,12 @@ function LogoV2() {
416273
416278
  return t41;
416274
416279
  }
416275
416280
  function _temp327(current) {
416276
- if (current.lastReleaseNotesSeen === "1.50.1") {
416281
+ if (current.lastReleaseNotesSeen === "1.50.2") {
416277
416282
  return current;
416278
416283
  }
416279
416284
  return {
416280
416285
  ...current,
416281
- lastReleaseNotesSeen: "1.50.1"
416286
+ lastReleaseNotesSeen: "1.50.2"
416282
416287
  };
416283
416288
  }
416284
416289
  function _temp243(s_0) {
@@ -431774,7 +431779,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
431774
431779
  path: ".github/workflows/ur.yml",
431775
431780
  root: "project",
431776
431781
  content: compileAgenticCiWorkflow("default", {
431777
- packageVersion: typeof MACRO !== "undefined" ? "1.50.1" : "1.50.1"
431782
+ packageVersion: typeof MACRO !== "undefined" ? "1.50.2" : "1.50.2"
431778
431783
  })
431779
431784
  },
431780
431785
  {
@@ -431837,7 +431842,7 @@ function value(tokens, flag) {
431837
431842
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
431838
431843
  }
431839
431844
  function cliVersion() {
431840
- return typeof MACRO !== "undefined" ? "1.50.1" : "1.50.1";
431845
+ return typeof MACRO !== "undefined" ? "1.50.2" : "1.50.2";
431841
431846
  }
431842
431847
  function workflowPath(cwd2) {
431843
431848
  return join155(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -437693,7 +437698,7 @@ function createAcpStdioApp(deps) {
437693
437698
  }
437694
437699
  },
437695
437700
  authMethods: [],
437696
- agentInfo: { name: "UR-Nexus", version: "1.50.1" }
437701
+ agentInfo: { name: "UR-Nexus", version: "1.50.2" }
437697
437702
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
437698
437703
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
437699
437704
  await runtime2.announce({
@@ -437790,7 +437795,7 @@ function createAcpStdioAgent(deps) {
437790
437795
  }
437791
437796
  },
437792
437797
  authMethods: [],
437793
- agentInfo: { name: "UR-Nexus", version: "1.50.1" }
437798
+ agentInfo: { name: "UR-Nexus", version: "1.50.2" }
437794
437799
  });
437795
437800
  return;
437796
437801
  case "authenticate":
@@ -645269,7 +645274,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
645269
645274
  smapsRollup,
645270
645275
  platform: process.platform,
645271
645276
  nodeVersion: process.version,
645272
- ccVersion: "1.50.1"
645277
+ ccVersion: "1.50.2"
645273
645278
  };
645274
645279
  }
645275
645280
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -645855,7 +645860,7 @@ var init_bridge_kick = __esm(() => {
645855
645860
  var call145 = async () => {
645856
645861
  return {
645857
645862
  type: "text",
645858
- value: "1.50.1"
645863
+ value: "1.50.2"
645859
645864
  };
645860
645865
  }, version2, version_default;
645861
645866
  var init_version = __esm(() => {
@@ -656973,7 +656978,7 @@ function generateHtmlReport(data, insights) {
656973
656978
  </html>`;
656974
656979
  }
656975
656980
  function buildExportData(data, insights, facets, remoteStats) {
656976
- const version3 = typeof MACRO !== "undefined" ? "1.50.1" : "unknown";
656981
+ const version3 = typeof MACRO !== "undefined" ? "1.50.2" : "unknown";
656977
656982
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
656978
656983
  const facets_summary = {
656979
656984
  total: facets.size,
@@ -661306,7 +661311,7 @@ var init_sessionStorage = __esm(() => {
661306
661311
  init_settings2();
661307
661312
  init_slowOperations();
661308
661313
  init_uuid();
661309
- VERSION7 = typeof MACRO !== "undefined" ? "1.50.1" : "unknown";
661314
+ VERSION7 = typeof MACRO !== "undefined" ? "1.50.2" : "unknown";
661310
661315
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
661311
661316
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
661312
661317
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -662521,7 +662526,7 @@ var init_filesystem = __esm(() => {
662521
662526
  });
662522
662527
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
662523
662528
  const nonce = randomBytes19(16).toString("hex");
662524
- return join224(getURTempDir(), "bundled-skills", "1.50.1", nonce);
662529
+ return join224(getURTempDir(), "bundled-skills", "1.50.2", nonce);
662525
662530
  });
662526
662531
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
662527
662532
  });
@@ -668816,7 +668821,7 @@ function computeFingerprint(messageText2, version3) {
668816
668821
  }
668817
668822
  function computeFingerprintFromMessages(messages) {
668818
668823
  const firstMessageText = extractFirstMessageText(messages);
668819
- return computeFingerprint(firstMessageText, "1.50.1");
668824
+ return computeFingerprint(firstMessageText, "1.50.2");
668820
668825
  }
668821
668826
  var FINGERPRINT_SALT = "59cf53e54c78";
668822
668827
  var init_fingerprint = () => {};
@@ -670712,7 +670717,7 @@ async function sideQuery(opts) {
670712
670717
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
670713
670718
  }
670714
670719
  const messageText2 = extractFirstUserMessageText(messages);
670715
- const fingerprint2 = computeFingerprint(messageText2, "1.50.1");
670720
+ const fingerprint2 = computeFingerprint(messageText2, "1.50.2");
670716
670721
  const attributionHeader = getAttributionHeader(fingerprint2);
670717
670722
  const systemBlocks = [
670718
670723
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -675483,7 +675488,7 @@ function buildSystemInitMessage(inputs) {
675483
675488
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
675484
675489
  apiKeySource: getURHQApiKeyWithSource().source,
675485
675490
  betas: getSdkBetas(),
675486
- ur_version: "1.50.1",
675491
+ ur_version: "1.50.2",
675487
675492
  output_style: outputStyle2,
675488
675493
  agents: inputs.agents.map((agent2) => agent2.agentType),
675489
675494
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -689343,7 +689348,7 @@ var init_useVoiceEnabled = __esm(() => {
689343
689348
  function getSemverPart(version3) {
689344
689349
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
689345
689350
  }
689346
- function useUpdateNotification(updatedVersion, initialVersion = "1.50.1") {
689351
+ function useUpdateNotification(updatedVersion, initialVersion = "1.50.2") {
689347
689352
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
689348
689353
  if (!updatedVersion) {
689349
689354
  return null;
@@ -689392,7 +689397,7 @@ function AutoUpdater({
689392
689397
  return;
689393
689398
  }
689394
689399
  if (false) {}
689395
- const currentVersion = "1.50.1";
689400
+ const currentVersion = "1.50.2";
689396
689401
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
689397
689402
  let latestVersion = await getLatestVersion(channel);
689398
689403
  const isDisabled = isAutoUpdaterDisabled();
@@ -689621,12 +689626,12 @@ function NativeAutoUpdater({
689621
689626
  logEvent("tengu_native_auto_updater_start", {});
689622
689627
  try {
689623
689628
  const maxVersion = await getMaxVersion();
689624
- if (maxVersion && gt("1.50.1", maxVersion)) {
689629
+ if (maxVersion && gt("1.50.2", maxVersion)) {
689625
689630
  const msg = await getMaxVersionMessage();
689626
689631
  setMaxVersionIssue(msg ?? "affects your version");
689627
689632
  }
689628
689633
  const result = await installLatest(channel);
689629
- const currentVersion = "1.50.1";
689634
+ const currentVersion = "1.50.2";
689630
689635
  const latencyMs = Date.now() - startTime;
689631
689636
  if (result.lockFailed) {
689632
689637
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -689763,17 +689768,17 @@ function PackageManagerAutoUpdater(t0) {
689763
689768
  const maxVersion = await getMaxVersion();
689764
689769
  if (maxVersion && latest && gt(latest, maxVersion)) {
689765
689770
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
689766
- if (gte("1.50.1", maxVersion)) {
689767
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.50.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
689771
+ if (gte("1.50.2", maxVersion)) {
689772
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.50.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
689768
689773
  setUpdateAvailable(false);
689769
689774
  return;
689770
689775
  }
689771
689776
  latest = maxVersion;
689772
689777
  }
689773
- const hasUpdate = latest && !gte("1.50.1", latest) && !shouldSkipVersion(latest);
689778
+ const hasUpdate = latest && !gte("1.50.2", latest) && !shouldSkipVersion(latest);
689774
689779
  setUpdateAvailable(!!hasUpdate);
689775
689780
  if (hasUpdate) {
689776
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.50.1"} -> ${latest}`);
689781
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.50.2"} -> ${latest}`);
689777
689782
  }
689778
689783
  };
689779
689784
  $2[0] = t1;
@@ -689807,7 +689812,7 @@ function PackageManagerAutoUpdater(t0) {
689807
689812
  wrap: "truncate",
689808
689813
  children: [
689809
689814
  "currentVersion: ",
689810
- "1.50.1"
689815
+ "1.50.2"
689811
689816
  ]
689812
689817
  }, undefined, true, undefined, this);
689813
689818
  $2[3] = verbose;
@@ -700504,7 +700509,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
700504
700509
  project_dir: getOriginalCwd(),
700505
700510
  added_dirs: addedDirs
700506
700511
  },
700507
- version: "1.50.1",
700512
+ version: "1.50.2",
700508
700513
  output_style: {
700509
700514
  name: outputStyleName
700510
700515
  },
@@ -700587,7 +700592,7 @@ function StatusLineInner({
700587
700592
  const taskValues = Object.values(tasks2);
700588
700593
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
700589
700594
  const defaultStatusLineText = buildDefaultStatusBar({
700590
- version: "1.50.1",
700595
+ version: "1.50.2",
700591
700596
  providerLabel: providerRuntime.providerLabel,
700592
700597
  authMode: providerRuntime.authLabel,
700593
700598
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -712730,7 +712735,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
712730
712735
  } catch {}
712731
712736
  const data = {
712732
712737
  trigger: trigger2,
712733
- version: "1.50.1",
712738
+ version: "1.50.2",
712734
712739
  platform: process.platform,
712735
712740
  transcript,
712736
712741
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -725016,7 +725021,7 @@ function WelcomeV2() {
725016
725021
  dimColor: true,
725017
725022
  children: [
725018
725023
  "v",
725019
- "1.50.1"
725024
+ "1.50.2"
725020
725025
  ]
725021
725026
  }, undefined, true, undefined, this)
725022
725027
  ]
@@ -726276,7 +726281,7 @@ function completeOnboarding() {
726276
726281
  saveGlobalConfig((current) => ({
726277
726282
  ...current,
726278
726283
  hasCompletedOnboarding: true,
726279
- lastOnboardingVersion: "1.50.1"
726284
+ lastOnboardingVersion: "1.50.2"
726280
726285
  }));
726281
726286
  }
726282
726287
  function showDialog(root2, renderer) {
@@ -731320,7 +731325,7 @@ function appendToLog(path24, message) {
731320
731325
  cwd: getFsImplementation().cwd(),
731321
731326
  userType: process.env.USER_TYPE,
731322
731327
  sessionId: getSessionId(),
731323
- version: "1.50.1"
731328
+ version: "1.50.2"
731324
731329
  };
731325
731330
  getLogWriter(path24).write(messageWithTimestamp);
731326
731331
  }
@@ -735479,8 +735484,8 @@ async function getEnvLessBridgeConfig() {
735479
735484
  }
735480
735485
  async function checkEnvLessBridgeMinVersion() {
735481
735486
  const cfg = await getEnvLessBridgeConfig();
735482
- if (cfg.min_version && lt("1.50.1", cfg.min_version)) {
735483
- return `Your version of UR (${"1.50.1"}) is too old for Remote Control.
735487
+ if (cfg.min_version && lt("1.50.2", cfg.min_version)) {
735488
+ return `Your version of UR (${"1.50.2"}) is too old for Remote Control.
735484
735489
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
735485
735490
  }
735486
735491
  return null;
@@ -735954,7 +735959,7 @@ async function initBridgeCore(params) {
735954
735959
  const rawApi = createBridgeApiClient({
735955
735960
  baseUrl,
735956
735961
  getAccessToken,
735957
- runnerVersion: "1.50.1",
735962
+ runnerVersion: "1.50.2",
735958
735963
  onDebug: logForDebugging,
735959
735964
  onAuth401,
735960
735965
  getTrustedDeviceToken
@@ -745423,7 +745428,7 @@ function getAgUiCapabilities() {
745423
745428
  name: "UR-Nexus",
745424
745429
  type: "ur-nexus",
745425
745430
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
745426
- version: "1.50.1",
745431
+ version: "1.50.2",
745427
745432
  provider: "UR",
745428
745433
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
745429
745434
  },
@@ -746563,7 +746568,7 @@ function createMCPServer(cwd4, debug2, verbose) {
746563
746568
  };
746564
746569
  const server2 = new Server({
746565
746570
  name: "ur-nexus",
746566
- version: "1.50.1"
746571
+ version: "1.50.2"
746567
746572
  }, {
746568
746573
  capabilities: {
746569
746574
  tools: {}
@@ -747721,7 +747726,7 @@ function thrownResponse(error40) {
747721
747726
  }
747722
747727
  async function createUrMcp2026Runtime(options4) {
747723
747728
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
747724
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.50.1" }, { capabilities: {} });
747729
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.50.2" }, { capabilities: {} });
747725
747730
  const [clientTransport, serverTransport] = createLinkedTransportPair();
747726
747731
  try {
747727
747732
  await server2.connect(serverTransport);
@@ -747732,7 +747737,7 @@ async function createUrMcp2026Runtime(options4) {
747732
747737
  }
747733
747738
  const runtime2 = new Mcp2026Runtime({
747734
747739
  cwd: options4.cwd,
747735
- version: "1.50.1",
747740
+ version: "1.50.2",
747736
747741
  backend: {
747737
747742
  listTools: async () => {
747738
747743
  const listed = await client2.listTools();
@@ -749865,7 +749870,7 @@ async function update() {
749865
749870
  logEvent("tengu_update_check", {});
749866
749871
  const diagnostic2 = await getDoctorDiagnostic();
749867
749872
  const result = await checkUpgradeStatus({
749868
- currentVersion: "1.50.1",
749873
+ currentVersion: "1.50.2",
749869
749874
  packageName: UR_AGENT_PACKAGE_NAME,
749870
749875
  installationType: diagnostic2.installationType,
749871
749876
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -751181,7 +751186,7 @@ ${customInstructions}` : customInstructions;
751181
751186
  }
751182
751187
  }
751183
751188
  logForDiagnosticsNoPII("info", "started", {
751184
- version: "1.50.1",
751189
+ version: "1.50.2",
751185
751190
  is_native_binary: isInBundledMode()
751186
751191
  });
751187
751192
  registerCleanup(async () => {
@@ -751967,7 +751972,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
751967
751972
  pendingHookMessages
751968
751973
  }, renderAndRun);
751969
751974
  }
751970
- }).version("1.50.1 (UR-Nexus)", "-v, --version", "Output the version number");
751975
+ }).version("1.50.2 (UR-Nexus)", "-v, --version", "Output the version number");
751971
751976
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
751972
751977
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
751973
751978
  if (canUserConfigureAdvisor()) {
@@ -752983,7 +752988,7 @@ if (false) {}
752983
752988
  async function main2() {
752984
752989
  const args = process.argv.slice(2);
752985
752990
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
752986
- console.log(`${"1.50.1"} (UR-Nexus)`);
752991
+ console.log(`${"1.50.2"} (UR-Nexus)`);
752987
752992
  return;
752988
752993
  }
752989
752994
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -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.50.1</p>
48
+ <p class="eyebrow">Version 1.50.2</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.50.1"
10
+ version = "1.50.2"
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.50.1",
5
+ "version": "1.50.2",
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.50.1",
3
+ "version": "1.50.2",
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",