Skip to content

feat: add messageThreadId passthrough for Telegram forum topics#503

Open
MestreY0d4-Uninter wants to merge 1 commit intolaurentenhoor:mainfrom
MestreY0d4-Uninter:feat/message-thread-id
Open

feat: add messageThreadId passthrough for Telegram forum topics#503
MestreY0d4-Uninter wants to merge 1 commit intolaurentenhoor:mainfrom
MestreY0d4-Uninter:feat/message-thread-id

Conversation

@MestreY0d4-Uninter
Copy link

Summary

  • Adds optional messageThreadId field to Channel type for Telegram forum topic routing
  • Passes messageThreadId through the full notification chain: resolveNotifyChannel -> notify -> sendMessage -> Telegram API
  • Updates all call sites (pipeline.ts, dispatch/index.ts, heartbeat/passes.ts) to propagate the thread ID

Motivation

Telegram forum groups use topic threads (message_thread_id) to organize conversations. Without this, all DevClaw notifications land in the "General" topic. This change allows projects to configure a specific forum topic per channel, routing notifications to the correct topic.

Backward compatibility

  • messageThreadId is optional everywhere — no breaking changes
  • Existing configurations without messageThreadId work exactly as before
  • Only affects Telegram channel type; other channels ignore the field

Test plan

  • Build succeeds (npm run build)
  • Existing notifications continue to work without messageThreadId
  • With messageThreadId set in channel config, Telegram messages arrive in the correct forum topic

Adds optional messageThreadId parameter through the notification chain:
Channel type -> resolveNotifyChannel -> notify -> sendMessage -> Telegram API.

This enables per-topic routing in Telegram forum groups, where each project
can have notifications sent to a specific forum topic instead of the main chat.

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.

1 participant