fix(feishu): post into existing topic thread when reply_to is absent#16603
fix(feishu): post into existing topic thread when reply_to is absent#16603konsisumer wants to merge 1 commit into
Conversation
|
Likely duplicate of #11433 — same root cause: Feishu create path ignores thread_id when reply_to is absent. |
|
Rebased onto origin/main. Local run of |
cbc3fbf to
5ee633d
Compare
|
Rebased onto origin/main (3 new upstream commits since last push). Rebase completed with no conflicts — our two files ( |
5ee633d to
1c3cca1
Compare
|
Rebased onto origin/main (2 new upstream commits since last push: |
1c3cca1 to
7472b87
Compare
|
Rebased onto origin/main (5 new upstream commits since last push). No conflicts — neither |
7472b87 to
a8ef800
Compare
|
Rebased onto origin/main (44 new upstream commits since last push). No conflicts — neither |
a8ef800 to
91cbf10
Compare
|
Rebased onto origin/main (5 new upstream commits since last push). No conflicts — neither |
91cbf10 to
28e65be
Compare
|
Rebased onto origin/main. All 190 feishu tests pass locally ( |
28e65be to
ea3db18
Compare
|
Rebased onto origin/main (52 new upstream commits since last push). No conflicts — neither |
ea3db18 to
df0c82a
Compare
|
Rebased onto origin/main. No conflicts — neither |
df0c82a to
e179810
Compare
|
Rebased onto origin/main (41 new upstream commits since last push). No conflicts — neither |
e179810 to
fc31dc6
Compare
fc31dc6 to
98fbb90
Compare
|
Rebased onto latest main (323 commits ahead). Rebase applied cleanly with no conflicts — upstream had also touched The |
|
Rebased onto origin/main (26 new upstream commits since last push). Rebase applied cleanly with no conflicts — the upstream feishu commit ( |
d12d79d to
a16fc4f
Compare
|
Rebased onto origin/main (1 new upstream commit: |
a16fc4f to
887cc39
Compare
|
Rebased onto latest origin/main (already current — 0 commits behind). Local run of |
|
Rebased onto latest origin/main (already current — 0 commits behind). Local run of |
887cc39 to
11d118c
Compare
|
Rebased onto origin/main (already current — 0 commits behind). Local run of |
f195451 to
a9cc626
Compare
|
Rebased onto origin/main (2 new upstream commits: |
|
Rebased onto origin/main (10 new upstream commits since last push). No conflicts — neither |
a9cc626 to
9b94e88
Compare
What changed and why
When a user sends a message inside a Feishu topic thread, the inbound event carries a
thread_id. Hermes stored it in metadata and used it correctly whenreply_towas set (viareply_in_thread=Trueon themessage.replyAPI). However, the create path — reached whenreply_toisNone(progress/thinking messages, approval cards, or after the withdrawn-message fallback) — calledmessage.createwithreceive_id_type="chat_id", completely ignoringthread_id. This caused every such message to start a brand-new topic instead of replying within the current one.Fix in
_send_raw_message(gateway/platforms/feishu.py):reply_toisNoneandthread_idis present in metadata, usereceive_id_type="thread_id"withthread_idasreceive_id.thread_idas a receive-id type and delivers the message inside the existing thread.active_reply_to = None) sincemetadatais forwarded unchanged.How to test
pytest tests/gateway/test_feishu.py::FeishuAdapterSendTests::test_send_uses_thread_id_receive_type_when_no_reply_to -vWhat platforms tested on
Fixes #7734