You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feishu: the chat carries more than words (M86, ADR-0051)
Every message is heard. Rich post runs (links, code blocks, dividers, emoji, mentions), interactive cards, shared chats, merged forwards and stickers all reach the model as words; no message type is dropped any more.
Attachments in. A file, voice note or video lands under <data_dir>/channels/feishu/attachments/<message>/<name> and the message carries its path; a text or markdown file up to 100 KiB is inlined. Merged forwards are fetched (im:message scope) and flattened under the message.
Files out. A new SendFile { path, caption? } tool posts a file from disk into the chat the session lives in; it exists only while the channel surface runs. Feishu routes pictures, opus audio, mp4, office documents and everything else to the right endpoint.
Who may speak.channels.<adapter>.access — admins, a rule for direct chats, a rule for groups, per-chat overrides; policies open | allowlist | blocklist | admins | off, and mention: false engages a group on every message. The default is what ran before.
A working sign. The message you sent gets a Typing reaction while the bot works, loses it when done, and a ❌ marks a failed turn (im:message.reactions:write_only).
Fixed
The permission card was refused by card JSON 2.0 (action container), so every permission had fallen back to a numbered list; buttons are a column row now.
The streaming card never closed (settings must be a JSON string), so every answer was posted a second time as plain text.
Also since v0.6.0
Memory has one writer (M83, ADR-0049): the model writes memory; the extractor is gone.
The worked row (M84): ✻ Worked for 15m 11s · done 13:48 closes the transcript.
MCP servers that need signing in (M85, ADR-0050): OAuth 2.1 for HTTP MCP servers — /mcp login|logout|tools, bingo mcp list|get|add|remove|login|logout.
A command lists the words its argument takes; the command completion channel is gone.