ur-agent 1.78.3 → 1.78.4

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,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.78.4
4
+
5
+ - A task may declare a dependency on a task that does not exist yet. A plan
6
+ written in dependency order arrives as forward references — step 2 says it is
7
+ blocked by step 8 while the list is still being built — and each of those was
8
+ refused as `task_not_found`, so most of a plan's structure was discarded at
9
+ the moment it was created. The read side already handled an unresolved
10
+ blocker; the write side now stores the edge, and creating the target adopts
11
+ the matching reverse edge so the pair is linked both ways. Self-dependencies,
12
+ cycles between existing tasks, and an edge from a task that does not exist
13
+ are all still refused.
14
+ - Ollama's wait for response headers has its own ceiling, separate from the
15
+ inactivity budget that governs the stream once it starts. Prefill for a large
16
+ prompt and a cold model load both happen before the first byte and neither is
17
+ idleness, so bounding them with the same figure aborted a long request before
18
+ the model had said anything and reported it as a timeout. An explicit
19
+ timeout, or `API_TIMEOUT_MS`, still wins.
20
+
3
21
  ## 1.78.3
4
22
 
5
23
  - A `config set` no longer runs in a parallel batch. Writing a setting is a
package/dist/cli.js CHANGED
@@ -107590,7 +107590,7 @@ var init_auth = __esm(() => {
107590
107590
 
107591
107591
  // src/utils/userAgent.ts
107592
107592
  function getURCodeUserAgent() {
107593
- return `ur/${"1.78.3"}`;
107593
+ return `ur/${"1.78.4"}`;
107594
107594
  }
107595
107595
 
107596
107596
  // src/utils/workloadContext.ts
@@ -107612,7 +107612,7 @@ function getUserAgent() {
107612
107612
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107613
107613
  const workload = getWorkload();
107614
107614
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107615
- return `ur-cli/${"1.78.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107615
+ return `ur-cli/${"1.78.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107616
107616
  }
107617
107617
  function getMCPUserAgent() {
107618
107618
  const parts = [];
@@ -107626,7 +107626,7 @@ function getMCPUserAgent() {
107626
107626
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107627
107627
  }
107628
107628
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107629
- return `ur/${"1.78.3"}${suffix}`;
107629
+ return `ur/${"1.78.4"}${suffix}`;
107630
107630
  }
107631
107631
  function getWebFetchUserAgent() {
107632
107632
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107764,7 +107764,7 @@ var init_user = __esm(() => {
107764
107764
  deviceId,
107765
107765
  sessionId: getSessionId(),
107766
107766
  email: getEmail(),
107767
- appVersion: "1.78.3",
107767
+ appVersion: "1.78.4",
107768
107768
  platform: getHostPlatformForAnalytics(),
107769
107769
  organizationUuid,
107770
107770
  accountUuid,
@@ -115651,7 +115651,7 @@ var init_metadata = __esm(() => {
115651
115651
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115652
115652
  WHITESPACE_REGEX = /\s+/;
115653
115653
  getVersionBase = memoize_default(() => {
115654
- const match = "1.78.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115654
+ const match = "1.78.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115655
115655
  return match ? match[0] : undefined;
115656
115656
  });
115657
115657
  buildEnvContext = memoize_default(async () => {
@@ -115691,7 +115691,7 @@ var init_metadata = __esm(() => {
115691
115691
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115692
115692
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115693
115693
  isURAiAuth: isURAISubscriber(),
115694
- version: "1.78.3",
115694
+ version: "1.78.4",
115695
115695
  versionBase: getVersionBase(),
115696
115696
  buildTime: "",
115697
115697
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116361,7 +116361,7 @@ function initialize1PEventLogging() {
116361
116361
  const platform2 = getPlatform();
116362
116362
  const attributes = {
116363
116363
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116364
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.3"
116364
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.4"
116365
116365
  };
116366
116366
  if (platform2 === "wsl") {
116367
116367
  const wslVersion = getWslVersion();
@@ -116389,7 +116389,7 @@ function initialize1PEventLogging() {
116389
116389
  })
116390
116390
  ]
116391
116391
  });
116392
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.3");
116392
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.4");
116393
116393
  }
116394
116394
  async function reinitialize1PEventLoggingIfConfigChanged() {
116395
116395
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126171,7 +126171,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126171
126171
  function formatA2AAgentCard(options = {}, pretty = true) {
126172
126172
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126173
126173
  }
126174
- var urVersion = "1.78.3", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126174
+ var urVersion = "1.78.4", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126175
126175
  var init_trends = __esm(() => {
126176
126176
  init_a2aCardSignature();
126177
126177
  coverage = [
@@ -128974,7 +128974,7 @@ function getAttributionHeader(fingerprint) {
128974
128974
  if (!isAttributionHeaderEnabled()) {
128975
128975
  return "";
128976
128976
  }
128977
- const version2 = `${"1.78.3"}.${fingerprint}`;
128977
+ const version2 = `${"1.78.4"}.${fingerprint}`;
128978
128978
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128979
128979
  const cch = "";
128980
128980
  const workload = getWorkload();
@@ -156978,7 +156978,7 @@ var init_projectSafety = __esm(() => {
156978
156978
  function getInstruments() {
156979
156979
  if (instruments)
156980
156980
  return instruments;
156981
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.3");
156981
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.4");
156982
156982
  instruments = {
156983
156983
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156984
156984
  description: "GenAI operation duration.",
@@ -157076,7 +157076,7 @@ function genAiAgentAttributes() {
157076
157076
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157077
157077
  "gen_ai.provider.name": "ur",
157078
157078
  "gen_ai.agent.name": "UR-Nexus",
157079
- "gen_ai.agent.version": "1.78.3"
157079
+ "gen_ai.agent.version": "1.78.4"
157080
157080
  };
157081
157081
  }
157082
157082
  function genAiWorkflowAttributes(workflowName) {
@@ -157092,7 +157092,7 @@ function genAiWorkflowAttributes(workflowName) {
157092
157092
  function startGenAiWorkflowSpan(workflowName) {
157093
157093
  const attributes = genAiWorkflowAttributes(workflowName);
157094
157094
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157095
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.3").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.4").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157096
157096
  }
157097
157097
  function endGenAiWorkflowSpan(span, options2 = {}) {
157098
157098
  try {
@@ -157130,7 +157130,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157130
157130
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157131
157131
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157132
157132
  }
157133
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.3").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157133
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.4").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157134
157134
  }
157135
157135
  function endGenAiMemorySpan(span, options2 = {}) {
157136
157136
  try {
@@ -159153,6 +159153,7 @@ var VERIFIER_AGENT_TYPE = "verification";
159153
159153
  // src/utils/tasks.ts
159154
159154
  var exports_tasks = {};
159155
159155
  __export(exports_tasks, {
159156
+ validateTaskDependencyInSnapshot: () => validateTaskDependencyInSnapshot,
159156
159157
  validateTaskDependency: () => validateTaskDependency,
159157
159158
  validateTaskDependencies: () => validateTaskDependencies,
159158
159159
  updateTaskWithDependencies: () => updateTaskWithDependencies,
@@ -250785,7 +250786,7 @@ function getTelemetryAttributes() {
250785
250786
  attributes["session.id"] = sessionId;
250786
250787
  }
250787
250788
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250788
- attributes["app.version"] = "1.78.3";
250789
+ attributes["app.version"] = "1.78.4";
250789
250790
  }
250790
250791
  const oauthAccount = getOauthAccountInfo();
250791
250792
  if (oauthAccount) {
@@ -297292,7 +297293,7 @@ function getInstallationEnv() {
297292
297293
  return;
297293
297294
  }
297294
297295
  function getURCodeVersion() {
297295
- return "1.78.3";
297296
+ return "1.78.4";
297296
297297
  }
297297
297298
  async function getInstalledVSCodeExtensionVersion(command) {
297298
297299
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304623,7 +304624,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304623
304624
  const client2 = new Client({
304624
304625
  name: "ur",
304625
304626
  title: "UR",
304626
- version: "1.78.3",
304627
+ version: "1.78.4",
304627
304628
  description: "UR-Nexus autonomous engineering workflow engine",
304628
304629
  websiteUrl: PRODUCT_URL
304629
304630
  }, {
@@ -304983,7 +304984,7 @@ var init_client5 = __esm(() => {
304983
304984
  const client2 = new Client({
304984
304985
  name: "ur",
304985
304986
  title: "UR",
304986
- version: "1.78.3",
304987
+ version: "1.78.4",
304987
304988
  description: "UR-Nexus autonomous engineering workflow engine",
304988
304989
  websiteUrl: PRODUCT_URL
304989
304990
  }, {
@@ -317592,7 +317593,7 @@ async function createRuntime() {
317592
317593
  bootstrapTelemetry();
317593
317594
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317594
317595
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317595
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.3"
317596
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.4"
317596
317597
  }));
317597
317598
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317598
317599
  resource,
@@ -317625,11 +317626,11 @@ async function createRuntime() {
317625
317626
  setMeterProvider(meterProvider);
317626
317627
  setLoggerProvider(loggerProvider);
317627
317628
  if (meterProvider) {
317628
- const meter = meterProvider.getMeter("ur-agent", "1.78.3");
317629
+ const meter = meterProvider.getMeter("ur-agent", "1.78.4");
317629
317630
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317630
317631
  }
317631
317632
  if (loggerProvider) {
317632
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.3"));
317633
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.4"));
317633
317634
  }
317634
317635
  if (!cleanupRegistered2) {
317635
317636
  cleanupRegistered2 = true;
@@ -318291,9 +318292,9 @@ async function assertMinVersion() {
318291
318292
  if (false) {}
318292
318293
  try {
318293
318294
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318294
- if (versionConfig.minVersion && lt("1.78.3", versionConfig.minVersion)) {
318295
+ if (versionConfig.minVersion && lt("1.78.4", versionConfig.minVersion)) {
318295
318296
  console.error(`
318296
- It looks like your version of UR (${"1.78.3"}) needs an update.
318297
+ It looks like your version of UR (${"1.78.4"}) needs an update.
318297
318298
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318298
318299
 
318299
318300
  To update, please run:
@@ -318509,7 +318510,7 @@ async function installGlobalPackage(specificVersion) {
318509
318510
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318510
318511
  logEvent("tengu_auto_updater_lock_contention", {
318511
318512
  pid: process.pid,
318512
- currentVersion: "1.78.3"
318513
+ currentVersion: "1.78.4"
318513
318514
  });
318514
318515
  return "in_progress";
318515
318516
  }
@@ -318518,7 +318519,7 @@ async function installGlobalPackage(specificVersion) {
318518
318519
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318519
318520
  logError2(new Error("Windows NPM detected in WSL environment"));
318520
318521
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318521
- currentVersion: "1.78.3"
318522
+ currentVersion: "1.78.4"
318522
318523
  });
318523
318524
  console.error(`
318524
318525
  Error: Windows NPM detected in WSL
@@ -319053,7 +319054,7 @@ function detectLinuxGlobPatternWarnings() {
319053
319054
  }
319054
319055
  async function getDoctorDiagnostic() {
319055
319056
  const installationType = await getCurrentInstallationType();
319056
- const version2 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
319057
+ const version2 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
319057
319058
  const installationPath = await getInstallationPath();
319058
319059
  const invokedBinary = getInvokedBinary();
319059
319060
  const multipleInstallations = await detectMultipleInstallations();
@@ -319988,8 +319989,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319988
319989
  const maxVersion = await getMaxVersion();
319989
319990
  if (maxVersion && gt(version2, maxVersion)) {
319990
319991
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319991
- if (gte("1.78.3", maxVersion)) {
319992
- logForDebugging(`Native installer: current version ${"1.78.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
319992
+ if (gte("1.78.4", maxVersion)) {
319993
+ logForDebugging(`Native installer: current version ${"1.78.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
319993
319994
  logEvent("tengu_native_update_skipped_max_version", {
319994
319995
  latency_ms: Date.now() - startTime,
319995
319996
  max_version: maxVersion,
@@ -320000,7 +320001,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
320000
320001
  version2 = maxVersion;
320001
320002
  }
320002
320003
  }
320003
- if (!forceReinstall && version2 === "1.78.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320004
+ if (!forceReinstall && version2 === "1.78.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320004
320005
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
320005
320006
  logEvent("tengu_native_update_complete", {
320006
320007
  latency_ms: Date.now() - startTime,
@@ -389721,7 +389722,7 @@ function isAnyTracingEnabled() {
389721
389722
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389722
389723
  }
389723
389724
  function getTracer() {
389724
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.3");
389725
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.4");
389725
389726
  }
389726
389727
  function createSpanAttributes(spanType, customAttributes = {}) {
389727
389728
  const baseAttributes = getTelemetryAttributes();
@@ -419947,7 +419948,7 @@ function Feedback({
419947
419948
  platform: env2.platform,
419948
419949
  gitRepo: envInfo.isGit,
419949
419950
  terminal: env2.terminal,
419950
- version: "1.78.3",
419951
+ version: "1.78.4",
419951
419952
  transcript: normalizeMessagesForAPI(messages),
419952
419953
  errors: sanitizedErrors,
419953
419954
  lastApiRequest: getLastAPIRequest(),
@@ -420139,7 +420140,7 @@ function Feedback({
420139
420140
  ", ",
420140
420141
  env2.terminal,
420141
420142
  ", v",
420142
- "1.78.3"
420143
+ "1.78.4"
420143
420144
  ]
420144
420145
  }, undefined, true, undefined, this)
420145
420146
  ]
@@ -420245,7 +420246,7 @@ ${sanitizedDescription}
420245
420246
  ` + `**Environment Info**
420246
420247
  ` + `- Platform: ${env2.platform}
420247
420248
  ` + `- Terminal: ${env2.terminal}
420248
- ` + `- Version: ${"1.78.3"}
420249
+ ` + `- Version: ${"1.78.4"}
420249
420250
  ` + `- Feedback ID: ${feedbackId}
420250
420251
  ` + `
420251
420252
  **Errors**
@@ -423355,7 +423356,7 @@ function buildPrimarySection() {
423355
423356
  }, undefined, false, undefined, this);
423356
423357
  return [{
423357
423358
  label: "Version",
423358
- value: "1.78.3"
423359
+ value: "1.78.4"
423359
423360
  }, {
423360
423361
  label: "Session name",
423361
423362
  value: nameValue
@@ -426737,7 +426738,7 @@ function Config({
426737
426738
  }
426738
426739
  }, undefined, false, undefined, this)
426739
426740
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426740
- currentVersion: "1.78.3",
426741
+ currentVersion: "1.78.4",
426741
426742
  onChoice: (choice) => {
426742
426743
  setShowSubmenu(null);
426743
426744
  setTabsHidden(false);
@@ -426749,7 +426750,7 @@ function Config({
426749
426750
  autoUpdatesChannel: "stable"
426750
426751
  };
426751
426752
  if (choice === "stay") {
426752
- newSettings.minimumVersion = "1.78.3";
426753
+ newSettings.minimumVersion = "1.78.4";
426753
426754
  }
426754
426755
  updateSettingsForSource("userSettings", newSettings);
426755
426756
  setSettingsData((prev_27) => ({
@@ -434813,7 +434814,7 @@ function HelpV2(t0) {
434813
434814
  let t6;
434814
434815
  if ($2[31] !== tabs) {
434815
434816
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434816
- title: `UR v${"1.78.3"}`,
434817
+ title: `UR v${"1.78.4"}`,
434817
434818
  color: "professionalBlue",
434818
434819
  defaultTab: "general",
434819
434820
  children: tabs
@@ -435746,7 +435747,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435746
435747
  async function handleInitialize(options2) {
435747
435748
  return {
435748
435749
  name: "UR",
435749
- version: "1.78.3",
435750
+ version: "1.78.4",
435750
435751
  protocolVersion: "0.1.0",
435751
435752
  workspaceRoot: options2.cwd,
435752
435753
  capabilities: {
@@ -452854,7 +452855,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452854
452855
  return [];
452855
452856
  }
452856
452857
  }
452857
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.3") {
452858
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.4") {
452858
452859
  if (process.env.USER_TYPE === "ant") {
452859
452860
  const changelog = "";
452860
452861
  if (changelog) {
@@ -452881,7 +452882,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.3")
452881
452882
  releaseNotes
452882
452883
  };
452883
452884
  }
452884
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.3") {
452885
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.4") {
452885
452886
  if (process.env.USER_TYPE === "ant") {
452886
452887
  const changelog = "";
452887
452888
  if (changelog) {
@@ -455747,7 +455748,7 @@ function getRecentActivitySync() {
455747
455748
  return cachedActivity;
455748
455749
  }
455749
455750
  function getLogoDisplayData() {
455750
- const version2 = process.env.DEMO_VERSION ?? "1.78.3";
455751
+ const version2 = process.env.DEMO_VERSION ?? "1.78.4";
455751
455752
  const serverUrl = getDirectConnectServerUrl();
455752
455753
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455753
455754
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456614,7 +456615,7 @@ function LogoV2() {
456614
456615
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456615
456616
  t2 = () => {
456616
456617
  const currentConfig2 = getGlobalConfig();
456617
- if (currentConfig2.lastReleaseNotesSeen === "1.78.3") {
456618
+ if (currentConfig2.lastReleaseNotesSeen === "1.78.4") {
456618
456619
  return;
456619
456620
  }
456620
456621
  saveGlobalConfig(_temp325);
@@ -457299,12 +457300,12 @@ function LogoV2() {
457299
457300
  return t41;
457300
457301
  }
457301
457302
  function _temp325(current) {
457302
- if (current.lastReleaseNotesSeen === "1.78.3") {
457303
+ if (current.lastReleaseNotesSeen === "1.78.4") {
457303
457304
  return current;
457304
457305
  }
457305
457306
  return {
457306
457307
  ...current,
457307
- lastReleaseNotesSeen: "1.78.3"
457308
+ lastReleaseNotesSeen: "1.78.4"
457308
457309
  };
457309
457310
  }
457310
457311
  function _temp241(s_0) {
@@ -474118,7 +474119,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474118
474119
  if (spec.name !== specName) {
474119
474120
  throw new Error("Agentic CI workflow spec name does not match");
474120
474121
  }
474121
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3");
474122
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4");
474122
474123
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474123
474124
  throw new Error("invalid ur-agent package version");
474124
474125
  }
@@ -475111,7 +475112,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
475111
475112
  path: ".github/workflows/ur.yml",
475112
475113
  root: "project",
475113
475114
  content: compileAgenticCiWorkflow("default", {
475114
- packageVersion: typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3"
475115
+ packageVersion: typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4"
475115
475116
  })
475116
475117
  },
475117
475118
  {
@@ -475174,7 +475175,7 @@ function value(tokens, flag) {
475174
475175
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475175
475176
  }
475176
475177
  function cliVersion() {
475177
- return typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3";
475178
+ return typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4";
475178
475179
  }
475179
475180
  function workflowPath(cwd2) {
475180
475181
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -481030,7 +481031,7 @@ function createAcpStdioApp(deps) {
481030
481031
  }
481031
481032
  },
481032
481033
  authMethods: [],
481033
- agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481034
+ agentInfo: { name: "UR-Nexus", version: "1.78.4" }
481034
481035
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
481035
481036
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
481036
481037
  await runtime2.announce({
@@ -481127,7 +481128,7 @@ function createAcpStdioAgent(deps) {
481127
481128
  }
481128
481129
  },
481129
481130
  authMethods: [],
481130
- agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481131
+ agentInfo: { name: "UR-Nexus", version: "1.78.4" }
481131
481132
  });
481132
481133
  return;
481133
481134
  case "authenticate":
@@ -690587,7 +690588,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690587
690588
  smapsRollup,
690588
690589
  platform: process.platform,
690589
690590
  nodeVersion: process.version,
690590
- ccVersion: "1.78.3"
690591
+ ccVersion: "1.78.4"
690591
690592
  };
690592
690593
  }
690593
690594
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691167,7 +691168,7 @@ var init_bridge_kick = __esm(() => {
691167
691168
  var call154 = async () => {
691168
691169
  return {
691169
691170
  type: "text",
691170
- value: "1.78.3"
691171
+ value: "1.78.4"
691171
691172
  };
691172
691173
  }, version2, version_default;
691173
691174
  var init_version = __esm(() => {
@@ -702434,7 +702435,7 @@ function generateHtmlReport(data, insights) {
702434
702435
  </html>`;
702435
702436
  }
702436
702437
  function buildExportData(data, insights, facets, remoteStats) {
702437
- const version3 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
702438
+ const version3 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
702438
702439
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702439
702440
  const facets_summary = {
702440
702441
  total: facets.size,
@@ -706748,7 +706749,7 @@ var init_sessionStorage = __esm(() => {
706748
706749
  init_settings2();
706749
706750
  init_slowOperations();
706750
706751
  init_uuid();
706751
- VERSION7 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
706752
+ VERSION7 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
706752
706753
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706753
706754
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706754
706755
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707963,7 +707964,7 @@ var init_filesystem = __esm(() => {
707963
707964
  });
707964
707965
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707965
707966
  const nonce = randomBytes20(16).toString("hex");
707966
- return join232(getURTempDir(), "bundled-skills", "1.78.3", nonce);
707967
+ return join232(getURTempDir(), "bundled-skills", "1.78.4", nonce);
707967
707968
  });
707968
707969
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707969
707970
  });
@@ -714320,7 +714321,7 @@ function computeFingerprint(messageText2, version3) {
714320
714321
  }
714321
714322
  function computeFingerprintFromMessages(messages) {
714322
714323
  const firstMessageText = extractFirstMessageText(messages);
714323
- return computeFingerprint(firstMessageText, "1.78.3");
714324
+ return computeFingerprint(firstMessageText, "1.78.4");
714324
714325
  }
714325
714326
  var FINGERPRINT_SALT = "59cf53e54c78";
714326
714327
  var init_fingerprint = () => {};
@@ -716242,7 +716243,7 @@ async function sideQuery(opts) {
716242
716243
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716243
716244
  }
716244
716245
  const messageText2 = extractFirstUserMessageText(messages);
716245
- const fingerprint2 = computeFingerprint(messageText2, "1.78.3");
716246
+ const fingerprint2 = computeFingerprint(messageText2, "1.78.4");
716246
716247
  const attributionHeader = getAttributionHeader(fingerprint2);
716247
716248
  const systemBlocks = [
716248
716249
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -721079,7 +721080,7 @@ function buildSystemInitMessage(inputs) {
721079
721080
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
721080
721081
  apiKeySource: getURHQApiKeyWithSource().source,
721081
721082
  betas: getSdkBetas(),
721082
- ur_version: "1.78.3",
721083
+ ur_version: "1.78.4",
721083
721084
  output_style: outputStyle2,
721084
721085
  agents: inputs.agents.map((agent2) => agent2.agentType),
721085
721086
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734951,7 +734952,7 @@ var init_useVoiceEnabled = __esm(() => {
734951
734952
  function getSemverPart(version3) {
734952
734953
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734953
734954
  }
734954
- function useUpdateNotification(updatedVersion, initialVersion = "1.78.3") {
734955
+ function useUpdateNotification(updatedVersion, initialVersion = "1.78.4") {
734955
734956
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734956
734957
  if (!updatedVersion) {
734957
734958
  return null;
@@ -735000,7 +735001,7 @@ function AutoUpdater({
735000
735001
  return;
735001
735002
  }
735002
735003
  if (false) {}
735003
- const currentVersion = "1.78.3";
735004
+ const currentVersion = "1.78.4";
735004
735005
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
735005
735006
  let latestVersion = await getLatestVersion(channel);
735006
735007
  const isDisabled = isAutoUpdaterDisabled();
@@ -735229,12 +735230,12 @@ function NativeAutoUpdater({
735229
735230
  logEvent("tengu_native_auto_updater_start", {});
735230
735231
  try {
735231
735232
  const maxVersion = await getMaxVersion();
735232
- if (maxVersion && gt("1.78.3", maxVersion)) {
735233
+ if (maxVersion && gt("1.78.4", maxVersion)) {
735233
735234
  const msg = await getMaxVersionMessage();
735234
735235
  setMaxVersionIssue(msg ?? "affects your version");
735235
735236
  }
735236
735237
  const result = await installLatest(channel);
735237
- const currentVersion = "1.78.3";
735238
+ const currentVersion = "1.78.4";
735238
735239
  const latencyMs = Date.now() - startTime;
735239
735240
  if (result.lockFailed) {
735240
735241
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735371,17 +735372,17 @@ function PackageManagerAutoUpdater(t0) {
735371
735372
  const maxVersion = await getMaxVersion();
735372
735373
  if (maxVersion && latest && gt(latest, maxVersion)) {
735373
735374
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735374
- if (gte("1.78.3", maxVersion)) {
735375
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
735375
+ if (gte("1.78.4", maxVersion)) {
735376
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
735376
735377
  setUpdateAvailable(false);
735377
735378
  return;
735378
735379
  }
735379
735380
  latest = maxVersion;
735380
735381
  }
735381
- const hasUpdate = latest && !gte("1.78.3", latest) && !shouldSkipVersion(latest);
735382
+ const hasUpdate = latest && !gte("1.78.4", latest) && !shouldSkipVersion(latest);
735382
735383
  setUpdateAvailable(!!hasUpdate);
735383
735384
  if (hasUpdate) {
735384
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.3"} -> ${latest}`);
735385
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.4"} -> ${latest}`);
735385
735386
  }
735386
735387
  };
735387
735388
  $2[0] = t1;
@@ -735415,7 +735416,7 @@ function PackageManagerAutoUpdater(t0) {
735415
735416
  wrap: "truncate",
735416
735417
  children: [
735417
735418
  "currentVersion: ",
735418
- "1.78.3"
735419
+ "1.78.4"
735419
735420
  ]
735420
735421
  }, undefined, true, undefined, this);
735421
735422
  $2[3] = verbose;
@@ -746215,7 +746216,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746215
746216
  project_dir: getOriginalCwd(),
746216
746217
  added_dirs: addedDirs
746217
746218
  },
746218
- version: "1.78.3",
746219
+ version: "1.78.4",
746219
746220
  output_style: {
746220
746221
  name: outputStyleName
746221
746222
  },
@@ -746350,7 +746351,7 @@ function StatusLineInner({
746350
746351
  const attention = customStatusError ?? taskAttention;
746351
746352
  const terminalSize = React132.useContext(TerminalSizeContext);
746352
746353
  const defaultStatusLineText = buildDefaultStatusBar({
746353
- version: "1.78.3",
746354
+ version: "1.78.4",
746354
746355
  providerLabel: providerRuntime.providerLabel,
746355
746356
  authMode: providerRuntime.authLabel,
746356
746357
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758635,7 +758636,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758635
758636
  } catch {}
758636
758637
  const data = {
758637
758638
  trigger: trigger2,
758638
- version: "1.78.3",
758639
+ version: "1.78.4",
758639
758640
  platform: process.platform,
758640
758641
  transcript,
758641
758642
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -771009,7 +771010,7 @@ function WelcomeV2() {
771009
771010
  dimColor: true,
771010
771011
  children: [
771011
771012
  "v",
771012
- "1.78.3"
771013
+ "1.78.4"
771013
771014
  ]
771014
771015
  }, undefined, true, undefined, this)
771015
771016
  ]
@@ -772269,7 +772270,7 @@ function completeOnboarding() {
772269
772270
  saveGlobalConfig((current) => ({
772270
772271
  ...current,
772271
772272
  hasCompletedOnboarding: true,
772272
- lastOnboardingVersion: "1.78.3"
772273
+ lastOnboardingVersion: "1.78.4"
772273
772274
  }));
772274
772275
  }
772275
772276
  function showDialog(root2, renderer) {
@@ -777313,7 +777314,7 @@ function appendToLog(path24, message) {
777313
777314
  cwd: getFsImplementation().cwd(),
777314
777315
  userType: process.env.USER_TYPE,
777315
777316
  sessionId: getSessionId(),
777316
- version: "1.78.3"
777317
+ version: "1.78.4"
777317
777318
  };
777318
777319
  getLogWriter(path24).write(messageWithTimestamp);
777319
777320
  }
@@ -781472,8 +781473,8 @@ async function getEnvLessBridgeConfig() {
781472
781473
  }
781473
781474
  async function checkEnvLessBridgeMinVersion() {
781474
781475
  const cfg = await getEnvLessBridgeConfig();
781475
- if (cfg.min_version && lt("1.78.3", cfg.min_version)) {
781476
- return `Your version of UR (${"1.78.3"}) is too old for Remote Control.
781476
+ if (cfg.min_version && lt("1.78.4", cfg.min_version)) {
781477
+ return `Your version of UR (${"1.78.4"}) is too old for Remote Control.
781477
781478
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781478
781479
  }
781479
781480
  return null;
@@ -781947,7 +781948,7 @@ async function initBridgeCore(params) {
781947
781948
  const rawApi = createBridgeApiClient({
781948
781949
  baseUrl,
781949
781950
  getAccessToken,
781950
- runnerVersion: "1.78.3",
781951
+ runnerVersion: "1.78.4",
781951
781952
  onDebug: logForDebugging,
781952
781953
  onAuth401,
781953
781954
  getTrustedDeviceToken
@@ -791420,7 +791421,7 @@ function getAgUiCapabilities() {
791420
791421
  name: "UR-Nexus",
791421
791422
  type: "ur-nexus",
791422
791423
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791423
- version: "1.78.3",
791424
+ version: "1.78.4",
791424
791425
  provider: "UR",
791425
791426
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791426
791427
  },
@@ -792560,7 +792561,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792560
792561
  };
792561
792562
  const server2 = new Server({
792562
792563
  name: "ur-nexus",
792563
- version: "1.78.3"
792564
+ version: "1.78.4"
792564
792565
  }, {
792565
792566
  capabilities: {
792566
792567
  tools: {}
@@ -793718,7 +793719,7 @@ function thrownResponse(error40) {
793718
793719
  }
793719
793720
  async function createUrMcp2026Runtime(options4) {
793720
793721
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793721
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.3" }, { capabilities: {} });
793722
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.4" }, { capabilities: {} });
793722
793723
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793723
793724
  try {
793724
793725
  await server2.connect(serverTransport);
@@ -793729,7 +793730,7 @@ async function createUrMcp2026Runtime(options4) {
793729
793730
  }
793730
793731
  const runtime2 = new Mcp2026Runtime({
793731
793732
  cwd: options4.cwd,
793732
- version: "1.78.3",
793733
+ version: "1.78.4",
793733
793734
  backend: {
793734
793735
  listTools: async () => {
793735
793736
  const listed = await client2.listTools();
@@ -795870,7 +795871,7 @@ async function update() {
795870
795871
  logEvent("tengu_update_check", {});
795871
795872
  const diagnostic2 = await getDoctorDiagnostic();
795872
795873
  const result = await checkUpgradeStatus({
795873
- currentVersion: "1.78.3",
795874
+ currentVersion: "1.78.4",
795874
795875
  packageName: UR_AGENT_PACKAGE_NAME,
795875
795876
  installationType: diagnostic2.installationType,
795876
795877
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797186,7 +797187,7 @@ ${customInstructions}` : customInstructions;
797186
797187
  }
797187
797188
  }
797188
797189
  logForDiagnosticsNoPII("info", "started", {
797189
- version: "1.78.3",
797190
+ version: "1.78.4",
797190
797191
  is_native_binary: isInBundledMode()
797191
797192
  });
797192
797193
  registerCleanup(async () => {
@@ -797972,7 +797973,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797972
797973
  pendingHookMessages
797973
797974
  }, renderAndRun);
797974
797975
  }
797975
- }).version("1.78.3 (UR-Nexus)", "-v, --version", "Output the version number");
797976
+ }).version("1.78.4 (UR-Nexus)", "-v, --version", "Output the version number");
797976
797977
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797977
797978
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797978
797979
  if (canUserConfigureAdvisor()) {
@@ -799024,7 +799025,7 @@ if (false) {}
799024
799025
  async function main2() {
799025
799026
  const args = process.argv.slice(2);
799026
799027
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
799027
- console.log(`${"1.78.3"} (UR-Nexus)`);
799028
+ console.log(`${"1.78.4"} (UR-Nexus)`);
799028
799029
  return;
799029
799030
  }
799030
799031
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.78.3 (UR-Nexus)"
22
+ # expected for this release: "1.78.4 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.78.3</p>
48
+ <p class="eyebrow">Version 1.78.4</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.78.3"
10
+ version = "1.78.4"
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.78.3",
5
+ "version": "1.78.4",
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.78.3",
3
+ "version": "1.78.4",
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",