ur-agent 1.68.2 → 1.68.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 +34 -0
- package/dist/cli.js +129 -88
- package/docs/VALIDATION.md +1 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
- package/technical/README.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.68.4
|
|
4
|
+
|
|
5
|
+
- The status line now reports subagents running in the current turn:
|
|
6
|
+
`agents: 2 running`, separate from the existing background `tasks:` count.
|
|
7
|
+
`isBackgroundTask()` excludes foreground entries on purpose — it was narrowed
|
|
8
|
+
to stop stale ratios like `tasks: 0/4 active` outliving the work — but nothing
|
|
9
|
+
counted them instead, so while subagents ran the bar said nothing at all,
|
|
10
|
+
which is the one moment the number matters.
|
|
11
|
+
- Counted conservatively on purpose: a pending agent is not reported as running,
|
|
12
|
+
a backgrounded agent is not counted twice across both numbers, a foreground
|
|
13
|
+
shell is not labelled an agent, and zero renders nothing rather than
|
|
14
|
+
`agents: 0`. A wrong number in a status line is worse than a missing one.
|
|
15
|
+
- No tool count was added. A `toolCount` field was drafted and then removed
|
|
16
|
+
rather than shipped unpopulated; a meaningful count of in-flight tool calls
|
|
17
|
+
needs hooks into tool execution, and a static "tools registered" total is
|
|
18
|
+
noise.
|
|
19
|
+
|
|
20
|
+
## 1.68.3
|
|
21
|
+
|
|
22
|
+
- `Ollama request failed (400): http: request body too large` now explains
|
|
23
|
+
itself. That string comes from Go's `net/http` MaxBytesReader rejecting the
|
|
24
|
+
payload on **byte size**, which is a different limit from the model's context
|
|
25
|
+
window — so the token-based context warning added in 1.66.2 never fires for
|
|
26
|
+
it, and a couple of screenshots can breach it while the token estimate still
|
|
27
|
+
looks comfortable. The request body is now measured at the send site, and the
|
|
28
|
+
error reports its actual size, names images as the usual cause (base64 adds
|
|
29
|
+
roughly a third, and every image persists in the transcript on later turns),
|
|
30
|
+
offers `/compact` or a fresh session, and notes that a reverse proxy in front
|
|
31
|
+
of Ollama enforces its own limit (`client_max_body_size` for nginx) which
|
|
32
|
+
tuning Ollama would not affect.
|
|
33
|
+
- The classifier matches the 413 spellings a proxy returns as well as the Go
|
|
34
|
+
400, and is tested against unrelated 400s so it cannot replace a correct error
|
|
35
|
+
with confident, irrelevant advice.
|
|
36
|
+
|
|
3
37
|
## 1.68.2
|
|
4
38
|
|
|
5
39
|
- **Security: explicit file deny rules were not enforced.** `matchingRuleForInput`
|
package/dist/cli.js
CHANGED
|
@@ -57518,10 +57518,12 @@ __export(exports_ollama, {
|
|
|
57518
57518
|
toOllamaChatRequest: () => toOllamaChatRequest,
|
|
57519
57519
|
parseOllamaModelCapabilities: () => parseOllamaModelCapabilities,
|
|
57520
57520
|
mergeToolCalls: () => mergeToolCalls,
|
|
57521
|
+
isOllamaRequestTooLarge: () => isOllamaRequestTooLarge,
|
|
57521
57522
|
isOllamaCloudModel: () => isOllamaCloudModel2,
|
|
57522
57523
|
getOllamaRequestTimeoutMs: () => getOllamaRequestTimeoutMs,
|
|
57523
57524
|
getOllamaModelDefaultTimeoutMs: () => getOllamaModelDefaultTimeoutMs,
|
|
57524
57525
|
getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
|
|
57526
|
+
describeOversizedOllamaRequest: () => describeOversizedOllamaRequest,
|
|
57525
57527
|
createOllamaURHQClient: () => createOllamaURHQClient,
|
|
57526
57528
|
consumePendingProviderNotice: () => consumePendingProviderNotice,
|
|
57527
57529
|
buildOllamaHeaders: () => buildOllamaHeaders
|
|
@@ -57590,15 +57592,16 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
|
|
|
57590
57592
|
try {
|
|
57591
57593
|
const capabilities = await getOllamaModelCapabilities(params.model, baseUrl, controller.signal);
|
|
57592
57594
|
const textToolFallbackAllowed = (params.tools?.length ?? 0) > 0 && !modelCapabilityEnabled(capabilities, "tools");
|
|
57595
|
+
const requestBody = JSON.stringify(toOllamaChatRequest(params, stream4, capabilities, baseUrl));
|
|
57593
57596
|
const response = await fetch(`${baseUrl}/api/chat`, {
|
|
57594
57597
|
method: "POST",
|
|
57595
57598
|
headers: buildOllamaHeaders(),
|
|
57596
|
-
body:
|
|
57599
|
+
body: requestBody,
|
|
57597
57600
|
signal: controller.signal
|
|
57598
57601
|
});
|
|
57599
57602
|
if (!response.ok) {
|
|
57600
57603
|
const body = await response.text().catch(() => "");
|
|
57601
|
-
throw createOllamaHTTPError(response.status, body, response.statusText);
|
|
57604
|
+
throw createOllamaHTTPError(response.status, body, response.statusText, requestBody.length);
|
|
57602
57605
|
}
|
|
57603
57606
|
return { response, textToolFallbackAllowed };
|
|
57604
57607
|
} catch (error40) {
|
|
@@ -57621,7 +57624,21 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
|
|
|
57621
57624
|
}
|
|
57622
57625
|
}
|
|
57623
57626
|
}
|
|
57624
|
-
function
|
|
57627
|
+
function isOllamaRequestTooLarge(status, message) {
|
|
57628
|
+
return (status === 400 || status === 413) && /request body too large|payload too large|entity too large/i.test(message);
|
|
57629
|
+
}
|
|
57630
|
+
function formatBytes(bytes) {
|
|
57631
|
+
if (bytes >= 1024 * 1024)
|
|
57632
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
57633
|
+
if (bytes >= 1024)
|
|
57634
|
+
return `${Math.round(bytes / 1024)} KB`;
|
|
57635
|
+
return `${bytes} bytes`;
|
|
57636
|
+
}
|
|
57637
|
+
function describeOversizedOllamaRequest(requestBytes) {
|
|
57638
|
+
const size = requestBytes && requestBytes > 0 ? `This request was ${formatBytes(requestBytes)}. ` : "";
|
|
57639
|
+
return `Ollama rejected the request because the HTTP body exceeded its size limit. ` + `${size}This is a byte-size limit on the server, not the model's context ` + `window, so it can trigger even when the conversation fits. Images are the ` + `usual cause \u2014 base64 encoding adds roughly a third to their size, and every ` + `image stays in the transcript on later turns. Use /compact or start a new ` + `session to drop older attachments, or send fewer and smaller images. If the ` + `endpoint sits behind a reverse proxy, the proxy's own body limit applies too ` + `(for nginx that is client_max_body_size).`;
|
|
57640
|
+
}
|
|
57641
|
+
function createOllamaHTTPError(status, body, statusText, requestBytes) {
|
|
57625
57642
|
const rawMessage = extractOllamaHTTPErrorMessage(body) || statusText;
|
|
57626
57643
|
if (isOllamaGatewayTimeout(status, rawMessage)) {
|
|
57627
57644
|
return new APIConnectionTimeoutError({
|
|
@@ -57629,6 +57646,11 @@ function createOllamaHTTPError(status, body, statusText) {
|
|
|
57629
57646
|
cause: new Error(`Ollama request failed (${status}): ${rawMessage}`)
|
|
57630
57647
|
});
|
|
57631
57648
|
}
|
|
57649
|
+
if (isOllamaRequestTooLarge(status, rawMessage)) {
|
|
57650
|
+
return new Error(describeOversizedOllamaRequest(requestBytes), {
|
|
57651
|
+
cause: new Error(`Ollama request failed (${status}): ${rawMessage}`)
|
|
57652
|
+
});
|
|
57653
|
+
}
|
|
57632
57654
|
return new Error(`Ollama request failed (${status}): ${rawMessage}`);
|
|
57633
57655
|
}
|
|
57634
57656
|
function extractOllamaHTTPErrorMessage(body) {
|
|
@@ -75647,7 +75669,7 @@ var init_auth = __esm(() => {
|
|
|
75647
75669
|
|
|
75648
75670
|
// src/utils/userAgent.ts
|
|
75649
75671
|
function getURCodeUserAgent() {
|
|
75650
|
-
return `ur/${"1.68.
|
|
75672
|
+
return `ur/${"1.68.4"}`;
|
|
75651
75673
|
}
|
|
75652
75674
|
|
|
75653
75675
|
// src/utils/workloadContext.ts
|
|
@@ -75669,7 +75691,7 @@ function getUserAgent() {
|
|
|
75669
75691
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75670
75692
|
const workload = getWorkload();
|
|
75671
75693
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75672
|
-
return `ur-cli/${"1.68.
|
|
75694
|
+
return `ur-cli/${"1.68.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75673
75695
|
}
|
|
75674
75696
|
function getMCPUserAgent() {
|
|
75675
75697
|
const parts = [];
|
|
@@ -75683,7 +75705,7 @@ function getMCPUserAgent() {
|
|
|
75683
75705
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75684
75706
|
}
|
|
75685
75707
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75686
|
-
return `ur/${"1.68.
|
|
75708
|
+
return `ur/${"1.68.4"}${suffix}`;
|
|
75687
75709
|
}
|
|
75688
75710
|
function getWebFetchUserAgent() {
|
|
75689
75711
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75821,7 +75843,7 @@ var init_user = __esm(() => {
|
|
|
75821
75843
|
deviceId,
|
|
75822
75844
|
sessionId: getSessionId(),
|
|
75823
75845
|
email: getEmail(),
|
|
75824
|
-
appVersion: "1.68.
|
|
75846
|
+
appVersion: "1.68.4",
|
|
75825
75847
|
platform: getHostPlatformForAnalytics(),
|
|
75826
75848
|
organizationUuid,
|
|
75827
75849
|
accountUuid,
|
|
@@ -84021,7 +84043,7 @@ var init_metadata = __esm(() => {
|
|
|
84021
84043
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
84022
84044
|
WHITESPACE_REGEX = /\s+/;
|
|
84023
84045
|
getVersionBase = memoize_default(() => {
|
|
84024
|
-
const match = "1.68.
|
|
84046
|
+
const match = "1.68.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
84025
84047
|
return match ? match[0] : undefined;
|
|
84026
84048
|
});
|
|
84027
84049
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -84061,7 +84083,7 @@ var init_metadata = __esm(() => {
|
|
|
84061
84083
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
84062
84084
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
84063
84085
|
isURAiAuth: isURAISubscriber(),
|
|
84064
|
-
version: "1.68.
|
|
84086
|
+
version: "1.68.4",
|
|
84065
84087
|
versionBase: getVersionBase(),
|
|
84066
84088
|
buildTime: "",
|
|
84067
84089
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84731,7 +84753,7 @@ function initialize1PEventLogging() {
|
|
|
84731
84753
|
const platform2 = getPlatform();
|
|
84732
84754
|
const attributes = {
|
|
84733
84755
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84734
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.
|
|
84756
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.4"
|
|
84735
84757
|
};
|
|
84736
84758
|
if (platform2 === "wsl") {
|
|
84737
84759
|
const wslVersion = getWslVersion();
|
|
@@ -84759,7 +84781,7 @@ function initialize1PEventLogging() {
|
|
|
84759
84781
|
})
|
|
84760
84782
|
]
|
|
84761
84783
|
});
|
|
84762
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.
|
|
84784
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.4");
|
|
84763
84785
|
}
|
|
84764
84786
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84765
84787
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -88639,7 +88661,7 @@ async function inspectModel(model) {
|
|
|
88639
88661
|
likelyCode: inferCode(name, family)
|
|
88640
88662
|
};
|
|
88641
88663
|
}
|
|
88642
|
-
function
|
|
88664
|
+
function formatBytes2(size) {
|
|
88643
88665
|
if (!size)
|
|
88644
88666
|
return "unknown size";
|
|
88645
88667
|
const gib = size / 1024 / 1024 / 1024;
|
|
@@ -88653,7 +88675,7 @@ function formatReport(models) {
|
|
|
88653
88675
|
for (const model of models) {
|
|
88654
88676
|
lines.push(model.name);
|
|
88655
88677
|
lines.push(` Family: ${model.family ?? "unknown"}`);
|
|
88656
|
-
lines.push(` Size: ${
|
|
88678
|
+
lines.push(` Size: ${formatBytes2(model.size)}`);
|
|
88657
88679
|
lines.push(` Context length: ${model.contextLength ?? "unknown"}`);
|
|
88658
88680
|
lines.push(` Embedding length: ${model.embeddingLength ?? "unknown"}`);
|
|
88659
88681
|
lines.push(` Advertised capabilities: ${model.advertisedCapabilities.length ? model.advertisedCapabilities.join(", ") : "not advertised by Ollama"}`);
|
|
@@ -94647,7 +94669,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94647
94669
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94648
94670
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94649
94671
|
}
|
|
94650
|
-
var urVersion = "1.68.
|
|
94672
|
+
var urVersion = "1.68.4", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94651
94673
|
var init_trends = __esm(() => {
|
|
94652
94674
|
init_a2aCardSignature();
|
|
94653
94675
|
coverage = [
|
|
@@ -97450,7 +97472,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
97450
97472
|
if (!isAttributionHeaderEnabled()) {
|
|
97451
97473
|
return "";
|
|
97452
97474
|
}
|
|
97453
|
-
const version2 = `${"1.68.
|
|
97475
|
+
const version2 = `${"1.68.4"}.${fingerprint}`;
|
|
97454
97476
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
97455
97477
|
const cch = "";
|
|
97456
97478
|
const workload = getWorkload();
|
|
@@ -155323,7 +155345,7 @@ var init_projectSafety = __esm(() => {
|
|
|
155323
155345
|
function getInstruments() {
|
|
155324
155346
|
if (instruments)
|
|
155325
155347
|
return instruments;
|
|
155326
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.
|
|
155348
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.4");
|
|
155327
155349
|
instruments = {
|
|
155328
155350
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
155329
155351
|
description: "GenAI operation duration.",
|
|
@@ -155421,7 +155443,7 @@ function genAiAgentAttributes() {
|
|
|
155421
155443
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
155422
155444
|
"gen_ai.provider.name": "ur",
|
|
155423
155445
|
"gen_ai.agent.name": "UR-Nexus",
|
|
155424
|
-
"gen_ai.agent.version": "1.68.
|
|
155446
|
+
"gen_ai.agent.version": "1.68.4"
|
|
155425
155447
|
};
|
|
155426
155448
|
}
|
|
155427
155449
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -155437,7 +155459,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
155437
155459
|
function startGenAiWorkflowSpan(workflowName) {
|
|
155438
155460
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
155439
155461
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
155440
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
155462
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.4").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155441
155463
|
}
|
|
155442
155464
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
155443
155465
|
try {
|
|
@@ -155475,7 +155497,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
155475
155497
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
155476
155498
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
155477
155499
|
}
|
|
155478
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
155500
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.4").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155479
155501
|
}
|
|
155480
155502
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
155481
155503
|
try {
|
|
@@ -248958,7 +248980,7 @@ function getTelemetryAttributes() {
|
|
|
248958
248980
|
attributes["session.id"] = sessionId;
|
|
248959
248981
|
}
|
|
248960
248982
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
248961
|
-
attributes["app.version"] = "1.68.
|
|
248983
|
+
attributes["app.version"] = "1.68.4";
|
|
248962
248984
|
}
|
|
248963
248985
|
const oauthAccount = getOauthAccountInfo();
|
|
248964
248986
|
if (oauthAccount) {
|
|
@@ -295438,7 +295460,7 @@ function getInstallationEnv() {
|
|
|
295438
295460
|
return;
|
|
295439
295461
|
}
|
|
295440
295462
|
function getURCodeVersion() {
|
|
295441
|
-
return "1.68.
|
|
295463
|
+
return "1.68.4";
|
|
295442
295464
|
}
|
|
295443
295465
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
295444
295466
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -302769,7 +302791,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
302769
302791
|
const client2 = new Client({
|
|
302770
302792
|
name: "ur",
|
|
302771
302793
|
title: "UR",
|
|
302772
|
-
version: "1.68.
|
|
302794
|
+
version: "1.68.4",
|
|
302773
302795
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302774
302796
|
websiteUrl: PRODUCT_URL
|
|
302775
302797
|
}, {
|
|
@@ -303129,7 +303151,7 @@ var init_client5 = __esm(() => {
|
|
|
303129
303151
|
const client2 = new Client({
|
|
303130
303152
|
name: "ur",
|
|
303131
303153
|
title: "UR",
|
|
303132
|
-
version: "1.68.
|
|
303154
|
+
version: "1.68.4",
|
|
303133
303155
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
303134
303156
|
websiteUrl: PRODUCT_URL
|
|
303135
303157
|
}, {
|
|
@@ -315668,7 +315690,7 @@ async function createRuntime() {
|
|
|
315668
315690
|
bootstrapTelemetry();
|
|
315669
315691
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
315670
315692
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
315671
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.
|
|
315693
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.4"
|
|
315672
315694
|
}));
|
|
315673
315695
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
315674
315696
|
resource,
|
|
@@ -315701,11 +315723,11 @@ async function createRuntime() {
|
|
|
315701
315723
|
setMeterProvider(meterProvider);
|
|
315702
315724
|
setLoggerProvider(loggerProvider);
|
|
315703
315725
|
if (meterProvider) {
|
|
315704
|
-
const meter = meterProvider.getMeter("ur-agent", "1.68.
|
|
315726
|
+
const meter = meterProvider.getMeter("ur-agent", "1.68.4");
|
|
315705
315727
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
315706
315728
|
}
|
|
315707
315729
|
if (loggerProvider) {
|
|
315708
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.
|
|
315730
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.4"));
|
|
315709
315731
|
}
|
|
315710
315732
|
if (!cleanupRegistered2) {
|
|
315711
315733
|
cleanupRegistered2 = true;
|
|
@@ -316367,9 +316389,9 @@ async function assertMinVersion() {
|
|
|
316367
316389
|
if (false) {}
|
|
316368
316390
|
try {
|
|
316369
316391
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
316370
|
-
if (versionConfig.minVersion && lt("1.68.
|
|
316392
|
+
if (versionConfig.minVersion && lt("1.68.4", versionConfig.minVersion)) {
|
|
316371
316393
|
console.error(`
|
|
316372
|
-
It looks like your version of UR (${"1.68.
|
|
316394
|
+
It looks like your version of UR (${"1.68.4"}) needs an update.
|
|
316373
316395
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
316374
316396
|
|
|
316375
316397
|
To update, please run:
|
|
@@ -316585,7 +316607,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316585
316607
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
316586
316608
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
316587
316609
|
pid: process.pid,
|
|
316588
|
-
currentVersion: "1.68.
|
|
316610
|
+
currentVersion: "1.68.4"
|
|
316589
316611
|
});
|
|
316590
316612
|
return "in_progress";
|
|
316591
316613
|
}
|
|
@@ -316594,7 +316616,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316594
316616
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
316595
316617
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
316596
316618
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
316597
|
-
currentVersion: "1.68.
|
|
316619
|
+
currentVersion: "1.68.4"
|
|
316598
316620
|
});
|
|
316599
316621
|
console.error(`
|
|
316600
316622
|
Error: Windows NPM detected in WSL
|
|
@@ -317129,7 +317151,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
317129
317151
|
}
|
|
317130
317152
|
async function getDoctorDiagnostic() {
|
|
317131
317153
|
const installationType = await getCurrentInstallationType();
|
|
317132
|
-
const version2 = typeof MACRO !== "undefined" ? "1.68.
|
|
317154
|
+
const version2 = typeof MACRO !== "undefined" ? "1.68.4" : "unknown";
|
|
317133
317155
|
const installationPath = await getInstallationPath();
|
|
317134
317156
|
const invokedBinary = getInvokedBinary();
|
|
317135
317157
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -318064,8 +318086,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318064
318086
|
const maxVersion = await getMaxVersion();
|
|
318065
318087
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
318066
318088
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
318067
|
-
if (gte("1.68.
|
|
318068
|
-
logForDebugging(`Native installer: current version ${"1.68.
|
|
318089
|
+
if (gte("1.68.4", maxVersion)) {
|
|
318090
|
+
logForDebugging(`Native installer: current version ${"1.68.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
318069
318091
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
318070
318092
|
latency_ms: Date.now() - startTime,
|
|
318071
318093
|
max_version: maxVersion,
|
|
@@ -318076,7 +318098,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318076
318098
|
version2 = maxVersion;
|
|
318077
318099
|
}
|
|
318078
318100
|
}
|
|
318079
|
-
if (!forceReinstall && version2 === "1.68.
|
|
318101
|
+
if (!forceReinstall && version2 === "1.68.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
318080
318102
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
318081
318103
|
logEvent("tengu_native_update_complete", {
|
|
318082
318104
|
latency_ms: Date.now() - startTime,
|
|
@@ -388287,7 +388309,7 @@ function isAnyTracingEnabled() {
|
|
|
388287
388309
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
388288
388310
|
}
|
|
388289
388311
|
function getTracer() {
|
|
388290
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
388312
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.4");
|
|
388291
388313
|
}
|
|
388292
388314
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
388293
388315
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -419531,7 +419553,7 @@ function Feedback({
|
|
|
419531
419553
|
platform: env2.platform,
|
|
419532
419554
|
gitRepo: envInfo.isGit,
|
|
419533
419555
|
terminal: env2.terminal,
|
|
419534
|
-
version: "1.68.
|
|
419556
|
+
version: "1.68.4",
|
|
419535
419557
|
transcript: normalizeMessagesForAPI(messages),
|
|
419536
419558
|
errors: sanitizedErrors,
|
|
419537
419559
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419723,7 +419745,7 @@ function Feedback({
|
|
|
419723
419745
|
", ",
|
|
419724
419746
|
env2.terminal,
|
|
419725
419747
|
", v",
|
|
419726
|
-
"1.68.
|
|
419748
|
+
"1.68.4"
|
|
419727
419749
|
]
|
|
419728
419750
|
}, undefined, true, undefined, this)
|
|
419729
419751
|
]
|
|
@@ -419829,7 +419851,7 @@ ${sanitizedDescription}
|
|
|
419829
419851
|
` + `**Environment Info**
|
|
419830
419852
|
` + `- Platform: ${env2.platform}
|
|
419831
419853
|
` + `- Terminal: ${env2.terminal}
|
|
419832
|
-
` + `- Version: ${"1.68.
|
|
419854
|
+
` + `- Version: ${"1.68.4"}
|
|
419833
419855
|
` + `- Feedback ID: ${feedbackId}
|
|
419834
419856
|
` + `
|
|
419835
419857
|
**Errors**
|
|
@@ -422939,7 +422961,7 @@ function buildPrimarySection() {
|
|
|
422939
422961
|
}, undefined, false, undefined, this);
|
|
422940
422962
|
return [{
|
|
422941
422963
|
label: "Version",
|
|
422942
|
-
value: "1.68.
|
|
422964
|
+
value: "1.68.4"
|
|
422943
422965
|
}, {
|
|
422944
422966
|
label: "Session name",
|
|
422945
422967
|
value: nameValue
|
|
@@ -426269,7 +426291,7 @@ function Config({
|
|
|
426269
426291
|
}
|
|
426270
426292
|
}, undefined, false, undefined, this)
|
|
426271
426293
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
426272
|
-
currentVersion: "1.68.
|
|
426294
|
+
currentVersion: "1.68.4",
|
|
426273
426295
|
onChoice: (choice) => {
|
|
426274
426296
|
setShowSubmenu(null);
|
|
426275
426297
|
setTabsHidden(false);
|
|
@@ -426281,7 +426303,7 @@ function Config({
|
|
|
426281
426303
|
autoUpdatesChannel: "stable"
|
|
426282
426304
|
};
|
|
426283
426305
|
if (choice === "stay") {
|
|
426284
|
-
newSettings.minimumVersion = "1.68.
|
|
426306
|
+
newSettings.minimumVersion = "1.68.4";
|
|
426285
426307
|
}
|
|
426286
426308
|
updateSettingsForSource("userSettings", newSettings);
|
|
426287
426309
|
setSettingsData((prev_27) => ({
|
|
@@ -434355,7 +434377,7 @@ function HelpV2(t0) {
|
|
|
434355
434377
|
let t6;
|
|
434356
434378
|
if ($2[31] !== tabs) {
|
|
434357
434379
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
434358
|
-
title: `UR v${"1.68.
|
|
434380
|
+
title: `UR v${"1.68.4"}`,
|
|
434359
434381
|
color: "professionalBlue",
|
|
434360
434382
|
defaultTab: "general",
|
|
434361
434383
|
children: tabs
|
|
@@ -435288,7 +435310,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
435288
435310
|
async function handleInitialize(options2) {
|
|
435289
435311
|
return {
|
|
435290
435312
|
name: "UR",
|
|
435291
|
-
version: "1.68.
|
|
435313
|
+
version: "1.68.4",
|
|
435292
435314
|
protocolVersion: "0.1.0",
|
|
435293
435315
|
workspaceRoot: options2.cwd,
|
|
435294
435316
|
capabilities: {
|
|
@@ -452396,7 +452418,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
452396
452418
|
return [];
|
|
452397
452419
|
}
|
|
452398
452420
|
}
|
|
452399
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.
|
|
452421
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.4") {
|
|
452400
452422
|
if (process.env.USER_TYPE === "ant") {
|
|
452401
452423
|
const changelog = "";
|
|
452402
452424
|
if (changelog) {
|
|
@@ -452423,7 +452445,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.2")
|
|
|
452423
452445
|
releaseNotes
|
|
452424
452446
|
};
|
|
452425
452447
|
}
|
|
452426
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.
|
|
452448
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.4") {
|
|
452427
452449
|
if (process.env.USER_TYPE === "ant") {
|
|
452428
452450
|
const changelog = "";
|
|
452429
452451
|
if (changelog) {
|
|
@@ -455289,7 +455311,7 @@ function getRecentActivitySync() {
|
|
|
455289
455311
|
return cachedActivity;
|
|
455290
455312
|
}
|
|
455291
455313
|
function getLogoDisplayData() {
|
|
455292
|
-
const version2 = process.env.DEMO_VERSION ?? "1.68.
|
|
455314
|
+
const version2 = process.env.DEMO_VERSION ?? "1.68.4";
|
|
455293
455315
|
const serverUrl = getDirectConnectServerUrl();
|
|
455294
455316
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
455295
455317
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -456156,7 +456178,7 @@ function LogoV2() {
|
|
|
456156
456178
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
456157
456179
|
t2 = () => {
|
|
456158
456180
|
const currentConfig2 = getGlobalConfig();
|
|
456159
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.68.
|
|
456181
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.68.4") {
|
|
456160
456182
|
return;
|
|
456161
456183
|
}
|
|
456162
456184
|
saveGlobalConfig(_temp325);
|
|
@@ -456841,12 +456863,12 @@ function LogoV2() {
|
|
|
456841
456863
|
return t41;
|
|
456842
456864
|
}
|
|
456843
456865
|
function _temp325(current) {
|
|
456844
|
-
if (current.lastReleaseNotesSeen === "1.68.
|
|
456866
|
+
if (current.lastReleaseNotesSeen === "1.68.4") {
|
|
456845
456867
|
return current;
|
|
456846
456868
|
}
|
|
456847
456869
|
return {
|
|
456848
456870
|
...current,
|
|
456849
|
-
lastReleaseNotesSeen: "1.68.
|
|
456871
|
+
lastReleaseNotesSeen: "1.68.4"
|
|
456850
456872
|
};
|
|
456851
456873
|
}
|
|
456852
456874
|
function _temp241(s_0) {
|
|
@@ -473792,7 +473814,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473792
473814
|
if (spec.name !== specName) {
|
|
473793
473815
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473794
473816
|
}
|
|
473795
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.
|
|
473817
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.4" : "1.68.4");
|
|
473796
473818
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473797
473819
|
throw new Error("invalid ur-agent package version");
|
|
473798
473820
|
}
|
|
@@ -474785,7 +474807,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474785
474807
|
path: ".github/workflows/ur.yml",
|
|
474786
474808
|
root: "project",
|
|
474787
474809
|
content: compileAgenticCiWorkflow("default", {
|
|
474788
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.68.
|
|
474810
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.68.4" : "1.68.4"
|
|
474789
474811
|
})
|
|
474790
474812
|
},
|
|
474791
474813
|
{
|
|
@@ -474855,7 +474877,7 @@ function value(tokens, flag) {
|
|
|
474855
474877
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474856
474878
|
}
|
|
474857
474879
|
function cliVersion() {
|
|
474858
|
-
return typeof MACRO !== "undefined" ? "1.68.
|
|
474880
|
+
return typeof MACRO !== "undefined" ? "1.68.4" : "1.68.4";
|
|
474859
474881
|
}
|
|
474860
474882
|
function workflowPath(cwd2) {
|
|
474861
474883
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480720,7 +480742,7 @@ function createAcpStdioApp(deps) {
|
|
|
480720
480742
|
}
|
|
480721
480743
|
},
|
|
480722
480744
|
authMethods: [],
|
|
480723
|
-
agentInfo: { name: "UR-Nexus", version: "1.68.
|
|
480745
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.4" }
|
|
480724
480746
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480725
480747
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480726
480748
|
await runtime2.announce({
|
|
@@ -480817,7 +480839,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480817
480839
|
}
|
|
480818
480840
|
},
|
|
480819
480841
|
authMethods: [],
|
|
480820
|
-
agentInfo: { name: "UR-Nexus", version: "1.68.
|
|
480842
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.4" }
|
|
480821
480843
|
});
|
|
480822
480844
|
return;
|
|
480823
480845
|
case "authenticate":
|
|
@@ -691977,7 +691999,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
691977
691999
|
smapsRollup,
|
|
691978
692000
|
platform: process.platform,
|
|
691979
692001
|
nodeVersion: process.version,
|
|
691980
|
-
ccVersion: "1.68.
|
|
692002
|
+
ccVersion: "1.68.4"
|
|
691981
692003
|
};
|
|
691982
692004
|
}
|
|
691983
692005
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -692557,7 +692579,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
692557
692579
|
var call153 = async () => {
|
|
692558
692580
|
return {
|
|
692559
692581
|
type: "text",
|
|
692560
|
-
value: "1.68.
|
|
692582
|
+
value: "1.68.4"
|
|
692561
692583
|
};
|
|
692562
692584
|
}, version2, version_default;
|
|
692563
692585
|
var init_version = __esm(() => {
|
|
@@ -703737,7 +703759,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703737
703759
|
</html>`;
|
|
703738
703760
|
}
|
|
703739
703761
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703740
|
-
const version3 = typeof MACRO !== "undefined" ? "1.68.
|
|
703762
|
+
const version3 = typeof MACRO !== "undefined" ? "1.68.4" : "unknown";
|
|
703741
703763
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703742
703764
|
const facets_summary = {
|
|
703743
703765
|
total: facets.size,
|
|
@@ -708064,7 +708086,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
708064
708086
|
init_settings2();
|
|
708065
708087
|
init_slowOperations();
|
|
708066
708088
|
init_uuid();
|
|
708067
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.68.
|
|
708089
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.68.4" : "unknown";
|
|
708068
708090
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
708069
708091
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
708070
708092
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -709281,7 +709303,7 @@ var init_filesystem = __esm(() => {
|
|
|
709281
709303
|
});
|
|
709282
709304
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
709283
709305
|
const nonce = randomBytes20(16).toString("hex");
|
|
709284
|
-
return join230(getURTempDir(), "bundled-skills", "1.68.
|
|
709306
|
+
return join230(getURTempDir(), "bundled-skills", "1.68.4", nonce);
|
|
709285
709307
|
});
|
|
709286
709308
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
709287
709309
|
});
|
|
@@ -715587,7 +715609,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
715587
715609
|
}
|
|
715588
715610
|
function computeFingerprintFromMessages(messages) {
|
|
715589
715611
|
const firstMessageText = extractFirstMessageText(messages);
|
|
715590
|
-
return computeFingerprint(firstMessageText, "1.68.
|
|
715612
|
+
return computeFingerprint(firstMessageText, "1.68.4");
|
|
715591
715613
|
}
|
|
715592
715614
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
715593
715615
|
var init_fingerprint = () => {};
|
|
@@ -717486,7 +717508,7 @@ async function sideQuery(opts) {
|
|
|
717486
717508
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
717487
717509
|
}
|
|
717488
717510
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
717489
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.68.
|
|
717511
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.68.4");
|
|
717490
717512
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
717491
717513
|
const systemBlocks = [
|
|
717492
717514
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -722273,7 +722295,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
722273
722295
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
722274
722296
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
722275
722297
|
betas: getSdkBetas(),
|
|
722276
|
-
ur_version: "1.68.
|
|
722298
|
+
ur_version: "1.68.4",
|
|
722277
722299
|
output_style: outputStyle2,
|
|
722278
722300
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
722279
722301
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -736224,7 +736246,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
736224
736246
|
function getSemverPart(version3) {
|
|
736225
736247
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
736226
736248
|
}
|
|
736227
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.68.
|
|
736249
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.68.4") {
|
|
736228
736250
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
736229
736251
|
if (!updatedVersion) {
|
|
736230
736252
|
return null;
|
|
@@ -736273,7 +736295,7 @@ function AutoUpdater({
|
|
|
736273
736295
|
return;
|
|
736274
736296
|
}
|
|
736275
736297
|
if (false) {}
|
|
736276
|
-
const currentVersion = "1.68.
|
|
736298
|
+
const currentVersion = "1.68.4";
|
|
736277
736299
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
736278
736300
|
let latestVersion = await getLatestVersion(channel);
|
|
736279
736301
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -736502,12 +736524,12 @@ function NativeAutoUpdater({
|
|
|
736502
736524
|
logEvent("tengu_native_auto_updater_start", {});
|
|
736503
736525
|
try {
|
|
736504
736526
|
const maxVersion = await getMaxVersion();
|
|
736505
|
-
if (maxVersion && gt("1.68.
|
|
736527
|
+
if (maxVersion && gt("1.68.4", maxVersion)) {
|
|
736506
736528
|
const msg = await getMaxVersionMessage();
|
|
736507
736529
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
736508
736530
|
}
|
|
736509
736531
|
const result = await installLatest(channel);
|
|
736510
|
-
const currentVersion = "1.68.
|
|
736532
|
+
const currentVersion = "1.68.4";
|
|
736511
736533
|
const latencyMs = Date.now() - startTime;
|
|
736512
736534
|
if (result.lockFailed) {
|
|
736513
736535
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -736644,17 +736666,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736644
736666
|
const maxVersion = await getMaxVersion();
|
|
736645
736667
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
736646
736668
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736647
|
-
if (gte("1.68.
|
|
736648
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.
|
|
736669
|
+
if (gte("1.68.4", maxVersion)) {
|
|
736670
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736649
736671
|
setUpdateAvailable(false);
|
|
736650
736672
|
return;
|
|
736651
736673
|
}
|
|
736652
736674
|
latest = maxVersion;
|
|
736653
736675
|
}
|
|
736654
|
-
const hasUpdate = latest && !gte("1.68.
|
|
736676
|
+
const hasUpdate = latest && !gte("1.68.4", latest) && !shouldSkipVersion(latest);
|
|
736655
736677
|
setUpdateAvailable(!!hasUpdate);
|
|
736656
736678
|
if (hasUpdate) {
|
|
736657
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.
|
|
736679
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.4"} -> ${latest}`);
|
|
736658
736680
|
}
|
|
736659
736681
|
};
|
|
736660
736682
|
$2[0] = t1;
|
|
@@ -736688,7 +736710,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736688
736710
|
wrap: "truncate",
|
|
736689
736711
|
children: [
|
|
736690
736712
|
"currentVersion: ",
|
|
736691
|
-
"1.68.
|
|
736713
|
+
"1.68.4"
|
|
736692
736714
|
]
|
|
736693
736715
|
}, undefined, true, undefined, this);
|
|
736694
736716
|
$2[3] = verbose;
|
|
@@ -747228,6 +747250,19 @@ function countActiveBackgroundTasks(tasks2) {
|
|
|
747228
747250
|
}
|
|
747229
747251
|
return active3;
|
|
747230
747252
|
}
|
|
747253
|
+
function countActiveForegroundAgents(tasks2) {
|
|
747254
|
+
let active3 = 0;
|
|
747255
|
+
for (const task2 of tasks2) {
|
|
747256
|
+
if (task2.status !== "running")
|
|
747257
|
+
continue;
|
|
747258
|
+
if (!("isBackgrounded" in task2) || task2.isBackgrounded !== false)
|
|
747259
|
+
continue;
|
|
747260
|
+
if (!String(task2.type ?? "").includes("agent"))
|
|
747261
|
+
continue;
|
|
747262
|
+
active3 += 1;
|
|
747263
|
+
}
|
|
747264
|
+
return active3;
|
|
747265
|
+
}
|
|
747231
747266
|
function statusBarShouldDisplay({
|
|
747232
747267
|
settingsStatusLineConfigured,
|
|
747233
747268
|
isKairosActive,
|
|
@@ -747255,6 +747290,7 @@ function buildDefaultStatusBar({
|
|
|
747255
747290
|
branch: branch2,
|
|
747256
747291
|
taskRunningCount = 0,
|
|
747257
747292
|
taskTotalCount = 0,
|
|
747293
|
+
agentRunningCount = 0,
|
|
747258
747294
|
checksStatus,
|
|
747259
747295
|
latestVersion,
|
|
747260
747296
|
isCheckingUpdate
|
|
@@ -747263,6 +747299,9 @@ function buildDefaultStatusBar({
|
|
|
747263
747299
|
if (model) {
|
|
747264
747300
|
parts.push(model);
|
|
747265
747301
|
}
|
|
747302
|
+
if (agentRunningCount > 0) {
|
|
747303
|
+
parts.push(`agents: ${agentRunningCount} running`);
|
|
747304
|
+
}
|
|
747266
747305
|
if (taskRunningCount > 0) {
|
|
747267
747306
|
parts.push(taskTotalCount > taskRunningCount ? `tasks: ${taskRunningCount}/${taskTotalCount} active` : `tasks: ${taskRunningCount} active`);
|
|
747268
747307
|
}
|
|
@@ -747381,7 +747420,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
747381
747420
|
project_dir: getOriginalCwd(),
|
|
747382
747421
|
added_dirs: addedDirs
|
|
747383
747422
|
},
|
|
747384
|
-
version: "1.68.
|
|
747423
|
+
version: "1.68.4",
|
|
747385
747424
|
output_style: {
|
|
747386
747425
|
name: outputStyleName
|
|
747387
747426
|
},
|
|
@@ -747458,14 +747497,16 @@ function StatusLineInner({
|
|
|
747458
747497
|
const providerRuntimeKey = buildStatusLineRefreshKey(providerRuntime, mainLoopModel);
|
|
747459
747498
|
const taskValues = Object.values(tasks2);
|
|
747460
747499
|
const taskRunningCount = countActiveBackgroundTasks(taskValues);
|
|
747500
|
+
const agentRunningCount = countActiveForegroundAgents(taskValues);
|
|
747461
747501
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
747462
|
-
version: "1.68.
|
|
747502
|
+
version: "1.68.4",
|
|
747463
747503
|
providerLabel: providerRuntime.providerLabel,
|
|
747464
747504
|
authMode: providerRuntime.authLabel,
|
|
747465
747505
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
747466
747506
|
mode: permissionMode,
|
|
747467
747507
|
branch: branch2,
|
|
747468
747508
|
taskRunningCount,
|
|
747509
|
+
agentRunningCount,
|
|
747469
747510
|
latestVersion: autoUpdaterResult?.status === "success" ? null : autoUpdaterResult?.version,
|
|
747470
747511
|
isCheckingUpdate: isAutoUpdating
|
|
747471
747512
|
});
|
|
@@ -759639,7 +759680,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759639
759680
|
} catch {}
|
|
759640
759681
|
const data = {
|
|
759641
759682
|
trigger: trigger2,
|
|
759642
|
-
version: "1.68.
|
|
759683
|
+
version: "1.68.4",
|
|
759643
759684
|
platform: process.platform,
|
|
759644
759685
|
transcript,
|
|
759645
759686
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -772007,7 +772048,7 @@ function WelcomeV2() {
|
|
|
772007
772048
|
dimColor: true,
|
|
772008
772049
|
children: [
|
|
772009
772050
|
"v",
|
|
772010
|
-
"1.68.
|
|
772051
|
+
"1.68.4"
|
|
772011
772052
|
]
|
|
772012
772053
|
}, undefined, true, undefined, this)
|
|
772013
772054
|
]
|
|
@@ -773267,7 +773308,7 @@ function completeOnboarding() {
|
|
|
773267
773308
|
saveGlobalConfig((current) => ({
|
|
773268
773309
|
...current,
|
|
773269
773310
|
hasCompletedOnboarding: true,
|
|
773270
|
-
lastOnboardingVersion: "1.68.
|
|
773311
|
+
lastOnboardingVersion: "1.68.4"
|
|
773271
773312
|
}));
|
|
773272
773313
|
}
|
|
773273
773314
|
function showDialog(root2, renderer) {
|
|
@@ -778311,7 +778352,7 @@ function appendToLog(path24, message) {
|
|
|
778311
778352
|
cwd: getFsImplementation().cwd(),
|
|
778312
778353
|
userType: process.env.USER_TYPE,
|
|
778313
778354
|
sessionId: getSessionId(),
|
|
778314
|
-
version: "1.68.
|
|
778355
|
+
version: "1.68.4"
|
|
778315
778356
|
};
|
|
778316
778357
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
778317
778358
|
}
|
|
@@ -782475,8 +782516,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782475
782516
|
}
|
|
782476
782517
|
async function checkEnvLessBridgeMinVersion() {
|
|
782477
782518
|
const cfg = await getEnvLessBridgeConfig();
|
|
782478
|
-
if (cfg.min_version && lt("1.68.
|
|
782479
|
-
return `Your version of UR (${"1.68.
|
|
782519
|
+
if (cfg.min_version && lt("1.68.4", cfg.min_version)) {
|
|
782520
|
+
return `Your version of UR (${"1.68.4"}) is too old for Remote Control.
|
|
782480
782521
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782481
782522
|
}
|
|
782482
782523
|
return null;
|
|
@@ -782950,7 +782991,7 @@ async function initBridgeCore(params) {
|
|
|
782950
782991
|
const rawApi = createBridgeApiClient({
|
|
782951
782992
|
baseUrl,
|
|
782952
782993
|
getAccessToken,
|
|
782953
|
-
runnerVersion: "1.68.
|
|
782994
|
+
runnerVersion: "1.68.4",
|
|
782954
782995
|
onDebug: logForDebugging,
|
|
782955
782996
|
onAuth401,
|
|
782956
782997
|
getTrustedDeviceToken
|
|
@@ -792423,7 +792464,7 @@ function getAgUiCapabilities() {
|
|
|
792423
792464
|
name: "UR-Nexus",
|
|
792424
792465
|
type: "ur-nexus",
|
|
792425
792466
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
792426
|
-
version: "1.68.
|
|
792467
|
+
version: "1.68.4",
|
|
792427
792468
|
provider: "UR",
|
|
792428
792469
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
792429
792470
|
},
|
|
@@ -793563,7 +793604,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793563
793604
|
};
|
|
793564
793605
|
const server2 = new Server({
|
|
793565
793606
|
name: "ur-nexus",
|
|
793566
|
-
version: "1.68.
|
|
793607
|
+
version: "1.68.4"
|
|
793567
793608
|
}, {
|
|
793568
793609
|
capabilities: {
|
|
793569
793610
|
tools: {}
|
|
@@ -794721,7 +794762,7 @@ function thrownResponse(error40) {
|
|
|
794721
794762
|
}
|
|
794722
794763
|
async function createUrMcp2026Runtime(options4) {
|
|
794723
794764
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794724
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.
|
|
794765
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.4" }, { capabilities: {} });
|
|
794725
794766
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794726
794767
|
try {
|
|
794727
794768
|
await server2.connect(serverTransport);
|
|
@@ -794732,7 +794773,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794732
794773
|
}
|
|
794733
794774
|
const runtime2 = new Mcp2026Runtime({
|
|
794734
794775
|
cwd: options4.cwd,
|
|
794735
|
-
version: "1.68.
|
|
794776
|
+
version: "1.68.4",
|
|
794736
794777
|
backend: {
|
|
794737
794778
|
listTools: async () => {
|
|
794738
794779
|
const listed = await client2.listTools();
|
|
@@ -796865,7 +796906,7 @@ async function update() {
|
|
|
796865
796906
|
logEvent("tengu_update_check", {});
|
|
796866
796907
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796867
796908
|
const result = await checkUpgradeStatus({
|
|
796868
|
-
currentVersion: "1.68.
|
|
796909
|
+
currentVersion: "1.68.4",
|
|
796869
796910
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796870
796911
|
installationType: diagnostic2.installationType,
|
|
796871
796912
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -798181,7 +798222,7 @@ ${customInstructions}` : customInstructions;
|
|
|
798181
798222
|
}
|
|
798182
798223
|
}
|
|
798183
798224
|
logForDiagnosticsNoPII("info", "started", {
|
|
798184
|
-
version: "1.68.
|
|
798225
|
+
version: "1.68.4",
|
|
798185
798226
|
is_native_binary: isInBundledMode()
|
|
798186
798227
|
});
|
|
798187
798228
|
registerCleanup(async () => {
|
|
@@ -798967,7 +799008,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
798967
799008
|
pendingHookMessages
|
|
798968
799009
|
}, renderAndRun);
|
|
798969
799010
|
}
|
|
798970
|
-
}).version("1.68.
|
|
799011
|
+
}).version("1.68.4 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
798971
799012
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
798972
799013
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
798973
799014
|
if (canUserConfigureAdvisor()) {
|
|
@@ -800026,7 +800067,7 @@ if (false) {}
|
|
|
800026
800067
|
async function main2() {
|
|
800027
800068
|
const args = process.argv.slice(2);
|
|
800028
800069
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
800029
|
-
console.log(`${"1.68.
|
|
800070
|
+
console.log(`${"1.68.4"} (UR-Nexus)`);
|
|
800030
800071
|
return;
|
|
800031
800072
|
}
|
|
800032
800073
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/VALIDATION.md
CHANGED
package/documentation/index.html
CHANGED
|
@@ -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.68.
|
|
48
|
+
<p class="eyebrow">Version 1.68.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>
|
|
@@ -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.68.
|
|
5
|
+
"version": "1.68.4",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
package/technical/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UR-Nexus — Technical Specifications
|
|
2
2
|
|
|
3
|
-
> Audited against the executable source and tests for `ur-agent` v1.68.
|
|
3
|
+
> Audited against the executable source and tests for `ur-agent` v1.68.4.
|
|
4
4
|
> Command, tool, flag, provider, and setting claims are checked against the
|
|
5
5
|
> implementation rather than copied from product prose. Release validation
|
|
6
6
|
> keeps this version synchronized and packages the complete `technical/`
|