ur-agent 1.45.5 → 1.45.6
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 +9 -0
- package/dist/cli.js +76 -69
- package/docs/AGENT_FEATURES.md +6 -0
- package/docs/CONFIGURATION.md +1 -1
- package/docs/USAGE.md +4 -0
- package/docs/VALIDATION.md +8 -1
- package/documentation/index.html +3 -3
- 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,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.45.6
|
|
4
|
+
|
|
5
|
+
- Deduplicated project verification approval so compile/test/lint commands are
|
|
6
|
+
offered at most once per user turn. The approval marker is cleared for the
|
|
7
|
+
next user task, preserving one explicit decision per task.
|
|
8
|
+
- Kept AutoApprove behavior, test execution policy, and explicit publishing
|
|
9
|
+
boundaries unchanged. Added regression coverage and synchronized user,
|
|
10
|
+
technical, static-site, npm, IDE, and bundled release metadata.
|
|
11
|
+
|
|
3
12
|
## 1.45.5
|
|
4
13
|
|
|
5
14
|
- Bounded Ollama Cloud response-header and streaming phases to 120 seconds by
|
package/dist/cli.js
CHANGED
|
@@ -73097,7 +73097,7 @@ var init_auth = __esm(() => {
|
|
|
73097
73097
|
|
|
73098
73098
|
// src/utils/userAgent.ts
|
|
73099
73099
|
function getURCodeUserAgent() {
|
|
73100
|
-
return `ur/${"1.45.
|
|
73100
|
+
return `ur/${"1.45.6"}`;
|
|
73101
73101
|
}
|
|
73102
73102
|
|
|
73103
73103
|
// src/utils/workloadContext.ts
|
|
@@ -73119,7 +73119,7 @@ function getUserAgent() {
|
|
|
73119
73119
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
73120
73120
|
const workload = getWorkload();
|
|
73121
73121
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
73122
|
-
return `ur-cli/${"1.45.
|
|
73122
|
+
return `ur-cli/${"1.45.6"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
73123
73123
|
}
|
|
73124
73124
|
function getMCPUserAgent() {
|
|
73125
73125
|
const parts = [];
|
|
@@ -73133,7 +73133,7 @@ function getMCPUserAgent() {
|
|
|
73133
73133
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
73134
73134
|
}
|
|
73135
73135
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
73136
|
-
return `ur/${"1.45.
|
|
73136
|
+
return `ur/${"1.45.6"}${suffix}`;
|
|
73137
73137
|
}
|
|
73138
73138
|
function getWebFetchUserAgent() {
|
|
73139
73139
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -73271,7 +73271,7 @@ var init_user = __esm(() => {
|
|
|
73271
73271
|
deviceId,
|
|
73272
73272
|
sessionId: getSessionId(),
|
|
73273
73273
|
email: getEmail(),
|
|
73274
|
-
appVersion: "1.45.
|
|
73274
|
+
appVersion: "1.45.6",
|
|
73275
73275
|
platform: getHostPlatformForAnalytics(),
|
|
73276
73276
|
organizationUuid,
|
|
73277
73277
|
accountUuid,
|
|
@@ -79846,7 +79846,7 @@ var init_metadata = __esm(() => {
|
|
|
79846
79846
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
79847
79847
|
WHITESPACE_REGEX = /\s+/;
|
|
79848
79848
|
getVersionBase = memoize_default(() => {
|
|
79849
|
-
const match = "1.45.
|
|
79849
|
+
const match = "1.45.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
79850
79850
|
return match ? match[0] : undefined;
|
|
79851
79851
|
});
|
|
79852
79852
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -79886,7 +79886,7 @@ var init_metadata = __esm(() => {
|
|
|
79886
79886
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
79887
79887
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
79888
79888
|
isURAiAuth: isURAISubscriber(),
|
|
79889
|
-
version: "1.45.
|
|
79889
|
+
version: "1.45.6",
|
|
79890
79890
|
versionBase: getVersionBase(),
|
|
79891
79891
|
buildTime: "",
|
|
79892
79892
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -80556,7 +80556,7 @@ function initialize1PEventLogging() {
|
|
|
80556
80556
|
const platform2 = getPlatform();
|
|
80557
80557
|
const attributes = {
|
|
80558
80558
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
80559
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.45.
|
|
80559
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.45.6"
|
|
80560
80560
|
};
|
|
80561
80561
|
if (platform2 === "wsl") {
|
|
80562
80562
|
const wslVersion = getWslVersion();
|
|
@@ -80583,7 +80583,7 @@ function initialize1PEventLogging() {
|
|
|
80583
80583
|
})
|
|
80584
80584
|
]
|
|
80585
80585
|
});
|
|
80586
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.45.
|
|
80586
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.45.6");
|
|
80587
80587
|
}
|
|
80588
80588
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
80589
80589
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -86508,7 +86508,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
86508
86508
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
86509
86509
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
86510
86510
|
}
|
|
86511
|
-
var urVersion = "1.45.
|
|
86511
|
+
var urVersion = "1.45.6", coverage, priorityRoadmap;
|
|
86512
86512
|
var init_trends = __esm(() => {
|
|
86513
86513
|
coverage = [
|
|
86514
86514
|
{
|
|
@@ -88374,7 +88374,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
88374
88374
|
if (!isAttributionHeaderEnabled()) {
|
|
88375
88375
|
return "";
|
|
88376
88376
|
}
|
|
88377
|
-
const version2 = `${"1.45.
|
|
88377
|
+
const version2 = `${"1.45.6"}.${fingerprint}`;
|
|
88378
88378
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
88379
88379
|
const cch = "";
|
|
88380
88380
|
const workload = getWorkload();
|
|
@@ -147117,11 +147117,13 @@ class Verifier {
|
|
|
147117
147117
|
pluginValidatorsPromise;
|
|
147118
147118
|
rejectionsByTurn = new Map;
|
|
147119
147119
|
nudgedTurns = new Set;
|
|
147120
|
+
gateApprovalRequestedTurns = new Set;
|
|
147120
147121
|
userTaskHintByTurn = new Map;
|
|
147121
147122
|
maxRejections;
|
|
147122
147123
|
cwd;
|
|
147123
147124
|
enableSubagentNudge;
|
|
147124
147125
|
mode;
|
|
147126
|
+
askBeforeGatesOverride;
|
|
147125
147127
|
constructor(options2) {
|
|
147126
147128
|
this.cwd = options2.cwd;
|
|
147127
147129
|
this.maxRejections = options2.maxRejectionsPerTurn ?? DEFAULT_MAX_REJECTIONS_PER_TURN;
|
|
@@ -147129,6 +147131,7 @@ class Verifier {
|
|
|
147129
147131
|
this.configPromise = loadVerifyConfig(options2.cwd);
|
|
147130
147132
|
this.pluginValidatorsPromise = loadPluginValidators();
|
|
147131
147133
|
this.mode = resolveMode(options2.mode);
|
|
147134
|
+
this.askBeforeGatesOverride = options2.askBeforeGates;
|
|
147132
147135
|
const subagentEnabledByDefault = this.mode !== "off" && process.env.UR_VERIFIER_DISABLE_SUBAGENT !== "1" && isEnvTruthy(process.env.UR_VERIFIER_AUTO_SUBAGENT);
|
|
147133
147136
|
this.enableSubagentNudge = options2.enableSubagentNudge ?? subagentEnabledByDefault;
|
|
147134
147137
|
}
|
|
@@ -147136,6 +147139,7 @@ class Verifier {
|
|
|
147136
147139
|
this.loops.reset();
|
|
147137
147140
|
this.rejectionsByTurn.delete(turnId);
|
|
147138
147141
|
this.nudgedTurns.delete(turnId);
|
|
147142
|
+
this.gateApprovalRequestedTurns.delete(turnId);
|
|
147139
147143
|
if (userTaskHint)
|
|
147140
147144
|
this.userTaskHintByTurn.set(turnId, userTaskHint);
|
|
147141
147145
|
}
|
|
@@ -147178,14 +147182,16 @@ class Verifier {
|
|
|
147178
147182
|
autoDetected = true;
|
|
147179
147183
|
}
|
|
147180
147184
|
if (commands && commands.length > 0) {
|
|
147181
|
-
|
|
147185
|
+
const shouldAskBeforeGates = this.askBeforeGatesOverride ?? (askBeforeGatesEnabled() || !getIsNonInteractiveSession());
|
|
147186
|
+
if (!shouldAskBeforeGates) {
|
|
147182
147187
|
const result = await runGateCommands(commands, this.cwd, timeoutMs);
|
|
147183
147188
|
if (!result.ok) {
|
|
147184
147189
|
this.bumpRejection(turnId);
|
|
147185
147190
|
const failed = result;
|
|
147186
147191
|
return { ok: false, reminder: failed.reminder };
|
|
147187
147192
|
}
|
|
147188
|
-
} else {
|
|
147193
|
+
} else if (!this.gateApprovalRequestedTurns.has(turnId)) {
|
|
147194
|
+
this.gateApprovalRequestedTurns.add(turnId);
|
|
147189
147195
|
this.bumpRejection(turnId);
|
|
147190
147196
|
return {
|
|
147191
147197
|
ok: false,
|
|
@@ -147234,6 +147240,7 @@ class Verifier {
|
|
|
147234
147240
|
this.ledger.forget(turnId);
|
|
147235
147241
|
this.rejectionsByTurn.delete(turnId);
|
|
147236
147242
|
this.nudgedTurns.delete(turnId);
|
|
147243
|
+
this.gateApprovalRequestedTurns.delete(turnId);
|
|
147237
147244
|
this.userTaskHintByTurn.delete(turnId);
|
|
147238
147245
|
}
|
|
147239
147246
|
bumpRejection(turnId) {
|
|
@@ -196594,7 +196601,7 @@ function getTelemetryAttributes() {
|
|
|
196594
196601
|
attributes["session.id"] = sessionId;
|
|
196595
196602
|
}
|
|
196596
196603
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
196597
|
-
attributes["app.version"] = "1.45.
|
|
196604
|
+
attributes["app.version"] = "1.45.6";
|
|
196598
196605
|
}
|
|
196599
196606
|
const oauthAccount = getOauthAccountInfo();
|
|
196600
196607
|
if (oauthAccount) {
|
|
@@ -232075,7 +232082,7 @@ function getInstallationEnv() {
|
|
|
232075
232082
|
return;
|
|
232076
232083
|
}
|
|
232077
232084
|
function getURCodeVersion() {
|
|
232078
|
-
return "1.45.
|
|
232085
|
+
return "1.45.6";
|
|
232079
232086
|
}
|
|
232080
232087
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
232081
232088
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -239457,7 +239464,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
239457
239464
|
const client2 = new Client({
|
|
239458
239465
|
name: "ur",
|
|
239459
239466
|
title: "UR",
|
|
239460
|
-
version: "1.45.
|
|
239467
|
+
version: "1.45.6",
|
|
239461
239468
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
239462
239469
|
websiteUrl: PRODUCT_URL
|
|
239463
239470
|
}, {
|
|
@@ -239820,7 +239827,7 @@ var init_client5 = __esm(() => {
|
|
|
239820
239827
|
const client2 = new Client({
|
|
239821
239828
|
name: "ur",
|
|
239822
239829
|
title: "UR",
|
|
239823
|
-
version: "1.45.
|
|
239830
|
+
version: "1.45.6",
|
|
239824
239831
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
239825
239832
|
websiteUrl: PRODUCT_URL
|
|
239826
239833
|
}, {
|
|
@@ -246857,9 +246864,9 @@ async function assertMinVersion() {
|
|
|
246857
246864
|
if (false) {}
|
|
246858
246865
|
try {
|
|
246859
246866
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
246860
|
-
if (versionConfig.minVersion && lt("1.45.
|
|
246867
|
+
if (versionConfig.minVersion && lt("1.45.6", versionConfig.minVersion)) {
|
|
246861
246868
|
console.error(`
|
|
246862
|
-
It looks like your version of UR (${"1.45.
|
|
246869
|
+
It looks like your version of UR (${"1.45.6"}) needs an update.
|
|
246863
246870
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
246864
246871
|
|
|
246865
246872
|
To update, please run:
|
|
@@ -247075,7 +247082,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
247075
247082
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
247076
247083
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
247077
247084
|
pid: process.pid,
|
|
247078
|
-
currentVersion: "1.45.
|
|
247085
|
+
currentVersion: "1.45.6"
|
|
247079
247086
|
});
|
|
247080
247087
|
return "in_progress";
|
|
247081
247088
|
}
|
|
@@ -247084,7 +247091,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
247084
247091
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
247085
247092
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
247086
247093
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
247087
|
-
currentVersion: "1.45.
|
|
247094
|
+
currentVersion: "1.45.6"
|
|
247088
247095
|
});
|
|
247089
247096
|
console.error(`
|
|
247090
247097
|
Error: Windows NPM detected in WSL
|
|
@@ -247619,7 +247626,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
247619
247626
|
}
|
|
247620
247627
|
async function getDoctorDiagnostic() {
|
|
247621
247628
|
const installationType = await getCurrentInstallationType();
|
|
247622
|
-
const version2 = typeof MACRO !== "undefined" ? "1.45.
|
|
247629
|
+
const version2 = typeof MACRO !== "undefined" ? "1.45.6" : "unknown";
|
|
247623
247630
|
const installationPath = await getInstallationPath();
|
|
247624
247631
|
const invokedBinary = getInvokedBinary();
|
|
247625
247632
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -248554,8 +248561,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
248554
248561
|
const maxVersion = await getMaxVersion();
|
|
248555
248562
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
248556
248563
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
248557
|
-
if (gte("1.45.
|
|
248558
|
-
logForDebugging(`Native installer: current version ${"1.45.
|
|
248564
|
+
if (gte("1.45.6", maxVersion)) {
|
|
248565
|
+
logForDebugging(`Native installer: current version ${"1.45.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
248559
248566
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
248560
248567
|
latency_ms: Date.now() - startTime,
|
|
248561
248568
|
max_version: maxVersion,
|
|
@@ -248566,7 +248573,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
248566
248573
|
version2 = maxVersion;
|
|
248567
248574
|
}
|
|
248568
248575
|
}
|
|
248569
|
-
if (!forceReinstall && version2 === "1.45.
|
|
248576
|
+
if (!forceReinstall && version2 === "1.45.6" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
248570
248577
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
248571
248578
|
logEvent("tengu_native_update_complete", {
|
|
248572
248579
|
latency_ms: Date.now() - startTime,
|
|
@@ -346426,7 +346433,7 @@ function Feedback({
|
|
|
346426
346433
|
platform: env2.platform,
|
|
346427
346434
|
gitRepo: envInfo.isGit,
|
|
346428
346435
|
terminal: env2.terminal,
|
|
346429
|
-
version: "1.45.
|
|
346436
|
+
version: "1.45.6",
|
|
346430
346437
|
transcript: normalizeMessagesForAPI(messages),
|
|
346431
346438
|
errors: sanitizedErrors,
|
|
346432
346439
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -346618,7 +346625,7 @@ function Feedback({
|
|
|
346618
346625
|
", ",
|
|
346619
346626
|
env2.terminal,
|
|
346620
346627
|
", v",
|
|
346621
|
-
"1.45.
|
|
346628
|
+
"1.45.6"
|
|
346622
346629
|
]
|
|
346623
346630
|
}, undefined, true, undefined, this)
|
|
346624
346631
|
]
|
|
@@ -346724,7 +346731,7 @@ ${sanitizedDescription}
|
|
|
346724
346731
|
` + `**Environment Info**
|
|
346725
346732
|
` + `- Platform: ${env2.platform}
|
|
346726
346733
|
` + `- Terminal: ${env2.terminal}
|
|
346727
|
-
` + `- Version: ${"1.45.
|
|
346734
|
+
` + `- Version: ${"1.45.6"}
|
|
346728
346735
|
` + `- Feedback ID: ${feedbackId}
|
|
346729
346736
|
` + `
|
|
346730
346737
|
**Errors**
|
|
@@ -349835,7 +349842,7 @@ function buildPrimarySection() {
|
|
|
349835
349842
|
}, undefined, false, undefined, this);
|
|
349836
349843
|
return [{
|
|
349837
349844
|
label: "Version",
|
|
349838
|
-
value: "1.45.
|
|
349845
|
+
value: "1.45.6"
|
|
349839
349846
|
}, {
|
|
349840
349847
|
label: "Session name",
|
|
349841
349848
|
value: nameValue
|
|
@@ -353165,7 +353172,7 @@ function Config({
|
|
|
353165
353172
|
}
|
|
353166
353173
|
}, undefined, false, undefined, this)
|
|
353167
353174
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
|
|
353168
|
-
currentVersion: "1.45.
|
|
353175
|
+
currentVersion: "1.45.6",
|
|
353169
353176
|
onChoice: (choice) => {
|
|
353170
353177
|
setShowSubmenu(null);
|
|
353171
353178
|
setTabsHidden(false);
|
|
@@ -353177,7 +353184,7 @@ function Config({
|
|
|
353177
353184
|
autoUpdatesChannel: "stable"
|
|
353178
353185
|
};
|
|
353179
353186
|
if (choice === "stay") {
|
|
353180
|
-
newSettings.minimumVersion = "1.45.
|
|
353187
|
+
newSettings.minimumVersion = "1.45.6";
|
|
353181
353188
|
}
|
|
353182
353189
|
updateSettingsForSource("userSettings", newSettings);
|
|
353183
353190
|
setSettingsData((prev_27) => ({
|
|
@@ -361247,7 +361254,7 @@ function HelpV2(t0) {
|
|
|
361247
361254
|
let t6;
|
|
361248
361255
|
if ($3[31] !== tabs) {
|
|
361249
361256
|
t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
|
|
361250
|
-
title: `UR v${"1.45.
|
|
361257
|
+
title: `UR v${"1.45.6"}`,
|
|
361251
361258
|
color: "professionalBlue",
|
|
361252
361259
|
defaultTab: "general",
|
|
361253
361260
|
children: tabs
|
|
@@ -362021,7 +362028,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
362021
362028
|
async function handleInitialize(options2) {
|
|
362022
362029
|
return {
|
|
362023
362030
|
name: "UR",
|
|
362024
|
-
version: "1.45.
|
|
362031
|
+
version: "1.45.6",
|
|
362025
362032
|
protocolVersion: "0.1.0",
|
|
362026
362033
|
workspaceRoot: options2.cwd,
|
|
362027
362034
|
capabilities: {
|
|
@@ -382163,7 +382170,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
382163
382170
|
return [];
|
|
382164
382171
|
}
|
|
382165
382172
|
}
|
|
382166
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.45.
|
|
382173
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.45.6") {
|
|
382167
382174
|
if (process.env.USER_TYPE === "ant") {
|
|
382168
382175
|
const changelog = "";
|
|
382169
382176
|
if (changelog) {
|
|
@@ -382190,7 +382197,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.45.5")
|
|
|
382190
382197
|
releaseNotes
|
|
382191
382198
|
};
|
|
382192
382199
|
}
|
|
382193
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.45.
|
|
382200
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.45.6") {
|
|
382194
382201
|
if (process.env.USER_TYPE === "ant") {
|
|
382195
382202
|
const changelog = "";
|
|
382196
382203
|
if (changelog) {
|
|
@@ -385282,7 +385289,7 @@ function getRecentActivitySync() {
|
|
|
385282
385289
|
return cachedActivity;
|
|
385283
385290
|
}
|
|
385284
385291
|
function getLogoDisplayData() {
|
|
385285
|
-
const version2 = process.env.DEMO_VERSION ?? "1.45.
|
|
385292
|
+
const version2 = process.env.DEMO_VERSION ?? "1.45.6";
|
|
385286
385293
|
const serverUrl = getDirectConnectServerUrl();
|
|
385287
385294
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
385288
385295
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -386166,7 +386173,7 @@ function LogoV2() {
|
|
|
386166
386173
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
386167
386174
|
t2 = () => {
|
|
386168
386175
|
const currentConfig2 = getGlobalConfig();
|
|
386169
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.45.
|
|
386176
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.45.6") {
|
|
386170
386177
|
return;
|
|
386171
386178
|
}
|
|
386172
386179
|
saveGlobalConfig(_temp327);
|
|
@@ -386851,12 +386858,12 @@ function LogoV2() {
|
|
|
386851
386858
|
return t41;
|
|
386852
386859
|
}
|
|
386853
386860
|
function _temp327(current) {
|
|
386854
|
-
if (current.lastReleaseNotesSeen === "1.45.
|
|
386861
|
+
if (current.lastReleaseNotesSeen === "1.45.6") {
|
|
386855
386862
|
return current;
|
|
386856
386863
|
}
|
|
386857
386864
|
return {
|
|
386858
386865
|
...current,
|
|
386859
|
-
lastReleaseNotesSeen: "1.45.
|
|
386866
|
+
lastReleaseNotesSeen: "1.45.6"
|
|
386860
386867
|
};
|
|
386861
386868
|
}
|
|
386862
386869
|
function _temp243(s_0) {
|
|
@@ -604899,7 +604906,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
604899
604906
|
smapsRollup,
|
|
604900
604907
|
platform: process.platform,
|
|
604901
604908
|
nodeVersion: process.version,
|
|
604902
|
-
ccVersion: "1.45.
|
|
604909
|
+
ccVersion: "1.45.6"
|
|
604903
604910
|
};
|
|
604904
604911
|
}
|
|
604905
604912
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -605485,7 +605492,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
605485
605492
|
var call143 = async () => {
|
|
605486
605493
|
return {
|
|
605487
605494
|
type: "text",
|
|
605488
|
-
value: "1.45.
|
|
605495
|
+
value: "1.45.6"
|
|
605489
605496
|
};
|
|
605490
605497
|
}, version2, version_default;
|
|
605491
605498
|
var init_version = __esm(() => {
|
|
@@ -616595,7 +616602,7 @@ function generateHtmlReport(data, insights) {
|
|
|
616595
616602
|
</html>`;
|
|
616596
616603
|
}
|
|
616597
616604
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
616598
|
-
const version3 = typeof MACRO !== "undefined" ? "1.45.
|
|
616605
|
+
const version3 = typeof MACRO !== "undefined" ? "1.45.6" : "unknown";
|
|
616599
616606
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
616600
616607
|
const facets_summary = {
|
|
616601
616608
|
total: facets.size,
|
|
@@ -620924,7 +620931,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
620924
620931
|
init_settings2();
|
|
620925
620932
|
init_slowOperations();
|
|
620926
620933
|
init_uuid();
|
|
620927
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.45.
|
|
620934
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.45.6" : "unknown";
|
|
620928
620935
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
620929
620936
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
620930
620937
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -622129,7 +622136,7 @@ var init_filesystem = __esm(() => {
|
|
|
622129
622136
|
});
|
|
622130
622137
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
622131
622138
|
const nonce = randomBytes18(16).toString("hex");
|
|
622132
|
-
return join211(getURTempDir(), "bundled-skills", "1.45.
|
|
622139
|
+
return join211(getURTempDir(), "bundled-skills", "1.45.6", nonce);
|
|
622133
622140
|
});
|
|
622134
622141
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
622135
622142
|
});
|
|
@@ -628424,7 +628431,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
628424
628431
|
}
|
|
628425
628432
|
function computeFingerprintFromMessages(messages) {
|
|
628426
628433
|
const firstMessageText = extractFirstMessageText(messages);
|
|
628427
|
-
return computeFingerprint(firstMessageText, "1.45.
|
|
628434
|
+
return computeFingerprint(firstMessageText, "1.45.6");
|
|
628428
628435
|
}
|
|
628429
628436
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
628430
628437
|
var init_fingerprint = () => {};
|
|
@@ -630309,7 +630316,7 @@ async function sideQuery(opts) {
|
|
|
630309
630316
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
630310
630317
|
}
|
|
630311
630318
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
630312
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.45.
|
|
630319
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.45.6");
|
|
630313
630320
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
630314
630321
|
const systemBlocks = [
|
|
630315
630322
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -635046,7 +635053,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
635046
635053
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
635047
635054
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
635048
635055
|
betas: getSdkBetas(),
|
|
635049
|
-
ur_version: "1.45.
|
|
635056
|
+
ur_version: "1.45.6",
|
|
635050
635057
|
output_style: outputStyle2,
|
|
635051
635058
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
635052
635059
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -648906,7 +648913,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
648906
648913
|
function getSemverPart(version3) {
|
|
648907
648914
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
648908
648915
|
}
|
|
648909
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.45.
|
|
648916
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.45.6") {
|
|
648910
648917
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
|
|
648911
648918
|
if (!updatedVersion) {
|
|
648912
648919
|
return null;
|
|
@@ -648955,7 +648962,7 @@ function AutoUpdater({
|
|
|
648955
648962
|
return;
|
|
648956
648963
|
}
|
|
648957
648964
|
if (false) {}
|
|
648958
|
-
const currentVersion = "1.45.
|
|
648965
|
+
const currentVersion = "1.45.6";
|
|
648959
648966
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
648960
648967
|
let latestVersion = await getLatestVersion(channel);
|
|
648961
648968
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -649184,12 +649191,12 @@ function NativeAutoUpdater({
|
|
|
649184
649191
|
logEvent("tengu_native_auto_updater_start", {});
|
|
649185
649192
|
try {
|
|
649186
649193
|
const maxVersion = await getMaxVersion();
|
|
649187
|
-
if (maxVersion && gt("1.45.
|
|
649194
|
+
if (maxVersion && gt("1.45.6", maxVersion)) {
|
|
649188
649195
|
const msg = await getMaxVersionMessage();
|
|
649189
649196
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
649190
649197
|
}
|
|
649191
649198
|
const result = await installLatest(channel);
|
|
649192
|
-
const currentVersion = "1.45.
|
|
649199
|
+
const currentVersion = "1.45.6";
|
|
649193
649200
|
const latencyMs = Date.now() - startTime;
|
|
649194
649201
|
if (result.lockFailed) {
|
|
649195
649202
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -649326,17 +649333,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
649326
649333
|
const maxVersion = await getMaxVersion();
|
|
649327
649334
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
649328
649335
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
649329
|
-
if (gte("1.45.
|
|
649330
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.45.
|
|
649336
|
+
if (gte("1.45.6", maxVersion)) {
|
|
649337
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.45.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
649331
649338
|
setUpdateAvailable(false);
|
|
649332
649339
|
return;
|
|
649333
649340
|
}
|
|
649334
649341
|
latest = maxVersion;
|
|
649335
649342
|
}
|
|
649336
|
-
const hasUpdate = latest && !gte("1.45.
|
|
649343
|
+
const hasUpdate = latest && !gte("1.45.6", latest) && !shouldSkipVersion(latest);
|
|
649337
649344
|
setUpdateAvailable(!!hasUpdate);
|
|
649338
649345
|
if (hasUpdate) {
|
|
649339
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.45.
|
|
649346
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.45.6"} -> ${latest}`);
|
|
649340
649347
|
}
|
|
649341
649348
|
};
|
|
649342
649349
|
$3[0] = t1;
|
|
@@ -649370,7 +649377,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
649370
649377
|
wrap: "truncate",
|
|
649371
649378
|
children: [
|
|
649372
649379
|
"currentVersion: ",
|
|
649373
|
-
"1.45.
|
|
649380
|
+
"1.45.6"
|
|
649374
649381
|
]
|
|
649375
649382
|
}, undefined, true, undefined, this);
|
|
649376
649383
|
$3[3] = verbose;
|
|
@@ -660067,7 +660074,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
660067
660074
|
project_dir: getOriginalCwd(),
|
|
660068
660075
|
added_dirs: addedDirs
|
|
660069
660076
|
},
|
|
660070
|
-
version: "1.45.
|
|
660077
|
+
version: "1.45.6",
|
|
660071
660078
|
output_style: {
|
|
660072
660079
|
name: outputStyleName
|
|
660073
660080
|
},
|
|
@@ -660150,7 +660157,7 @@ function StatusLineInner({
|
|
|
660150
660157
|
const taskValues = Object.values(tasks2);
|
|
660151
660158
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
660152
660159
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
660153
|
-
version: "1.45.
|
|
660160
|
+
version: "1.45.6",
|
|
660154
660161
|
providerLabel: providerRuntime.providerLabel,
|
|
660155
660162
|
authMode: providerRuntime.authLabel,
|
|
660156
660163
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -672143,7 +672150,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
672143
672150
|
} catch {}
|
|
672144
672151
|
const data = {
|
|
672145
672152
|
trigger: trigger2,
|
|
672146
|
-
version: "1.45.
|
|
672153
|
+
version: "1.45.6",
|
|
672147
672154
|
platform: process.platform,
|
|
672148
672155
|
transcript,
|
|
672149
672156
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -684429,7 +684436,7 @@ function WelcomeV2() {
|
|
|
684429
684436
|
dimColor: true,
|
|
684430
684437
|
children: [
|
|
684431
684438
|
"v",
|
|
684432
|
-
"1.45.
|
|
684439
|
+
"1.45.6"
|
|
684433
684440
|
]
|
|
684434
684441
|
}, undefined, true, undefined, this)
|
|
684435
684442
|
]
|
|
@@ -685689,7 +685696,7 @@ function completeOnboarding() {
|
|
|
685689
685696
|
saveGlobalConfig((current) => ({
|
|
685690
685697
|
...current,
|
|
685691
685698
|
hasCompletedOnboarding: true,
|
|
685692
|
-
lastOnboardingVersion: "1.45.
|
|
685699
|
+
lastOnboardingVersion: "1.45.6"
|
|
685693
685700
|
}));
|
|
685694
685701
|
}
|
|
685695
685702
|
function showDialog(root2, renderer) {
|
|
@@ -690711,7 +690718,7 @@ function appendToLog(path24, message) {
|
|
|
690711
690718
|
cwd: getFsImplementation().cwd(),
|
|
690712
690719
|
userType: process.env.USER_TYPE,
|
|
690713
690720
|
sessionId: getSessionId(),
|
|
690714
|
-
version: "1.45.
|
|
690721
|
+
version: "1.45.6"
|
|
690715
690722
|
};
|
|
690716
690723
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
690717
690724
|
}
|
|
@@ -694870,8 +694877,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
694870
694877
|
}
|
|
694871
694878
|
async function checkEnvLessBridgeMinVersion() {
|
|
694872
694879
|
const cfg = await getEnvLessBridgeConfig();
|
|
694873
|
-
if (cfg.min_version && lt("1.45.
|
|
694874
|
-
return `Your version of UR (${"1.45.
|
|
694880
|
+
if (cfg.min_version && lt("1.45.6", cfg.min_version)) {
|
|
694881
|
+
return `Your version of UR (${"1.45.6"}) is too old for Remote Control.
|
|
694875
694882
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
694876
694883
|
}
|
|
694877
694884
|
return null;
|
|
@@ -695345,7 +695352,7 @@ async function initBridgeCore(params) {
|
|
|
695345
695352
|
const rawApi = createBridgeApiClient({
|
|
695346
695353
|
baseUrl,
|
|
695347
695354
|
getAccessToken,
|
|
695348
|
-
runnerVersion: "1.45.
|
|
695355
|
+
runnerVersion: "1.45.6",
|
|
695349
695356
|
onDebug: logForDebugging,
|
|
695350
695357
|
onAuth401,
|
|
695351
695358
|
getTrustedDeviceToken
|
|
@@ -701027,7 +701034,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
701027
701034
|
setCwd(cwd3);
|
|
701028
701035
|
const server2 = new Server({
|
|
701029
701036
|
name: "ur/tengu",
|
|
701030
|
-
version: "1.45.
|
|
701037
|
+
version: "1.45.6"
|
|
701031
701038
|
}, {
|
|
701032
701039
|
capabilities: {
|
|
701033
701040
|
tools: {}
|
|
@@ -703069,7 +703076,7 @@ async function update() {
|
|
|
703069
703076
|
logEvent("tengu_update_check", {});
|
|
703070
703077
|
const diagnostic = await getDoctorDiagnostic();
|
|
703071
703078
|
const result = await checkUpgradeStatus({
|
|
703072
|
-
currentVersion: "1.45.
|
|
703079
|
+
currentVersion: "1.45.6",
|
|
703073
703080
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
703074
703081
|
installationType: diagnostic.installationType,
|
|
703075
703082
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -704380,7 +704387,7 @@ ${customInstructions}` : customInstructions;
|
|
|
704380
704387
|
}
|
|
704381
704388
|
}
|
|
704382
704389
|
logForDiagnosticsNoPII("info", "started", {
|
|
704383
|
-
version: "1.45.
|
|
704390
|
+
version: "1.45.6",
|
|
704384
704391
|
is_native_binary: isInBundledMode()
|
|
704385
704392
|
});
|
|
704386
704393
|
registerCleanup(async () => {
|
|
@@ -705166,7 +705173,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
705166
705173
|
pendingHookMessages
|
|
705167
705174
|
}, renderAndRun);
|
|
705168
705175
|
}
|
|
705169
|
-
}).version("1.45.
|
|
705176
|
+
}).version("1.45.6 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
705170
705177
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
705171
705178
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
705172
705179
|
if (canUserConfigureAdvisor()) {
|
|
@@ -706102,7 +706109,7 @@ if (false) {}
|
|
|
706102
706109
|
async function main2() {
|
|
706103
706110
|
const args = process.argv.slice(2);
|
|
706104
706111
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
706105
|
-
console.log(`${"1.45.
|
|
706112
|
+
console.log(`${"1.45.6"} (UR-Nexus)`);
|
|
706106
706113
|
return;
|
|
706107
706114
|
}
|
|
706108
706115
|
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.45.6 Additions
|
|
13
|
+
|
|
14
|
+
- Project verification approval is deduplicated per user turn. The agent asks
|
|
15
|
+
once before the final compile/test/lint commands, then respects that decision
|
|
16
|
+
without presenting the same gate again.
|
|
17
|
+
|
|
12
18
|
## v1.45.5 Additions
|
|
13
19
|
|
|
14
20
|
- Ollama Cloud requests have bounded response-header and streaming phases and
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -311,7 +311,7 @@ Behaviour is controlled by environment variables:
|
|
|
311
311
|
```sh
|
|
312
312
|
# Overall mode (default: strict) — controls the L1 gates
|
|
313
313
|
UR_VERIFIER_MODE=strict # all L1 gates on: done-claim, loops, empty turn,
|
|
314
|
-
# project gates
|
|
314
|
+
# project gates; approval is requested once per user turn
|
|
315
315
|
UR_VERIFIER_MODE=loose # only empty-turn check + loop detector
|
|
316
316
|
UR_VERIFIER_MODE=off # disable verifier entirely
|
|
317
317
|
|
package/docs/USAGE.md
CHANGED
|
@@ -106,6 +106,10 @@ directly instead of being replayed through the non-streaming fallback. Local
|
|
|
106
106
|
Ollama models keep the five-minute default. Set `API_TIMEOUT_MS` to explicitly
|
|
107
107
|
override either default for the current process.
|
|
108
108
|
|
|
109
|
+
When project verification requires approval, UR asks once per user turn. The
|
|
110
|
+
same pending compile/test/lint gate is not presented again after the user has
|
|
111
|
+
answered; a later user task can request its own approval normally.
|
|
112
|
+
|
|
109
113
|
UR-Nexus also has explicit provider commands for legal access paths:
|
|
110
114
|
|
|
111
115
|
```sh
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,7 +19,7 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected for this release: "1.45.
|
|
22
|
+
# expected for this release: "1.45.6 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## 0.1 First-workspace model selection (1.45.4)
|
|
@@ -54,6 +54,13 @@ seconds for response headers and streaming; a local model retains 300 seconds.
|
|
|
54
54
|
`API_TIMEOUT_MS` wins over both. When a cloud stream reaches its deliberate
|
|
55
55
|
deadline, the request fails once instead of starting a non-streaming replay.
|
|
56
56
|
|
|
57
|
+
### 0.1.2 Single project-gate approval (1.45.6)
|
|
58
|
+
|
|
59
|
+
With `verifier.askBeforeGates` enabled, complete a task that edits a source
|
|
60
|
+
file. Expected: UR asks once whether to run the detected compile/test/lint
|
|
61
|
+
commands. After answering, the same approval question is not shown again. A
|
|
62
|
+
separate user task that edits files may ask once for its own verification.
|
|
63
|
+
|
|
57
64
|
## 0.2 Permission safety and context pack (1.19.0)
|
|
58
65
|
|
|
59
66
|
In a project checkout:
|
package/documentation/index.html
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<main id="content" class="content">
|
|
45
45
|
<header class="topbar">
|
|
46
46
|
<div>
|
|
47
|
-
<p class="eyebrow">Version 1.45.
|
|
47
|
+
<p class="eyebrow">Version 1.45.6</p>
|
|
48
48
|
<h1>UR-Nexus Documentation</h1>
|
|
49
49
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
50
50
|
</div>
|
|
@@ -163,7 +163,7 @@ ur config set provider.fallback ollama</code></pre>
|
|
|
163
163
|
</article>
|
|
164
164
|
<article>
|
|
165
165
|
<h3>Status bar and updates</h3>
|
|
166
|
-
<pre><code>Ollama | llama3 | ask | main | update 1.45.
|
|
166
|
+
<pre><code>Ollama | llama3 | ask | main | update 1.45.6 available</code></pre>
|
|
167
167
|
<p>The interactive status bar shows only important runtime state: provider, model, mode, branch, active tasks, checks status when known, and update availability. It is hidden in CI, dumb terminals, and print mode.</p>
|
|
168
168
|
</article>
|
|
169
169
|
<article>
|
|
@@ -487,7 +487,7 @@ UR_VERIFIER_MODE=loose
|
|
|
487
487
|
UR_VERIFIER_MODE=off
|
|
488
488
|
UR_VERIFIER_AUTO_SUBAGENT=1</code></pre>
|
|
489
489
|
<p>L1 gates catch false done claims, immediate-action promises that end without their tool call, and loops. <code>/verify</code> manually runs deeper verification.</p>
|
|
490
|
-
<p>Interactive users can set <code>"verifier": { "askBeforeGates": true }</code> in <code>.ur/settings.json</code> (or via <code>ur config set verifier.askBeforeGates true</code>) to have UR ask before running project test/typecheck/lint gates after a task, instead of running them automatically. Default is <code>false</code> (auto-run gates).</p>
|
|
490
|
+
<p>Interactive users can set <code>"verifier": { "askBeforeGates": true }</code> in <code>.ur/settings.json</code> (or via <code>ur config set verifier.askBeforeGates true</code>) to have UR ask once per user turn before running project test/typecheck/lint gates after a task, instead of running them automatically. Default is <code>false</code> (auto-run gates).</p>
|
|
491
491
|
</article>
|
|
492
492
|
<article>
|
|
493
493
|
<h3>MCP and plugins</h3>
|
|
@@ -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.45.
|
|
5
|
+
"version": "1.45.6",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED