惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
H
Help Net Security
月光博客
月光博客
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
GbyAI
GbyAI
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix(agents): skip continuation bootstrap preload · opencl...
vincentkoc · 2026-05-14 · via Recent Commits to openclaw:main

@@ -189,7 +189,7 @@ import {

189189

} from "../../tool-search.js";

190190

import { shouldAllowProviderOwnedThinkingReplay } from "../../transcript-policy.js";

191191

import { normalizeUsage, type NormalizedUsage } from "../../usage.js";

192-

import { DEFAULT_BOOTSTRAP_FILENAME } from "../../workspace.js";

192+

import { DEFAULT_BOOTSTRAP_FILENAME, type WorkspaceBootstrapFile } from "../../workspace.js";

193193

import { isRunnerAbortError } from "../abort.js";

194194

import { isCacheTtlEligibleProvider, readLastCacheTtlTimestamp } from "../cache-ttl.js";

195195

import { resolveCompactionTimeoutMs } from "../compaction-safety-timeout.js";

@@ -1099,30 +1099,51 @@ export async function runEmbeddedAttempt(

10991099

workspaceDir: resolvedWorkspace,

11001100

warn: (message) => log.warn(message),

11011101

});

1102-

const preloadedBootstrapFiles =

1103-

isRawModelRun || contextInjectionMode === "never"

1104-

? undefined

1105-

: await resolveBootstrapFilesForRun({

1106-

workspaceDir: resolvedWorkspace,

1107-

config: params.config,

1108-

sessionKey: params.sessionKey,

1109-

sessionId: params.sessionId,

1110-

warn: bootstrapWarn,

1111-

contextMode: params.bootstrapContextMode,

1112-

runKind: params.bootstrapContextRunKind,

1113-

});

1114-

const bootstrapRouting = await resolveAttemptWorkspaceBootstrapRouting({

1115-

isWorkspaceBootstrapPending,

1116-

bootstrapFiles: preloadedBootstrapFiles,

1117-

bootstrapContextRunKind: params.bootstrapContextRunKind,

1118-

trigger: params.trigger,

1119-

sessionKey: params.sessionKey,

1120-

isPrimaryRun: isPrimaryBootstrapRun(params.sessionKey),

1121-

isCanonicalWorkspace: params.isCanonicalWorkspace,

1122-

effectiveWorkspace,

1123-

resolvedWorkspace,

1124-

hasBootstrapFileAccess: bootstrapHasFileAccess,

1125-

});

1102+

let completedBootstrapTurn: boolean | undefined;

1103+

const hasCompletedBootstrapTurnForAttempt = async (sessionFile: string) => {

1104+

completedBootstrapTurn ??= await hasCompletedBootstrapTurn(sessionFile);

1105+

return completedBootstrapTurn;

1106+

};

1107+

const resolveBootstrapRouting = (bootstrapFiles?: readonly WorkspaceBootstrapFile[]) =>

1108+

resolveAttemptWorkspaceBootstrapRouting({

1109+

isWorkspaceBootstrapPending,

1110+

bootstrapFiles,

1111+

bootstrapContextRunKind: params.bootstrapContextRunKind,

1112+

trigger: params.trigger,

1113+

sessionKey: params.sessionKey,

1114+

isPrimaryRun: isPrimaryBootstrapRun(params.sessionKey),

1115+

isCanonicalWorkspace: params.isCanonicalWorkspace,

1116+

effectiveWorkspace,

1117+

resolvedWorkspace,

1118+

hasBootstrapFileAccess: bootstrapHasFileAccess,

1119+

});

1120+

const shouldProbeContinuationSkip =

1121+

!isRawModelRun &&

1122+

contextInjectionMode === "continuation-skip" &&

1123+

(params.bootstrapContextRunKind ?? "default") !== "heartbeat" &&

1124+

(await hasCompletedBootstrapTurnForAttempt(params.sessionFile));

1125+

let preloadedBootstrapFiles: WorkspaceBootstrapFile[] | undefined;

1126+

let bootstrapRouting =

1127+

shouldProbeContinuationSkip || isRawModelRun || contextInjectionMode === "never"

1128+

? await resolveBootstrapRouting()

1129+

: undefined;

1130+

if (

1131+

!isRawModelRun &&

1132+

contextInjectionMode !== "never" &&

1133+

(bootstrapRouting === undefined || bootstrapRouting.bootstrapMode === "full")

1134+

) {

1135+

preloadedBootstrapFiles = await resolveBootstrapFilesForRun({

1136+

workspaceDir: resolvedWorkspace,

1137+

config: params.config,

1138+

sessionKey: params.sessionKey,

1139+

sessionId: params.sessionId,

1140+

warn: bootstrapWarn,

1141+

contextMode: params.bootstrapContextMode,

1142+

runKind: params.bootstrapContextRunKind,

1143+

});

1144+

bootstrapRouting = await resolveBootstrapRouting(preloadedBootstrapFiles);

1145+

}

1146+

bootstrapRouting ??= await resolveBootstrapRouting(preloadedBootstrapFiles);

11261147

const bootstrapMode = bootstrapRouting.bootstrapMode;

11271148

const {

11281149

bootstrapFiles: hookAdjustedBootstrapFiles,

@@ -1136,7 +1157,7 @@ export async function runEmbeddedAttempt(

11361157

bootstrapContextRunKind: params.bootstrapContextRunKind ?? "default",

11371158

bootstrapMode,

11381159

sessionFile: params.sessionFile,

1139-

hasCompletedBootstrapTurn,

1160+

hasCompletedBootstrapTurn: hasCompletedBootstrapTurnForAttempt,

11401161

resolveBootstrapContextForRun: async () => {

11411162

const bootstrapFiles =

11421163

preloadedBootstrapFiles ??