feat(workspace): add skipOptionalBootstrapFiles config option (#62110)

Adds `agents.defaults.skipOptionalBootstrapFiles` for optional workspace bootstrap files, validates the supported filenames, and propagates the option through workspace bootstrap callers.

Also preserves legacy setup detection when `USER.md` or `IDENTITY.md` are intentionally skipped, documents the config field, and includes focused regression coverage.

Landing follow-up included small CI unblockers for current-base drift: removing an unused Brave runtime dependency, fixing Telegram RTT lint, and preserving compatible gateway-bindable plugin registry cache reuse when runtime ensures disable bundled dependency installation.
This commit is contained in:
mainstay22
2026-05-01 04:08:22 -05:00
committed by GitHub
parent e5208bd331
commit 94543092be
28 changed files with 251 additions and 40 deletions

View File

@@ -10,12 +10,12 @@ const timeoutMs = Number(process.env.OPENCLAW_QA_TELEGRAM_SCENARIO_TIMEOUT_MS ??
const canaryTimeoutMs = Number(
process.env.OPENCLAW_QA_TELEGRAM_CANARY_TIMEOUT_MS ?? String(timeoutMs),
);
const scenarioIds = (
process.env.OPENCLAW_NPM_TELEGRAM_SCENARIOS ?? "telegram-mentioned-message-reply"
)
.split(",")
.map((value) => value.trim())
.filter(Boolean);
const scenarioIds = new Set(
(process.env.OPENCLAW_NPM_TELEGRAM_SCENARIOS ?? "telegram-mentioned-message-reply")
.split(",")
.map((value) => value.trim())
.filter(Boolean),
);
if (!groupId || !driverToken || !sutToken) {
throw new Error(
@@ -63,10 +63,6 @@ function messageText(message) {
return message.text ?? message.caption ?? "";
}
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function flushUpdates(bot) {
let updates = await bot.getUpdates({ timeout: 0, allowed_updates: ["message"] });
let nextOffset;
@@ -194,7 +190,7 @@ async function main() {
}),
);
if (scenarioIds.includes("telegram-mentioned-message-reply")) {
if (scenarioIds.has("telegram-mentioned-message-reply")) {
const marker = `OPENCLAW_RTT_${Date.now().toString(36)}`;
scenarios.push(
await runScenario({