Commit Graph

797 Commits

Author SHA1 Message Date
Peter Steinberger 5397667272 chore(release): prepare 2026.5.4 2026-05-04 10:09:55 +01:00
Peter Steinberger fa689295c6 fix: resolve small triage issues 2026-05-04 07:38:42 +01:00
Vincent Koc 111df161df fix(feishu): share streaming tool progress labels 2026-05-03 18:58:35 -07:00
Vincent Koc 03e35b1d83 fix(feishu): honor block streaming config 2026-05-03 11:42:13 -07:00
Peter Steinberger 8b945bcbea fix(feishu): satisfy queue timeout lint 2026-05-03 15:28:12 +01:00
Martin Garramon 0028e6040a fix(feishu): cap per-chat queue task wait so a single hang doesn't starve later messages
Per-chat sequential queue had no timeout: if a single dispatch hung
(e.g. an agent call that never resolved), every subsequent message in
the same chat stayed `queued` until the gateway was restarted.

Add an optional `taskTimeoutMs` (default 5 min) to `createSequentialQueue`.
After the cap, the in-flight task is evicted from the blocking chain so
newer same-key tasks can proceed. The original task is NOT aborted —
it continues running in the background; we just stop starving the queue.
A warning log surfaces the eviction with the offending key.

`taskTimeoutMs: 0` restores legacy unbounded behavior.

Same-chat FIFO ordering for normal-cadence messages is preserved
(see #64324) — only pathologically slow tasks get evicted.

Fixes #70133.
2026-05-03 15:28:12 +01:00
Peter Steinberger 8dd6a2d323 fix(channels): preserve degraded voice text and mention boundaries 2026-05-03 12:17:11 +01:00
Vincent Koc 14312ff570 fix(feishu): avoid duplicate voice reply text 2026-05-02 23:18:42 -07:00
clawsweeper[bot] d04a8976b1 fix(feishu): repair media-aware message dedupe (#76408)
Summary:
- The PR adds a Feishu-local media-aware dedupe-key helper, wires it through inbound receive/debounce/persistent/broadcast dedupe paths, adds Feishu regression coverage, and adds an Unreleased changelog entry.
- Reproducibility: yes. Source inspection shows a high-confidence path: two Feishu audio events for the same a ... _key` values collide in current-main receive and persistent dedupe before media parsing distinguishes them.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head c0229f8a48.
- Required merge gates passed before the squash merge.

Prepared head SHA: c0229f8a48
Review: https://github.com/openclaw/openclaw/pull/76408#issuecomment-4365292618

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: SymbolStar <24540119+SymbolStar@users.noreply.github.com>
2026-05-03 04:20:02 +00:00
Peter Steinberger 31161abd40 chore(release): bump version to 2026.5.3 2026-05-03 03:08:47 +01:00
clawsweeper[bot] 10c9200f75 [AI-assisted] fix(feishu): probe status with account credentials (#76321)
Summary:
- The PR resolves Feishu setup/status probes through the selected/default account, adds a multi-account regression test, and adds an Unreleased changelog fix entry.
- Reproducibility: yes. Current main can be checked by calling the Feishu setup-status adapter with a config t ... hannels.feishu.accounts.<id>; the status path passes accountId but Feishu currently ignores it for probing.

ClawSweeper fixups:
- Included follow-up commit: fix(clawsweeper): address review for automerge-openclaw-openclaw-7406…
- Included follow-up commit: [AI-assisted] fix(feishu): probe status with account credentials
- Ran the ClawSweeper repair loop before final review.

Validation:
- ClawSweeper review passed for head 427e8e8b07.
- Required merge gates passed before the squash merge.

Prepared head SHA: 427e8e8b07
Review: https://github.com/openclaw/openclaw/pull/76321#issuecomment-4364994746

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: brokemac79 <255583030+brokemac79@users.noreply.github.com>
2026-05-03 00:19:36 +00:00
Vincent Koc 282b9fe616 fix(feishu): split timeout env parsing from client 2026-05-02 16:20:54 -07:00
Peter Steinberger 80da0a0213 chore: bump version to 2026.5.2 2026-05-02 11:58:45 +01:00
Peter Steinberger 9880b7c914 refactor: trim feishu helper exports 2026-05-02 09:09:35 +01:00
Peter Steinberger bf6a02c6da fix: stabilize release validation 2026-05-02 07:13:22 +01:00
Shakker 7641783d6b fix: enforce plugin tool manifest contracts 2026-05-02 06:21:08 +01:00
Peter Steinberger 1ecb2fc2c7 fix(feishu): preserve api error diagnostics 2026-05-02 05:52:46 +01:00
Peter Steinberger 43121fb096 fix: guard provider-prefixed delivery targets 2026-05-02 05:30:41 +01:00
Peter Steinberger 0a6c9ca9ee build: prepare external plugin beta publishing 2026-05-02 02:59:04 +01:00
Peter Steinberger 4144180eb0 build(deps): update workspace dependencies 2026-05-01 21:58:26 +01:00
Peter Steinberger ed8f50f240 refactor: simplify plugin dependency handling
Simplify plugin installation and runtime loading around package-manager-owned dependencies, with Jiti reserved for local/TS fallback paths.

Also scans npm plugin install roots so hoisted transitive dependencies are covered by dependency denylist and node_modules symlink checks.
2026-05-01 21:32:22 +01:00
Peter Steinberger 20659d817b refactor: trim feishu lifecycle helper exports 2026-05-01 19:06:48 +01:00
Peter Steinberger b388209eaf refactor: trim feishu helper exports 2026-05-01 16:20:36 +01:00
Peter Steinberger 15649228d4 refactor: trim extension helper shims 2026-05-01 14:39:03 +01:00
Peter Steinberger 0fe007f71b refactor: trim extension test hooks 2026-05-01 14:32:30 +01:00
Vincent Koc f9b47ad2a1 fix(feishu): recover WebSocket after SDK retry exhaustion (#73739)
* fix(feishu): recover WebSocket after SDK retry exhaustion

* fix(feishu): recover WebSocket after SDK retry exhaustion

---------

Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
2026-05-01 06:27:26 -07:00
Peter Steinberger 5fdde9353e refactor: trim extension runtime reexports 2026-05-01 14:27:22 +01:00
Peter Steinberger 040f533f60 chore: update dependencies 2026-05-01 12:43:17 +01:00
Peter Steinberger 5c0388c253 refactor: prune unused extension exports 2026-05-01 10:24:39 +01:00
Peter Steinberger 298c2fbad4 refactor: delete stale extension exports 2026-05-01 09:44:50 +01:00
Peter Steinberger 22a74de693 refactor: remove unused channel utilities 2026-05-01 09:36:51 +01:00
Peter Steinberger 111432a7a6 refactor: prune unused channel helpers 2026-05-01 09:31:08 +01:00
hcl 38aac70830 fix(feishu): skip empty-text messages with no media to prevent blank session turns (#74634) (#74661)
Feishu delivers empty-text events (e.g. {"text":""}) when users send
blank messages or when a media-only message produces no text content.
Writing a blank user turn to the session file causes downstream LLM
providers such as MiniMax to reject requests with:

  invalid params, messages must not be empty (2013)

Guard at the point after media resolution: if ctx.content.trim() is
empty AND mediaList is empty, log the skip and return without queuing
a reply. This preserves all existing behaviour for text, media, and
mixed messages.

Regression test: dispatch a DM with {"text":""} (no media), assert
mockDispatchReplyFromConfig is not called.

Closes #74634. Thanks @xdengli.
2026-04-30 04:24:27 +00:00
Peter Steinberger ffe67e9cdc refactor(channels): route inbound turns through kernel 2026-04-30 04:08:47 +01:00
openclaw-clownfish[bot] 873df76132 fix(feishu): clean up bitable placeholder rows with empty defaults
Preserve the Feishu-local cleanup path while matching the Lark SDK record value shapes: recursively delete default-empty strings, nulls, arrays, and nested text spans, but keep meaningful links, attachments, users, locations, numbers, and booleans.\n\nCarries forward #40602. Thanks @boat2moon.
2026-04-30 04:01:49 +01:00
Peter Steinberger 5d8f4d8767 fix(feishu): fallback to media resource download (#73986) (thanks @alex-xuweilong) 2026-04-30 03:35:44 +01:00
Peter Steinberger 1ead1b2d18 refactor(channels): finish turn kernel migration 2026-04-30 01:31:00 +01:00
Peter Steinberger cf125c125a test(plugins): align release validation fixtures 2026-04-30 01:25:54 +01:00
Peter Steinberger 9a9cd0c0ab refactor(channels): add shared turn kernel 2026-04-29 23:16:16 +01:00
Peter Steinberger 83267e99b0 chore: update dependencies 2026-04-29 22:42:45 +01:00
Ted Li 8c8f396985 fix(feishu): suppress late streaming card finals (#72294)
Merged via squash.

Prepared head SHA: d18a9ff4c3
Co-authored-by: MonkeyLeeT <6754057+MonkeyLeeT@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-29 16:47:20 +08:00
Peter Steinberger 7d74c1f4b9 test: align channel fixtures with open dm policy 2026-04-29 07:08:06 +01:00
Peter Steinberger bd1d1f0f2b fix: align open DM allowlist policy (#74112)
* fix: harden telegram open dm allowlist merging

* fix: align open dm allowlist policy
2026-04-29 06:52:12 +01:00
Vincent Koc 5f3b8b4100 fix(plugins): harden inspector runtime capture 2026-04-28 02:19:56 -07:00
Vincent Koc 4c72e605cd fix(feishu): recover mojibake filenames from Content-Disposition (#72388) 2026-04-27 22:23:16 -07:00
Shakker 97016fbf02 perf: mark channel plugins startup lazy 2026-04-28 04:33:47 +01:00
Peter Steinberger e1acb61317 refactor: expose SDK test helper subpaths 2026-04-28 03:28:17 +01:00
Peter Steinberger 632b0fd580 chore: update workspace dependencies 2026-04-28 03:09:44 +01:00
Peter Steinberger 947aae5a99 refactor(models): move suppressions to manifests 2026-04-28 02:38:31 +01:00
Vincent Koc d93e6f6158 fix(feishu): repair WebSocket reconnect and heartbeat config (#72411) 2026-04-27 17:32:36 -07:00