Menglin Li
4dc55ea88d
fix(feishu): chunk large documents for write/append to avoid API 400 errors ( #14402 )
...
* fix(feishu): chunk large documents for write/append to avoid API 400 errors
The Feishu API limits documentBlockChildren.create to 50 blocks per
request and document.convert has content size limits for large markdown.
Previously, writeDoc and appendDoc would send the entire content in a
single API call, causing HTTP 400 errors for long documents.
This commit adds:
- splitMarkdownByHeadings(): splits markdown at # or ## headings
- chunkedConvertMarkdown(): converts each chunk independently
- chunkedInsertBlocks(): batches blocks into groups of ≤50
Both writeDoc and appendDoc now use the chunked helpers while
preserving backward compatibility for small documents. Image
processing correctly receives all inserted blocks across batches.
* fix(feishu): skip heading detection inside fenced code blocks
Addresses review feedback: splitMarkdownByHeadings() now tracks
fenced code blocks (``` or ~~~) and skips heading-based splitting
when inside one, preventing corruption of code block content.
* Feishu/Docx: add convert fallback chunking + tests
---------
Co-authored-by: lml2468 <lml2468@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 23:11:12 -06:00
BigUncle
27882dc73e
feat(feishu): add quota optimization flags (openclaw#10513) thanks @BigUncle
...
Verified:
- pnpm build
- pnpm check
- pnpm vitest run --config vitest.extensions.config.ts extensions/feishu/src/config-schema.test.ts extensions/feishu/src/reply-dispatcher.test.ts extensions/feishu/src/bot.test.ts
Co-authored-by: BigUncle <9360607+BigUncle@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 23:05:54 -06:00
Rohin
e0b1b48be3
feishu: fall back to user_id for inbound sender identity (openclaw#26703) thanks @NewdlDewdl
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: NewdlDewdl <230946873+NewdlDewdl@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 22:59:42 -06:00
Clawborn
10f1be1072
fix(feishu): replace console.log with runtime log for typing indicator errors (openclaw#18841) thanks @Clawborn
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Clawborn <135319479+Clawborn@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 22:57:16 -06:00
YAXUAN
8beb048a84
test(feishu): add regression for audio download resource type=file (openclaw#16311) thanks @Yaxuan42
...
Verified:
- pnpm build
- pnpm check
- pnpm vitest run --config vitest.extensions.config.ts extensions/feishu/src/bot.test.ts extensions/feishu/src/media.test.ts
Co-authored-by: Yaxuan42 <184813557+Yaxuan42@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 22:49:05 -06:00
青雲
b28344eacc
fix(feishu): insert document blocks sequentially to preserve order ( #26022 ) (openclaw#26172) thanks @echoVic
...
Verified:
- pnpm build
- pnpm check
- pnpm vitest run --config vitest.extensions.config.ts extensions/feishu/src/docx.test.ts
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 22:48:14 -06:00
傅洋
e4cb6a88be
fix(feishu): handle message_type "media" for video downloads (openclaw#25502) thanks @4ier
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: 4ier <5648066+4ier@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 22:28:37 -06:00
Yihao
d9230b13a4
feat(feishu): skip reply-to in DM conversations ( #13211 )
...
In DM (p2p) chats, use message.create instead of message.reply
so that bot responses don't show a 'Reply to' quote. Group chats
retain the reply-to behavior for context clarity.
The typing indicator (emoji reaction on the user's message) is
preserved in DMs — only the reply reference in sent messages is
removed.
Changes:
- Add skipReplyToInMessages param to createFeishuReplyDispatcher
- In bot.ts, set skipReplyToInMessages: !isGroup for both dispatch sites
- In reply-dispatcher.ts, use sendReplyToMessageId (undefined for DMs)
for message sending while keeping replyToMessageId for typing indicator
2026-02-27 22:24:42 -06:00
Haitian
107be4e909
feat(feishu): add global groupSenderAllowFrom for sender-level group access control (openclaw#29174) thanks @1MoreBuild
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: 1MoreBuild <11406106+1MoreBuild@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 21:49:47 -06:00
Tak Hoffman
aef5355102
fix(feishu): add reactionNotifications mode gating (openclaw#29388) thanks @Takhoffman
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 21:47:12 -06:00
TIHU
0e4c24ebe2
fix(feishu): auto-convert local image path text to image message in outbound (openclaw#29264) thanks @paceyw
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: paceyw <44923937+paceyw@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 21:29:11 -06:00
tsu-builds
f53ef73a2b
feat(feishu): add support for merge_forward message parsing (openclaw#28707) thanks @tsu-builds
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: tsu-builds <264409075+tsu-builds@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 20:57:18 -06:00
Lin Z
8241145ada
feat(feishu): add reaction event support (created/deleted) (openclaw#16716) thanks @schumilin
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: schumilin <2003498+schumilin@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 20:54:24 -06:00
Sid
4221b5f809
fix: pass rootId to streaming card in Feishu topic groups (openclaw#28346) thanks @Sid-Qin
...
Verified:
- pnpm check
- pnpm test extensions/feishu/src/reply-dispatcher.test.ts
Co-authored-by: Sid-Qin <201593046+Sid-Qin@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 20:20:53 -06:00
Shawn
da00ead652
fix(feishu): parse code blocks and share_chat messages (openclaw#28591) thanks @kevinWangSheng
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: kevinWangSheng <118158941+kevinWangSheng@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 20:15:48 -06:00
kcinzgg
89669a33bd
feat(feishu): add replyInThread configuration for message replies (openclaw#27325) thanks @kcinzgg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: kcinzgg <13964709+kcinzgg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 19:53:02 -06:00
拐爷&&老拐瘦
36d69d05e2
feat(feishu): support sender/topic-scoped group session routing (openclaw#17798) thanks @yfge
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: yfge <1186273+yfge@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 19:26:36 -06:00
icesword0760
a509154be5
Feishu: send media payloads as attachments (openclaw#28959) thanks @icesword0760
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: icesword0760 <23316247+icesword0760@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 19:06:27 -06:00
Madoka
32ee2f0109
fix(feishu): break infinite typing-indicator retry loop on rate-limit / quota errors (openclaw#28494) thanks @guoqunabc
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: guoqunabc <9532020+guoqunabc@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 18:41:08 -06:00
Glucksberg
0e755ad99a
fix(feishu): use msg_type "audio" for opus files instead of "media" (openclaw#28269) thanks @Glucksberg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 18:23:19 -06:00
Glucksberg
60ef923051
fix(feishu): cache probeFeishu() results with 10-min TTL to reduce API calls (openclaw#28907) thanks @Glucksberg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 18:15:28 -06:00
XuHao
56fa05838a
feat(feishu): support Docx table create/write + image/file upload actions in feishu_doc ( #20304 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 18:00:56 -06:00
OfflynAI
ad804b0356
fix(feishu): propagate mediaLocalRoots for local file sends ( #27884 ) (openclaw#27928) thanks @joelnishanth
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: joelnishanth <140015627+joelnishanth@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 17:43:57 -06:00
zhoulc777
bf9585d056
PR: Feishu Plugin - Auto-grant document permissions to requesting user (openclaw#28295) thanks @zhoulongchao77
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: zhoulongchao77 <65058500+zhoulongchao77@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 17:34:18 -06:00
bmendonca3
f943c76cde
security(feishu): bound unauthenticated webhook rate-limit state (openclaw#26050) thanks @bmendonca3
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: bmendonca3 <208517100+bmendonca3@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-27 13:22:24 -06:00
Rishabh Jain
6675aacb5e
feat(memory-lancedb): Custom OpenAI BaseURL & Dimensions Support ( #17874 )
...
* feat(memory-lancedb): add custom baseUrl and dimensions support
* fix(memory-lancedb): strict model typing and safe dimension resolution
* style: fix formatting in memory-lancedb config
* fix(memory-lancedb): sync manifest schema with new embedding options
---------
Co-authored-by: OpenClaw Bot <bot@openclaw.ai >
2026-02-27 07:56:09 -08:00
Peter Steinberger
fe807e4bed
chore(release): bump 2026.2.27 and split changelog
2026-02-27 16:09:28 +01:00
Peter Steinberger
31c0b04c49
fix(nextcloud-talk): keep startAccount pending until abort ( #27897 )
2026-02-26 22:00:25 +00:00
Peter Steinberger
53575f2013
fix: add googlechat lifecycle regression test ( #27384 ) (thanks @junsuwhy)
2026-02-26 21:49:26 +00:00
Chang Shu-Huai
eb6fa0dacf
fix(googlechat): keep startAccount pending until abort to prevent restart loop
2026-02-26 21:49:26 +00:00
Peter Steinberger
564be6b402
refactor(channels): unify dm pairing policy flows
2026-02-26 22:36:20 +01:00
Peter Steinberger
c53b11dccd
test: fix pairing/daemon assertion drift
2026-02-26 21:24:50 +00:00
Peter Steinberger
a0c5e28f3b
refactor(extensions): use scoped pairing helper
2026-02-26 21:57:52 +01:00
Peter Steinberger
192df12d60
test(voice-call): cover verification key and header helpers
2026-02-26 21:54:09 +01:00
Peter Steinberger
535ef8991c
refactor(voice-call): enforce verified webhook key contract
2026-02-26 21:54:09 +01:00
Peter Steinberger
6f0b4caa26
refactor(voice-call): share header and guarded api helpers
2026-02-26 21:54:09 +01:00
Peter Steinberger
1aadf26f9a
fix(voice-call): bind webhook dedupe to verified request identity
2026-02-26 21:43:51 +01:00
Vincent Koc
5a453eacbd
chore(onboarding): add explicit account-risk warning for Gemini CLI OAuth and docs ( #16683 )
...
* docs: add account-risk caution to Google OAuth provider docs
* docs(plugin): add Gemini CLI account safety caution
* CLI: add risk hint for Gemini CLI auth choice
* Onboarding: require confirmation for Gemini CLI OAuth
* Tests: cover Gemini CLI OAuth risk confirmation flow
2026-02-26 15:25:42 -05:00
Vincent Koc
764cd5a310
fix(gemini-oauth): align OAuth project discovery metadata and endpoint fallbacks ( #16684 )
...
* fix(gemini-oauth): align loadCodeAssist metadata and endpoint fallback
* test(gemini-oauth): cover endpoint fallback and env project fallback
* fix(gemini-oauth): route timed fetches through ssrf guard
* test(gemini-oauth): mock guarded fetch in oauth tests
2026-02-26 15:24:35 -05:00
Peter Steinberger
8483e01a68
refactor(matrix): dedupe sender label resolution for inbound bodies
2026-02-26 20:57:05 +01:00
Peter Steinberger
01b4f42f9a
fix(matrix): preserve sender labels in Matrix BodyForAgent
2026-02-26 20:57:05 +01:00
Peter Steinberger
dc6e4a5b13
fix: harden dm command authorization in open mode
2026-02-26 19:49:36 +01:00
Peter Steinberger
d6eefe2e75
style: format auth boundary updates
2026-02-26 18:50:47 +01:00
Peter Steinberger
64de4b6d6a
fix: enforce explicit group auth boundaries across channels
2026-02-26 18:49:16 +01:00
Peter Steinberger
cd80c7e7ff
refactor: unify dm policy store reads and reason codes
2026-02-26 17:47:57 +01:00
Peter Steinberger
273973d374
refactor: unify typing dispatch lifecycle and policy boundaries
2026-02-26 17:36:16 +01:00
Shakker
b044c149c1
Mattermost: avoid raw fetch in monitor media download
2026-02-26 16:03:39 +00:00
Peter Steinberger
37a138c554
fix: harden typing lifecycle and cross-channel suppression
2026-02-26 17:01:09 +01:00
Peter Steinberger
57334cd7d8
refactor: unify channel/plugin ssrf fetch policy and auth fallback
2026-02-26 16:44:13 +01:00
Peter Steinberger
2e97d0dd95
fix: finalize teams file-consent timeout landing ( #27641 ) (thanks @scz2011)
2026-02-26 15:42:08 +00:00