palladius / palladius/antigravity-ruby-sdk

🤖 Telegram Bot: promote from example to SDK integration

Open
#14 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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-ruby as 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.