Commit Graph

18793 Commits

Author SHA1 Message Date
Peter Steinberger 0b849a316d refactor(plugins): single-source interactive dispatch and its auth downgrade via plugin SDK (#120062) 2026-08-06 16:31:04 -07:00
Leon-SK668 d64f5b6a09 fix(googlechat): redact reflected credentials in API errors (#119965)
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-06 18:21:13 -05:00
Peter Steinberger d9ffbb3ed6 fix(memory): report persisted vector index state on unprobed status path (#120048) 2026-08-06 15:57:49 -07:00
Peter Steinberger b4a26783f7 refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers (#119982)
* refactor(test): consolidate duplicated test helpers

* test: remove stale record guard import

* fix(test): remove orphaned record guards

* refactor(test): keep record requirement messages exhaustively typed

* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Peter Steinberger f5e3b5ef54 refactor(plugins): single-source question reactions and preflight audio (#119987) 2026-08-06 14:47:36 -07:00
Peter Steinberger 9fdae501b8 refactor(test): table-drive duplicated test cases (#119973) 2026-08-06 12:37:43 -07:00
Kimi Yu dcf7fadf2c fix(slack): apply channel tool restrictions to normalized session IDs (#119408) 2026-08-06 11:39:22 -07:00
Patrick Erichsen 05e3ce11ac fix(release): restore Fish Audio ClawHub publishing 2026-08-06 11:31:37 -07:00
Peter Steinberger 70f84286c9 fix(telegram): preserve inbound quote attribution
Preserve native Telegram quote attribution in agent-visible input and terminate quotes before following ordinary text.

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-06 21:11:02 +05:30
Peter Steinberger 9213792cdf refactor(qa): derive scenario runtime API from deps (#119974) 2026-08-06 08:40:53 -07:00
Vincent Koc 75e5c2694f fix(qa): enforce scenario provider lane metadata (#119908)
Punchcard-Session: cobalt-valley-meadow-mg
2026-08-06 23:33:17 +08:00
wangmiao0668000666 978f9b15eb fix(test): zalo lifecycle suites fail Windows teardown with EBUSY on agent state DB (#119809)
* fix(test): close zalo agent state databases before lifecycle temp-dir removal (#119796)

* fix(test): close zalouser agent state databases before ingress temp-dir removal (#119796)

* fix(test): close zalouser fixture databases before restoring parent state env (#119796)

ClawSweeper re-review finding: the ingress fixture restored
OPENCLAW_STATE_DIR before closing cached per-agent databases, so lease
release could open a shared-state write against the parent fixture env.
Move both closes ahead of the env restore (canonical fixture order) and
add a nested-environment regression asserting the parent state dir stays
untouched.
2026-08-06 23:26:38 +08:00
Vincent Koc f5add8197f test(qa): provide Matrix module-flow fixture (#119953)
Punchcard-Session: cobalt-valley-meadow-mg
2026-08-06 21:56:41 +08:00
Peter Steinberger 913b53ad80 fix(channels): preserve bundled delivery contracts
Preserves pending Telegram replies, Discord webhook preview policy, forwarded Slack file context, and QQBot target recognition.
2026-08-06 18:44:15 +05:30
Vincent Koc 95fd4d3dc9 fix(device-pair): keep notifier poll off Gateway startup (#119936)
Punchcard-Session: frost-harbor-willow-ev
2026-08-06 20:51:20 +08:00
Vincent Koc 52b8f9be80 fix(plugins): migrate Fish Audio plugin identity (#119900)
* fix(plugins): migrate Fish Audio plugin identity

* fix(plugins): tighten Fish Audio identity migration

* fix(plugins): follow catalog selector for id replacements

* fix(plugins): reject replacement install collisions

* refactor(plugins): reuse skipped update outcomes
2026-08-06 20:50:36 +08:00
Vincent Koc c4292bc8b2 fix(diagnostics): report exporter health in doctor and status (#119816)
* fix(diagnostics): report exporter health transitions

* fix(diagnostics): retire exporter health on shutdown

* test(diagnostics): enforce OTLP protobuf content type

* test(diagnostics): satisfy exporter test type contracts

* fix(diagnostics): redact endpoint-like exporter codes

* fix(diagnostics): coordinate exporter route health

* test(diagnostics): satisfy exporter health static gates

* fix(diagnostics): keep exporter health internal
2026-08-06 20:50:18 +08:00
Peter Steinberger 4d91d44d00 fix(telegram): preserve callback action ownership
Keep Telegram native and typed callback routes under their owning handlers. Expired or malformed typed buttons now clear their controls and return visible unavailable feedback while legacy raw plugin callbacks remain compatible.
2026-08-06 17:23:32 +05:30
Dallin Romney d6fc4a2a95 refactor(qa): make module flows implementation-aware (#118069) 2026-08-06 19:51:28 +08:00
Dallin Romney 8c64ca24b1 fix(qa): include pinned gateway restart in core runtime proof (#118009)
* fix(qa): run pinned gateway restart runtime pair

* fix(qa): run pinned pair before advisory report
2026-08-06 18:52:20 +08:00
Lu Wang 5a8c27ca41 fix(telegram): verify provider topic delivery
Verify Telegram accepted-message topics before follow-up sends, preserving partial-delivery evidence instead of trusting requested routing.

Co-authored-by: Lu Wang <7668944+wangwllu@users.noreply.github.com>
2026-08-06 15:06:39 +05:30
clawsweeper[bot] bc1f917163 fix(qqbot): remove stale data-directory diagnostic (#119849)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-06 17:09:36 +08:00
Pavan Kumar Gondhi 528c5e0817 fix(feishu): honor cross-context limits for message mutations [AI] (#119845)
* fix(feishu): guard native mutation targets

* fix(outbound): preserve direct resource actions
2026-08-06 14:38:24 +05:30
w33d 2ea567972c fix(diagnostics): attribute plugin LLM usage spans (#107937)
Emit usage once at the shared plugin completion boundary and expose host-derived plugin identity only on OTel usage spans. Preserve aggregate metric labels and cover the redacted Gateway path end to end.

Refs #98968

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>
2026-08-06 16:55:53 +08:00
joshavant 43b1e375a9 fix: preserve healthy incompatible auth profiles 2026-08-06 01:48:09 -05:00
joshavant 9702134882 fix: settle Gemini CLI auth preparation failures 2026-08-06 01:48:09 -05:00
Onur Solmaz 1f10ef8050 fix(agents): recover once from critical tool loops (#118647)
* feat(agents): add bounded tool-loop recovery

* feat(agents): wire loop detection into batch recovery

* test(agents): cover bounded tool-loop recovery

* fix(agents): enforce loop thresholds within tool batches

* fix(agents): retain rejected loop batch evidence

* test(agents): update embedded session recovery fixture

* fix(agents): surface terminal loop recovery failures

* fix(agents): preserve loop recovery across retries

* fix(agents): isolate rejected loop evidence

* fix(agents): terminate native critical tool loops

* fix(agents): canonicalize tool loop actions

* fix(agents): preserve tool loop recovery guidance

* fix(agents): preserve code mode tool identity

* fix(agents): preserve prebatch loop evidence

* fix(agents): order native loop termination

* fix(agents): clean up rebased tool validation

* fix(agents): interrupt codex side turns on critical tool loops

* fix(agents): tighten loop recovery batch lifecycle

* fix(agents): drop unconsumed loop detector type export

* fix(agents): drop unconsumed loop relay exports

* test(agents): add agent subscribe to embedded session doubles

* fix(agents): scope critical loop recovery to embedded runs
2026-08-06 14:09:10 +08:00
Jerry-Xin b8f6086411 fix(tts): deliver Telegram final speech without text churn
Defer Telegram final-mode text until speech settles, then deliver one captioned voice note or a proven-safe text fallback.

Co-authored-by: Jerry-Xin <jerryxin0@gmail.com>
2026-08-06 10:41:40 +05:30
pash-openai ddcc3fbd80 fix(slack): keep agent replies below newer messages (#119832)
* fix(slack): keep replies below messages sent while an agent is working

* fix(slack): preserve conversation order through final delivery
2026-08-05 21:42:38 -07:00
razshlomo 941e68bcf5 fix(workboard): card lists stall with large boards (#118848)
* perf(workboard): batch sqlite card child reads

* test(workboard): avoid global sqlite instrumentation

* test(workboard): use supported link type

---------

Co-authored-by: Raz <12373339+razshlomo@users.noreply.github.com>
Co-authored-by: yehezkel-assistant[bot] <3902212+yehezkel-assistant[bot]@users.noreply.github.com>
2026-08-05 21:25:23 -07:00
Alix-007 819f92bba5 fix(msteams): reject malformed OAuth token envelopes [AI-assisted] (#111638)
* fix(msteams): reject malformed OAuth token envelopes

* refactor(msteams): reuse canonical record guard
2026-08-06 03:57:33 +00:00
Vincent Koc 5f05410048 fix(diagnostics-otel): preserve zero model-call usage (#100115) 2026-08-06 11:47:50 +08:00
Vincent Koc 4db44c6923 fix(diagnostics): close lifecycle spans reliably (#119791) 2026-08-06 11:40:24 +08:00
Alix-007 5120f051ad fix(qa-channel): honor canonical thread action fields (#111070)
* fix(qa-channel): honor canonical thread action fields

* fix(qa-channel): prefer canonical action targets

* test(qa-channel): split direct action coverage

* test(qa-channel): keep action suite below line limit
2026-08-05 20:40:01 -07:00
Alix-007 3954423725 fix(qqbot): require own account credential entries (#103371)
* fix(qqbot): require own account credential entries

* fix(qqbot): ignore inherited app ids when listing accounts

* fix(qqbot): require owned account containers

* style(qqbot): format approval account lookup

---------

Co-authored-by: Leon-SK668 <0668001470@xydigit.com>
2026-08-05 20:38:48 -07:00
Alix-007 ab74723229 fix(discord): prevent credentials from appearing in non-JSON errors (#119536)
* fix(discord): redact non-JSON API error details

* fix(discord): redact JSON API error details
2026-08-05 20:38:17 -07:00
qingminlong de27d8306e fix(memory): keep QMD file hints after stale docid misses (issue #113041) (#113515)
* fix(memory): keep qmd file hints after docid misses

* fix(memory): 不要将 hint-only 的 QMD 文档位置缓存到 docid 缓存中

当本地 docid 索引查询无结果时,使用 QMD 文件提示回退来解析文档位置。
但之前的代码将 hint-only 的结果也缓存到了 docPathCache 中,这导致
索引恢复后依然使用旧的回退位置。

修改:
1. qmd-document-resolver.ts: 分离索引查询结果和 hint 回退结果,
   只缓存来自索引查询的 pickDocLocation 结果。
2. qmd-manager.test.ts: 添加索引恢复回归测试,验证索引为空时
   使用 hint 回退,索引恢复后使用索引中的记录而不是缓存的回退位置。

Co-Authored-By: Claude <noreply@anthropic.com>

* test(memory): expect qmd hint provenance

* chore(memory): clarify QMD hint cache behavior

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-05 19:56:03 -07:00
Alix-007 f5849f134f fix(matrix): prevent shared client key collisions (#119667) 2026-08-05 17:44:58 -07:00
HughTang a1064adb68 fix(diagnostics-otel): propagate exported span context (#112283)
* fix(diagnostics-otel): harness.run root span adopts diagnostic trace context

Fall back to internalOrTrustedParentContext when there is no active
tracked parent, so the openclaw.harness.run root span (and its whole
OTel subtree) adopts the diagnostic traceId instead of minting a new
OTel root. This lets spans propagated via the diagnostic traceparent
(e.g. a2a-gateway a2a.call / downstream a2a.task) share one trace with
the run internals.

* fix(diagnostics-otel): propagate exported span context

Co-authored-by: HughTang <44694613+HughTang@users.noreply.github.com>

* fix(diagnostics): break propagation import cycle

* fix(diagnostics): preserve trace propagation contracts

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 08:41:20 +08:00
Vincent Koc 7dcb1ad5ce fix(qa): attest realized profile executions (#119761)
* fix(qa): attest profile execution plans

Persist the canonical profile membership partition and scheduler-owned expected and observed execution cells in QA evidence. Validate successful evidence completeness and bind the canonical plan digest into workflow manifests.

Punchcard-Session: silver-meadow-lantern-vx

* test(ci): exercise QA evidence artifact round trips

Punchcard-Session: silver-meadow-lantern-vx

* fix(qa): record only realized profile executions

Co-authored-by: Dallin Romney <dallinromney@gmail.com>
Co-authored-by: ruel225 <ruel225@users.noreply.github.com>
Punchcard-Session: silver-meadow-lantern-vx

* test(qa): type realized channel evidence

Punchcard-Session: silver-meadow-lantern-vx

---------

Co-authored-by: Dallin Romney <dallinromney@gmail.com>
Co-authored-by: ruel225 <ruel225@users.noreply.github.com>
2026-08-06 08:33:02 +08:00
Patrick Erichsen 678a3c18a9 fix(gateway): finish successful sessions after timestamp races (#119752)
* fix(gateway): correlate session lifecycle by run

* test(qa): expect settled handoffs to survive restart quietly

* test(agents): split embedded run persistence coverage
2026-08-05 17:24:12 -07:00
Vincent Koc 2fc2fc930b improve(ollama): reduce inactive startup cost (#119745)
* improve(ollama): defer optional runtime imports

Punchcard-Session: coral-workshop-workshop-3f

* improve(ollama): isolate lazy runtime modules

* improve(ollama): preserve lazy runtime boundaries
2026-08-06 07:40:22 +08:00
Vincent Koc e41c574793 improve(gateway): defer inactive plugin runtime imports (#119733)
* perf(gateway): defer Talk relay cleanup imports

Punchcard-Session: coral-workshop-workshop-3f

* perf(acpx): defer Pi session catalog runtime

Punchcard-Session: coral-workshop-workshop-3f

* perf(google-meet): defer meeting runtime imports

Punchcard-Session: coral-workshop-workshop-3f

* improve(memory-core): defer scoped runtime access

Punchcard-Session: coral-workshop-workshop-3f

* perf(google-meet): defer SDK action helpers

Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 07:38:24 +08:00
Vincent Koc d3d25737cf fix(qa): recognize portable Slack commentary lane (#119698)
Punchcard-Session: silver-meadow-lantern-vx
2026-08-06 07:18:12 +08:00
Vincent Koc b269e652bc chore(codex): bump app-server to 0.146.1 2026-08-06 07:11:37 +08:00
Vincent Koc 397a60582a fix(diagnostics): preserve OTEL startup failure (#119747) 2026-08-06 06:41:24 +08:00
Jason (Json) 6d2ba0d562 fix: steering reaches active runs across agent harnesses (#119594)
* fix steering delivery across harnesses

* fix steering across moving transcript leaves

* test: align steering queue expectations

* fix: harden active steering ownership

* fix: retain steering fallback admission

* fix: reject late copilot steering

* fix: prevent replay of accepted steering

* fix: bind acquired chat work admission

* fix: bind steering to active transcript branch
2026-08-05 16:02:04 -06:00
Vincent Koc 92b4757227 fix(diagnostics): honor signal-specific OTLP protocols (#119708)
* fix(diagnostics): honor signal-specific OTLP protocols

* fix(docker): forward signal-specific OTLP protocols
2026-08-06 05:39:26 +08:00
Vincent Koc 7b8bba26c9 fix(qa): report cleanup failures truthfully (#119727)
* fix(qa): report cleanup failures truthfully

Punchcard-Session: silver-valley-valley-dt

* fix(qa): satisfy cleanup runner static checks

Punchcard-Session: silver-meadow-lantern-vx
2026-08-06 05:16:35 +08:00
Vincent Koc 880dde979b fix(diagnostics): preserve telemetry during service shutdown (#119705)
* fix(diagnostics): preserve otel service shutdown lifecycle

* test(diagnostics): type OTEL unsubscribe callback

* test(diagnostics): normalize async stop assertion

* fix(plugins): preserve ordinary stop handling
2026-08-06 03:58:06 +08:00