#12950: feat: add Telegram pin/unpin message support
docs
channel: telegram
agents
stale
Cluster:
Messaging Platform Improvements
## Summary
Adds native pin/unpin message support for Telegram, consistent with existing Discord and Slack functionality.
## Changes
- **`src/telegram/send.ts`** — `pinMessageTelegram()` and `unpinMessageTelegram()` using Bot API
- **`src/agents/tools/telegram-actions.ts`** — action handlers for pin/unpin
- **`src/channels/plugins/actions/telegram.ts`** — plugin integration
- **`docs/cli/message.md`** — documentation
## Details
- Uses `pinChatMessage` / `unpinChatMessage` Bot API methods
- Supports `disableNotification` parameter
- Proper error handling and config respect (`channels.telegram.actions.pins`)
- Follows existing Discord/Slack patterns
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
Adds Telegram message pin/unpin actions by wiring new `pinMessageTelegram`/`unpinMessageTelegram` helpers into the Telegram agent action handler and the channel message actions adapter, and updates the CLI docs to mention Telegram support and a `--disable-notification` flag.
Integration is consistent with existing Discord/Slack action surfaces (new action names are added to `listActions` and routed through `handleTelegramAction`).
<h3>Confidence Score: 2/5</h3>
- This PR is not safe to merge until the advertised-but-unimplemented action and Telegram API call shape issues are fixed.
- Score is reduced due to (1) `list-pins` being surfaced even though it always errors, (2) likely incorrect `pinChatMessage` parameter construction, and (3) pin/unpin not using the same retry/diagnostic behavior as other Telegram operations; these are user-facing runtime failures/inconsistencies.
- src/telegram/send.ts, src/channels/plugins/actions/telegram.ts, package-lock.json
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<details><summary><h4>Context used (3)</h4></summary>
- Context from `dashboard` - docs/cli/agents.md ([source](https://app.greptile.com/review/custom-context?memory=057a11aa-5c5f-48bb-8d53-91b27b0fe3a2))
- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8))
- Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=0d0c8278-ef8e-4d6c-ab21-f5527e322f13))
</details>
<!-- /greptile_comment -->
Most Similar PRs
#11920: Telegram: create forum topics via message tool (thread-create)
by larsderidder · 2026-02-08
81.3%
#14367: feat(telegram): add message read via inbound message store
by michaelquinlan88 · 2026-02-12
80.0%
#6457: fix(telegram): register commands for group scope + preserve topic t...
by dae-sun · 2026-02-01
78.6%
#7058: feat(telegram): add channel_post handler for broadcast channels
by waifu7498173 · 2026-02-02
77.8%
#14224: feat(telegram): add member-info action to get chat administrators
by ivan-andreyev · 2026-02-11
77.2%
#7751: Telegram: persist inbound history (SQLite) + add read action
by welttowelt · 2026-02-03
76.2%
#21029: Feature/telegram bot avatar clean
by aleonnet · 2026-02-19
75.5%
#20511: fix: register poll action gate for Telegram adapter (#17528)
by echoVic · 2026-02-19
75.1%
#19869: feat(telegram): add disableWebPagePreview option
by bip-bup-bip-bup · 2026-02-18
75.1%
#21898: fix(telegram): auto-detect captionable messages for editMessageCaption
by ptrkstr · 2026-02-20
75.0%