ur-agent 1.13.6 → 1.13.7

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,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.7
4
+
5
+ ### Added
6
+ - **Explicit update notice.** Interactive sessions now show
7
+ `Update available: <current> -> <latest>` when a newer published package is
8
+ detected, before auto-update starts or when manual action is needed.
9
+
10
+ ### Changed
11
+ - Normalized `ur update` output across npm, Homebrew, winget, and apk paths so
12
+ all update notices use the same current-to-latest version wording.
13
+
14
+ ### Verified
15
+ - Rebuilt `dist/cli.js` at 1.13.7 and verified the update notice helper tests,
16
+ typecheck, full test suite, release check, package check, secret scan, and npm
17
+ publish dry-run.
18
+
3
19
  ## 1.13.6
4
20
 
5
21
  ### Added
package/dist/cli.js CHANGED
@@ -12685,7 +12685,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
12685
12685
  function formatA2AAgentCard(options = {}, pretty = true) {
12686
12686
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
12687
12687
  }
12688
- var urVersion = "1.13.6", coverage, priorityRoadmap;
12688
+ var urVersion = "1.13.7", coverage, priorityRoadmap;
12689
12689
  var init_trends = __esm(() => {
12690
12690
  coverage = [
12691
12691
  {
@@ -70342,7 +70342,7 @@ var init_auth = __esm(() => {
70342
70342
 
70343
70343
  // src/utils/userAgent.ts
70344
70344
  function getURCodeUserAgent() {
70345
- return `ur/${"1.13.6"}`;
70345
+ return `ur/${"1.13.7"}`;
70346
70346
  }
70347
70347
 
70348
70348
  // src/utils/workloadContext.ts
@@ -70364,7 +70364,7 @@ function getUserAgent() {
70364
70364
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
70365
70365
  const workload = getWorkload();
70366
70366
  const workloadSuffix = workload ? `, workload/${workload}` : "";
70367
- return `ur-cli/${"1.13.6"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
70367
+ return `ur-cli/${"1.13.7"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
70368
70368
  }
70369
70369
  function getMCPUserAgent() {
70370
70370
  const parts = [];
@@ -70378,7 +70378,7 @@ function getMCPUserAgent() {
70378
70378
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
70379
70379
  }
70380
70380
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
70381
- return `ur/${"1.13.6"}${suffix}`;
70381
+ return `ur/${"1.13.7"}${suffix}`;
70382
70382
  }
70383
70383
  function getWebFetchUserAgent() {
70384
70384
  return `UR-User (${getURCodeUserAgent()})`;
@@ -70516,7 +70516,7 @@ var init_user = __esm(() => {
70516
70516
  deviceId,
70517
70517
  sessionId: getSessionId(),
70518
70518
  email: getEmail(),
70519
- appVersion: "1.13.6",
70519
+ appVersion: "1.13.7",
70520
70520
  platform: getHostPlatformForAnalytics(),
70521
70521
  organizationUuid,
70522
70522
  accountUuid,
@@ -76293,7 +76293,7 @@ var init_metadata = __esm(() => {
76293
76293
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
76294
76294
  WHITESPACE_REGEX = /\s+/;
76295
76295
  getVersionBase = memoize_default(() => {
76296
- const match = "1.13.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76296
+ const match = "1.13.7".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76297
76297
  return match ? match[0] : undefined;
76298
76298
  });
76299
76299
  buildEnvContext = memoize_default(async () => {
@@ -76333,7 +76333,7 @@ var init_metadata = __esm(() => {
76333
76333
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
76334
76334
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
76335
76335
  isURAiAuth: isURAISubscriber2(),
76336
- version: "1.13.6",
76336
+ version: "1.13.7",
76337
76337
  versionBase: getVersionBase(),
76338
76338
  buildTime: "",
76339
76339
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
@@ -77003,7 +77003,7 @@ function initialize1PEventLogging() {
77003
77003
  const platform2 = getPlatform();
77004
77004
  const attributes = {
77005
77005
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
77006
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.13.6"
77006
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.13.7"
77007
77007
  };
77008
77008
  if (platform2 === "wsl") {
77009
77009
  const wslVersion = getWslVersion();
@@ -77030,7 +77030,7 @@ function initialize1PEventLogging() {
77030
77030
  })
77031
77031
  ]
77032
77032
  });
77033
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.13.6");
77033
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.13.7");
77034
77034
  }
77035
77035
  async function reinitialize1PEventLoggingIfConfigChanged() {
77036
77036
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -78894,7 +78894,7 @@ function getAttributionHeader(fingerprint) {
78894
78894
  if (!isAttributionHeaderEnabled()) {
78895
78895
  return "";
78896
78896
  }
78897
- const version2 = `${"1.13.6"}.${fingerprint}`;
78897
+ const version2 = `${"1.13.7"}.${fingerprint}`;
78898
78898
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
78899
78899
  const cch = "";
78900
78900
  const workload = getWorkload();
@@ -185522,7 +185522,7 @@ function getTelemetryAttributes() {
185522
185522
  attributes["session.id"] = sessionId;
185523
185523
  }
185524
185524
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
185525
- attributes["app.version"] = "1.13.6";
185525
+ attributes["app.version"] = "1.13.7";
185526
185526
  }
185527
185527
  const oauthAccount = getOauthAccountInfo();
185528
185528
  if (oauthAccount) {
@@ -221311,7 +221311,7 @@ function getInstallationEnv() {
221311
221311
  return;
221312
221312
  }
221313
221313
  function getURCodeVersion() {
221314
- return "1.13.6";
221314
+ return "1.13.7";
221315
221315
  }
221316
221316
  async function getInstalledVSCodeExtensionVersion(command) {
221317
221317
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -224039,7 +224039,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
224039
224039
  const client2 = new Client({
224040
224040
  name: "ur",
224041
224041
  title: "UR",
224042
- version: "1.13.6",
224042
+ version: "1.13.7",
224043
224043
  description: "URHQ's agentic coding tool",
224044
224044
  websiteUrl: PRODUCT_URL
224045
224045
  }, {
@@ -224393,7 +224393,7 @@ var init_client5 = __esm(() => {
224393
224393
  const client2 = new Client({
224394
224394
  name: "ur",
224395
224395
  title: "UR",
224396
- version: "1.13.6",
224396
+ version: "1.13.7",
224397
224397
  description: "URHQ's agentic coding tool",
224398
224398
  websiteUrl: PRODUCT_URL
224399
224399
  }, {
@@ -234110,9 +234110,9 @@ async function assertMinVersion() {
234110
234110
  if (false) {}
234111
234111
  try {
234112
234112
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
234113
- if (versionConfig.minVersion && lt("1.13.6", versionConfig.minVersion)) {
234113
+ if (versionConfig.minVersion && lt("1.13.7", versionConfig.minVersion)) {
234114
234114
  console.error(`
234115
- It looks like your version of UR (${"1.13.6"}) needs an update.
234115
+ It looks like your version of UR (${"1.13.7"}) needs an update.
234116
234116
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
234117
234117
 
234118
234118
  To update, please run:
@@ -234328,7 +234328,7 @@ async function installGlobalPackage(specificVersion) {
234328
234328
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
234329
234329
  logEvent("tengu_auto_updater_lock_contention", {
234330
234330
  pid: process.pid,
234331
- currentVersion: "1.13.6"
234331
+ currentVersion: "1.13.7"
234332
234332
  });
234333
234333
  return "in_progress";
234334
234334
  }
@@ -234337,7 +234337,7 @@ async function installGlobalPackage(specificVersion) {
234337
234337
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
234338
234338
  logError2(new Error("Windows NPM detected in WSL environment"));
234339
234339
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
234340
- currentVersion: "1.13.6"
234340
+ currentVersion: "1.13.7"
234341
234341
  });
234342
234342
  console.error(`
234343
234343
  Error: Windows NPM detected in WSL
@@ -234872,7 +234872,7 @@ function detectLinuxGlobPatternWarnings() {
234872
234872
  }
234873
234873
  async function getDoctorDiagnostic() {
234874
234874
  const installationType = await getCurrentInstallationType();
234875
- const version2 = typeof MACRO !== "undefined" ? "1.13.6" : "unknown";
234875
+ const version2 = typeof MACRO !== "undefined" ? "1.13.7" : "unknown";
234876
234876
  const installationPath = await getInstallationPath();
234877
234877
  const invokedBinary = getInvokedBinary();
234878
234878
  const multipleInstallations = await detectMultipleInstallations();
@@ -235807,8 +235807,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
235807
235807
  const maxVersion = await getMaxVersion();
235808
235808
  if (maxVersion && gt(version2, maxVersion)) {
235809
235809
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
235810
- if (gte("1.13.6", maxVersion)) {
235811
- logForDebugging(`Native installer: current version ${"1.13.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
235810
+ if (gte("1.13.7", maxVersion)) {
235811
+ logForDebugging(`Native installer: current version ${"1.13.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
235812
235812
  logEvent("tengu_native_update_skipped_max_version", {
235813
235813
  latency_ms: Date.now() - startTime,
235814
235814
  max_version: maxVersion,
@@ -235819,7 +235819,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
235819
235819
  version2 = maxVersion;
235820
235820
  }
235821
235821
  }
235822
- if (!forceReinstall && version2 === "1.13.6" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
235822
+ if (!forceReinstall && version2 === "1.13.7" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
235823
235823
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
235824
235824
  logEvent("tengu_native_update_complete", {
235825
235825
  latency_ms: Date.now() - startTime,
@@ -330490,7 +330490,7 @@ function Feedback({
330490
330490
  platform: env3.platform,
330491
330491
  gitRepo: envInfo.isGit,
330492
330492
  terminal: env3.terminal,
330493
- version: "1.13.6",
330493
+ version: "1.13.7",
330494
330494
  transcript: normalizeMessagesForAPI(messages),
330495
330495
  errors: sanitizedErrors,
330496
330496
  lastApiRequest: getLastAPIRequest(),
@@ -330682,7 +330682,7 @@ function Feedback({
330682
330682
  ", ",
330683
330683
  env3.terminal,
330684
330684
  ", v",
330685
- "1.13.6"
330685
+ "1.13.7"
330686
330686
  ]
330687
330687
  }, undefined, true, undefined, this)
330688
330688
  ]
@@ -330788,7 +330788,7 @@ ${sanitizedDescription}
330788
330788
  ` + `**Environment Info**
330789
330789
  ` + `- Platform: ${env3.platform}
330790
330790
  ` + `- Terminal: ${env3.terminal}
330791
- ` + `- Version: ${"1.13.6"}
330791
+ ` + `- Version: ${"1.13.7"}
330792
330792
  ` + `- Feedback ID: ${feedbackId}
330793
330793
  ` + `
330794
330794
  **Errors**
@@ -333898,7 +333898,7 @@ function buildPrimarySection() {
333898
333898
  }, undefined, false, undefined, this);
333899
333899
  return [{
333900
333900
  label: "Version",
333901
- value: "1.13.6"
333901
+ value: "1.13.7"
333902
333902
  }, {
333903
333903
  label: "Session name",
333904
333904
  value: nameValue
@@ -337176,7 +337176,7 @@ function Config({
337176
337176
  }
337177
337177
  }, undefined, false, undefined, this)
337178
337178
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
337179
- currentVersion: "1.13.6",
337179
+ currentVersion: "1.13.7",
337180
337180
  onChoice: (choice) => {
337181
337181
  setShowSubmenu(null);
337182
337182
  setTabsHidden(false);
@@ -337188,7 +337188,7 @@ function Config({
337188
337188
  autoUpdatesChannel: "stable"
337189
337189
  };
337190
337190
  if (choice === "stay") {
337191
- newSettings.minimumVersion = "1.13.6";
337191
+ newSettings.minimumVersion = "1.13.7";
337192
337192
  }
337193
337193
  updateSettingsForSource("userSettings", newSettings);
337194
337194
  setSettingsData((prev_27) => ({
@@ -345258,7 +345258,7 @@ function HelpV2(t0) {
345258
345258
  let t6;
345259
345259
  if ($3[31] !== tabs) {
345260
345260
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
345261
- title: `UR v${"1.13.6"}`,
345261
+ title: `UR v${"1.13.7"}`,
345262
345262
  color: "professionalBlue",
345263
345263
  defaultTab: "general",
345264
345264
  children: tabs
@@ -364861,7 +364861,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
364861
364861
  return [];
364862
364862
  }
364863
364863
  }
364864
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.6") {
364864
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.7") {
364865
364865
  if (process.env.USER_TYPE === "ant") {
364866
364866
  const changelog = "";
364867
364867
  if (changelog) {
@@ -364888,7 +364888,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.6")
364888
364888
  releaseNotes
364889
364889
  };
364890
364890
  }
364891
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.13.6") {
364891
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.13.7") {
364892
364892
  if (process.env.USER_TYPE === "ant") {
364893
364893
  const changelog = "";
364894
364894
  if (changelog) {
@@ -366058,7 +366058,7 @@ function getRecentActivitySync() {
366058
366058
  return cachedActivity;
366059
366059
  }
366060
366060
  function getLogoDisplayData() {
366061
- const version2 = process.env.DEMO_VERSION ?? "1.13.6";
366061
+ const version2 = process.env.DEMO_VERSION ?? "1.13.7";
366062
366062
  const serverUrl = getDirectConnectServerUrl();
366063
366063
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
366064
366064
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -366847,7 +366847,7 @@ function LogoV2() {
366847
366847
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
366848
366848
  t2 = () => {
366849
366849
  const currentConfig = getGlobalConfig();
366850
- if (currentConfig.lastReleaseNotesSeen === "1.13.6") {
366850
+ if (currentConfig.lastReleaseNotesSeen === "1.13.7") {
366851
366851
  return;
366852
366852
  }
366853
366853
  saveGlobalConfig(_temp326);
@@ -367532,12 +367532,12 @@ function LogoV2() {
367532
367532
  return t41;
367533
367533
  }
367534
367534
  function _temp326(current) {
367535
- if (current.lastReleaseNotesSeen === "1.13.6") {
367535
+ if (current.lastReleaseNotesSeen === "1.13.7") {
367536
367536
  return current;
367537
367537
  }
367538
367538
  return {
367539
367539
  ...current,
367540
- lastReleaseNotesSeen: "1.13.6"
367540
+ lastReleaseNotesSeen: "1.13.7"
367541
367541
  };
367542
367542
  }
367543
367543
  function _temp243(s_0) {
@@ -404391,7 +404391,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
404391
404391
  smapsRollup,
404392
404392
  platform: process.platform,
404393
404393
  nodeVersion: process.version,
404394
- ccVersion: "1.13.6"
404394
+ ccVersion: "1.13.7"
404395
404395
  };
404396
404396
  }
404397
404397
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -404977,7 +404977,7 @@ var init_bridge_kick = __esm(() => {
404977
404977
  var call116 = async () => {
404978
404978
  return {
404979
404979
  type: "text",
404980
- value: "1.13.6"
404980
+ value: "1.13.7"
404981
404981
  };
404982
404982
  }, version2, version_default;
404983
404983
  var init_version = __esm(() => {
@@ -414032,7 +414032,7 @@ function generateHtmlReport(data, insights) {
414032
414032
  </html>`;
414033
414033
  }
414034
414034
  function buildExportData(data, insights, facets, remoteStats) {
414035
- const version3 = typeof MACRO !== "undefined" ? "1.13.6" : "unknown";
414035
+ const version3 = typeof MACRO !== "undefined" ? "1.13.7" : "unknown";
414036
414036
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
414037
414037
  const facets_summary = {
414038
414038
  total: facets.size,
@@ -418265,7 +418265,7 @@ var init_sessionStorage = __esm(() => {
418265
418265
  init_settings2();
418266
418266
  init_slowOperations();
418267
418267
  init_uuid();
418268
- VERSION5 = typeof MACRO !== "undefined" ? "1.13.6" : "unknown";
418268
+ VERSION5 = typeof MACRO !== "undefined" ? "1.13.7" : "unknown";
418269
418269
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
418270
418270
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
418271
418271
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -419470,7 +419470,7 @@ var init_filesystem = __esm(() => {
419470
419470
  });
419471
419471
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
419472
419472
  const nonce = randomBytes18(16).toString("hex");
419473
- return join166(getURTempDir(), "bundled-skills", "1.13.6", nonce);
419473
+ return join166(getURTempDir(), "bundled-skills", "1.13.7", nonce);
419474
419474
  });
419475
419475
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
419476
419476
  });
@@ -425501,7 +425501,7 @@ function computeFingerprint(messageText, version3) {
425501
425501
  }
425502
425502
  function computeFingerprintFromMessages(messages) {
425503
425503
  const firstMessageText = extractFirstMessageText(messages);
425504
- return computeFingerprint(firstMessageText, "1.13.6");
425504
+ return computeFingerprint(firstMessageText, "1.13.7");
425505
425505
  }
425506
425506
  var FINGERPRINT_SALT = "59cf53e54c78";
425507
425507
  var init_fingerprint = () => {};
@@ -427367,7 +427367,7 @@ async function sideQuery(opts) {
427367
427367
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
427368
427368
  }
427369
427369
  const messageText = extractFirstUserMessageText(messages);
427370
- const fingerprint = computeFingerprint(messageText, "1.13.6");
427370
+ const fingerprint = computeFingerprint(messageText, "1.13.7");
427371
427371
  const attributionHeader = getAttributionHeader(fingerprint);
427372
427372
  const systemBlocks = [
427373
427373
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -432104,7 +432104,7 @@ function buildSystemInitMessage(inputs) {
432104
432104
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
432105
432105
  apiKeySource: getURHQApiKeyWithSource().source,
432106
432106
  betas: getSdkBetas(),
432107
- ur_version: "1.13.6",
432107
+ ur_version: "1.13.7",
432108
432108
  output_style: outputStyle2,
432109
432109
  agents: inputs.agents.map((agent) => agent.agentType),
432110
432110
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -446732,7 +446732,7 @@ var init_useVoiceEnabled = __esm(() => {
446732
446732
  function getSemverPart(version3) {
446733
446733
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
446734
446734
  }
446735
- function useUpdateNotification(updatedVersion, initialVersion = "1.13.6") {
446735
+ function useUpdateNotification(updatedVersion, initialVersion = "1.13.7") {
446736
446736
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
446737
446737
  if (!updatedVersion) {
446738
446738
  return null;
@@ -446750,6 +446750,15 @@ var init_useUpdateNotification = __esm(() => {
446750
446750
  import_semver13 = __toESM(require_semver3(), 1);
446751
446751
  });
446752
446752
 
446753
+ // src/utils/updateNotice.ts
446754
+ function isUpdateAvailable(currentVersion, latestVersion) {
446755
+ return Boolean(currentVersion && latestVersion && !gte(currentVersion, latestVersion));
446756
+ }
446757
+ function formatUpdateAvailableMessage(currentVersion, latestVersion) {
446758
+ return `Update available: ${currentVersion} -> ${latestVersion}`;
446759
+ }
446760
+ var init_updateNotice = () => {};
446761
+
446753
446762
  // src/components/AutoUpdater.tsx
446754
446763
  function AutoUpdater({
446755
446764
  isUpdating,
@@ -446772,7 +446781,7 @@ function AutoUpdater({
446772
446781
  return;
446773
446782
  }
446774
446783
  if (false) {}
446775
- const currentVersion = "1.13.6";
446784
+ const currentVersion = "1.13.7";
446776
446785
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
446777
446786
  let latestVersion = await getLatestVersion(channel);
446778
446787
  const isDisabled = isAutoUpdaterDisabled();
@@ -446860,10 +446869,13 @@ function AutoUpdater({
446860
446869
  checkForUpdates();
446861
446870
  }, [checkForUpdates]);
446862
446871
  useInterval(checkForUpdates, 30 * 60 * 1000);
446872
+ const hasUpdateAvailable = isUpdateAvailable(versions2.global, versions2.latest);
446873
+ const updateAvailableMessage = hasUpdateAvailable && versions2.global && versions2.latest ? formatUpdateAvailableMessage(versions2.global, versions2.latest) : null;
446874
+ const showUpdateAvailable = !!updateAvailableMessage && autoUpdaterResult?.status !== "success";
446863
446875
  if (!autoUpdaterResult?.version && (!versions2.global || !versions2.latest)) {
446864
446876
  return null;
446865
446877
  }
446866
- if (!autoUpdaterResult?.version && !isUpdating) {
446878
+ if (!autoUpdaterResult?.version && !isUpdating && !showUpdateAvailable) {
446867
446879
  return null;
446868
446880
  }
446869
446881
  return /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedBox_default, {
@@ -446881,6 +446893,18 @@ function AutoUpdater({
446881
446893
  versions2.latest
446882
446894
  ]
446883
446895
  }, undefined, true, undefined, this),
446896
+ showUpdateAvailable && /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
446897
+ color: "warning",
446898
+ wrap: "truncate",
446899
+ children: [
446900
+ updateAvailableMessage,
446901
+ isUpdating ? " \xB7 Installing..." : " \xB7 Run ",
446902
+ !isUpdating && /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
446903
+ bold: true,
446904
+ children: "ur update"
446905
+ }, undefined, false, undefined, this)
446906
+ ]
446907
+ }, undefined, true, undefined, this),
446884
446908
  isUpdating ? /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(jsx_dev_runtime399.Fragment, {
446885
446909
  children: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedBox_default, {
446886
446910
  children: /* @__PURE__ */ jsx_dev_runtime399.jsxDEV(ThemedText, {
@@ -446928,6 +446952,7 @@ var init_AutoUpdater = __esm(() => {
446928
446952
  init_localInstaller();
446929
446953
  init_nativeInstaller();
446930
446954
  init_settings2();
446955
+ init_updateNotice();
446931
446956
  React127 = __toESM(require_react(), 1);
446932
446957
  import_react225 = __toESM(require_react(), 1);
446933
446958
  jsx_dev_runtime399 = __toESM(require_jsx_dev_runtime(), 1);
@@ -446985,12 +447010,12 @@ function NativeAutoUpdater({
446985
447010
  logEvent("tengu_native_auto_updater_start", {});
446986
447011
  try {
446987
447012
  const maxVersion = await getMaxVersion();
446988
- if (maxVersion && gt("1.13.6", maxVersion)) {
447013
+ if (maxVersion && gt("1.13.7", maxVersion)) {
446989
447014
  const msg = await getMaxVersionMessage();
446990
447015
  setMaxVersionIssue(msg ?? "affects your version");
446991
447016
  }
446992
447017
  const result = await installLatest(channel);
446993
- const currentVersion = "1.13.6";
447018
+ const currentVersion = "1.13.7";
446994
447019
  const latencyMs = Date.now() - startTime;
446995
447020
  if (result.lockFailed) {
446996
447021
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -447127,17 +447152,17 @@ function PackageManagerAutoUpdater(t0) {
447127
447152
  const maxVersion = await getMaxVersion();
447128
447153
  if (maxVersion && latest && gt(latest, maxVersion)) {
447129
447154
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
447130
- if (gte("1.13.6", maxVersion)) {
447131
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.13.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
447155
+ if (gte("1.13.7", maxVersion)) {
447156
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.13.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
447132
447157
  setUpdateAvailable(false);
447133
447158
  return;
447134
447159
  }
447135
447160
  latest = maxVersion;
447136
447161
  }
447137
- const hasUpdate = latest && !gte("1.13.6", latest) && !shouldSkipVersion(latest);
447162
+ const hasUpdate = latest && !gte("1.13.7", latest) && !shouldSkipVersion(latest);
447138
447163
  setUpdateAvailable(!!hasUpdate);
447139
447164
  if (hasUpdate) {
447140
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.13.6"} -> ${latest}`);
447165
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.13.7"} -> ${latest}`);
447141
447166
  }
447142
447167
  };
447143
447168
  $3[0] = t1;
@@ -447171,7 +447196,7 @@ function PackageManagerAutoUpdater(t0) {
447171
447196
  wrap: "truncate",
447172
447197
  children: [
447173
447198
  "currentVersion: ",
447174
- "1.13.6"
447199
+ "1.13.7"
447175
447200
  ]
447176
447201
  }, undefined, true, undefined, this);
447177
447202
  $3[3] = verbose;
@@ -459533,7 +459558,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
459533
459558
  project_dir: getOriginalCwd(),
459534
459559
  added_dirs: addedDirs
459535
459560
  },
459536
- version: "1.13.6",
459561
+ version: "1.13.7",
459537
459562
  output_style: {
459538
459563
  name: outputStyleName
459539
459564
  },
@@ -471029,7 +471054,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
471029
471054
  } catch {}
471030
471055
  const data = {
471031
471056
  trigger: trigger2,
471032
- version: "1.13.6",
471057
+ version: "1.13.7",
471033
471058
  platform: process.platform,
471034
471059
  transcript,
471035
471060
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -482944,7 +482969,7 @@ function WelcomeV2() {
482944
482969
  dimColor: true,
482945
482970
  children: [
482946
482971
  "v",
482947
- "1.13.6"
482972
+ "1.13.7"
482948
482973
  ]
482949
482974
  }, undefined, true, undefined, this)
482950
482975
  ]
@@ -484204,7 +484229,7 @@ function completeOnboarding() {
484204
484229
  saveGlobalConfig((current) => ({
484205
484230
  ...current,
484206
484231
  hasCompletedOnboarding: true,
484207
- lastOnboardingVersion: "1.13.6"
484232
+ lastOnboardingVersion: "1.13.7"
484208
484233
  }));
484209
484234
  }
484210
484235
  function showDialog(root2, renderer) {
@@ -488664,7 +488689,7 @@ function appendToLog(path24, message) {
488664
488689
  cwd: getFsImplementation().cwd(),
488665
488690
  userType: process.env.USER_TYPE,
488666
488691
  sessionId: getSessionId(),
488667
- version: "1.13.6"
488692
+ version: "1.13.7"
488668
488693
  };
488669
488694
  getLogWriter(path24).write(messageWithTimestamp);
488670
488695
  }
@@ -492690,8 +492715,8 @@ async function getEnvLessBridgeConfig() {
492690
492715
  }
492691
492716
  async function checkEnvLessBridgeMinVersion() {
492692
492717
  const cfg = await getEnvLessBridgeConfig();
492693
- if (cfg.min_version && lt("1.13.6", cfg.min_version)) {
492694
- return `Your version of UR (${"1.13.6"}) is too old for Remote Control.
492718
+ if (cfg.min_version && lt("1.13.7", cfg.min_version)) {
492719
+ return `Your version of UR (${"1.13.7"}) is too old for Remote Control.
492695
492720
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
492696
492721
  }
492697
492722
  return null;
@@ -493165,7 +493190,7 @@ async function initBridgeCore(params) {
493165
493190
  const rawApi = createBridgeApiClient({
493166
493191
  baseUrl,
493167
493192
  getAccessToken,
493168
- runnerVersion: "1.13.6",
493193
+ runnerVersion: "1.13.7",
493169
493194
  onDebug: logForDebugging,
493170
493195
  onAuth401,
493171
493196
  getTrustedDeviceToken
@@ -498830,7 +498855,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
498830
498855
  setCwd(cwd3);
498831
498856
  const server = new Server({
498832
498857
  name: "ur/tengu",
498833
- version: "1.13.6"
498858
+ version: "1.13.7"
498834
498859
  }, {
498835
498860
  capabilities: {
498836
498861
  tools: {}
@@ -500441,7 +500466,7 @@ __export(exports_update, {
500441
500466
  });
500442
500467
  async function update() {
500443
500468
  logEvent("tengu_update_check", {});
500444
- writeToStdout(`Current version: ${"1.13.6"}
500469
+ writeToStdout(`Current version: ${"1.13.7"}
500445
500470
  `);
500446
500471
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
500447
500472
  writeToStdout(`Checking for updates to ${channel} version...
@@ -500516,8 +500541,8 @@ async function update() {
500516
500541
  writeToStdout(`UR is managed by Homebrew.
500517
500542
  `);
500518
500543
  const latest = await getLatestVersion(channel);
500519
- if (latest && !gte("1.13.6", latest)) {
500520
- writeToStdout(`Update available: ${"1.13.6"} \u2192 ${latest}
500544
+ if (latest && !gte("1.13.7", latest)) {
500545
+ writeToStdout(`${formatUpdateAvailableMessage("1.13.7", latest)}
500521
500546
  `);
500522
500547
  writeToStdout(`
500523
500548
  `);
@@ -500533,8 +500558,8 @@ async function update() {
500533
500558
  writeToStdout(`UR is managed by winget.
500534
500559
  `);
500535
500560
  const latest = await getLatestVersion(channel);
500536
- if (latest && !gte("1.13.6", latest)) {
500537
- writeToStdout(`Update available: ${"1.13.6"} \u2192 ${latest}
500561
+ if (latest && !gte("1.13.7", latest)) {
500562
+ writeToStdout(`${formatUpdateAvailableMessage("1.13.7", latest)}
500538
500563
  `);
500539
500564
  writeToStdout(`
500540
500565
  `);
@@ -500550,8 +500575,8 @@ async function update() {
500550
500575
  writeToStdout(`UR is managed by apk.
500551
500576
  `);
500552
500577
  const latest = await getLatestVersion(channel);
500553
- if (latest && !gte("1.13.6", latest)) {
500554
- writeToStdout(`Update available: ${"1.13.6"} \u2192 ${latest}
500578
+ if (latest && !gte("1.13.7", latest)) {
500579
+ writeToStdout(`${formatUpdateAvailableMessage("1.13.7", latest)}
500555
500580
  `);
500556
500581
  writeToStdout(`
500557
500582
  `);
@@ -500616,11 +500641,11 @@ async function update() {
500616
500641
  `);
500617
500642
  await gracefulShutdown(1);
500618
500643
  }
500619
- if (result.latestVersion === "1.13.6") {
500620
- writeToStdout(source_default.green(`UR is up to date (${"1.13.6"})`) + `
500644
+ if (result.latestVersion === "1.13.7") {
500645
+ writeToStdout(source_default.green(`UR is up to date (${"1.13.7"})`) + `
500621
500646
  `);
500622
500647
  } else {
500623
- writeToStdout(source_default.green(`Successfully updated from ${"1.13.6"} to version ${result.latestVersion}`) + `
500648
+ writeToStdout(source_default.green(`Successfully updated from ${"1.13.7"} to version ${result.latestVersion}`) + `
500624
500649
  `);
500625
500650
  await regenerateCompletionCache();
500626
500651
  }
@@ -500680,12 +500705,12 @@ async function update() {
500680
500705
  `);
500681
500706
  await gracefulShutdown(1);
500682
500707
  }
500683
- if (latestVersion === "1.13.6") {
500684
- writeToStdout(source_default.green(`UR is up to date (${"1.13.6"})`) + `
500708
+ if (latestVersion === "1.13.7") {
500709
+ writeToStdout(source_default.green(`UR is up to date (${"1.13.7"})`) + `
500685
500710
  `);
500686
500711
  await gracefulShutdown(0);
500687
500712
  }
500688
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.13.6"})
500713
+ writeToStdout(`${formatUpdateAvailableMessage("1.13.7", latestVersion)}
500689
500714
  `);
500690
500715
  writeToStdout(`Installing update...
500691
500716
  `);
@@ -500730,7 +500755,7 @@ async function update() {
500730
500755
  logForDebugging(`update: Installation status: ${status2}`);
500731
500756
  switch (status2) {
500732
500757
  case "success":
500733
- writeToStdout(source_default.green(`Successfully updated from ${"1.13.6"} to version ${latestVersion}`) + `
500758
+ writeToStdout(source_default.green(`Successfully updated from ${"1.13.7"} to version ${latestVersion}`) + `
500734
500759
  `);
500735
500760
  await regenerateCompletionCache();
500736
500761
  break;
@@ -500787,6 +500812,7 @@ var init_update = __esm(() => {
500787
500812
  init_nativeInstaller();
500788
500813
  init_packageManagers();
500789
500814
  init_settings2();
500815
+ init_updateNotice();
500790
500816
  });
500791
500817
 
500792
500818
  // src/main.tsx
@@ -501980,7 +502006,7 @@ ${customInstructions}` : customInstructions;
501980
502006
  }
501981
502007
  }
501982
502008
  logForDiagnosticsNoPII("info", "started", {
501983
- version: "1.13.6",
502009
+ version: "1.13.7",
501984
502010
  is_native_binary: isInBundledMode()
501985
502011
  });
501986
502012
  registerCleanup(async () => {
@@ -502764,7 +502790,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
502764
502790
  pendingHookMessages
502765
502791
  }, renderAndRun);
502766
502792
  }
502767
- }).version("1.13.6 (Ur)", "-v, --version", "Output the version number");
502793
+ }).version("1.13.7 (Ur)", "-v, --version", "Output the version number");
502768
502794
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
502769
502795
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
502770
502796
  if (canUserConfigureAdvisor()) {
@@ -503454,7 +503480,7 @@ if (false) {}
503454
503480
  async function main2() {
503455
503481
  const args = process.argv.slice(2);
503456
503482
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
503457
- console.log(`${"1.13.6"} (Ur)`);
503483
+ console.log(`${"1.13.7"} (Ur)`);
503458
503484
  return;
503459
503485
  }
503460
503486
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
package/docs/USAGE.md CHANGED
@@ -87,6 +87,9 @@ UR includes slash commands and CLI subcommands for common workflows:
87
87
  - `ur doctor` to inspect CLI health
88
88
  - `ur update` or `ur upgrade` to check for updates
89
89
 
90
+ Interactive sessions also check the published package version and show
91
+ `Update available: <current> -> <latest>` when a newer release is available.
92
+
90
93
  Run each command with `--help` for exact flags.
91
94
 
92
95
  ## Permissions
@@ -17,7 +17,7 @@ You need:
17
17
 
18
18
  ```sh
19
19
  ur --version
20
- # expected: 1.13.6 (Ur)
20
+ # expected: 1.13.7 (Ur)
21
21
  ```
22
22
 
23
23
  ## 1. Marketplace tree resolves
@@ -271,7 +271,7 @@ const commands = [
271
271
  name: 'update',
272
272
  category: 'Ops',
273
273
  aliases: ['upgrade'],
274
- summary: 'Check for updates and install if available.',
274
+ summary: 'Check for updates and install if available. Interactive sessions also show an update-available notice when a newer package is published.',
275
275
  examples: ['ur update', 'ur upgrade'],
276
276
  },
277
277
  {
@@ -43,7 +43,7 @@
43
43
  <main id="content" class="content">
44
44
  <header class="topbar">
45
45
  <div>
46
- <p class="eyebrow">Version 1.13.6</p>
46
+ <p class="eyebrow">Version 1.13.7</p>
47
47
  <h1>UR Agent Documentation</h1>
48
48
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR Agent.</p>
49
49
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.13.6",
3
+ "version": "1.13.7",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",