803 Commits

Author SHA1 Message Date
Peter Steinberger
0b88d6286c chore: bump version to 2026.5.6 2026-05-06 09:47:34 +01:00
Peter Steinberger
8cc762daff fix(feishu): keep topic sessions stable
Fixes Feishu native topic starter routing by hydrating a missing topic thread ID before session resolution.\n\nCloses #78262.
2026-05-06 07:30:27 +01:00
Peter Steinberger
538605ff44 [codex] Extract filesystem safety primitives (#77918)
* refactor: extract filesystem safety primitives

* refactor: use fs-safe for file access helpers

* refactor: reuse fs-safe for media reads

* refactor: use fs-safe for image reads

* refactor: reuse fs-safe in qqbot media opener

* refactor: reuse fs-safe for local media checks

* refactor: consume cleaner fs-safe api

* refactor: align fs-safe json option names

* fix: preserve fs-safe migration contracts

* refactor: use fs-safe primitive subpaths

* refactor: use grouped fs-safe subpaths

* refactor: align fs-safe api usage

* refactor: adapt private state store api

* chore: refresh proof gate

* refactor: follow fs-safe json api split

* refactor: follow reduced fs-safe surface

* build: default fs-safe python helper off

* fix: preserve fs-safe plugin sdk aliases

* refactor: consolidate fs-safe usage

* refactor: unify fs-safe store usage

* refactor: trim fs-safe temp workspace usage

* refactor: hide low-level fs-safe primitives

* build: use published fs-safe package

* fix: preserve outbound recovery durability after rebase

* chore: refresh pr checks
2026-05-06 02:15:17 +01:00
Peter Steinberger
05eda57b3c refactor: migrate bundled plugins to message lifecycle 2026-05-06 01:46:42 +01:00
Vincent Koc
7c6bf331b8 test(feishu): accept native oversized body resets 2026-05-04 09:20:02 -07:00
Vincent Koc
4f2f5e0461 test(feishu): cover native Windows webhook and workspace paths 2026-05-04 09:20:02 -07:00
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