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

推荐订阅源

IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
H
Help Net Security
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
C
Cisco Blogs
人人都是产品经理
人人都是产品经理
Know Your Adversary
Know Your Adversary
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Recorded Future
Recorded Future
I
Intezer
罗磊的独立博客
T
The Exploit Database - CXSecurity.com
Blog — PlanetScale
Blog — PlanetScale
Malwarebytes
Malwarebytes
Spread Privacy
Spread Privacy
T
Tor Project blog
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
腾讯CDC
B
Blog RSS Feed
Stack Overflow Blog
Stack Overflow Blog
F
Future of Privacy Forum
MyScale Blog
MyScale Blog
Latest news
Latest news
IT之家
IT之家
MongoDB | Blog
MongoDB | Blog
The Hacker News
The Hacker News
S
Securelist
博客园 - 【当耐特】
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
Jina AI
Jina AI
Cisco Talos Blog
Cisco Talos Blog
B
Blog
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
V
V2EX
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Cloudflare Blog
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
F
Full Disclosure
C
CERT Recently Published Vulnerability Notes

Recent Commits to openclaw:main

fix(docker): prune omitted plugin runtime deps fix(auth): skip OAuth refresh adapter when credential has no refresh … test(qa-lab): cover update package sentinel · openclaw/openclaw@178e510 fix(json): retry on transient File changed during read race condition… test(qa-lab): trace scenario issue evidence · openclaw/openclaw@efb7e47 fix(sessions): preserve compatible auth overrides (#85014) · openclaw/openclaw@b33deb4 ci(qa): publish soak parity artifacts fix(qa): keep searchable tool coverage report-only test(e2e): isolate kitchen sink rpc gateway fix(ollama): allow Orb host local auth (#84999) · openclaw/openclaw@277a4b6 test(qa-lab): add personal failure recovery scenario · openclaw/openclaw@229323d ci: tune crabbox developer image config feat(qa-lab): add jsonl replay harness · openclaw/openclaw@cf06578 fix(codex): beta blocker - keep context engine on canonical session k… · openclaw/openclaw@66dcc4e chore(release): refresh generated baselines · openclaw/openclaw@1b1580c fix(openshell): use NVIDIA CLI contract · openclaw/openclaw@e72f601 docs(release): prefer 1Password provider preflight Policy: add model, network, and MCP conformance checks (#80783) · openclaw/openclaw@6dbd5bd fix(agents): fence embedded session writes refactor: remove sender owner tool gating · openclaw/openclaw@02182d5 docs: remove stale owner tool wording test: update command auth expectations · openclaw/openclaw@95eac52 fix(xai): keep OAuth URL clickable (#84927) · openclaw/openclaw@159b300 Fix stale WebChat typing indicator after terminal session patch (#84565) docs: document rejected autoreview findings · openclaw/openclaw@c49647e docs(changelog): note VAPID subject fix · openclaw/openclaw@db606a8 perf(plugins): reuse compatible gateway startup registry · openclaw/openclaw@d2ad7d6 test: cover dispatch registry reuse caller · openclaw/openclaw@b248b48 docs: add plugin registry reuse changelog · openclaw/openclaw@6ccca4a fix(tests): wrap kitchen sink pnpm runner fix(agents): cap heartbeat context hint fallback · openclaw/openclaw@04061bc 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(status): add gateway delivery health telemetry (#85016) · openclaw/openclaw@5955f35
clawsweeper · 2026-05-22 · via Recent Commits to openclaw:main

@@ -852,6 +852,31 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

852852

unit: "1",

853853

description: "Messages queued for processing",

854854

});

855+

const messageReceivedCounter = meter.createCounter("openclaw.message.received", {

856+

unit: "1",

857+

description: "Inbound messages received",

858+

});

859+

const messageDispatchStartedCounter = meter.createCounter(

860+

"openclaw.message.dispatch.started",

861+

{

862+

unit: "1",

863+

description: "Inbound message dispatch attempts started",

864+

},

865+

);

866+

const messageDispatchCompletedCounter = meter.createCounter(

867+

"openclaw.message.dispatch.completed",

868+

{

869+

unit: "1",

870+

description: "Inbound message dispatch attempts completed",

871+

},

872+

);

873+

const messageDispatchDurationHistogram = meter.createHistogram(

874+

"openclaw.message.dispatch.duration_ms",

875+

{

876+

unit: "ms",

877+

description: "Inbound message dispatch duration",

878+

},

879+

);

855880

const messageProcessedCounter = meter.createCounter("openclaw.message.processed", {

856881

unit: "1",

857882

description: "Messages processed by outcome",

@@ -894,6 +919,10 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

894919

unit: "1",

895920

description: "Session state transitions",

896921

});

922+

const sessionTurnCreatedCounter = meter.createCounter("openclaw.session.turn.created", {

923+

unit: "1",

924+

description: "Agent session turns created",

925+

});

897926

const sessionStuckCounter = meter.createCounter("openclaw.session.stuck", {

898927

unit: "1",

899928

description: "Sessions stuck in processing",

@@ -1430,6 +1459,37 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

14301459

}

14311460

};

143214611462+

const recordMessageReceived = (

1463+

evt: Extract<DiagnosticEventPayload, { type: "message.received" }>,

1464+

) => {

1465+

messageReceivedCounter.add(1, {

1466+

"openclaw.channel": lowCardinalityAttr(evt.channel),

1467+

"openclaw.source": lowCardinalityAttr(evt.source),

1468+

});

1469+

};

1470+1471+

const recordMessageDispatchStarted = (

1472+

evt: Extract<DiagnosticEventPayload, { type: "message.dispatch.started" }>,

1473+

) => {

1474+

messageDispatchStartedCounter.add(1, {

1475+

"openclaw.channel": lowCardinalityAttr(evt.channel),

1476+

"openclaw.source": lowCardinalityAttr(evt.source),

1477+

});

1478+

};

1479+1480+

const recordMessageDispatchCompleted = (

1481+

evt: Extract<DiagnosticEventPayload, { type: "message.dispatch.completed" }>,

1482+

) => {

1483+

const attrs = {

1484+

"openclaw.channel": lowCardinalityAttr(evt.channel),

1485+

"openclaw.outcome": evt.outcome,

1486+

"openclaw.reason": lowCardinalityAttr(evt.reason, "none"),

1487+

"openclaw.source": lowCardinalityAttr(evt.source),

1488+

};

1489+

messageDispatchCompletedCounter.add(1, attrs);

1490+

messageDispatchDurationHistogram.record(evt.durationMs, attrs);

1491+

};

1492+14331493

const recordMessageProcessed = (

14341494

evt: Extract<DiagnosticEventPayload, { type: "message.processed" }>,

14351495

) => {

@@ -1565,6 +1625,16 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

15651625

sessionStateCounter.add(1, attrs);

15661626

};

156716271628+

const recordSessionTurnCreated = (

1629+

evt: Extract<DiagnosticEventPayload, { type: "session.turn.created" }>,

1630+

) => {

1631+

sessionTurnCreatedCounter.add(1, {

1632+

"openclaw.agent": lowCardinalityAttr(evt.agentId, "unknown"),

1633+

"openclaw.channel": lowCardinalityAttr(evt.channel, "unknown"),

1634+

"openclaw.trigger": evt.trigger,

1635+

});

1636+

};

1637+15681638

const recordSessionStuck = (

15691639

evt: Extract<DiagnosticEventPayload, { type: "session.stuck" }>,

15701640

) => {

@@ -2428,6 +2498,15 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

24282498

case "message.queued":

24292499

recordMessageQueued(evt);

24302500

return;

2501+

case "message.received":

2502+

recordMessageReceived(evt);

2503+

return;

2504+

case "message.dispatch.started":

2505+

recordMessageDispatchStarted(evt);

2506+

return;

2507+

case "message.dispatch.completed":

2508+

recordMessageDispatchCompleted(evt);

2509+

return;

24312510

case "message.processed":

24322511

recordMessageProcessed(evt);

24332512

return;

@@ -2455,6 +2534,9 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {

24552534

case "session.long_running":

24562535

case "session.stalled":

24572536

return;

2537+

case "session.turn.created":

2538+

recordSessionTurnCreated(evt);

2539+

return;

24582540

case "session.stuck":

24592541

recordSessionStuck(evt);

24602542

return;