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

推荐订阅源

The Register - Security
The Register - Security
美团技术团队
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
S
Securelist
T
Tor Project blog
GbyAI
GbyAI
L
LINUX DO - 热门话题
V
Visual Studio Blog
AWS News Blog
AWS News Blog
The Cloudflare Blog
腾讯CDC
K
Kaspersky official blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recorded Future
Recorded Future
李成银的技术随笔
W
WeLiveSecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
M
Microsoft Research Blog - Microsoft Research
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Schneier on Security
Schneier on Security
B
Blog
IT之家
IT之家
爱范儿
爱范儿
H
Help Net Security
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
J
Java Code Geeks
博客园 - 聂微东
T
The Exploit Database - CXSecurity.com
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
MyScale Blog
MyScale Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Project Zero
Project Zero
F
Future of Privacy Forum
D
Darknet – Hacking Tools, Hacker News & Cyber Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hacker News: Ask HN
Hacker News: Ask HN
D
Docker
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
V
Vulnerabilities – Threatpost

Recent Commits to openclaw:main

chore(deadcode): dedupe repeated helpers · openclaw/openclaw@88c49f9 perf(cli): cache stable subcommand help (#84786) · openclaw/openclaw@f39f56a fix(ollama): preserve tool call ids [AI-assisted] (#84855) · openclaw/openclaw@2000227 fix: align remaining copyright notice · openclaw/openclaw@f43e83c fix(config): append numeric bound hints to ceiling/floor validation e… · openclaw/openclaw@8a8f9dc fix(qa): enable private self-check runtime · openclaw/openclaw@0fb1de5 fix(diffs): replace iconMarkup string with ToolbarIconName enum to el… · openclaw/openclaw@b7f9bf5 fix: update mac copyright owner fix(agents): normalize openapi tool schemas · openclaw/openclaw@ec67290 fix(memory): stop recall tracking when dreaming is disabled · openclaw/openclaw@c89632b fix(diagnostics-otel): suppress exporter rejection crashes (#84881) perf: speed up secrets and nodes help startup (#84818) · openclaw/openclaw@233765b docs: add PDF timeout changelog · openclaw/openclaw@e3b77d6 fix(pdf): bound remote body reads [Fix] Reject slow node event sends (#84387) fix(doctor): detect Codex bwrap namespace denials · openclaw/openclaw@43c6c26 fix(update): prune stale local bundled plugin shadows · openclaw/openclaw@4a360ac ci: add live Codex plugin release check · openclaw/openclaw@3eb2d64 fix(slack): suppress reasoning reply payloads (#84322) chore: update vite · openclaw/openclaw@ec7495c chore: update dependencies · openclaw/openclaw@ec10d12 fix(config): validate browser sandbox bind sources [AI] (#84799) · openclaw/openclaw@3cc8b2a doctor: constrain legacy plugin cleanup paths [AI] (#84801) Fix Telegram isolated polling stall watchdog (#84861) · openclaw/openclaw@40db92f ci(release): keep non-waiting clawhub publish best effort fix(docker): keep prune store warmup before offline stage · openclaw/openclaw@1e8d966 ci(release): require resolved target before child dispatch · openclaw/openclaw@2fd02c2 fix(docker): keep runtime prune offline · openclaw/openclaw@a329b9e ci(release): streamline beta publish verification · openclaw/openclaw@1c5fda1 ci(release): preserve direct repair publishes · openclaw/openclaw@0604d25 ci(release): keep focused validation reruns independent · openclaw/openclaw@624d920 [Fix] Keep node systemd tokens out of unit files (#84815) fix: reject symlinked whatsapp creds · openclaw/openclaw@194f078 fix(whatsapp): guard credential atomic writes refactor(whatsapp): use async fs-safe credential checks · openclaw/openclaw@9ec9fbf fix(doctor): clear stale runtime override pins (#84221) fix(agents): disable pi-coding-agent auto-retry to prevent tool call … fix(trajectory): tolerate partial skill snapshot entries in support c… · openclaw/openclaw@c9b6a8b fix(ui): widen settings personal card · openclaw/openclaw@3156d94 fix(agents): log pre-prompt compaction fits decisions (#84676) · openclaw/openclaw@79be940 fix(memory-core): allow bounded dreaming session cleanup (#84802) · openclaw/openclaw@0671a2a perf(cli): lazy-load agents actions for help (#84483) · openclaw/openclaw@168f8a7 Skip empty sherpa structured transcripts (#84667) · openclaw/openclaw@46030f5 feat: support git and local skill installs (#84793) · openclaw/openclaw@c031274 Policy: add tool metadata conformance (#80056) fix(doctor): warn when sandbox hides MCP tools (#84742) · openclaw/openclaw@6745fe8 perf(cli): speed up onboarding help startup (#84488) · openclaw/openclaw@2c0c9c9 perf: isolate doctor core check tests (#84493) · openclaw/openclaw@2585249 feat(tasks): explain stale-running maintenance decisions (#84691) · openclaw/openclaw@3d3cf96 fix(minimax): stop advertising music duration control (#84765) fix(codex): guard path-only bootstrap files [AI-assisted] (#84736) · openclaw/openclaw@c4f14a3 Warn on plaintext secret config in doctor (#84718) · openclaw/openclaw@9cdf8a1 Remove skill prelude exec allowlist (#84570) perf(tui): defer EmbeddedTuiBackend import, drop dead warmup helpers … · openclaw/openclaw@b79effe perf(tui): skip plugin metadata + provider catalog on remote TUI star… · openclaw/openclaw@d91ef6b Route JSON-mode plugin registration logs to stderr (#84741) · openclaw/openclaw@b3ec4f0 build: suppress rolldown-plugin-dts CommonJS dts warnings from bundle… [codex] Fix macOS app copyright year (#84729) · openclaw/openclaw@5c4c6a4 fix(approval): route /approve through approval resolver (#84678) · openclaw/openclaw@b58572e test(secret-file): cover NickServ + account-level symlinks, narrow in… · openclaw/openclaw@4d47f9a fix(infra): restore symlink rejection in tryReadSecretFileSync (#84711) · openclaw/openclaw@90fd26b ci: preserve node path across setup action steps · openclaw/openclaw@d786b4e fix(update): defer legacy parent plugin repair · openclaw/openclaw@f4dc9b1 fix(update): prefer npm during post-core repair · openclaw/openclaw@2e389b6 test: align release timeout budget expectations · openclaw/openclaw@3844513 ci: extend stable release validation monitors · openclaw/openclaw@6b52105 fix(update): adopt post-core plugin payloads fix: preserve update compatibility host during release upgrades · openclaw/openclaw@1fdeee3 fix(update): prefer existing npm plugins during repair fix(update): preserve post-core host version · openclaw/openclaw@e57fa51 chore(release): update appcast for 2026.5.19 · openclaw/openclaw@ec8e700 chore(release): refresh generated baselines · openclaw/openclaw@6c7fe58 chore(release): bump version to 2026.5.20 · openclaw/openclaw@7b90661 fix(doctor): migrate invalid thinking formats (#84626) · openclaw/openclaw@6e9d47b fix(slack): normalize approval user ids (#84671) · openclaw/openclaw@9e4eca0 fix(codex): bridge computer use elicitations chore(deps): update whatsapp baileys · openclaw/openclaw@6e7bd55 fix(cli): gate exported subcli descriptors (#84519) · openclaw/openclaw@ca0fe88 fix(browser): honor image sanitization config for screenshots (#84595) · openclaw/openclaw@d5cc0d5 fix: update fs-safe fallback dependency · openclaw/openclaw@1a7669b fix(errors): dedupe identical messages when traversing error .cause c… · openclaw/openclaw@447a364 fix(agents): credit delivered subagent completions (#84383) fix: check billing errors before surfacing rate-limit message (#79489) · openclaw/openclaw@0af55f9 fix: clarify pinned session model status · openclaw/openclaw@a134683 fix: keep cron final output over tool warnings · openclaw/openclaw@c8a953a Add OpenRouter provider routing params (#84579) · openclaw/openclaw@ac69776 feat(discord): add realtime voice bootstrap context · openclaw/openclaw@48a14e4 test(cli): cover parsePort edge cases (#84518) fix: honour tool error suppression for mutating tools (#81561) · openclaw/openclaw@9c00268 fix(codex/command-account): respect explicit auth order over lastGood… · openclaw/openclaw@5d77512 fix(macos): update embedded Peekaboo bridge · openclaw/openclaw@99c8862 perf(plugins): scan-scoped package.json cache in discovery (#84302) · openclaw/openclaw@9a6744b feat(discord): follow configured users in voice fix: stabilize mac app packaging · openclaw/openclaw@d147036 build: update dependencies · openclaw/openclaw@94ac563 feat(policy): add channel conformance checks (#80407) · openclaw/openclaw@cbf72e5 docs: note GitHub paste preflight · openclaw/openclaw@9c5e8eb docs: keep developer tooling out of release tweets · openclaw/openclaw@3c8050c docs: keep qa proof out of release tweets build: bump bundled Codex harness to 0.132.0 · openclaw/openclaw@167e73c
fix(agents): cap heartbeat context hint fallback · openclaw/openclaw@04061bc
vincentkoc · 2026-05-21 · via Recent Commits to openclaw:main

@@ -745,26 +745,58 @@ function formatContextWindowLabel(tokens: number): string {

745745

return `${Math.round(tokens / 1024)}k`;

746746

}

747747748+

function normalizePositiveContextTokens(value: unknown): number | undefined {

749+

if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {

750+

return undefined;

751+

}

752+

return Math.floor(value);

753+

}

754+755+

function resolveAgentContextTokensForHint(params: {

756+

cfg: FollowupRun["run"]["config"];

757+

agentId?: string;

758+

}): number | undefined {

759+

const defaultContextTokens = normalizePositiveContextTokens(

760+

params.cfg.agents?.defaults?.contextTokens,

761+

);

762+

const agentId = normalizeLowercaseStringOrEmpty(params.agentId);

763+

const agentContextTokens = agentId

764+

? normalizePositiveContextTokens(

765+

params.cfg.agents?.list?.find(

766+

(entry) => normalizeLowercaseStringOrEmpty(entry?.id) === agentId,

767+

)?.contextTokens,

768+

)

769+

: undefined;

770+

return agentContextTokens ?? defaultContextTokens;

771+

}

772+748773

function resolveContextWindowForHint(params: {

749774

cfg: FollowupRun["run"]["config"];

775+

agentId?: string;

750776

ref: ModelRefLike;

751777

activeSessionEntry?: SessionEntry;

752778

}) {

753-

const activeContextTokens =

754-

typeof params.activeSessionEntry?.contextTokens === "number" &&

755-

Number.isFinite(params.activeSessionEntry.contextTokens) &&

756-

params.activeSessionEntry.contextTokens > 0

757-

? Math.floor(params.activeSessionEntry.contextTokens)

758-

: undefined;

759-

return (

760-

activeContextTokens ??

761-

resolveContextTokensForModel({

762-

cfg: params.cfg,

763-

provider: params.ref.provider,

764-

model: params.ref.model,

765-

allowAsyncLoad: false,

766-

})

779+

const sessionContextTokens = normalizePositiveContextTokens(

780+

params.activeSessionEntry?.contextTokens,

767781

);

782+

const modelContextTokens = resolveContextTokensForModel({

783+

cfg: params.cfg,

784+

provider: params.ref.provider,

785+

model: params.ref.model,

786+

allowAsyncLoad: false,

787+

});

788+

const contextTokens = modelContextTokens ?? sessionContextTokens;

789+

if (contextTokens === undefined) {

790+

return undefined;

791+

}

792+793+

const agentContextTokens = resolveAgentContextTokensForHint({

794+

cfg: params.cfg,

795+

agentId: params.agentId,

796+

});

797+

return agentContextTokens !== undefined

798+

? Math.min(agentContextTokens, contextTokens)

799+

: contextTokens;

768800

}

769801770802

function resolveHeartbeatBleedHint(params: {

@@ -809,14 +841,14 @@ function resolveHeartbeatBleedHint(params: {

809841810842

const runtimeWindow = resolveContextWindowForHint({

811843

cfg: params.cfg,

844+

agentId: params.agentId,

812845

ref: runtimeRef,

813846

activeSessionEntry: params.activeSessionEntry,

814847

});

815-

const primaryWindow = resolveContextTokensForModel({

848+

const primaryWindow = resolveContextWindowForHint({

816849

cfg: params.cfg,

817-

provider: primaryRef.provider,

818-

model: primaryRef.model,

819-

allowAsyncLoad: false,

850+

agentId: params.agentId,

851+

ref: primaryRef,

820852

});

821853

if (

822854

typeof runtimeWindow === "number" &&