mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-04-25 11:18:22 +00:00
Feishu channel classified any slash-prefixed text (including absolute paths such as /mnt/user-data/...) as a COMMAND, causing them to be misrouted through the command pipeline instead of the chat pipeline. Fix by introducing a shared KNOWN_CHANNEL_COMMANDS frozenset in app/channels/commands.py — the single authoritative source for the set of supported slash commands. Both the Feishu inbound parser and the ChannelManager's unknown-command reply now derive from it, so adding or removing a command requires only one edit. Changes: - app/channels/commands.py (new): defines KNOWN_CHANNEL_COMMANDS - app/channels/feishu.py: replace local KNOWN_FEISHU_COMMANDS with the shared constant; _is_feishu_command() now gates on it - app/channels/manager.py: import KNOWN_CHANNEL_COMMANDS and use it in the unknown-command fallback reply so the displayed list stays in sync - tests/test_feishu_parser.py: parametrize over every entry in KNOWN_CHANNEL_COMMANDS (each must yield msg_type=command) and add parametrized chat cases for /unknown, absolute paths, etc. Made with Cursor Made-with: Cursor Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
21 lines
509 B
Python
21 lines
509 B
Python
"""Shared command definitions used by all channel implementations.
|
|
|
|
Keeping the authoritative command set in one place ensures that channel
|
|
parsers (e.g. Feishu) and the ChannelManager dispatcher stay in sync
|
|
automatically — adding or removing a command here is the single edit
|
|
required.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
KNOWN_CHANNEL_COMMANDS: frozenset[str] = frozenset(
|
|
{
|
|
"/bootstrap",
|
|
"/new",
|
|
"/status",
|
|
"/models",
|
|
"/memory",
|
|
"/help",
|
|
}
|
|
)
|