feat: Telegram V2 — inbound commands + actionable approve/reject from chat (#551)

* feat(telegram): V2 inbound — command router, actionable approve/reject keyboards, chat-gated poll loop

* fix(release,x,video,telegram): terminal-state guards on approve/reject; sender-identity check

* docs(map,rag): Telegram V2 inbound surfaces and terminal-state approve/reject guards

---------

Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
Renzo F
2026-07-18 00:47:09 +02:00
committed by GitHub
co-authored by Renn F
parent c9c1f62981
commit 9fbec78126
30 changed files with 2732 additions and 68 deletions
@@ -97,6 +97,8 @@ const FLAG_DESCRIPTIONS: Record<string, string> = {
"Index your own vault notes (default RoboCo/Notes/) into the knowledge base so the fleet can retrieve what you write — every note is screened for injection attempts before it's indexed. Needs the Obsidian vault projection on.",
telegram_enabled:
"Best-effort Telegram DMs to you alongside in-app notifications when a task is escalated for your approval or completes. Server-side fan-out — never blocks the in-app notification. Stays inert until you set bot-token + chat-id credentials in the Telegram card below.",
telegram_inbound_enabled:
"Also poll Telegram for your commands (/status, /queue, /task) and reply-button taps — approve/reject queued items straight from the chat, with the same locks and audit trail as the panel. Needs telegram_enabled on and credentials set; without this the bot only sends notifications, it never listens.",
};
// Short hover tips for the label of each flag row — a terser companion to
@@ -160,6 +162,7 @@ const FLAG_TOOLTIPS: Record<string, string> = {
vault_kb_enabled:
"Embeds the CEO's own vault notes into RAG for agent retrieval.",
telegram_enabled: "Sends CEO notification DMs over Telegram.",
telegram_inbound_enabled: "Lets you reply/tap buttons in Telegram to act.",
};
export function FeatureFlagsCard() {