Andrew Demczuk
c6e32835d4
fix(feishu): clear stale streamingStartPromise on card creation failure
...
Fixes #43322
* fix(feishu): clear stale streamingStartPromise on card creation failure
When FeishuStreamingSession.start() throws (HTTP 400), the catch block
sets streaming = null but leaves streamingStartPromise dangling. The
guard in startStreaming() checks streamingStartPromise first, so all
future deliver() calls silently skip streaming - the session locks
permanently.
Clear streamingStartPromise in the catch block so subsequent messages
can retry streaming instead of dropping all future replies.
Fixes #43322
* test(feishu): wrap push override in try/finally for cleanup safety
2026-03-14 19:15:49 +01:00
Peter Steinberger
49a2ff7d01
build: sync plugins for 2026.3.14
2026-03-14 06:05:39 +00:00
yunweibang
f4a2bbe0c9
fix(feishu): add early event-level dedup to prevent duplicate replies ( #43762 )
...
* fix(feishu): add early event-level dedup to prevent duplicate replies
Add synchronous in-memory dedup at EventDispatcher handler level using
message_id as key with 5-minute TTL and 2000-entry cap.
This catches duplicate events immediately when they arrive from the Lark
SDK — before the inbound debouncer or processing queue — preventing the
race condition where two concurrent dispatches enter the pipeline before
either records the messageId in the downstream dedup layer.
Fixes the root cause reported in #42687 .
* fix(feishu): correct inverted dedup condition
check() returns false on first call (new key) and true on subsequent
calls (duplicate). The previous `!check()` guard was inverted —
dropping every first delivery and passing all duplicates.
Remove the negation so the guard correctly drops duplicates.
* fix(feishu): simplify eventDedup key — drop redundant accountId prefix
eventDedup is already scoped per account (one instance per
registerEventHandlers call), so the accountId prefix in the cache key
is redundant. Use `evt:${messageId}` instead.
* fix(feishu): share inbound processing claim dedupe
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-13 22:37:40 -05:00
Peter Steinberger
c3e78908c7
test: share feishu startup mock modules
2026-03-14 02:40:27 +00:00
Peter Steinberger
8de2f7339c
test: fix current ci regressions
2026-03-14 01:29:04 +00:00
fabiaodemianyang
983fecc106
fix(feishu): preserve non-ASCII filenames in file uploads ( #33912 ) ( #34262 )
...
* fix(feishu): preserve non-ASCII filenames in file uploads (#33912 )
* style(feishu): format media test file
* fix(feishu): preserve UTF-8 filenames in file uploads (openclaw#34262) thanks @fabiaodemianyang
---------
Co-authored-by: Robin Waslander <r.waslander@gmail.com >
2026-03-14 01:42:46 +01:00
Peter Steinberger
a474a9c45d
test: reuse feishu streaming merge helper
2026-03-13 23:35:28 +00:00
Peter Steinberger
4df8722edf
test: share feishu monitor startup mocks
2026-03-13 23:35:28 +00:00
Peter Steinberger
8ca510a669
test: dedupe feishu media account setup
2026-03-13 23:35:26 +00:00
Peter Steinberger
b213348665
test: dedupe feishu signed webhook posts
2026-03-13 23:35:26 +00:00
Peter Steinberger
1ea5bba848
test: dedupe feishu startup preflight waits
2026-03-13 23:35:26 +00:00
Peter Steinberger
7ca8804a33
test: share feishu schema and reaction assertions
2026-03-13 23:35:26 +00:00
Peter Steinberger
a7e5925ec1
test: dedupe feishu account resolution fixtures
2026-03-13 23:35:26 +00:00
Peter Steinberger
9a14696f30
test: dedupe feishu config schema checks
2026-03-13 23:35:26 +00:00
Peter Steinberger
b5eb329f94
test: dedupe feishu outbound setup
2026-03-13 23:35:26 +00:00
Peter Steinberger
d0337a18b6
fix: clear typecheck backlog
2026-03-13 22:09:06 +00:00
Peter Steinberger
b23bfef8cc
test: dedupe feishu probe fixtures
2026-03-13 21:54:39 +00:00
Peter Steinberger
3ffb9f19cb
test: reduce feishu reply dispatcher duplication
2026-03-13 21:40:53 +00:00
Peter Steinberger
de9ea76b6c
refactor: dedupe feishu send reply fallback helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
143ae5a5b0
refactor: share feishu chunked reply delivery
2026-03-13 21:40:53 +00:00
Peter Steinberger
6464149031
refactor: share feishu webhook monitor harness
2026-03-13 18:38:12 +00:00
Peter Steinberger
e358d57fb5
refactor: share feishu reply fallback flow
2026-03-13 16:51:59 +00:00
Peter Steinberger
a14a32695d
refactor: share feishu reaction client setup
2026-03-13 16:51:59 +00:00
Peter Steinberger
fb40b09157
refactor: share feishu media client setup
2026-03-13 16:51:59 +00:00
Peter Steinberger
16ececf0a6
chore: bump version to 2026.3.13
2026-03-13 04:38:32 +00:00
Peter Steinberger
496ca3a637
fix(feishu): fail closed on webhook signature checks
2026-03-13 03:13:56 +00:00
Peter Steinberger
c25e46a433
chore: prepare 2026.3.12 release
2026-03-13 01:38:20 +00:00
Vincent Koc
7844bc89a1
Security: require Feishu webhook encrypt key ( #44087 )
...
* Feishu: require webhook encrypt key in schema
* Feishu: cover encrypt key webhook validation
* Feishu: enforce encrypt key at startup
* Feishu: add webhook forgery regression test
* Feishu: collect encrypt key during onboarding
* Docs: require Feishu webhook encrypt key
* Changelog: note Feishu webhook hardening
* Docs: clarify Feishu encrypt key screenshot
* Feishu: treat webhook encrypt key as secret input
* Feishu: resolve encrypt key only in webhook mode
2026-03-12 11:01:00 -04:00
Vincent Koc
3e730c0332
Security: preserve Feishu reaction chat type ( #44088 )
...
* Feishu: preserve looked-up chat type
* Feishu: fail closed on ambiguous reaction chats
* Feishu: cover reaction chat type fallback
* Changelog: note Feishu reaction hardening
* Feishu: fail closed without resolved chat type
* Feishu: normalize reaction chat type at runtime
2026-03-12 10:53:40 -04:00
Peter Steinberger
ce5dd742f8
build: sync versions to 2026.3.11
2026-03-12 04:01:57 +00:00
Peter Steinberger
0e397e62b7
chore: bump version to 2026.3.10
2026-03-11 23:29:53 +00:00
Peter Steinberger
9c81c31232
chore: refresh dependencies except carbon
2026-03-11 20:10:33 +00:00
Ayane
391f9430ca
fix(feishu): pass mediaLocalRoots in sendText local-image auto-convert shim (openclaw#40623)
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: ayanesakura <40628300+ayanesakura@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-09 22:26:06 -05:00
Peter Steinberger
f6d0712f50
build: sync plugin versions for 2026.3.9
2026-03-09 08:39:52 +00:00
Peter Steinberger
5fca4c0de0
chore: prepare 2026.3.8-beta.1 release
2026-03-09 07:09:37 +00:00
Peter Steinberger
141738f717
refactor: harden browser runtime profile handling
2026-03-09 00:25:43 +00:00
Peter Steinberger
8d7778d1d6
refactor: dedupe plugin runtime stores
2026-03-08 23:38:24 +00:00
Peter Steinberger
05217845a7
build: bump version to 2026.3.8
2026-03-08 05:59:04 +00:00
Vincent Koc
1b034f08e0
Feishu: scope plugin SDK directory imports
2026-03-07 16:26:59 -08:00
Vincent Koc
2a5158295e
Feishu: scope plugin SDK channel imports
2026-03-07 16:26:59 -08:00
Vincent Koc
3800f6700a
Feishu: narrow directory entry types
2026-03-07 16:07:41 -08:00
Peter Steinberger
2b54070526
refactor: share allowlist provider warning resolution
2026-03-08 00:05:24 +00:00
Peter Steinberger
f319ec2dac
refactor: share onboarding allowlist entry parsing
2026-03-08 00:05:24 +00:00
Peter Steinberger
8c15b8600c
refactor: share sender group policy evaluation
2026-03-07 23:27:51 +00:00
Peter Steinberger
556aa8a702
refactor: share config adapter allowFrom and defaultTo helpers
2026-03-07 23:27:51 +00:00
Peter Steinberger
feac26c3b7
refactor: share allowFrom formatter scaffolding
2026-03-07 23:27:51 +00:00
Peter Steinberger
b7d03ea1f5
refactor: centralize open group-policy warning flow collectors
2026-03-07 23:27:51 +00:00
Peter Steinberger
7230b96cc7
refactor: unify extension allowlist resolver and directory scaffolding
2026-03-07 23:27:51 +00:00
Peter Steinberger
8e0e76697a
refactor: unify channel open-group-policy warning builders
2026-03-07 23:27:51 +00:00
Peter Steinberger
5eba663c38
refactor: unify onboarding secret-input prompt state wiring
2026-03-07 23:27:51 +00:00