palladius / palladius/antigravity-ruby-sdk
🤖 Telegram Bot: promote from example to SDK integration
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 0
- Forks
- 0
- Avg merge
- 4m
- Merged PRs (30d)
- 1
Description
Summary
The Telegram bot integration (examples/08_skill_telegram_bot.rb) has grown from a simple demo into a feature-rich agent interface with:
- 💬 Text chat with Antigravity Agent
- 🎤 Voice/audio transcription (Gemini multimodal)
- 🔍 Dynamic skill discovery and hot-loading (
find_skills,load_skill) - 🔥 File tools with workspace guard (SCARY MODE)
- 📊 Per-chat agent sessions with independent history
- 🔄 409 Conflict retry handling
Design Debate
Full architecture RFC with pros/cons: doc/TELEGRAM_DESIGN_DEBATE.md
Key Decisions
| Decision | Recommendation |
|---|---|
| Where to live | Phase 1: examples/ (now) → Phase 2: lib/antigravity/integrations/telegram.rb → Phase 3: separate gem |
| 1:N locking | Phase 1: 409 retry (done) → Phase 2: PID lockfile + --force → Phase 3: Webhook mode |
| Sessions | Add timeout cleanup, persist history to JSONL, max concurrent limit |
| Sandboxing | Add File.realpath symlink check, max file size, confirm deletes |
Checklist
- Basic text chat
- Voice transcription (gemini-3.6-flash)
- Dynamic skill discovery (
find_skills) - Dynamic skill loading (
load_skill) - File tools (read/write/append/delete/list)
- 409 Conflict retry
- Unit tests (
telegram_bot_spec.rb) - Design doc (
doc/TELEGRAM_DESIGN_DEBATE.md) - PID lockfile to prevent dual-instance chaos
- Move core to
lib/antigravity/integrations/telegram.rb -
telegram-bot-rubyas optional dependency - Session timeout & cleanup
- History persistence (JSONL per chat_id)
- Symlink escape prevention (
File.realpath) - Webhook mode for production (Cloud Run)
- Inline keyboard for skill selection
Related
- GHI #13 (original Telegram bot issue)
examples/08_skill_telegram_bot.rb
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with examples/08_skill_telegram_bot.rb, telegram_bot_spec.rb, and doc/TELEGRAM_DESIGN_DEBATE.md to understand the existing integration and the proposed phases. The issue contains several independent unchecked items, so select and scope one before coding; done should mean that item is implemented with corresponding test coverage and the stated design goal met.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100