ur-agent 1.78.3 → 1.78.5

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,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.78.5
4
+
5
+ - A forward task dependency is recognised by its id rather than by the target
6
+ merely being absent. Ids are allocated as consecutive integers, so a target
7
+ above the highest one issued is a task still to come and its edge is stored;
8
+ a non-numeric id, or a number already passed, names a task that will never
9
+ arrive and stays an error. Without that distinction a typo became a blocker
10
+ nothing could ever satisfy.
11
+ - `bun test` runs with the same timeout the release gate uses. The script set
12
+ none, so the default applied and four tests that pack a tarball or build a
13
+ TypeScript program failed on a busy machine while passing on an idle one —
14
+ the hardest kind of failure to attribute, and unrelated to anything they
15
+ assert.
16
+
17
+ ## 1.78.4
18
+
19
+ - A task may declare a dependency on a task that does not exist yet. A plan
20
+ written in dependency order arrives as forward references — step 2 says it is
21
+ blocked by step 8 while the list is still being built — and each of those was
22
+ refused as `task_not_found`, so most of a plan's structure was discarded at
23
+ the moment it was created. The read side already handled an unresolved
24
+ blocker; the write side now stores the edge, and creating the target adopts
25
+ the matching reverse edge so the pair is linked both ways. Self-dependencies,
26
+ cycles between existing tasks, and an edge from a task that does not exist
27
+ are all still refused.
28
+ - Ollama's wait for response headers has its own ceiling, separate from the
29
+ inactivity budget that governs the stream once it starts. Prefill for a large
30
+ prompt and a cold model load both happen before the first byte and neither is
31
+ idleness, so bounding them with the same figure aborted a long request before
32
+ the model had said anything and reported it as a timeout. An explicit
33
+ timeout, or `API_TIMEOUT_MS`, still wins.
34
+
3
35
  ## 1.78.3
4
36
 
5
37
  - 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.5"}`;
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.5"} (${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.5"}${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.5",
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.5".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.5",
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.5"
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.5");
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.5", 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.5"}.${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.5");
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.5"
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.5").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.5").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,
@@ -159742,7 +159743,15 @@ function validateTaskDependencyInSnapshot(tasks, fromTaskId, toTaskId) {
159742
159743
  return { valid: false, reason: "task_not_found" };
159743
159744
  }
159744
159745
  if (!toTask) {
159745
- return { valid: true };
159746
+ const highestIssued = tasks.reduce((highest, task) => {
159747
+ const numeric = Number(task.id);
159748
+ return Number.isInteger(numeric) ? Math.max(highest, numeric) : highest;
159749
+ }, 0);
159750
+ const target = Number(toTaskId);
159751
+ if (Number.isInteger(target) && target > highestIssued) {
159752
+ return { valid: true };
159753
+ }
159754
+ return { valid: false, reason: "task_not_found" };
159746
159755
  }
159747
159756
  if (fromTask.blocks.includes(toTaskId)) {
159748
159757
  return { valid: true };
@@ -250785,7 +250794,7 @@ function getTelemetryAttributes() {
250785
250794
  attributes["session.id"] = sessionId;
250786
250795
  }
250787
250796
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250788
- attributes["app.version"] = "1.78.3";
250797
+ attributes["app.version"] = "1.78.5";
250789
250798
  }
250790
250799
  const oauthAccount = getOauthAccountInfo();
250791
250800
  if (oauthAccount) {
@@ -297292,7 +297301,7 @@ function getInstallationEnv() {
297292
297301
  return;
297293
297302
  }
297294
297303
  function getURCodeVersion() {
297295
- return "1.78.3";
297304
+ return "1.78.5";
297296
297305
  }
297297
297306
  async function getInstalledVSCodeExtensionVersion(command) {
297298
297307
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304623,7 +304632,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304623
304632
  const client2 = new Client({
304624
304633
  name: "ur",
304625
304634
  title: "UR",
304626
- version: "1.78.3",
304635
+ version: "1.78.5",
304627
304636
  description: "UR-Nexus autonomous engineering workflow engine",
304628
304637
  websiteUrl: PRODUCT_URL
304629
304638
  }, {
@@ -304983,7 +304992,7 @@ var init_client5 = __esm(() => {
304983
304992
  const client2 = new Client({
304984
304993
  name: "ur",
304985
304994
  title: "UR",
304986
- version: "1.78.3",
304995
+ version: "1.78.5",
304987
304996
  description: "UR-Nexus autonomous engineering workflow engine",
304988
304997
  websiteUrl: PRODUCT_URL
304989
304998
  }, {
@@ -317592,7 +317601,7 @@ async function createRuntime() {
317592
317601
  bootstrapTelemetry();
317593
317602
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317594
317603
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317595
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.3"
317604
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.5"
317596
317605
  }));
317597
317606
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317598
317607
  resource,
@@ -317625,11 +317634,11 @@ async function createRuntime() {
317625
317634
  setMeterProvider(meterProvider);
317626
317635
  setLoggerProvider(loggerProvider);
317627
317636
  if (meterProvider) {
317628
- const meter = meterProvider.getMeter("ur-agent", "1.78.3");
317637
+ const meter = meterProvider.getMeter("ur-agent", "1.78.5");
317629
317638
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317630
317639
  }
317631
317640
  if (loggerProvider) {
317632
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.3"));
317641
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.5"));
317633
317642
  }
317634
317643
  if (!cleanupRegistered2) {
317635
317644
  cleanupRegistered2 = true;
@@ -318291,9 +318300,9 @@ async function assertMinVersion() {
318291
318300
  if (false) {}
318292
318301
  try {
318293
318302
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318294
- if (versionConfig.minVersion && lt("1.78.3", versionConfig.minVersion)) {
318303
+ if (versionConfig.minVersion && lt("1.78.5", versionConfig.minVersion)) {
318295
318304
  console.error(`
318296
- It looks like your version of UR (${"1.78.3"}) needs an update.
318305
+ It looks like your version of UR (${"1.78.5"}) needs an update.
318297
318306
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318298
318307
 
318299
318308
  To update, please run:
@@ -318509,7 +318518,7 @@ async function installGlobalPackage(specificVersion) {
318509
318518
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318510
318519
  logEvent("tengu_auto_updater_lock_contention", {
318511
318520
  pid: process.pid,
318512
- currentVersion: "1.78.3"
318521
+ currentVersion: "1.78.5"
318513
318522
  });
318514
318523
  return "in_progress";
318515
318524
  }
@@ -318518,7 +318527,7 @@ async function installGlobalPackage(specificVersion) {
318518
318527
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318519
318528
  logError2(new Error("Windows NPM detected in WSL environment"));
318520
318529
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318521
- currentVersion: "1.78.3"
318530
+ currentVersion: "1.78.5"
318522
318531
  });
318523
318532
  console.error(`
318524
318533
  Error: Windows NPM detected in WSL
@@ -319053,7 +319062,7 @@ function detectLinuxGlobPatternWarnings() {
319053
319062
  }
319054
319063
  async function getDoctorDiagnostic() {
319055
319064
  const installationType = await getCurrentInstallationType();
319056
- const version2 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
319065
+ const version2 = typeof MACRO !== "undefined" ? "1.78.5" : "unknown";
319057
319066
  const installationPath = await getInstallationPath();
319058
319067
  const invokedBinary = getInvokedBinary();
319059
319068
  const multipleInstallations = await detectMultipleInstallations();
@@ -319988,8 +319997,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319988
319997
  const maxVersion = await getMaxVersion();
319989
319998
  if (maxVersion && gt(version2, maxVersion)) {
319990
319999
  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`);
320000
+ if (gte("1.78.5", maxVersion)) {
320001
+ logForDebugging(`Native installer: current version ${"1.78.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
319993
320002
  logEvent("tengu_native_update_skipped_max_version", {
319994
320003
  latency_ms: Date.now() - startTime,
319995
320004
  max_version: maxVersion,
@@ -320000,7 +320009,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
320000
320009
  version2 = maxVersion;
320001
320010
  }
320002
320011
  }
320003
- if (!forceReinstall && version2 === "1.78.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320012
+ if (!forceReinstall && version2 === "1.78.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320004
320013
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
320005
320014
  logEvent("tengu_native_update_complete", {
320006
320015
  latency_ms: Date.now() - startTime,
@@ -389721,7 +389730,7 @@ function isAnyTracingEnabled() {
389721
389730
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389722
389731
  }
389723
389732
  function getTracer() {
389724
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.3");
389733
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.5");
389725
389734
  }
389726
389735
  function createSpanAttributes(spanType, customAttributes = {}) {
389727
389736
  const baseAttributes = getTelemetryAttributes();
@@ -419947,7 +419956,7 @@ function Feedback({
419947
419956
  platform: env2.platform,
419948
419957
  gitRepo: envInfo.isGit,
419949
419958
  terminal: env2.terminal,
419950
- version: "1.78.3",
419959
+ version: "1.78.5",
419951
419960
  transcript: normalizeMessagesForAPI(messages),
419952
419961
  errors: sanitizedErrors,
419953
419962
  lastApiRequest: getLastAPIRequest(),
@@ -420139,7 +420148,7 @@ function Feedback({
420139
420148
  ", ",
420140
420149
  env2.terminal,
420141
420150
  ", v",
420142
- "1.78.3"
420151
+ "1.78.5"
420143
420152
  ]
420144
420153
  }, undefined, true, undefined, this)
420145
420154
  ]
@@ -420245,7 +420254,7 @@ ${sanitizedDescription}
420245
420254
  ` + `**Environment Info**
420246
420255
  ` + `- Platform: ${env2.platform}
420247
420256
  ` + `- Terminal: ${env2.terminal}
420248
- ` + `- Version: ${"1.78.3"}
420257
+ ` + `- Version: ${"1.78.5"}
420249
420258
  ` + `- Feedback ID: ${feedbackId}
420250
420259
  ` + `
420251
420260
  **Errors**
@@ -423355,7 +423364,7 @@ function buildPrimarySection() {
423355
423364
  }, undefined, false, undefined, this);
423356
423365
  return [{
423357
423366
  label: "Version",
423358
- value: "1.78.3"
423367
+ value: "1.78.5"
423359
423368
  }, {
423360
423369
  label: "Session name",
423361
423370
  value: nameValue
@@ -426737,7 +426746,7 @@ function Config({
426737
426746
  }
426738
426747
  }, undefined, false, undefined, this)
426739
426748
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426740
- currentVersion: "1.78.3",
426749
+ currentVersion: "1.78.5",
426741
426750
  onChoice: (choice) => {
426742
426751
  setShowSubmenu(null);
426743
426752
  setTabsHidden(false);
@@ -426749,7 +426758,7 @@ function Config({
426749
426758
  autoUpdatesChannel: "stable"
426750
426759
  };
426751
426760
  if (choice === "stay") {
426752
- newSettings.minimumVersion = "1.78.3";
426761
+ newSettings.minimumVersion = "1.78.5";
426753
426762
  }
426754
426763
  updateSettingsForSource("userSettings", newSettings);
426755
426764
  setSettingsData((prev_27) => ({
@@ -434813,7 +434822,7 @@ function HelpV2(t0) {
434813
434822
  let t6;
434814
434823
  if ($2[31] !== tabs) {
434815
434824
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434816
- title: `UR v${"1.78.3"}`,
434825
+ title: `UR v${"1.78.5"}`,
434817
434826
  color: "professionalBlue",
434818
434827
  defaultTab: "general",
434819
434828
  children: tabs
@@ -435746,7 +435755,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435746
435755
  async function handleInitialize(options2) {
435747
435756
  return {
435748
435757
  name: "UR",
435749
- version: "1.78.3",
435758
+ version: "1.78.5",
435750
435759
  protocolVersion: "0.1.0",
435751
435760
  workspaceRoot: options2.cwd,
435752
435761
  capabilities: {
@@ -452854,7 +452863,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452854
452863
  return [];
452855
452864
  }
452856
452865
  }
452857
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.3") {
452866
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.5") {
452858
452867
  if (process.env.USER_TYPE === "ant") {
452859
452868
  const changelog = "";
452860
452869
  if (changelog) {
@@ -452881,7 +452890,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.3")
452881
452890
  releaseNotes
452882
452891
  };
452883
452892
  }
452884
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.3") {
452893
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.5") {
452885
452894
  if (process.env.USER_TYPE === "ant") {
452886
452895
  const changelog = "";
452887
452896
  if (changelog) {
@@ -455747,7 +455756,7 @@ function getRecentActivitySync() {
455747
455756
  return cachedActivity;
455748
455757
  }
455749
455758
  function getLogoDisplayData() {
455750
- const version2 = process.env.DEMO_VERSION ?? "1.78.3";
455759
+ const version2 = process.env.DEMO_VERSION ?? "1.78.5";
455751
455760
  const serverUrl = getDirectConnectServerUrl();
455752
455761
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455753
455762
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456614,7 +456623,7 @@ function LogoV2() {
456614
456623
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456615
456624
  t2 = () => {
456616
456625
  const currentConfig2 = getGlobalConfig();
456617
- if (currentConfig2.lastReleaseNotesSeen === "1.78.3") {
456626
+ if (currentConfig2.lastReleaseNotesSeen === "1.78.5") {
456618
456627
  return;
456619
456628
  }
456620
456629
  saveGlobalConfig(_temp325);
@@ -457299,12 +457308,12 @@ function LogoV2() {
457299
457308
  return t41;
457300
457309
  }
457301
457310
  function _temp325(current) {
457302
- if (current.lastReleaseNotesSeen === "1.78.3") {
457311
+ if (current.lastReleaseNotesSeen === "1.78.5") {
457303
457312
  return current;
457304
457313
  }
457305
457314
  return {
457306
457315
  ...current,
457307
- lastReleaseNotesSeen: "1.78.3"
457316
+ lastReleaseNotesSeen: "1.78.5"
457308
457317
  };
457309
457318
  }
457310
457319
  function _temp241(s_0) {
@@ -474118,7 +474127,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474118
474127
  if (spec.name !== specName) {
474119
474128
  throw new Error("Agentic CI workflow spec name does not match");
474120
474129
  }
474121
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3");
474130
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.5" : "1.78.5");
474122
474131
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474123
474132
  throw new Error("invalid ur-agent package version");
474124
474133
  }
@@ -475111,7 +475120,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
475111
475120
  path: ".github/workflows/ur.yml",
475112
475121
  root: "project",
475113
475122
  content: compileAgenticCiWorkflow("default", {
475114
- packageVersion: typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3"
475123
+ packageVersion: typeof MACRO !== "undefined" ? "1.78.5" : "1.78.5"
475115
475124
  })
475116
475125
  },
475117
475126
  {
@@ -475174,7 +475183,7 @@ function value(tokens, flag) {
475174
475183
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475175
475184
  }
475176
475185
  function cliVersion() {
475177
- return typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3";
475186
+ return typeof MACRO !== "undefined" ? "1.78.5" : "1.78.5";
475178
475187
  }
475179
475188
  function workflowPath(cwd2) {
475180
475189
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -481030,7 +481039,7 @@ function createAcpStdioApp(deps) {
481030
481039
  }
481031
481040
  },
481032
481041
  authMethods: [],
481033
- agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481042
+ agentInfo: { name: "UR-Nexus", version: "1.78.5" }
481034
481043
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
481035
481044
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
481036
481045
  await runtime2.announce({
@@ -481127,7 +481136,7 @@ function createAcpStdioAgent(deps) {
481127
481136
  }
481128
481137
  },
481129
481138
  authMethods: [],
481130
- agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481139
+ agentInfo: { name: "UR-Nexus", version: "1.78.5" }
481131
481140
  });
481132
481141
  return;
481133
481142
  case "authenticate":
@@ -690587,7 +690596,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690587
690596
  smapsRollup,
690588
690597
  platform: process.platform,
690589
690598
  nodeVersion: process.version,
690590
- ccVersion: "1.78.3"
690599
+ ccVersion: "1.78.5"
690591
690600
  };
690592
690601
  }
690593
690602
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691167,7 +691176,7 @@ var init_bridge_kick = __esm(() => {
691167
691176
  var call154 = async () => {
691168
691177
  return {
691169
691178
  type: "text",
691170
- value: "1.78.3"
691179
+ value: "1.78.5"
691171
691180
  };
691172
691181
  }, version2, version_default;
691173
691182
  var init_version = __esm(() => {
@@ -702434,7 +702443,7 @@ function generateHtmlReport(data, insights) {
702434
702443
  </html>`;
702435
702444
  }
702436
702445
  function buildExportData(data, insights, facets, remoteStats) {
702437
- const version3 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
702446
+ const version3 = typeof MACRO !== "undefined" ? "1.78.5" : "unknown";
702438
702447
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702439
702448
  const facets_summary = {
702440
702449
  total: facets.size,
@@ -706748,7 +706757,7 @@ var init_sessionStorage = __esm(() => {
706748
706757
  init_settings2();
706749
706758
  init_slowOperations();
706750
706759
  init_uuid();
706751
- VERSION7 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
706760
+ VERSION7 = typeof MACRO !== "undefined" ? "1.78.5" : "unknown";
706752
706761
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706753
706762
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706754
706763
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707963,7 +707972,7 @@ var init_filesystem = __esm(() => {
707963
707972
  });
707964
707973
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707965
707974
  const nonce = randomBytes20(16).toString("hex");
707966
- return join232(getURTempDir(), "bundled-skills", "1.78.3", nonce);
707975
+ return join232(getURTempDir(), "bundled-skills", "1.78.5", nonce);
707967
707976
  });
707968
707977
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707969
707978
  });
@@ -714320,7 +714329,7 @@ function computeFingerprint(messageText2, version3) {
714320
714329
  }
714321
714330
  function computeFingerprintFromMessages(messages) {
714322
714331
  const firstMessageText = extractFirstMessageText(messages);
714323
- return computeFingerprint(firstMessageText, "1.78.3");
714332
+ return computeFingerprint(firstMessageText, "1.78.5");
714324
714333
  }
714325
714334
  var FINGERPRINT_SALT = "59cf53e54c78";
714326
714335
  var init_fingerprint = () => {};
@@ -716242,7 +716251,7 @@ async function sideQuery(opts) {
716242
716251
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716243
716252
  }
716244
716253
  const messageText2 = extractFirstUserMessageText(messages);
716245
- const fingerprint2 = computeFingerprint(messageText2, "1.78.3");
716254
+ const fingerprint2 = computeFingerprint(messageText2, "1.78.5");
716246
716255
  const attributionHeader = getAttributionHeader(fingerprint2);
716247
716256
  const systemBlocks = [
716248
716257
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -721079,7 +721088,7 @@ function buildSystemInitMessage(inputs) {
721079
721088
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
721080
721089
  apiKeySource: getURHQApiKeyWithSource().source,
721081
721090
  betas: getSdkBetas(),
721082
- ur_version: "1.78.3",
721091
+ ur_version: "1.78.5",
721083
721092
  output_style: outputStyle2,
721084
721093
  agents: inputs.agents.map((agent2) => agent2.agentType),
721085
721094
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734951,7 +734960,7 @@ var init_useVoiceEnabled = __esm(() => {
734951
734960
  function getSemverPart(version3) {
734952
734961
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734953
734962
  }
734954
- function useUpdateNotification(updatedVersion, initialVersion = "1.78.3") {
734963
+ function useUpdateNotification(updatedVersion, initialVersion = "1.78.5") {
734955
734964
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734956
734965
  if (!updatedVersion) {
734957
734966
  return null;
@@ -735000,7 +735009,7 @@ function AutoUpdater({
735000
735009
  return;
735001
735010
  }
735002
735011
  if (false) {}
735003
- const currentVersion = "1.78.3";
735012
+ const currentVersion = "1.78.5";
735004
735013
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
735005
735014
  let latestVersion = await getLatestVersion(channel);
735006
735015
  const isDisabled = isAutoUpdaterDisabled();
@@ -735229,12 +735238,12 @@ function NativeAutoUpdater({
735229
735238
  logEvent("tengu_native_auto_updater_start", {});
735230
735239
  try {
735231
735240
  const maxVersion = await getMaxVersion();
735232
- if (maxVersion && gt("1.78.3", maxVersion)) {
735241
+ if (maxVersion && gt("1.78.5", maxVersion)) {
735233
735242
  const msg = await getMaxVersionMessage();
735234
735243
  setMaxVersionIssue(msg ?? "affects your version");
735235
735244
  }
735236
735245
  const result = await installLatest(channel);
735237
- const currentVersion = "1.78.3";
735246
+ const currentVersion = "1.78.5";
735238
735247
  const latencyMs = Date.now() - startTime;
735239
735248
  if (result.lockFailed) {
735240
735249
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735371,17 +735380,17 @@ function PackageManagerAutoUpdater(t0) {
735371
735380
  const maxVersion = await getMaxVersion();
735372
735381
  if (maxVersion && latest && gt(latest, maxVersion)) {
735373
735382
  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`);
735383
+ if (gte("1.78.5", maxVersion)) {
735384
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
735376
735385
  setUpdateAvailable(false);
735377
735386
  return;
735378
735387
  }
735379
735388
  latest = maxVersion;
735380
735389
  }
735381
- const hasUpdate = latest && !gte("1.78.3", latest) && !shouldSkipVersion(latest);
735390
+ const hasUpdate = latest && !gte("1.78.5", latest) && !shouldSkipVersion(latest);
735382
735391
  setUpdateAvailable(!!hasUpdate);
735383
735392
  if (hasUpdate) {
735384
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.3"} -> ${latest}`);
735393
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.5"} -> ${latest}`);
735385
735394
  }
735386
735395
  };
735387
735396
  $2[0] = t1;
@@ -735415,7 +735424,7 @@ function PackageManagerAutoUpdater(t0) {
735415
735424
  wrap: "truncate",
735416
735425
  children: [
735417
735426
  "currentVersion: ",
735418
- "1.78.3"
735427
+ "1.78.5"
735419
735428
  ]
735420
735429
  }, undefined, true, undefined, this);
735421
735430
  $2[3] = verbose;
@@ -746215,7 +746224,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746215
746224
  project_dir: getOriginalCwd(),
746216
746225
  added_dirs: addedDirs
746217
746226
  },
746218
- version: "1.78.3",
746227
+ version: "1.78.5",
746219
746228
  output_style: {
746220
746229
  name: outputStyleName
746221
746230
  },
@@ -746350,7 +746359,7 @@ function StatusLineInner({
746350
746359
  const attention = customStatusError ?? taskAttention;
746351
746360
  const terminalSize = React132.useContext(TerminalSizeContext);
746352
746361
  const defaultStatusLineText = buildDefaultStatusBar({
746353
- version: "1.78.3",
746362
+ version: "1.78.5",
746354
746363
  providerLabel: providerRuntime.providerLabel,
746355
746364
  authMode: providerRuntime.authLabel,
746356
746365
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758635,7 +758644,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758635
758644
  } catch {}
758636
758645
  const data = {
758637
758646
  trigger: trigger2,
758638
- version: "1.78.3",
758647
+ version: "1.78.5",
758639
758648
  platform: process.platform,
758640
758649
  transcript,
758641
758650
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -771009,7 +771018,7 @@ function WelcomeV2() {
771009
771018
  dimColor: true,
771010
771019
  children: [
771011
771020
  "v",
771012
- "1.78.3"
771021
+ "1.78.5"
771013
771022
  ]
771014
771023
  }, undefined, true, undefined, this)
771015
771024
  ]
@@ -772269,7 +772278,7 @@ function completeOnboarding() {
772269
772278
  saveGlobalConfig((current) => ({
772270
772279
  ...current,
772271
772280
  hasCompletedOnboarding: true,
772272
- lastOnboardingVersion: "1.78.3"
772281
+ lastOnboardingVersion: "1.78.5"
772273
772282
  }));
772274
772283
  }
772275
772284
  function showDialog(root2, renderer) {
@@ -777313,7 +777322,7 @@ function appendToLog(path24, message) {
777313
777322
  cwd: getFsImplementation().cwd(),
777314
777323
  userType: process.env.USER_TYPE,
777315
777324
  sessionId: getSessionId(),
777316
- version: "1.78.3"
777325
+ version: "1.78.5"
777317
777326
  };
777318
777327
  getLogWriter(path24).write(messageWithTimestamp);
777319
777328
  }
@@ -781472,8 +781481,8 @@ async function getEnvLessBridgeConfig() {
781472
781481
  }
781473
781482
  async function checkEnvLessBridgeMinVersion() {
781474
781483
  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.
781484
+ if (cfg.min_version && lt("1.78.5", cfg.min_version)) {
781485
+ return `Your version of UR (${"1.78.5"}) is too old for Remote Control.
781477
781486
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781478
781487
  }
781479
781488
  return null;
@@ -781947,7 +781956,7 @@ async function initBridgeCore(params) {
781947
781956
  const rawApi = createBridgeApiClient({
781948
781957
  baseUrl,
781949
781958
  getAccessToken,
781950
- runnerVersion: "1.78.3",
781959
+ runnerVersion: "1.78.5",
781951
781960
  onDebug: logForDebugging,
781952
781961
  onAuth401,
781953
781962
  getTrustedDeviceToken
@@ -791420,7 +791429,7 @@ function getAgUiCapabilities() {
791420
791429
  name: "UR-Nexus",
791421
791430
  type: "ur-nexus",
791422
791431
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791423
- version: "1.78.3",
791432
+ version: "1.78.5",
791424
791433
  provider: "UR",
791425
791434
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791426
791435
  },
@@ -792560,7 +792569,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792560
792569
  };
792561
792570
  const server2 = new Server({
792562
792571
  name: "ur-nexus",
792563
- version: "1.78.3"
792572
+ version: "1.78.5"
792564
792573
  }, {
792565
792574
  capabilities: {
792566
792575
  tools: {}
@@ -793718,7 +793727,7 @@ function thrownResponse(error40) {
793718
793727
  }
793719
793728
  async function createUrMcp2026Runtime(options4) {
793720
793729
  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: {} });
793730
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.5" }, { capabilities: {} });
793722
793731
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793723
793732
  try {
793724
793733
  await server2.connect(serverTransport);
@@ -793729,7 +793738,7 @@ async function createUrMcp2026Runtime(options4) {
793729
793738
  }
793730
793739
  const runtime2 = new Mcp2026Runtime({
793731
793740
  cwd: options4.cwd,
793732
- version: "1.78.3",
793741
+ version: "1.78.5",
793733
793742
  backend: {
793734
793743
  listTools: async () => {
793735
793744
  const listed = await client2.listTools();
@@ -795870,7 +795879,7 @@ async function update() {
795870
795879
  logEvent("tengu_update_check", {});
795871
795880
  const diagnostic2 = await getDoctorDiagnostic();
795872
795881
  const result = await checkUpgradeStatus({
795873
- currentVersion: "1.78.3",
795882
+ currentVersion: "1.78.5",
795874
795883
  packageName: UR_AGENT_PACKAGE_NAME,
795875
795884
  installationType: diagnostic2.installationType,
795876
795885
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797186,7 +797195,7 @@ ${customInstructions}` : customInstructions;
797186
797195
  }
797187
797196
  }
797188
797197
  logForDiagnosticsNoPII("info", "started", {
797189
- version: "1.78.3",
797198
+ version: "1.78.5",
797190
797199
  is_native_binary: isInBundledMode()
797191
797200
  });
797192
797201
  registerCleanup(async () => {
@@ -797972,7 +797981,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797972
797981
  pendingHookMessages
797973
797982
  }, renderAndRun);
797974
797983
  }
797975
- }).version("1.78.3 (UR-Nexus)", "-v, --version", "Output the version number");
797984
+ }).version("1.78.5 (UR-Nexus)", "-v, --version", "Output the version number");
797976
797985
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797977
797986
  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
797987
  if (canUserConfigureAdvisor()) {
@@ -799024,7 +799033,7 @@ if (false) {}
799024
799033
  async function main2() {
799025
799034
  const args = process.argv.slice(2);
799026
799035
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
799027
- console.log(`${"1.78.3"} (UR-Nexus)`);
799036
+ console.log(`${"1.78.5"} (UR-Nexus)`);
799028
799037
  return;
799029
799038
  }
799030
799039
  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.5 (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.5</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.5"
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.5",
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.5",
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",
@@ -54,7 +54,7 @@
54
54
  "typecheck": "bun run tsc --noEmit && bun run typecheck:strict-core",
55
55
  "typecheck:strict-core": "node scripts/strict-core-check.mjs",
56
56
  "lint": "node scripts/lint.mjs",
57
- "test": "bun test",
57
+ "test": "bun test --timeout 120000",
58
58
  "smoke": "node ./bin/ur.js --version",
59
59
  "secrets:scan": "bash scripts/secret-scan.sh",
60
60
  "dependencies:audit": "bun audit",