feat(handlers): fleet daily digest + approval cards #2

Open
opened 2026-07-11 18:21:09 +02:00 by arcodange · 0 comments
Owner

Part of the AI back-office PRDhuman channel: the gateway is THE fleet channel when available (operator direction 2026-07); cluster-served so approvals never wait for the laptop.

Deliverables

  • Daily digest (morning): items awaiting approval, quarantined items, aging unresolved work, heartbeat summary, upcoming deadlines (D-30/D-7/D-1 from the fleet calendar — erp#54/#60). An empty day still sends "all green" — a missing digest is itself the alarm (the fleet's silence-alarm watchdogs key on it).
  • Approval cards: one decision per card — approve / edit / reject-with-reason (Telegram inline buttons); the decision + reason flow back to the queue item and are journaled (rejection reasons feed the fleet's golden sets — erp#39).
  • Allowlisted chat ids only (existing auth layer); card payloads show the essentials (supplier, ref, amounts, VAT bucket, source-document link) — the "edit" path can bounce to a prefilled form or just reject-with-comment in v1.
  • Fallback path documented: gateway down → fleet queues, digest falls back to plain email.

Acceptance: a real erp manifest rehearsal produces a card; tapping approve triggers the gated promote flow (or its stub); the reject reason lands in the journal.


Execution — Blocked by: #1 (the queue) · Blocks: erp#47's preferred channel, erp#52, erp#48/#59 digest legs · Human gates: operator's Telegram chat id allowlisted (one-time).
Start: claude --worktree digest-cards from the telegram-gateway repo root (owner arcodange); read the existing handlers + auth layer first.
Done means: evidence comment here (card screenshot/log + journaled decision round-trip) → PR merged with Closes #2.

Part of the **AI back-office PRD** — [human channel](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/agent-architecture.md): the gateway is THE fleet channel when available (operator direction 2026-07); cluster-served so approvals never wait for the laptop. **Deliverables** - **Daily digest** (morning): items awaiting approval, quarantined items, aging unresolved work, heartbeat summary, upcoming deadlines (D-30/D-7/D-1 from the fleet calendar — erp#54/#60). An empty day still sends "all green" — **a missing digest is itself the alarm** (the fleet's silence-alarm watchdogs key on it). - **Approval cards**: one decision per card — approve / edit / reject-with-reason (Telegram inline buttons); the decision + reason flow back to the queue item and are journaled (rejection reasons feed the fleet's golden sets — erp#39). - Allowlisted chat ids only (existing auth layer); card payloads show the essentials (supplier, ref, amounts, VAT bucket, source-document link) — the "edit" path can bounce to a prefilled form or just reject-with-comment in v1. - Fallback path documented: gateway down → fleet queues, digest falls back to plain email. **Acceptance:** a real erp manifest rehearsal produces a card; tapping approve triggers the gated promote flow (or its stub); the reject reason lands in the journal. --- **Execution** — Blocked by: #1 (the queue) · Blocks: erp#47's preferred channel, erp#52, erp#48/#59 digest legs · Human gates: operator's Telegram chat id allowlisted (one-time). **Start:** `claude --worktree digest-cards` from the **telegram-gateway** repo root (owner `arcodange`); read the existing handlers + auth layer first. **Done means:** evidence comment here (card screenshot/log + journaled decision round-trip) → PR merged with `Closes #2`.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange/telegram-gateway#2