ur-agent 1.80.8 → 1.80.9
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 +13 -0
- package/dist/cli.js +90 -85
- package/docs/AGENT_FEATURES.md +6 -0
- package/docs/CONFIGURATION.md +5 -3
- package/docs/TROUBLESHOOTING.md +5 -0
- package/docs/USAGE.md +6 -4
- package/docs/VALIDATION.md +6 -6
- 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.80.9
|
|
4
|
+
|
|
5
|
+
- Fixed the remaining provider-independent `TaskListRequired` failure for
|
|
6
|
+
research fan-out. Some models preserved the research/report-only brief but
|
|
7
|
+
dropped the caller's explicit “read-only” wording while still selecting
|
|
8
|
+
`general-purpose`. UR now recognizes that constrained shape and reduces it
|
|
9
|
+
to the mechanically read-only shipped `Explore` worker before task gating.
|
|
10
|
+
- Kept the boundary fail-closed for any prompt that directs implementation,
|
|
11
|
+
building, file changes, command execution, testing, installation, commits,
|
|
12
|
+
deployment, or other mutation. Custom definitions, nested workers,
|
|
13
|
+
names/teams, worktrees, and cwd overrides remain excluded. Approve All is
|
|
14
|
+
unchanged.
|
|
15
|
+
|
|
3
16
|
## 1.80.8
|
|
4
17
|
|
|
5
18
|
- Fixed provider-independent failed-first research delegation. Several model
|
package/dist/cli.js
CHANGED
|
@@ -107788,7 +107788,7 @@ var init_auth = __esm(() => {
|
|
|
107788
107788
|
|
|
107789
107789
|
// src/utils/userAgent.ts
|
|
107790
107790
|
function getURCodeUserAgent() {
|
|
107791
|
-
return `ur/${"1.80.
|
|
107791
|
+
return `ur/${"1.80.9"}`;
|
|
107792
107792
|
}
|
|
107793
107793
|
|
|
107794
107794
|
// src/utils/workloadContext.ts
|
|
@@ -107810,7 +107810,7 @@ function getUserAgent() {
|
|
|
107810
107810
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107811
107811
|
const workload = getWorkload();
|
|
107812
107812
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107813
|
-
return `ur-cli/${"1.80.
|
|
107813
|
+
return `ur-cli/${"1.80.9"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107814
107814
|
}
|
|
107815
107815
|
function getMCPUserAgent() {
|
|
107816
107816
|
const parts = [];
|
|
@@ -107824,7 +107824,7 @@ function getMCPUserAgent() {
|
|
|
107824
107824
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107825
107825
|
}
|
|
107826
107826
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107827
|
-
return `ur/${"1.80.
|
|
107827
|
+
return `ur/${"1.80.9"}${suffix}`;
|
|
107828
107828
|
}
|
|
107829
107829
|
function getWebFetchUserAgent() {
|
|
107830
107830
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107962,7 +107962,7 @@ var init_user = __esm(() => {
|
|
|
107962
107962
|
deviceId,
|
|
107963
107963
|
sessionId: getSessionId(),
|
|
107964
107964
|
email: getEmail(),
|
|
107965
|
-
appVersion: "1.80.
|
|
107965
|
+
appVersion: "1.80.9",
|
|
107966
107966
|
platform: getHostPlatformForAnalytics(),
|
|
107967
107967
|
organizationUuid,
|
|
107968
107968
|
accountUuid,
|
|
@@ -115849,7 +115849,7 @@ var init_metadata = __esm(() => {
|
|
|
115849
115849
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115850
115850
|
WHITESPACE_REGEX = /\s+/;
|
|
115851
115851
|
getVersionBase = memoize_default(() => {
|
|
115852
|
-
const match = "1.80.
|
|
115852
|
+
const match = "1.80.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115853
115853
|
return match ? match[0] : undefined;
|
|
115854
115854
|
});
|
|
115855
115855
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115889,7 +115889,7 @@ var init_metadata = __esm(() => {
|
|
|
115889
115889
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115890
115890
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115891
115891
|
isURAiAuth: isURAISubscriber(),
|
|
115892
|
-
version: "1.80.
|
|
115892
|
+
version: "1.80.9",
|
|
115893
115893
|
versionBase: getVersionBase(),
|
|
115894
115894
|
buildTime: "",
|
|
115895
115895
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116559,7 +116559,7 @@ function initialize1PEventLogging() {
|
|
|
116559
116559
|
const platform2 = getPlatform();
|
|
116560
116560
|
const attributes = {
|
|
116561
116561
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116562
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.
|
|
116562
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.9"
|
|
116563
116563
|
};
|
|
116564
116564
|
if (platform2 === "wsl") {
|
|
116565
116565
|
const wslVersion = getWslVersion();
|
|
@@ -116587,7 +116587,7 @@ function initialize1PEventLogging() {
|
|
|
116587
116587
|
})
|
|
116588
116588
|
]
|
|
116589
116589
|
});
|
|
116590
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.
|
|
116590
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.9");
|
|
116591
116591
|
}
|
|
116592
116592
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116593
116593
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126550,7 +126550,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
126550
126550
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
126551
126551
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
126552
126552
|
}
|
|
126553
|
-
var urVersion = "1.80.
|
|
126553
|
+
var urVersion = "1.80.9", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126554
126554
|
var init_trends = __esm(() => {
|
|
126555
126555
|
init_a2aCardSignature();
|
|
126556
126556
|
coverage = [
|
|
@@ -129440,7 +129440,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129440
129440
|
if (!isAttributionHeaderEnabled()) {
|
|
129441
129441
|
return "";
|
|
129442
129442
|
}
|
|
129443
|
-
const version2 = `${"1.80.
|
|
129443
|
+
const version2 = `${"1.80.9"}.${fingerprint}`;
|
|
129444
129444
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129445
129445
|
const cch = "";
|
|
129446
129446
|
const workload = getWorkload();
|
|
@@ -184636,7 +184636,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184636
184636
|
function getInstruments() {
|
|
184637
184637
|
if (instruments)
|
|
184638
184638
|
return instruments;
|
|
184639
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.
|
|
184639
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.9");
|
|
184640
184640
|
instruments = {
|
|
184641
184641
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184642
184642
|
description: "GenAI operation duration.",
|
|
@@ -184734,7 +184734,7 @@ function genAiAgentAttributes() {
|
|
|
184734
184734
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184735
184735
|
"gen_ai.provider.name": "ur",
|
|
184736
184736
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184737
|
-
"gen_ai.agent.version": "1.80.
|
|
184737
|
+
"gen_ai.agent.version": "1.80.9"
|
|
184738
184738
|
};
|
|
184739
184739
|
}
|
|
184740
184740
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184755,7 +184755,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184755
184755
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184756
184756
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184757
184757
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184758
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184758
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.9").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184759
184759
|
}
|
|
184760
184760
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184761
184761
|
try {
|
|
@@ -184793,7 +184793,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184793
184793
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184794
184794
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184795
184795
|
}
|
|
184796
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184796
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.9").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184797
184797
|
}
|
|
184798
184798
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184799
184799
|
try {
|
|
@@ -278508,7 +278508,7 @@ function getTelemetryAttributes() {
|
|
|
278508
278508
|
attributes["session.id"] = sessionId;
|
|
278509
278509
|
}
|
|
278510
278510
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278511
|
-
attributes["app.version"] = "1.80.
|
|
278511
|
+
attributes["app.version"] = "1.80.9";
|
|
278512
278512
|
}
|
|
278513
278513
|
const oauthAccount = getOauthAccountInfo();
|
|
278514
278514
|
if (oauthAccount) {
|
|
@@ -319499,7 +319499,7 @@ function getInstallationEnv() {
|
|
|
319499
319499
|
return;
|
|
319500
319500
|
}
|
|
319501
319501
|
function getURCodeVersion() {
|
|
319502
|
-
return "1.80.
|
|
319502
|
+
return "1.80.9";
|
|
319503
319503
|
}
|
|
319504
319504
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
319505
319505
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -326869,7 +326869,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
326869
326869
|
const client2 = new Client({
|
|
326870
326870
|
name: "ur",
|
|
326871
326871
|
title: "UR",
|
|
326872
|
-
version: "1.80.
|
|
326872
|
+
version: "1.80.9",
|
|
326873
326873
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
326874
326874
|
websiteUrl: PRODUCT_URL
|
|
326875
326875
|
}, {
|
|
@@ -327230,7 +327230,7 @@ var init_client5 = __esm(() => {
|
|
|
327230
327230
|
const client2 = new Client({
|
|
327231
327231
|
name: "ur",
|
|
327232
327232
|
title: "UR",
|
|
327233
|
-
version: "1.80.
|
|
327233
|
+
version: "1.80.9",
|
|
327234
327234
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327235
327235
|
websiteUrl: PRODUCT_URL
|
|
327236
327236
|
}, {
|
|
@@ -329251,7 +329251,7 @@ function isShippedReadOnlyAgentDefinition(agent) {
|
|
|
329251
329251
|
return SHIPPED_READ_ONLY_AGENT_TYPES.has(agent.agentType) && agent.source === "built-in" && agent.permissionMode === "plan";
|
|
329252
329252
|
}
|
|
329253
329253
|
function normalizeReadOnlyResearchDelegation(input, activeAgents, isNestedAgent) {
|
|
329254
|
-
if (isNestedAgent || input.subagent_type !== "general-purpose" || input.name !== undefined || input.team_name !== undefined || input.isolation !== undefined || input.cwd !== undefined || typeof input.prompt !== "string" || !
|
|
329254
|
+
if (isNestedAgent || input.subagent_type !== "general-purpose" || input.name !== undefined || input.team_name !== undefined || input.isolation !== undefined || input.cwd !== undefined || typeof input.prompt !== "string" || !RESEARCH_INTENT_MARKER.test(input.prompt) || !READ_ONLY_RESEARCH_MARKER.test(input.prompt) && MUTATING_DELEGATION_MARKER.test(input.prompt)) {
|
|
329255
329255
|
return input;
|
|
329256
329256
|
}
|
|
329257
329257
|
const exploreAgent = activeAgents.find((agent) => agent.agentType === "Explore" && isShippedReadOnlyAgentDefinition(agent));
|
|
@@ -329266,7 +329266,7 @@ function shouldApplyAgentDefinitionPermissionMode(agent, parentMode, transcriptC
|
|
|
329266
329266
|
return true;
|
|
329267
329267
|
return parentMode !== "bypassPermissions" && parentMode !== "acceptEdits" && !(transcriptClassifierEnabled && parentMode === "auto");
|
|
329268
329268
|
}
|
|
329269
|
-
var SHIPPED_READ_ONLY_AGENT_TYPES, READ_ONLY_RESEARCH_MARKER, RESEARCH_INTENT_MARKER;
|
|
329269
|
+
var SHIPPED_READ_ONLY_AGENT_TYPES, READ_ONLY_RESEARCH_MARKER, RESEARCH_INTENT_MARKER, MUTATING_ACTION = "(?:implement(?:s|ed|ing)?|build(?:s|ing)?|built|create(?:s|d|ing)?|modif(?:y|ies|ied|ying)|edit(?:s|ed|ing)?|writ(?:e|es|ten|ing)|fix(?:es|ed|ing)?|refactor(?:s|ed|ing)?|update(?:s|d|ing)?|delete(?:s|d|ing)?|remove(?:s|d|ing)?|add(?:s|ed|ing)?|install(?:s|ed|ing)?|execute(?:s|d|ing)?|run(?:s|ning)?|commit(?:s|ted|ting)?|push(?:es|ed|ing)?|deploy(?:s|ed|ing)?|generate(?:s|d|ing)?|scaffold(?:s|ed|ing)?|author(?:s|ed|ing)?|change(?:s|d|ing)?)", MUTATING_DELEGATION_MARKER;
|
|
329270
329270
|
var init_readOnlyAgents = __esm(() => {
|
|
329271
329271
|
SHIPPED_READ_ONLY_AGENT_TYPES = new Set([
|
|
329272
329272
|
"Explore",
|
|
@@ -329274,6 +329274,11 @@ var init_readOnlyAgents = __esm(() => {
|
|
|
329274
329274
|
]);
|
|
329275
329275
|
READ_ONLY_RESEARCH_MARKER = /\bread[\s-]?only\b|\b(?:do not|don't|must not|never)\s+(?:modify|write|edit|create|change)\s+(?:any\s+)?(?:code\s+)?files?\b|\bno\s+(?:file|workspace)\s+(?:changes|modifications)\b/i;
|
|
329276
329276
|
RESEARCH_INTENT_MARKER = /\b(?:research|investigat\w*|explor\w*|analy[sz]\w*|audit\w*)\b/i;
|
|
329277
|
+
MUTATING_DELEGATION_MARKER = new RegExp([
|
|
329278
|
+
`\\b(?:and|then|also)\\s+${MUTATING_ACTION}\\b`,
|
|
329279
|
+
`\\b(?:please|must|should|need(?:s)?\\s+to|you(?:'ll|\\s+will|\\s+must|\\s+should))\\s+${MUTATING_ACTION}\\b`,
|
|
329280
|
+
`(?:^|[\\n.;:!?]\\s*|[-*]\\s+)${MUTATING_ACTION}\\b`
|
|
329281
|
+
].join("|"), "i");
|
|
329277
329282
|
});
|
|
329278
329283
|
|
|
329279
329284
|
// src/components/AgentProgressLine.tsx
|
|
@@ -339998,7 +340003,7 @@ async function createRuntime() {
|
|
|
339998
340003
|
bootstrapTelemetry();
|
|
339999
340004
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340000
340005
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340001
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.
|
|
340006
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.9"
|
|
340002
340007
|
}));
|
|
340003
340008
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340004
340009
|
resource,
|
|
@@ -340031,11 +340036,11 @@ async function createRuntime() {
|
|
|
340031
340036
|
setMeterProvider(meterProvider);
|
|
340032
340037
|
setLoggerProvider(loggerProvider);
|
|
340033
340038
|
if (meterProvider) {
|
|
340034
|
-
const meter = meterProvider.getMeter("ur-agent", "1.80.
|
|
340039
|
+
const meter = meterProvider.getMeter("ur-agent", "1.80.9");
|
|
340035
340040
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340036
340041
|
}
|
|
340037
340042
|
if (loggerProvider) {
|
|
340038
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.
|
|
340043
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.9"));
|
|
340039
340044
|
}
|
|
340040
340045
|
if (!cleanupRegistered3) {
|
|
340041
340046
|
cleanupRegistered3 = true;
|
|
@@ -340697,9 +340702,9 @@ async function assertMinVersion() {
|
|
|
340697
340702
|
if (false) {}
|
|
340698
340703
|
try {
|
|
340699
340704
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
340700
|
-
if (versionConfig.minVersion && lt("1.80.
|
|
340705
|
+
if (versionConfig.minVersion && lt("1.80.9", versionConfig.minVersion)) {
|
|
340701
340706
|
console.error(`
|
|
340702
|
-
It looks like your version of UR (${"1.80.
|
|
340707
|
+
It looks like your version of UR (${"1.80.9"}) needs an update.
|
|
340703
340708
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
340704
340709
|
|
|
340705
340710
|
To update, please run:
|
|
@@ -340915,7 +340920,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340915
340920
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
340916
340921
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
340917
340922
|
pid: process.pid,
|
|
340918
|
-
currentVersion: "1.80.
|
|
340923
|
+
currentVersion: "1.80.9"
|
|
340919
340924
|
});
|
|
340920
340925
|
return "in_progress";
|
|
340921
340926
|
}
|
|
@@ -340924,7 +340929,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340924
340929
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
340925
340930
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
340926
340931
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
340927
|
-
currentVersion: "1.80.
|
|
340932
|
+
currentVersion: "1.80.9"
|
|
340928
340933
|
});
|
|
340929
340934
|
console.error(`
|
|
340930
340935
|
Error: Windows NPM detected in WSL
|
|
@@ -341459,7 +341464,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341459
341464
|
}
|
|
341460
341465
|
async function getDoctorDiagnostic() {
|
|
341461
341466
|
const installationType = await getCurrentInstallationType();
|
|
341462
|
-
const version2 = typeof MACRO !== "undefined" ? "1.80.
|
|
341467
|
+
const version2 = typeof MACRO !== "undefined" ? "1.80.9" : "unknown";
|
|
341463
341468
|
const installationPath = await getInstallationPath();
|
|
341464
341469
|
const invokedBinary = getInvokedBinary();
|
|
341465
341470
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342394,8 +342399,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342394
342399
|
const maxVersion = await getMaxVersion();
|
|
342395
342400
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342396
342401
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342397
|
-
if (gte("1.80.
|
|
342398
|
-
logForDebugging(`Native installer: current version ${"1.80.
|
|
342402
|
+
if (gte("1.80.9", maxVersion)) {
|
|
342403
|
+
logForDebugging(`Native installer: current version ${"1.80.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342399
342404
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342400
342405
|
latency_ms: Date.now() - startTime,
|
|
342401
342406
|
max_version: maxVersion,
|
|
@@ -342406,7 +342411,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342406
342411
|
version2 = maxVersion;
|
|
342407
342412
|
}
|
|
342408
342413
|
}
|
|
342409
|
-
if (!forceReinstall && version2 === "1.80.
|
|
342414
|
+
if (!forceReinstall && version2 === "1.80.9" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342410
342415
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342411
342416
|
logEvent("tengu_native_update_complete", {
|
|
342412
342417
|
latency_ms: Date.now() - startTime,
|
|
@@ -413062,7 +413067,7 @@ function isAnyTracingEnabled() {
|
|
|
413062
413067
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413063
413068
|
}
|
|
413064
413069
|
function getTracer() {
|
|
413065
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
413070
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.9");
|
|
413066
413071
|
}
|
|
413067
413072
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413068
413073
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -443191,7 +443196,7 @@ function Feedback({
|
|
|
443191
443196
|
platform: env2.platform,
|
|
443192
443197
|
gitRepo: envInfo.isGit,
|
|
443193
443198
|
terminal: env2.terminal,
|
|
443194
|
-
version: "1.80.
|
|
443199
|
+
version: "1.80.9",
|
|
443195
443200
|
transcript: normalizeMessagesForAPI(messages),
|
|
443196
443201
|
errors: sanitizedErrors,
|
|
443197
443202
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -443383,7 +443388,7 @@ function Feedback({
|
|
|
443383
443388
|
", ",
|
|
443384
443389
|
env2.terminal,
|
|
443385
443390
|
", v",
|
|
443386
|
-
"1.80.
|
|
443391
|
+
"1.80.9"
|
|
443387
443392
|
]
|
|
443388
443393
|
}, undefined, true, undefined, this)
|
|
443389
443394
|
]
|
|
@@ -443489,7 +443494,7 @@ ${sanitizedDescription}
|
|
|
443489
443494
|
` + `**Environment Info**
|
|
443490
443495
|
` + `- Platform: ${env2.platform}
|
|
443491
443496
|
` + `- Terminal: ${env2.terminal}
|
|
443492
|
-
` + `- Version: ${"1.80.
|
|
443497
|
+
` + `- Version: ${"1.80.9"}
|
|
443493
443498
|
` + `- Feedback ID: ${feedbackId}
|
|
443494
443499
|
` + `
|
|
443495
443500
|
**Errors**
|
|
@@ -446599,7 +446604,7 @@ function buildPrimarySection() {
|
|
|
446599
446604
|
}, undefined, false, undefined, this);
|
|
446600
446605
|
return [{
|
|
446601
446606
|
label: "Version",
|
|
446602
|
-
value: "1.80.
|
|
446607
|
+
value: "1.80.9"
|
|
446603
446608
|
}, {
|
|
446604
446609
|
label: "Session name",
|
|
446605
446610
|
value: nameValue
|
|
@@ -449981,7 +449986,7 @@ function Config({
|
|
|
449981
449986
|
}
|
|
449982
449987
|
}, undefined, false, undefined, this)
|
|
449983
449988
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
449984
|
-
currentVersion: "1.80.
|
|
449989
|
+
currentVersion: "1.80.9",
|
|
449985
449990
|
onChoice: (choice) => {
|
|
449986
449991
|
setShowSubmenu(null);
|
|
449987
449992
|
setTabsHidden(false);
|
|
@@ -449993,7 +449998,7 @@ function Config({
|
|
|
449993
449998
|
autoUpdatesChannel: "stable"
|
|
449994
449999
|
};
|
|
449995
450000
|
if (choice === "stay") {
|
|
449996
|
-
newSettings.minimumVersion = "1.80.
|
|
450001
|
+
newSettings.minimumVersion = "1.80.9";
|
|
449997
450002
|
}
|
|
449998
450003
|
updateSettingsForSource("userSettings", newSettings);
|
|
449999
450004
|
setSettingsData((prev_27) => ({
|
|
@@ -458302,7 +458307,7 @@ function HelpV2(t0) {
|
|
|
458302
458307
|
let t6;
|
|
458303
458308
|
if ($2[31] !== tabs) {
|
|
458304
458309
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
458305
|
-
title: `UR v${"1.80.
|
|
458310
|
+
title: `UR v${"1.80.9"}`,
|
|
458306
458311
|
color: "professionalBlue",
|
|
458307
458312
|
defaultTab: "general",
|
|
458308
458313
|
children: tabs
|
|
@@ -459235,7 +459240,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459235
459240
|
async function handleInitialize(options2) {
|
|
459236
459241
|
return {
|
|
459237
459242
|
name: "UR",
|
|
459238
|
-
version: "1.80.
|
|
459243
|
+
version: "1.80.9",
|
|
459239
459244
|
protocolVersion: "0.1.0",
|
|
459240
459245
|
workspaceRoot: options2.cwd,
|
|
459241
459246
|
capabilities: {
|
|
@@ -476343,7 +476348,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
476343
476348
|
return [];
|
|
476344
476349
|
}
|
|
476345
476350
|
}
|
|
476346
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.
|
|
476351
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.9") {
|
|
476347
476352
|
if (process.env.USER_TYPE === "ant") {
|
|
476348
476353
|
const changelog = "";
|
|
476349
476354
|
if (changelog) {
|
|
@@ -476370,7 +476375,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.8")
|
|
|
476370
476375
|
releaseNotes
|
|
476371
476376
|
};
|
|
476372
476377
|
}
|
|
476373
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.
|
|
476378
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.9") {
|
|
476374
476379
|
if (process.env.USER_TYPE === "ant") {
|
|
476375
476380
|
const changelog = "";
|
|
476376
476381
|
if (changelog) {
|
|
@@ -479275,7 +479280,7 @@ function getRecentActivitySync() {
|
|
|
479275
479280
|
return cachedActivity;
|
|
479276
479281
|
}
|
|
479277
479282
|
function getLogoDisplayData() {
|
|
479278
|
-
const version2 = process.env.DEMO_VERSION ?? "1.80.
|
|
479283
|
+
const version2 = process.env.DEMO_VERSION ?? "1.80.9";
|
|
479279
479284
|
const serverUrl = getDirectConnectServerUrl();
|
|
479280
479285
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479281
479286
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -480143,7 +480148,7 @@ function LogoV2() {
|
|
|
480143
480148
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480144
480149
|
t2 = () => {
|
|
480145
480150
|
const currentConfig = getGlobalConfig();
|
|
480146
|
-
if (currentConfig.lastReleaseNotesSeen === "1.80.
|
|
480151
|
+
if (currentConfig.lastReleaseNotesSeen === "1.80.9") {
|
|
480147
480152
|
return;
|
|
480148
480153
|
}
|
|
480149
480154
|
saveGlobalConfig(_temp325);
|
|
@@ -480828,12 +480833,12 @@ function LogoV2() {
|
|
|
480828
480833
|
return t41;
|
|
480829
480834
|
}
|
|
480830
480835
|
function _temp325(current) {
|
|
480831
|
-
if (current.lastReleaseNotesSeen === "1.80.
|
|
480836
|
+
if (current.lastReleaseNotesSeen === "1.80.9") {
|
|
480832
480837
|
return current;
|
|
480833
480838
|
}
|
|
480834
480839
|
return {
|
|
480835
480840
|
...current,
|
|
480836
|
-
lastReleaseNotesSeen: "1.80.
|
|
480841
|
+
lastReleaseNotesSeen: "1.80.9"
|
|
480837
480842
|
};
|
|
480838
480843
|
}
|
|
480839
480844
|
function _temp241(s_0) {
|
|
@@ -496925,7 +496930,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
496925
496930
|
if (spec.name !== specName) {
|
|
496926
496931
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
496927
496932
|
}
|
|
496928
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.
|
|
496933
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.9" : "1.80.9");
|
|
496929
496934
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
496930
496935
|
throw new Error("invalid ur-agent package version");
|
|
496931
496936
|
}
|
|
@@ -497918,7 +497923,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
497918
497923
|
path: ".github/workflows/ur.yml",
|
|
497919
497924
|
root: "project",
|
|
497920
497925
|
content: compileAgenticCiWorkflow("default", {
|
|
497921
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.80.
|
|
497926
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.80.9" : "1.80.9"
|
|
497922
497927
|
})
|
|
497923
497928
|
},
|
|
497924
497929
|
{
|
|
@@ -497981,7 +497986,7 @@ function value(tokens, flag) {
|
|
|
497981
497986
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
497982
497987
|
}
|
|
497983
497988
|
function cliVersion() {
|
|
497984
|
-
return typeof MACRO !== "undefined" ? "1.80.
|
|
497989
|
+
return typeof MACRO !== "undefined" ? "1.80.9" : "1.80.9";
|
|
497985
497990
|
}
|
|
497986
497991
|
function workflowPath(cwd2) {
|
|
497987
497992
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -503837,7 +503842,7 @@ function createAcpStdioApp(deps) {
|
|
|
503837
503842
|
}
|
|
503838
503843
|
},
|
|
503839
503844
|
authMethods: [],
|
|
503840
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503845
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.9" }
|
|
503841
503846
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
503842
503847
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
503843
503848
|
await runtime2.announce({
|
|
@@ -503934,7 +503939,7 @@ function createAcpStdioAgent(deps) {
|
|
|
503934
503939
|
}
|
|
503935
503940
|
},
|
|
503936
503941
|
authMethods: [],
|
|
503937
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503942
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.9" }
|
|
503938
503943
|
});
|
|
503939
503944
|
return;
|
|
503940
503945
|
case "authenticate":
|
|
@@ -715160,7 +715165,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715160
715165
|
smapsRollup,
|
|
715161
715166
|
platform: process.platform,
|
|
715162
715167
|
nodeVersion: process.version,
|
|
715163
|
-
ccVersion: "1.80.
|
|
715168
|
+
ccVersion: "1.80.9"
|
|
715164
715169
|
};
|
|
715165
715170
|
}
|
|
715166
715171
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -715749,7 +715754,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
715749
715754
|
var call154 = async () => {
|
|
715750
715755
|
return {
|
|
715751
715756
|
type: "text",
|
|
715752
|
-
value: "1.80.
|
|
715757
|
+
value: "1.80.9"
|
|
715753
715758
|
};
|
|
715754
715759
|
}, version2, version_default;
|
|
715755
715760
|
var init_version = __esm(() => {
|
|
@@ -726992,7 +726997,7 @@ function generateHtmlReport(data, insights) {
|
|
|
726992
726997
|
</html>`;
|
|
726993
726998
|
}
|
|
726994
726999
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
726995
|
-
const version3 = typeof MACRO !== "undefined" ? "1.80.
|
|
727000
|
+
const version3 = typeof MACRO !== "undefined" ? "1.80.9" : "unknown";
|
|
726996
727001
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
726997
727002
|
const facets_summary = {
|
|
726998
727003
|
total: facets.size,
|
|
@@ -731305,7 +731310,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
731305
731310
|
init_settings2();
|
|
731306
731311
|
init_slowOperations();
|
|
731307
731312
|
init_uuid();
|
|
731308
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.80.
|
|
731313
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.80.9" : "unknown";
|
|
731309
731314
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
731310
731315
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
731311
731316
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -732520,7 +732525,7 @@ var init_filesystem = __esm(() => {
|
|
|
732520
732525
|
});
|
|
732521
732526
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
732522
732527
|
const nonce = randomBytes24(16).toString("hex");
|
|
732523
|
-
return join243(getURTempDir(), "bundled-skills", "1.80.
|
|
732528
|
+
return join243(getURTempDir(), "bundled-skills", "1.80.9", nonce);
|
|
732524
732529
|
});
|
|
732525
732530
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
732526
732531
|
});
|
|
@@ -738910,7 +738915,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
738910
738915
|
}
|
|
738911
738916
|
function computeFingerprintFromMessages(messages) {
|
|
738912
738917
|
const firstMessageText = extractFirstMessageText(messages);
|
|
738913
|
-
return computeFingerprint(firstMessageText, "1.80.
|
|
738918
|
+
return computeFingerprint(firstMessageText, "1.80.9");
|
|
738914
738919
|
}
|
|
738915
738920
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
738916
738921
|
var init_fingerprint = () => {};
|
|
@@ -740835,7 +740840,7 @@ async function sideQuery(opts) {
|
|
|
740835
740840
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
740836
740841
|
}
|
|
740837
740842
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
740838
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.80.
|
|
740843
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.80.9");
|
|
740839
740844
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
740840
740845
|
const systemBlocks = [
|
|
740841
740846
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -745669,7 +745674,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
745669
745674
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
745670
745675
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
745671
745676
|
betas: getSdkBetas(),
|
|
745672
|
-
ur_version: "1.80.
|
|
745677
|
+
ur_version: "1.80.9",
|
|
745673
745678
|
output_style: outputStyle,
|
|
745674
745679
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
745675
745680
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -759505,7 +759510,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
759505
759510
|
function getSemverPart(version3) {
|
|
759506
759511
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
759507
759512
|
}
|
|
759508
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.80.
|
|
759513
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.80.9") {
|
|
759509
759514
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
759510
759515
|
if (!updatedVersion) {
|
|
759511
759516
|
return null;
|
|
@@ -759554,7 +759559,7 @@ function AutoUpdater({
|
|
|
759554
759559
|
return;
|
|
759555
759560
|
}
|
|
759556
759561
|
if (false) {}
|
|
759557
|
-
const currentVersion = "1.80.
|
|
759562
|
+
const currentVersion = "1.80.9";
|
|
759558
759563
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
759559
759564
|
let latestVersion = await getLatestVersion(channel);
|
|
759560
759565
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -759783,12 +759788,12 @@ function NativeAutoUpdater({
|
|
|
759783
759788
|
logEvent("tengu_native_auto_updater_start", {});
|
|
759784
759789
|
try {
|
|
759785
759790
|
const maxVersion = await getMaxVersion();
|
|
759786
|
-
if (maxVersion && gt("1.80.
|
|
759791
|
+
if (maxVersion && gt("1.80.9", maxVersion)) {
|
|
759787
759792
|
const msg = await getMaxVersionMessage();
|
|
759788
759793
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
759789
759794
|
}
|
|
759790
759795
|
const result = await installLatest(channel);
|
|
759791
|
-
const currentVersion = "1.80.
|
|
759796
|
+
const currentVersion = "1.80.9";
|
|
759792
759797
|
const latencyMs = Date.now() - startTime;
|
|
759793
759798
|
if (result.lockFailed) {
|
|
759794
759799
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -759925,17 +759930,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759925
759930
|
const maxVersion = await getMaxVersion();
|
|
759926
759931
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
759927
759932
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
759928
|
-
if (gte("1.80.
|
|
759929
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.
|
|
759933
|
+
if (gte("1.80.9", maxVersion)) {
|
|
759934
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
759930
759935
|
setUpdateAvailable(false);
|
|
759931
759936
|
return;
|
|
759932
759937
|
}
|
|
759933
759938
|
latest = maxVersion;
|
|
759934
759939
|
}
|
|
759935
|
-
const hasUpdate = latest && !gte("1.80.
|
|
759940
|
+
const hasUpdate = latest && !gte("1.80.9", latest) && !shouldSkipVersion(latest);
|
|
759936
759941
|
setUpdateAvailable(!!hasUpdate);
|
|
759937
759942
|
if (hasUpdate) {
|
|
759938
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.
|
|
759943
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.9"} -> ${latest}`);
|
|
759939
759944
|
}
|
|
759940
759945
|
};
|
|
759941
759946
|
$2[0] = t1;
|
|
@@ -759969,7 +759974,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759969
759974
|
wrap: "truncate",
|
|
759970
759975
|
children: [
|
|
759971
759976
|
"currentVersion: ",
|
|
759972
|
-
"1.80.
|
|
759977
|
+
"1.80.9"
|
|
759973
759978
|
]
|
|
759974
759979
|
}, undefined, true, undefined, this);
|
|
759975
759980
|
$2[3] = verbose;
|
|
@@ -770822,7 +770827,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
770822
770827
|
project_dir: getOriginalCwd(),
|
|
770823
770828
|
added_dirs: addedDirs
|
|
770824
770829
|
},
|
|
770825
|
-
version: "1.80.
|
|
770830
|
+
version: "1.80.9",
|
|
770826
770831
|
output_style: {
|
|
770827
770832
|
name: outputStyleName
|
|
770828
770833
|
},
|
|
@@ -770957,7 +770962,7 @@ function StatusLineInner({
|
|
|
770957
770962
|
const attention = customStatusError ?? taskAttention;
|
|
770958
770963
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
770959
770964
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
770960
|
-
version: "1.80.
|
|
770965
|
+
version: "1.80.9",
|
|
770961
770966
|
providerLabel: providerRuntime.providerLabel,
|
|
770962
770967
|
authMode: providerRuntime.authLabel,
|
|
770963
770968
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -783212,7 +783217,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783212
783217
|
} catch {}
|
|
783213
783218
|
const data = {
|
|
783214
783219
|
trigger: trigger2,
|
|
783215
|
-
version: "1.80.
|
|
783220
|
+
version: "1.80.9",
|
|
783216
783221
|
platform: process.platform,
|
|
783217
783222
|
transcript,
|
|
783218
783223
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -795581,7 +795586,7 @@ function WelcomeV2() {
|
|
|
795581
795586
|
dimColor: true,
|
|
795582
795587
|
children: [
|
|
795583
795588
|
"v",
|
|
795584
|
-
"1.80.
|
|
795589
|
+
"1.80.9"
|
|
795585
795590
|
]
|
|
795586
795591
|
}, undefined, true, undefined, this)
|
|
795587
795592
|
]
|
|
@@ -796841,7 +796846,7 @@ function completeOnboarding() {
|
|
|
796841
796846
|
saveGlobalConfig((current) => ({
|
|
796842
796847
|
...current,
|
|
796843
796848
|
hasCompletedOnboarding: true,
|
|
796844
|
-
lastOnboardingVersion: "1.80.
|
|
796849
|
+
lastOnboardingVersion: "1.80.9"
|
|
796845
796850
|
}));
|
|
796846
796851
|
}
|
|
796847
796852
|
function showDialog(root2, renderer) {
|
|
@@ -801987,7 +801992,7 @@ function appendToLog(path28, message) {
|
|
|
801987
801992
|
cwd: getFsImplementation().cwd(),
|
|
801988
801993
|
userType: process.env.USER_TYPE,
|
|
801989
801994
|
sessionId: getSessionId(),
|
|
801990
|
-
version: "1.80.
|
|
801995
|
+
version: "1.80.9"
|
|
801991
801996
|
};
|
|
801992
801997
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
801993
801998
|
}
|
|
@@ -806151,8 +806156,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806151
806156
|
}
|
|
806152
806157
|
async function checkEnvLessBridgeMinVersion() {
|
|
806153
806158
|
const cfg = await getEnvLessBridgeConfig();
|
|
806154
|
-
if (cfg.min_version && lt("1.80.
|
|
806155
|
-
return `Your version of UR (${"1.80.
|
|
806159
|
+
if (cfg.min_version && lt("1.80.9", cfg.min_version)) {
|
|
806160
|
+
return `Your version of UR (${"1.80.9"}) is too old for Remote Control.
|
|
806156
806161
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806157
806162
|
}
|
|
806158
806163
|
return null;
|
|
@@ -806626,7 +806631,7 @@ async function initBridgeCore(params) {
|
|
|
806626
806631
|
const rawApi = createBridgeApiClient({
|
|
806627
806632
|
baseUrl,
|
|
806628
806633
|
getAccessToken,
|
|
806629
|
-
runnerVersion: "1.80.
|
|
806634
|
+
runnerVersion: "1.80.9",
|
|
806630
806635
|
onDebug: logForDebugging,
|
|
806631
806636
|
onAuth401,
|
|
806632
806637
|
getTrustedDeviceToken
|
|
@@ -816099,7 +816104,7 @@ function getAgUiCapabilities() {
|
|
|
816099
816104
|
name: "UR-Nexus",
|
|
816100
816105
|
type: "ur-nexus",
|
|
816101
816106
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816102
|
-
version: "1.80.
|
|
816107
|
+
version: "1.80.9",
|
|
816103
816108
|
provider: "UR",
|
|
816104
816109
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816105
816110
|
},
|
|
@@ -817326,7 +817331,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
817326
817331
|
};
|
|
817327
817332
|
const server2 = new Server({
|
|
817328
817333
|
name: "ur-nexus",
|
|
817329
|
-
version: "1.80.
|
|
817334
|
+
version: "1.80.9"
|
|
817330
817335
|
}, {
|
|
817331
817336
|
capabilities: {
|
|
817332
817337
|
tools: {}
|
|
@@ -818530,7 +818535,7 @@ function thrownResponse(error40) {
|
|
|
818530
818535
|
}
|
|
818531
818536
|
async function createUrMcp2026Runtime(options5) {
|
|
818532
818537
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
818533
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.
|
|
818538
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.9" }, { capabilities: {} });
|
|
818534
818539
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
818535
818540
|
try {
|
|
818536
818541
|
await server2.connect(serverTransport);
|
|
@@ -818541,7 +818546,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
818541
818546
|
}
|
|
818542
818547
|
const runtime2 = new Mcp2026Runtime({
|
|
818543
818548
|
cwd: options5.cwd,
|
|
818544
|
-
version: "1.80.
|
|
818549
|
+
version: "1.80.9",
|
|
818545
818550
|
backend: {
|
|
818546
818551
|
listTools: async () => {
|
|
818547
818552
|
const listed = await client2.listTools();
|
|
@@ -821276,7 +821281,7 @@ async function update() {
|
|
|
821276
821281
|
logEvent("tengu_update_check", {});
|
|
821277
821282
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
821278
821283
|
const result = await checkUpgradeStatus({
|
|
821279
|
-
currentVersion: "1.80.
|
|
821284
|
+
currentVersion: "1.80.9",
|
|
821280
821285
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
821281
821286
|
installationType: diagnostic2.installationType,
|
|
821282
821287
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -822604,7 +822609,7 @@ ${customInstructions}` : customInstructions;
|
|
|
822604
822609
|
}
|
|
822605
822610
|
}
|
|
822606
822611
|
logForDiagnosticsNoPII("info", "started", {
|
|
822607
|
-
version: "1.80.
|
|
822612
|
+
version: "1.80.9",
|
|
822608
822613
|
is_native_binary: isInBundledMode()
|
|
822609
822614
|
});
|
|
822610
822615
|
registerCleanup(async () => {
|
|
@@ -823391,7 +823396,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
823391
823396
|
pendingHookMessages
|
|
823392
823397
|
}, renderAndRun);
|
|
823393
823398
|
}
|
|
823394
|
-
}).version("1.80.
|
|
823399
|
+
}).version("1.80.9 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
823395
823400
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
823396
823401
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
823397
823402
|
if (canUserConfigureAdvisor()) {
|
|
@@ -824518,7 +824523,7 @@ if (false) {}
|
|
|
824518
824523
|
async function main2() {
|
|
824519
824524
|
const args = process.argv.slice(2);
|
|
824520
824525
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
824521
|
-
console.log(`${"1.80.
|
|
824526
|
+
console.log(`${"1.80.9"} (UR-Nexus)`);
|
|
824522
824527
|
return;
|
|
824523
824528
|
}
|
|
824524
824529
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -9,6 +9,12 @@ reproducible autonomous software engineering agent: every substantial task can
|
|
|
9
9
|
be driven as `spec -> plan -> patch -> test -> report -> rollback`, with the
|
|
10
10
|
spec as the durable source of truth and command evidence as the success gate.
|
|
11
11
|
|
|
12
|
+
## v1.80.9 Addition
|
|
13
|
+
|
|
14
|
+
| Addition | Surface | What it adds |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| Research-only intent recovery | Shared Agent execution gate | Handles providers that retain a pure research/report brief but omit the caller's “read-only” wording. The call is reduced to shipped Explore capabilities; any implementation or mutation directive remains task-gated. |
|
|
17
|
+
|
|
12
18
|
## v1.80.8 Addition
|
|
13
19
|
|
|
14
20
|
| Addition | Surface | What it adds |
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -61,9 +61,11 @@ launch UR's shipped `Explore` and `Plan` agents before a task exists in any
|
|
|
61
61
|
permission mode. These exact built-in definitions are forced read-only; custom,
|
|
62
62
|
write-capable, nested, named/team, and worktree delegation still requires an
|
|
63
63
|
actionable parent task. As provider-independent compatibility, an unnamed
|
|
64
|
-
main-session `general-purpose` call
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
main-session `general-purpose` call is reduced to the shipped Explore definition
|
|
65
|
+
when its brief is explicitly read-only research or is unambiguously limited to
|
|
66
|
+
research and reporting. Any implementation, test, command-execution,
|
|
67
|
+
installation, or workspace-mutation directive keeps the call gated. It never
|
|
68
|
+
receives general-purpose tools through this path.
|
|
67
69
|
|
|
68
70
|
## Model Providers
|
|
69
71
|
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -108,6 +108,11 @@ ur provider status
|
|
|
108
108
|
UR 1.80.8 routes that narrow contract to the protected Explore worker before
|
|
109
109
|
the gate. A real general-purpose or implementation worker is still expected
|
|
110
110
|
to require a task.
|
|
111
|
+
- If the model preserved only the research/report instructions and omitted the
|
|
112
|
+
words “read-only,” upgrade to 1.80.9. UR recognizes that remaining provider
|
|
113
|
+
shape without relying on a specific model name. Prompts that also direct
|
|
114
|
+
implementation, testing, command execution, or file changes remain blocked
|
|
115
|
+
until an actionable task exists.
|
|
111
116
|
|
|
112
117
|
### Ollama stops with `unavailable tool "WebSearch"`
|
|
113
118
|
|
package/docs/USAGE.md
CHANGED
|
@@ -475,10 +475,12 @@ research to UR's shipped `Explore` and `Plan` agents before tasks exist. Those
|
|
|
475
475
|
two definitions are mechanically forced into plan permission mode even when
|
|
476
476
|
the parent is in Accept Edits or Approve All. Models are instructed to select
|
|
477
477
|
`subagent_type="Explore"` for this work. If a provider still labels an explicit
|
|
478
|
-
read-only
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
478
|
+
read-only brief—or an unambiguous research-and-report-only brief—
|
|
479
|
+
`general-purpose`, UR reduces that main-session call to the shipped Explore
|
|
480
|
+
definition before gating. A brief that also directs implementation, testing,
|
|
481
|
+
command execution, or workspace changes remains task-gated. Ordinary
|
|
482
|
+
general-purpose work, custom overrides, nested agents, named/team workers,
|
|
483
|
+
worktrees, and cwd overrides still require an actionable parent task. When the user approves the plan,
|
|
482
484
|
`ExitPlanMode` preserves any existing actionable board or creates a bounded set
|
|
483
485
|
of professional, deduplicated implementation tasks plus a verification task
|
|
484
486
|
that depends on them. Implementation therefore starts with visible tracking
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,10 +19,10 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected for this release: "1.80.
|
|
22
|
+
# expected for this release: "1.80.9 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
### 0.0 Read-only research delegation starts cleanly (1.80.
|
|
25
|
+
### 0.0 Read-only research delegation starts cleanly (1.80.9)
|
|
26
26
|
|
|
27
27
|
Start an interactive session with task enforcement enabled and ask UR to
|
|
28
28
|
research a change, both normally and from Plan Mode. Before any task exists,
|
|
@@ -33,10 +33,10 @@ should remain blocked until they have an actionable parent task.
|
|
|
33
33
|
|
|
34
34
|
Repeat with multiple available model families. A model may correctly emit
|
|
35
35
|
`subagent_type: "Explore"`; if it instead emits `general-purpose` with an
|
|
36
|
-
explicit read-only research/
|
|
37
|
-
Explore and start without a failed `TaskListRequired` attempt. A
|
|
38
|
-
|
|
39
|
-
regressions are:
|
|
36
|
+
explicit read-only brief or a pure research/report-only brief, UR must safely
|
|
37
|
+
reduce it to Explore and start without a failed `TaskListRequired` attempt. A
|
|
38
|
+
brief that also requests implementation, tests, command execution, or file
|
|
39
|
+
changes must remain blocked. The deterministic regressions are:
|
|
40
40
|
|
|
41
41
|
```sh
|
|
42
42
|
bun test test/taskListGate.test.ts test/toolExecutionFinalInput.test.ts
|
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.80.
|
|
48
|
+
<p class="eyebrow">Version 1.80.9</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.80.
|
|
5
|
+
"version": "1.80.9",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED