ur-agent 1.16.0 → 1.16.1

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
@@ -5,8 +5,9 @@
5
5
  ### Added
6
6
  - **Network Ollama discovery.** `ur --discover-ollama` scans active local subnets
7
7
  for Ollama servers on port 11434, verifies each via `/api/tags`, and shows an
8
- interactive host picker. The chosen host is persisted to user settings under
9
- `ollama.host` and used for all subsequent Ollama calls.
8
+ interactive host picker. The chosen host is used for that session only; plain
9
+ `ur` continues to default to `localhost:11434` unless `ollama.host` is set
10
+ explicitly.
10
11
  - **`--ollama-host <url>` CLI flag.** Point UR at a specific Ollama server for a
11
12
  single session without writing settings.
12
13
  - **`ollama` settings block** in `~/.ur/settings.json` with `host` and
package/dist/cli.js CHANGED
@@ -16939,7 +16939,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
16939
16939
  function formatA2AAgentCard(options = {}, pretty = true) {
16940
16940
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
16941
16941
  }
16942
- var urVersion = "1.16.0", coverage, priorityRoadmap;
16942
+ var urVersion = "1.16.1", coverage, priorityRoadmap;
16943
16943
  var init_trends = __esm(() => {
16944
16944
  coverage = [
16945
16945
  {
@@ -53397,7 +53397,7 @@ function normalizeOllamaBaseUrl(value) {
53397
53397
  const withScheme = /^https?:\/\//.test(base2) ? base2 : `http://${base2}`;
53398
53398
  return withScheme.replace(/\/api\/?$/, "").replace(/\/$/, "");
53399
53399
  }
53400
- function getOllamaBaseUrl(env3 = process.env) {
53400
+ function getOllamaBaseUrl(env3 = process.env, settings) {
53401
53401
  if (sessionOverride) {
53402
53402
  return normalizeOllamaBaseUrl(sessionOverride);
53403
53403
  }
@@ -53405,7 +53405,7 @@ function getOllamaBaseUrl(env3 = process.env) {
53405
53405
  if (envHost) {
53406
53406
  return normalizeOllamaBaseUrl(envHost);
53407
53407
  }
53408
- const settingsHost = getSettingsForSource("userSettings")?.ollama?.host;
53408
+ const settingsHost = settings === undefined ? getSettingsForSource("userSettings")?.ollama?.host : settings.ollama?.host;
53409
53409
  if (settingsHost) {
53410
53410
  return normalizeOllamaBaseUrl(settingsHost);
53411
53411
  }
@@ -71196,7 +71196,7 @@ var init_auth = __esm(() => {
71196
71196
 
71197
71197
  // src/utils/userAgent.ts
71198
71198
  function getURCodeUserAgent() {
71199
- return `ur/${"1.16.0"}`;
71199
+ return `ur/${"1.16.1"}`;
71200
71200
  }
71201
71201
 
71202
71202
  // src/utils/workloadContext.ts
@@ -71218,7 +71218,7 @@ function getUserAgent() {
71218
71218
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
71219
71219
  const workload = getWorkload();
71220
71220
  const workloadSuffix = workload ? `, workload/${workload}` : "";
71221
- return `ur-cli/${"1.16.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71221
+ return `ur-cli/${"1.16.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71222
71222
  }
71223
71223
  function getMCPUserAgent() {
71224
71224
  const parts = [];
@@ -71232,7 +71232,7 @@ function getMCPUserAgent() {
71232
71232
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
71233
71233
  }
71234
71234
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
71235
- return `ur/${"1.16.0"}${suffix}`;
71235
+ return `ur/${"1.16.1"}${suffix}`;
71236
71236
  }
71237
71237
  function getWebFetchUserAgent() {
71238
71238
  return `UR-User (${getURCodeUserAgent()})`;
@@ -71370,7 +71370,7 @@ var init_user = __esm(() => {
71370
71370
  deviceId,
71371
71371
  sessionId: getSessionId(),
71372
71372
  email: getEmail(),
71373
- appVersion: "1.16.0",
71373
+ appVersion: "1.16.1",
71374
71374
  platform: getHostPlatformForAnalytics(),
71375
71375
  organizationUuid,
71376
71376
  accountUuid,
@@ -77147,7 +77147,7 @@ var init_metadata = __esm(() => {
77147
77147
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
77148
77148
  WHITESPACE_REGEX = /\s+/;
77149
77149
  getVersionBase = memoize_default(() => {
77150
- const match = "1.16.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77150
+ const match = "1.16.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77151
77151
  return match ? match[0] : undefined;
77152
77152
  });
77153
77153
  buildEnvContext = memoize_default(async () => {
@@ -77187,7 +77187,7 @@ var init_metadata = __esm(() => {
77187
77187
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
77188
77188
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
77189
77189
  isURAiAuth: isURAISubscriber2(),
77190
- version: "1.16.0",
77190
+ version: "1.16.1",
77191
77191
  versionBase: getVersionBase(),
77192
77192
  buildTime: "",
77193
77193
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -77857,7 +77857,7 @@ function initialize1PEventLogging() {
77857
77857
  const platform2 = getPlatform();
77858
77858
  const attributes = {
77859
77859
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
77860
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.16.0"
77860
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.16.1"
77861
77861
  };
77862
77862
  if (platform2 === "wsl") {
77863
77863
  const wslVersion = getWslVersion();
@@ -77884,7 +77884,7 @@ function initialize1PEventLogging() {
77884
77884
  })
77885
77885
  ]
77886
77886
  });
77887
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.16.0");
77887
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.16.1");
77888
77888
  }
77889
77889
  async function reinitialize1PEventLoggingIfConfigChanged() {
77890
77890
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -79752,7 +79752,7 @@ function getAttributionHeader(fingerprint) {
79752
79752
  if (!isAttributionHeaderEnabled()) {
79753
79753
  return "";
79754
79754
  }
79755
- const version2 = `${"1.16.0"}.${fingerprint}`;
79755
+ const version2 = `${"1.16.1"}.${fingerprint}`;
79756
79756
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
79757
79757
  const cch = "";
79758
79758
  const workload = getWorkload();
@@ -186381,7 +186381,7 @@ function getTelemetryAttributes() {
186381
186381
  attributes["session.id"] = sessionId;
186382
186382
  }
186383
186383
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
186384
- attributes["app.version"] = "1.16.0";
186384
+ attributes["app.version"] = "1.16.1";
186385
186385
  }
186386
186386
  const oauthAccount = getOauthAccountInfo();
186387
186387
  if (oauthAccount) {
@@ -222170,7 +222170,7 @@ function getInstallationEnv() {
222170
222170
  return;
222171
222171
  }
222172
222172
  function getURCodeVersion() {
222173
- return "1.16.0";
222173
+ return "1.16.1";
222174
222174
  }
222175
222175
  async function getInstalledVSCodeExtensionVersion(command) {
222176
222176
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -224898,7 +224898,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
224898
224898
  const client2 = new Client({
224899
224899
  name: "ur",
224900
224900
  title: "UR",
224901
- version: "1.16.0",
224901
+ version: "1.16.1",
224902
224902
  description: "URHQ's agentic coding tool",
224903
224903
  websiteUrl: PRODUCT_URL
224904
224904
  }, {
@@ -225252,7 +225252,7 @@ var init_client5 = __esm(() => {
225252
225252
  const client2 = new Client({
225253
225253
  name: "ur",
225254
225254
  title: "UR",
225255
- version: "1.16.0",
225255
+ version: "1.16.1",
225256
225256
  description: "URHQ's agentic coding tool",
225257
225257
  websiteUrl: PRODUCT_URL
225258
225258
  }, {
@@ -235065,9 +235065,9 @@ async function assertMinVersion() {
235065
235065
  if (false) {}
235066
235066
  try {
235067
235067
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
235068
- if (versionConfig.minVersion && lt("1.16.0", versionConfig.minVersion)) {
235068
+ if (versionConfig.minVersion && lt("1.16.1", versionConfig.minVersion)) {
235069
235069
  console.error(`
235070
- It looks like your version of UR (${"1.16.0"}) needs an update.
235070
+ It looks like your version of UR (${"1.16.1"}) needs an update.
235071
235071
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
235072
235072
 
235073
235073
  To update, please run:
@@ -235283,7 +235283,7 @@ async function installGlobalPackage(specificVersion) {
235283
235283
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
235284
235284
  logEvent("tengu_auto_updater_lock_contention", {
235285
235285
  pid: process.pid,
235286
- currentVersion: "1.16.0"
235286
+ currentVersion: "1.16.1"
235287
235287
  });
235288
235288
  return "in_progress";
235289
235289
  }
@@ -235292,7 +235292,7 @@ async function installGlobalPackage(specificVersion) {
235292
235292
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
235293
235293
  logError2(new Error("Windows NPM detected in WSL environment"));
235294
235294
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
235295
- currentVersion: "1.16.0"
235295
+ currentVersion: "1.16.1"
235296
235296
  });
235297
235297
  console.error(`
235298
235298
  Error: Windows NPM detected in WSL
@@ -235827,7 +235827,7 @@ function detectLinuxGlobPatternWarnings() {
235827
235827
  }
235828
235828
  async function getDoctorDiagnostic() {
235829
235829
  const installationType = await getCurrentInstallationType();
235830
- const version2 = typeof MACRO !== "undefined" ? "1.16.0" : "unknown";
235830
+ const version2 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
235831
235831
  const installationPath = await getInstallationPath();
235832
235832
  const invokedBinary = getInvokedBinary();
235833
235833
  const multipleInstallations = await detectMultipleInstallations();
@@ -236762,8 +236762,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
236762
236762
  const maxVersion = await getMaxVersion();
236763
236763
  if (maxVersion && gt(version2, maxVersion)) {
236764
236764
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
236765
- if (gte("1.16.0", maxVersion)) {
236766
- logForDebugging(`Native installer: current version ${"1.16.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
236765
+ if (gte("1.16.1", maxVersion)) {
236766
+ logForDebugging(`Native installer: current version ${"1.16.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
236767
236767
  logEvent("tengu_native_update_skipped_max_version", {
236768
236768
  latency_ms: Date.now() - startTime,
236769
236769
  max_version: maxVersion,
@@ -236774,7 +236774,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
236774
236774
  version2 = maxVersion;
236775
236775
  }
236776
236776
  }
236777
- if (!forceReinstall && version2 === "1.16.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
236777
+ if (!forceReinstall && version2 === "1.16.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
236778
236778
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
236779
236779
  logEvent("tengu_native_update_complete", {
236780
236780
  latency_ms: Date.now() - startTime,
@@ -331695,7 +331695,7 @@ function Feedback({
331695
331695
  platform: env2.platform,
331696
331696
  gitRepo: envInfo.isGit,
331697
331697
  terminal: env2.terminal,
331698
- version: "1.16.0",
331698
+ version: "1.16.1",
331699
331699
  transcript: normalizeMessagesForAPI(messages),
331700
331700
  errors: sanitizedErrors,
331701
331701
  lastApiRequest: getLastAPIRequest(),
@@ -331887,7 +331887,7 @@ function Feedback({
331887
331887
  ", ",
331888
331888
  env2.terminal,
331889
331889
  ", v",
331890
- "1.16.0"
331890
+ "1.16.1"
331891
331891
  ]
331892
331892
  }, undefined, true, undefined, this)
331893
331893
  ]
@@ -331993,7 +331993,7 @@ ${sanitizedDescription}
331993
331993
  ` + `**Environment Info**
331994
331994
  ` + `- Platform: ${env2.platform}
331995
331995
  ` + `- Terminal: ${env2.terminal}
331996
- ` + `- Version: ${"1.16.0"}
331996
+ ` + `- Version: ${"1.16.1"}
331997
331997
  ` + `- Feedback ID: ${feedbackId}
331998
331998
  ` + `
331999
331999
  **Errors**
@@ -335103,7 +335103,7 @@ function buildPrimarySection() {
335103
335103
  }, undefined, false, undefined, this);
335104
335104
  return [{
335105
335105
  label: "Version",
335106
- value: "1.16.0"
335106
+ value: "1.16.1"
335107
335107
  }, {
335108
335108
  label: "Session name",
335109
335109
  value: nameValue
@@ -338381,7 +338381,7 @@ function Config({
338381
338381
  }
338382
338382
  }, undefined, false, undefined, this)
338383
338383
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
338384
- currentVersion: "1.16.0",
338384
+ currentVersion: "1.16.1",
338385
338385
  onChoice: (choice) => {
338386
338386
  setShowSubmenu(null);
338387
338387
  setTabsHidden(false);
@@ -338393,7 +338393,7 @@ function Config({
338393
338393
  autoUpdatesChannel: "stable"
338394
338394
  };
338395
338395
  if (choice === "stay") {
338396
- newSettings.minimumVersion = "1.16.0";
338396
+ newSettings.minimumVersion = "1.16.1";
338397
338397
  }
338398
338398
  updateSettingsForSource("userSettings", newSettings);
338399
338399
  setSettingsData((prev_27) => ({
@@ -346463,7 +346463,7 @@ function HelpV2(t0) {
346463
346463
  let t6;
346464
346464
  if ($3[31] !== tabs) {
346465
346465
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
346466
- title: `UR v${"1.16.0"}`,
346466
+ title: `UR v${"1.16.1"}`,
346467
346467
  color: "professionalBlue",
346468
346468
  defaultTab: "general",
346469
346469
  children: tabs
@@ -366427,7 +366427,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
366427
366427
  return [];
366428
366428
  }
366429
366429
  }
366430
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.0") {
366430
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.1") {
366431
366431
  if (process.env.USER_TYPE === "ant") {
366432
366432
  const changelog = "";
366433
366433
  if (changelog) {
@@ -366454,7 +366454,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.0")
366454
366454
  releaseNotes
366455
366455
  };
366456
366456
  }
366457
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.16.0") {
366457
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.16.1") {
366458
366458
  if (process.env.USER_TYPE === "ant") {
366459
366459
  const changelog = "";
366460
366460
  if (changelog) {
@@ -367624,7 +367624,7 @@ function getRecentActivitySync() {
367624
367624
  return cachedActivity;
367625
367625
  }
367626
367626
  function getLogoDisplayData() {
367627
- const version2 = process.env.DEMO_VERSION ?? "1.16.0";
367627
+ const version2 = process.env.DEMO_VERSION ?? "1.16.1";
367628
367628
  const serverUrl = getDirectConnectServerUrl();
367629
367629
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
367630
367630
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -368413,7 +368413,7 @@ function LogoV2() {
368413
368413
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
368414
368414
  t2 = () => {
368415
368415
  const currentConfig = getGlobalConfig();
368416
- if (currentConfig.lastReleaseNotesSeen === "1.16.0") {
368416
+ if (currentConfig.lastReleaseNotesSeen === "1.16.1") {
368417
368417
  return;
368418
368418
  }
368419
368419
  saveGlobalConfig(_temp326);
@@ -369098,12 +369098,12 @@ function LogoV2() {
369098
369098
  return t41;
369099
369099
  }
369100
369100
  function _temp326(current) {
369101
- if (current.lastReleaseNotesSeen === "1.16.0") {
369101
+ if (current.lastReleaseNotesSeen === "1.16.1") {
369102
369102
  return current;
369103
369103
  }
369104
369104
  return {
369105
369105
  ...current,
369106
- lastReleaseNotesSeen: "1.16.0"
369106
+ lastReleaseNotesSeen: "1.16.1"
369107
369107
  };
369108
369108
  }
369109
369109
  function _temp243(s_0) {
@@ -409625,7 +409625,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
409625
409625
  smapsRollup,
409626
409626
  platform: process.platform,
409627
409627
  nodeVersion: process.version,
409628
- ccVersion: "1.16.0"
409628
+ ccVersion: "1.16.1"
409629
409629
  };
409630
409630
  }
409631
409631
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -410211,7 +410211,7 @@ var init_bridge_kick = __esm(() => {
410211
410211
  var call126 = async () => {
410212
410212
  return {
410213
410213
  type: "text",
410214
- value: "1.16.0"
410214
+ value: "1.16.1"
410215
410215
  };
410216
410216
  }, version2, version_default;
410217
410217
  var init_version = __esm(() => {
@@ -419266,7 +419266,7 @@ function generateHtmlReport(data, insights) {
419266
419266
  </html>`;
419267
419267
  }
419268
419268
  function buildExportData(data, insights, facets, remoteStats) {
419269
- const version3 = typeof MACRO !== "undefined" ? "1.16.0" : "unknown";
419269
+ const version3 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
419270
419270
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
419271
419271
  const facets_summary = {
419272
419272
  total: facets.size,
@@ -423519,7 +423519,7 @@ var init_sessionStorage = __esm(() => {
423519
423519
  init_settings2();
423520
423520
  init_slowOperations();
423521
423521
  init_uuid();
423522
- VERSION5 = typeof MACRO !== "undefined" ? "1.16.0" : "unknown";
423522
+ VERSION5 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
423523
423523
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
423524
423524
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
423525
423525
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -424724,7 +424724,7 @@ var init_filesystem = __esm(() => {
424724
424724
  });
424725
424725
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
424726
424726
  const nonce = randomBytes18(16).toString("hex");
424727
- return join178(getURTempDir(), "bundled-skills", "1.16.0", nonce);
424727
+ return join178(getURTempDir(), "bundled-skills", "1.16.1", nonce);
424728
424728
  });
424729
424729
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
424730
424730
  });
@@ -430755,7 +430755,7 @@ function computeFingerprint(messageText, version3) {
430755
430755
  }
430756
430756
  function computeFingerprintFromMessages(messages) {
430757
430757
  const firstMessageText = extractFirstMessageText(messages);
430758
- return computeFingerprint(firstMessageText, "1.16.0");
430758
+ return computeFingerprint(firstMessageText, "1.16.1");
430759
430759
  }
430760
430760
  var FINGERPRINT_SALT = "59cf53e54c78";
430761
430761
  var init_fingerprint = () => {};
@@ -432621,7 +432621,7 @@ async function sideQuery(opts) {
432621
432621
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
432622
432622
  }
432623
432623
  const messageText = extractFirstUserMessageText(messages);
432624
- const fingerprint = computeFingerprint(messageText, "1.16.0");
432624
+ const fingerprint = computeFingerprint(messageText, "1.16.1");
432625
432625
  const attributionHeader = getAttributionHeader(fingerprint);
432626
432626
  const systemBlocks = [
432627
432627
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -437358,7 +437358,7 @@ function buildSystemInitMessage(inputs) {
437358
437358
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
437359
437359
  apiKeySource: getURHQApiKeyWithSource().source,
437360
437360
  betas: getSdkBetas(),
437361
- ur_version: "1.16.0",
437361
+ ur_version: "1.16.1",
437362
437362
  output_style: outputStyle2,
437363
437363
  agents: inputs.agents.map((agent) => agent.agentType),
437364
437364
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -451986,7 +451986,7 @@ var init_useVoiceEnabled = __esm(() => {
451986
451986
  function getSemverPart(version3) {
451987
451987
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
451988
451988
  }
451989
- function useUpdateNotification(updatedVersion, initialVersion = "1.16.0") {
451989
+ function useUpdateNotification(updatedVersion, initialVersion = "1.16.1") {
451990
451990
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
451991
451991
  if (!updatedVersion) {
451992
451992
  return null;
@@ -452035,7 +452035,7 @@ function AutoUpdater({
452035
452035
  return;
452036
452036
  }
452037
452037
  if (false) {}
452038
- const currentVersion = "1.16.0";
452038
+ const currentVersion = "1.16.1";
452039
452039
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
452040
452040
  let latestVersion = await getLatestVersion(channel);
452041
452041
  const isDisabled = isAutoUpdaterDisabled();
@@ -452264,12 +452264,12 @@ function NativeAutoUpdater({
452264
452264
  logEvent("tengu_native_auto_updater_start", {});
452265
452265
  try {
452266
452266
  const maxVersion = await getMaxVersion();
452267
- if (maxVersion && gt("1.16.0", maxVersion)) {
452267
+ if (maxVersion && gt("1.16.1", maxVersion)) {
452268
452268
  const msg = await getMaxVersionMessage();
452269
452269
  setMaxVersionIssue(msg ?? "affects your version");
452270
452270
  }
452271
452271
  const result = await installLatest(channel);
452272
- const currentVersion = "1.16.0";
452272
+ const currentVersion = "1.16.1";
452273
452273
  const latencyMs = Date.now() - startTime;
452274
452274
  if (result.lockFailed) {
452275
452275
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -452406,17 +452406,17 @@ function PackageManagerAutoUpdater(t0) {
452406
452406
  const maxVersion = await getMaxVersion();
452407
452407
  if (maxVersion && latest && gt(latest, maxVersion)) {
452408
452408
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
452409
- if (gte("1.16.0", maxVersion)) {
452410
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.16.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
452409
+ if (gte("1.16.1", maxVersion)) {
452410
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.16.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
452411
452411
  setUpdateAvailable(false);
452412
452412
  return;
452413
452413
  }
452414
452414
  latest = maxVersion;
452415
452415
  }
452416
- const hasUpdate = latest && !gte("1.16.0", latest) && !shouldSkipVersion(latest);
452416
+ const hasUpdate = latest && !gte("1.16.1", latest) && !shouldSkipVersion(latest);
452417
452417
  setUpdateAvailable(!!hasUpdate);
452418
452418
  if (hasUpdate) {
452419
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.16.0"} -> ${latest}`);
452419
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.16.1"} -> ${latest}`);
452420
452420
  }
452421
452421
  };
452422
452422
  $3[0] = t1;
@@ -452450,7 +452450,7 @@ function PackageManagerAutoUpdater(t0) {
452450
452450
  wrap: "truncate",
452451
452451
  children: [
452452
452452
  "currentVersion: ",
452453
- "1.16.0"
452453
+ "1.16.1"
452454
452454
  ]
452455
452455
  }, undefined, true, undefined, this);
452456
452456
  $3[3] = verbose;
@@ -464812,7 +464812,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
464812
464812
  project_dir: getOriginalCwd(),
464813
464813
  added_dirs: addedDirs
464814
464814
  },
464815
- version: "1.16.0",
464815
+ version: "1.16.1",
464816
464816
  output_style: {
464817
464817
  name: outputStyleName
464818
464818
  },
@@ -476320,7 +476320,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
476320
476320
  } catch {}
476321
476321
  const data = {
476322
476322
  trigger: trigger2,
476323
- version: "1.16.0",
476323
+ version: "1.16.1",
476324
476324
  platform: process.platform,
476325
476325
  transcript,
476326
476326
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -488229,7 +488229,7 @@ function WelcomeV2() {
488229
488229
  dimColor: true,
488230
488230
  children: [
488231
488231
  "v",
488232
- "1.16.0"
488232
+ "1.16.1"
488233
488233
  ]
488234
488234
  }, undefined, true, undefined, this)
488235
488235
  ]
@@ -489489,7 +489489,7 @@ function completeOnboarding() {
489489
489489
  saveGlobalConfig((current) => ({
489490
489490
  ...current,
489491
489491
  hasCompletedOnboarding: true,
489492
- lastOnboardingVersion: "1.16.0"
489492
+ lastOnboardingVersion: "1.16.1"
489493
489493
  }));
489494
489494
  }
489495
489495
  function showDialog(root2, renderer) {
@@ -494137,7 +494137,7 @@ function appendToLog(path24, message) {
494137
494137
  cwd: getFsImplementation().cwd(),
494138
494138
  userType: process.env.USER_TYPE,
494139
494139
  sessionId: getSessionId(),
494140
- version: "1.16.0"
494140
+ version: "1.16.1"
494141
494141
  };
494142
494142
  getLogWriter(path24).write(messageWithTimestamp);
494143
494143
  }
@@ -498266,8 +498266,8 @@ async function getEnvLessBridgeConfig() {
498266
498266
  }
498267
498267
  async function checkEnvLessBridgeMinVersion() {
498268
498268
  const cfg = await getEnvLessBridgeConfig();
498269
- if (cfg.min_version && lt("1.16.0", cfg.min_version)) {
498270
- return `Your version of UR (${"1.16.0"}) is too old for Remote Control.
498269
+ if (cfg.min_version && lt("1.16.1", cfg.min_version)) {
498270
+ return `Your version of UR (${"1.16.1"}) is too old for Remote Control.
498271
498271
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
498272
498272
  }
498273
498273
  return null;
@@ -498741,7 +498741,7 @@ async function initBridgeCore(params) {
498741
498741
  const rawApi = createBridgeApiClient({
498742
498742
  baseUrl,
498743
498743
  getAccessToken,
498744
- runnerVersion: "1.16.0",
498744
+ runnerVersion: "1.16.1",
498745
498745
  onDebug: logForDebugging,
498746
498746
  onAuth401,
498747
498747
  getTrustedDeviceToken
@@ -504406,7 +504406,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
504406
504406
  setCwd(cwd3);
504407
504407
  const server = new Server({
504408
504408
  name: "ur/tengu",
504409
- version: "1.16.0"
504409
+ version: "1.16.1"
504410
504410
  }, {
504411
504411
  capabilities: {
504412
504412
  tools: {}
@@ -506017,7 +506017,7 @@ __export(exports_update, {
506017
506017
  });
506018
506018
  async function update() {
506019
506019
  logEvent("tengu_update_check", {});
506020
- writeToStdout(`Current version: ${"1.16.0"}
506020
+ writeToStdout(`Current version: ${"1.16.1"}
506021
506021
  `);
506022
506022
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
506023
506023
  writeToStdout(`Checking for updates to ${channel} version...
@@ -506092,8 +506092,8 @@ async function update() {
506092
506092
  writeToStdout(`UR is managed by Homebrew.
506093
506093
  `);
506094
506094
  const latest = await getLatestVersion(channel);
506095
- if (latest && !gte("1.16.0", latest)) {
506096
- writeToStdout(`${formatUpdateAvailableMessage("1.16.0", latest)}
506095
+ if (latest && !gte("1.16.1", latest)) {
506096
+ writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
506097
506097
  `);
506098
506098
  writeToStdout(`
506099
506099
  `);
@@ -506109,8 +506109,8 @@ async function update() {
506109
506109
  writeToStdout(`UR is managed by winget.
506110
506110
  `);
506111
506111
  const latest = await getLatestVersion(channel);
506112
- if (latest && !gte("1.16.0", latest)) {
506113
- writeToStdout(`${formatUpdateAvailableMessage("1.16.0", latest)}
506112
+ if (latest && !gte("1.16.1", latest)) {
506113
+ writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
506114
506114
  `);
506115
506115
  writeToStdout(`
506116
506116
  `);
@@ -506126,8 +506126,8 @@ async function update() {
506126
506126
  writeToStdout(`UR is managed by apk.
506127
506127
  `);
506128
506128
  const latest = await getLatestVersion(channel);
506129
- if (latest && !gte("1.16.0", latest)) {
506130
- writeToStdout(`${formatUpdateAvailableMessage("1.16.0", latest)}
506129
+ if (latest && !gte("1.16.1", latest)) {
506130
+ writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
506131
506131
  `);
506132
506132
  writeToStdout(`
506133
506133
  `);
@@ -506192,11 +506192,11 @@ async function update() {
506192
506192
  `);
506193
506193
  await gracefulShutdown(1);
506194
506194
  }
506195
- if (result.latestVersion === "1.16.0") {
506196
- writeToStdout(source_default.green(`UR is up to date (${"1.16.0"})`) + `
506195
+ if (result.latestVersion === "1.16.1") {
506196
+ writeToStdout(source_default.green(`UR is up to date (${"1.16.1"})`) + `
506197
506197
  `);
506198
506198
  } else {
506199
- writeToStdout(source_default.green(`Successfully updated from ${"1.16.0"} to version ${result.latestVersion}`) + `
506199
+ writeToStdout(source_default.green(`Successfully updated from ${"1.16.1"} to version ${result.latestVersion}`) + `
506200
506200
  `);
506201
506201
  await regenerateCompletionCache();
506202
506202
  }
@@ -506256,12 +506256,12 @@ async function update() {
506256
506256
  `);
506257
506257
  await gracefulShutdown(1);
506258
506258
  }
506259
- if (latestVersion === "1.16.0") {
506260
- writeToStdout(source_default.green(`UR is up to date (${"1.16.0"})`) + `
506259
+ if (latestVersion === "1.16.1") {
506260
+ writeToStdout(source_default.green(`UR is up to date (${"1.16.1"})`) + `
506261
506261
  `);
506262
506262
  await gracefulShutdown(0);
506263
506263
  }
506264
- writeToStdout(`${formatUpdateAvailableMessage("1.16.0", latestVersion)}
506264
+ writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latestVersion)}
506265
506265
  `);
506266
506266
  writeToStdout(`Installing update...
506267
506267
  `);
@@ -506306,7 +506306,7 @@ async function update() {
506306
506306
  logForDebugging(`update: Installation status: ${status2}`);
506307
506307
  switch (status2) {
506308
506308
  case "success":
506309
- writeToStdout(source_default.green(`Successfully updated from ${"1.16.0"} to version ${latestVersion}`) + `
506309
+ writeToStdout(source_default.green(`Successfully updated from ${"1.16.1"} to version ${latestVersion}`) + `
506310
506310
  `);
506311
506311
  await regenerateCompletionCache();
506312
506312
  break;
@@ -507453,12 +507453,6 @@ ${customInstructions}` : customInstructions;
507453
507453
  onSelect: done
507454
507454
  }, undefined, false, undefined, this));
507455
507455
  setOllamaBaseUrlOverride(chosenHost);
507456
- if (chosenHost) {
507457
- const existing = getSettingsForSource("userSettings")?.ollama;
507458
- updateSettingsForSource("userSettings", {
507459
- ollama: { ...existing, host: chosenHost }
507460
- });
507461
- }
507462
507456
  }
507463
507457
  }
507464
507458
  }
@@ -507588,7 +507582,7 @@ ${customInstructions}` : customInstructions;
507588
507582
  }
507589
507583
  }
507590
507584
  logForDiagnosticsNoPII("info", "started", {
507591
- version: "1.16.0",
507585
+ version: "1.16.1",
507592
507586
  is_native_binary: isInBundledMode()
507593
507587
  });
507594
507588
  registerCleanup(async () => {
@@ -508372,7 +508366,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
508372
508366
  pendingHookMessages
508373
508367
  }, renderAndRun);
508374
508368
  }
508375
- }).version("1.16.0 (Ur)", "-v, --version", "Output the version number");
508369
+ }).version("1.16.1 (Ur)", "-v, --version", "Output the version number");
508376
508370
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
508377
508371
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
508378
508372
  if (canUserConfigureAdvisor()) {
@@ -509107,7 +509101,7 @@ if (false) {}
509107
509101
  async function main2() {
509108
509102
  const args = process.argv.slice(2);
509109
509103
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
509110
- console.log(`${"1.16.0"} (Ur)`);
509104
+ console.log(`${"1.16.1"} (Ur)`);
509111
509105
  return;
509112
509106
  }
509113
509107
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -40,7 +40,7 @@ ur --ollama-host http://192.168.1.50:11434
40
40
 
41
41
  | Addition | Surface | What it adds |
42
42
  | --- | --- | --- |
43
- | Network Ollama discovery | `ur --discover-ollama`, `ur --ollama-host <url>`, `settings.ollama` | Scans active local subnets for Ollama servers on port 11434, verifies via `/api/tags`, shows a host picker, and persists the chosen host. |
43
+ | Network Ollama discovery | `ur --discover-ollama`, `ur --ollama-host <url>`, `settings.ollama` | Scans active local subnets for Ollama servers on port 11434, verifies via `/api/tags`, and shows a host picker for the current session. |
44
44
 
45
45
  ## v1.15.0 Additions
46
46
 
@@ -20,7 +20,8 @@ a picker with:
20
20
  - `This computer` — your local `ollama serve` at `http://localhost:11434`
21
21
  - every discovered LAN host and the number of models it advertises
22
22
 
23
- Select a host and UR uses it for the session and persists it to user settings.
23
+ Select a host and UR uses it for that session only. The choice is **not**
24
+ persisted, so plain `ur` continues to use `localhost:11434`.
24
25
 
25
26
  ### Enable discovery on every startup
26
27
 
@@ -34,8 +35,8 @@ Add to `~/.ur/settings.json`:
34
35
  }
35
36
  ```
36
37
 
37
- The picker still appears even if no LAN hosts are found, so you can confirm the
38
- local host or manually point to another one.
38
+ The picker appears on every startup. The choice is still session-only and is
39
+ not written to settings.
39
40
 
40
41
  ### Point to a specific host without scanning
41
42
 
@@ -50,6 +50,10 @@ UR can scan your active local subnets for other Ollama servers and show a picker
50
50
  ur --discover-ollama
51
51
  ```
52
52
 
53
+ This is **session-only**: the picker appears and the chosen host is used for
54
+ that session, but plain `ur` continues to use `localhost:11434` unless you set
55
+ `ollama.host` explicitly.
56
+
53
57
  To make the picker appear on every startup, enable it in user settings:
54
58
 
55
59
  ```json
package/docs/USAGE.md CHANGED
@@ -67,18 +67,21 @@ ur --model qwen2.5-coder:latest
67
67
  UR talks to the local Ollama app at `http://localhost:11434/api` by default, but you can point it at another Ollama server on your LAN or in another location:
68
68
 
69
69
  ```sh
70
- # Discover and pick a LAN Ollama server at startup
70
+ # Discover and pick a LAN Ollama server at startup (session only)
71
71
  ur --discover-ollama
72
72
 
73
73
  # Point to a specific Ollama server for this session
74
74
  ur --ollama-host http://192.168.1.50:11434
75
75
 
76
- # Persistent setting
76
+ # Persistent setting (plain `ur` uses this host automatically)
77
77
  ur --settings '{"ollama":{"host":"http://192.168.1.50:11434"}}'
78
78
  ```
79
79
 
80
80
  Precedence: `--ollama-host` > `OLLAMA_HOST` env > `ollama.host` setting > `localhost:11434`.
81
81
 
82
+ `--discover-ollama` shows the picker every time but does **not** save the choice;
83
+ use `ollama.host` in settings if you want plain `ur` to default to a LAN host.
84
+
82
85
  Models exposed by the chosen Ollama app are valid, including local models and Ollama Cloud-backed models. UR does not call provider APIs directly or manage model API keys.
83
86
 
84
87
  ## Project Instructions
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.16.0",
5
+ "version": "1.16.1",
6
6
  "publisher": "ur-agent",
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.16.0",
3
+ "version": "1.16.1",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",