.qwen/e2e-tests/dingtalk-structured-user-mentions.md
Date: 2026-07-22
Using Qwen Code 0.20.1 with a DingTalk Stream channel, send a group message that mentions the bot and one other member. DingTalk delivers two entries in atUsers, removes both visible names from text.content, and the current adapter forwards only the remaining text to the model. With debug payload logging enabled, the nested dingtalkId and staffId values are also logged without redaction.
Use anonymized identifiers in all captured evidence. Do not commit real group, user, staff, message, webhook, or application identifiers.
@Bot please review this @Member in a test group.[Mentioned 1 other group member: <member-staffId>] (staffId preferred, dingtalkId fallback) on its own line, followed by the sender-attributed body ([<sender>] please review this). The marker is injected after prompt sanitization, so its brackets are preserved regardless of the identifier list length.atUsers entry is excluded and duplicate member entries are counted once.@Bot hello and confirm no additional mention context is added.QWEN_CHANNEL_DEBUG_PAYLOAD for the test channel and confirm atUsers[].dingtalkId and atUsers[].staffId appear as [redacted] while routing fields needed for diagnostics remain visible.cd packages/channels/dingtalk && npx vitest run src/DingtalkAdapter.test.tscd packages/channels/base && npx vitest run src/ChannelBase.test.tsnpm run typecheckgit diff --check