Skip to content

fix(telegram): prioritize topic-level requireMention over activation override#1012

Open
BingqingLyu wants to merge 1 commit intomainfrom
fork-pr-49980-fix-telegram-topic-require-mention
Open

fix(telegram): prioritize topic-level requireMention over activation override#1012
BingqingLyu wants to merge 1 commit intomainfrom
fork-pr-49980-fix-telegram-topic-require-mention

Conversation

@BingqingLyu
Copy link
Copy Markdown
Owner

@BingqingLyu BingqingLyu commented Apr 27, 2026

Summary

Per-topic requireMention override is ignored in Telegram forum supergroups — group-level setting always wins.

Fixes openclaw#49864

Root Cause

In bot-message-context.ts, the requireMention resolution chain used firstDefined() with this order:

const requireMention = firstDefined(
    activationOverride,          // from /activate /deactivate session state
    topicConfig?.requireMention, // topic-level config — NEVER REACHED
    groupConfig?.requireMention, // group-level config
    baseRequireMention,          // channel default
);

activationOverride (persisted from /activate or /deactivate commands) was evaluated before topicConfig?.requireMention, so any persisted activation state would override explicit per-topic config.

Fix

Reorder firstDefined() so topic config is evaluated first:

const requireMention = firstDefined(
    topicConfig?.requireMention,  // topic config always wins
    activationOverride,           // then runtime activation
    groupConfig?.requireMention,
    baseRequireMention,
);

Testing

Added 4 new tests in a dedicated test file:

  1. Topic requireMention=false overrides group requireMention=true
  2. Topic config overrides activationOverride
  3. Group-level requireMention still works when no topic config
  4. activationOverride still works when no topic config

All 4 tests pass.

Made-with: Claude Code (Claude Opus 4.6)

…override

In the requireMention resolution chain, topic-level config was evaluated
after activationOverride (from /activate and /deactivate session state),
which meant persisted activation state could override explicit per-topic
requireMention config. Reorder firstDefined() so topic config always wins.

Fixes openclaw#49864

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Per-topic requireMention override is ignored — group-level setting always wins

2 participants