[BUG] Agent-team teammates inherit --settings but not --channels, so they load the channel plugin and steal its single poller (messages dropped)
Summary
When a session is started with --channels plugin:<name>@<marketplace> and the channel plugin is enabled only through --settings <file> (user-level enabledPlugins has it false), agent-team teammates spawned by that session inherit --settings but not --channels. Each teammate therefore loads the channel plugin and starts its MCP server, but is not a channel host.
For single-consumer channels such as the official Telegram plugin (one getUpdates poller per bot token; a newly started server replaces the previous poller), the result is:
- the teammate's server takes over polling from the lead session's server,
- inbound messages reach the teammate, which drops them with
Channel notifications skipped: … not in --channels list, - the lead session silently stops receiving channel messages.
Environment
- Claude Code 2.1.282 (Linux; same launch pattern on macOS)
- Plugin:
telegram@claude-plugins-official0.0.7 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1(via user settingsenv),teammateMode: tmux
Steps to reproduce
- User settings:
"enabledPlugins": {"telegram@claude-plugins-official": false}. - Channel-host settings file
host.json:{"enabledPlugins": {"telegram@claude-plugins-official": true}}. - Start the lead:
claude --settings host.json --channels plugin:telegram@claude-plugins-official. - From the lead, create an agent team (any task that spawns teammates).
- Inspect a teammate process: its argv contains
--settings host.jsonbut no--channels …. - The teammate's telegram MCP log shows it replacing the previous poller; messages sent to the bot afterwards are not delivered to the lead, and the teammate logs
Channel notifications skipped … not in --channels list.
Expected
One of:
- teammates inherit
--channelstogether with--settings(and only the lead acts as channel host), or - teammates do not load plugins that the lead enabled solely for a channel it hosts, or
- at minimum, a warning when a spawned session will load a channel plugin without being a channel host.
Actual
Teammates load the channel plugin (via inherited --settings) without --channels, silently taking over the channel's single poller and dropping messages.
Workaround
Disable agent teams in the channel-host session: add "env": {"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "0"} to the --settings file used for the channel host, and monitor that the bot's poller process is a descendant of the lead session.