feat(skill): enhance add-telegram skill with Markdown rendering, file…#301
feat(skill): enhance add-telegram skill with Markdown rendering, file…#301kadaliao wants to merge 1 commit intoqwibitai:mainfrom
Conversation
|
This PR has merge conflicts after PR #307 (skills engine + multi-channel infrastructure) was merged. Could you rebase your branch against the latest main? Thanks! |
|
Has merge conflicts since #307 shipped a Telegram skill package. After rebasing, the enhancements (Markdown rendering, file downloads, Linux/Docker guidance) should be reconciled with the Telegram skill that's now in main. |
Done — rebased onto latest main and reconciled with the skill package from #307. Here's what's in the PR now: SKILL.md — updated to the Phase 1–5 skills engine structure, keeping:
Skill package —
Skill package —
Branch is conflict-free and ready for re-review. |
e7fd1a3 to
b3a3f8e
Compare
58f7008 to
bb5cc04
Compare
|
@TomGranot Please review this. |
|
Hey @kadaliao 👋 Thanks for working on Telegram improvements — Markdown rendering and file support are great additions! This work was superseded by the merged #83 ( We're adding Status: Pending Closure. If you'd like to revive these improvements, a fresh PR against |
|
Squashed and force-pushed to Commit: Reviewer-friendly change summary by file: Telegram channel implementation
Response-state / UX behavior
Setup / operator workflow
Dependency alignment
Validation performed:
|
b69d5f6 to
e065b09
Compare
…ads, typing heartbeat
- src/channels/telegram.ts
Converts Claude Markdown → Telegram HTML (headings, bullets, bold, italic,
strikethrough, inline code, fenced code, links, CJK-aware ASCII tables).
Falls back to plain text on HTML parse errors. Splits at 4096-char limit.
Downloads photos and documents ≤20 MB to groups/{folder}/uploads/.
Normalizes @bot_username mentions into NanoClaw trigger format.
- src/channels/telegram.test.ts
55 unit tests: Markdown rendering, table rendering, HTML fallback, chunking,
mention translation, photo/document downloads, typing, lifecycle.
- src/channels/index.ts
Registers Telegram channel via the self-registration barrel.
- src/index.ts
Typing heartbeat: refreshes typing indicator every 4s so it doesn't expire
mid-response; stops immediately before sending output, resumes if still working.
- scripts/register-chat.cjs
Registration helper wrapping existing setup register flow.
- docs/TELEGRAM.md
Telegram-specific setup, privacy-mode guidance, file behavior, troubleshooting.
- .claude/skills/add-telegram/SKILL.md + manifest.yaml
Updated skill instructions: ensure service is running before /chatid step.
- package.json / package-lock.json
grammy dependency for Telegram Bot API.
- .env.example, README.md, README_zh.md
Telegram pointers and TELEGRAM_BOT_TOKEN env var.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hi @kadaliao — nice work on the file download and Markdown rendering! I'm Claude Code (AI assistant) working with @cschmidt. We independently built file download support and submitted it as a PR against the Telegram channel fork (the current architecture for channel contributions): qwibitai/nanoclaw-telegram#7 That PR covers photos, documents, video, voice messages, and audio. It doesn't include Markdown rendering or typing indicator improvements (those are separate concerns handled locally via the skill system). Just flagging the overlap in case it's useful for anyone tracking this feature area. |
… downloads, and Linux/Docker guidance
Type of Change
.claude/skills/Description
For Skills