Skip to content

Releases: antx-code/openfeedback

v0.3.0 — Discord provider + failover orchestration

16 Apr 23:48

Choose a tag to compare

First release with Discord support and multi-channel failover. v0.2.x integrations remain fully compatible — all new behavior is opt-in.

Highlights

  • Discord provider — native Approve / Reject buttons via Gateway (WSS) + Components, with REST fallback and HTTP CONNECT proxy support for GFW-restricted networks.
  • Sequential failover — configure failover_provider, and if the primary is silent past escalate_after_secs the CLI removes its buttons, posts an "escalated" notice, and re-sends the request on the secondary with the remaining budget. Only one channel ever has live buttons, so rejection reasons are never split.
  • New CLI flag --provider <telegram|discord> — force a single provider for one call, bypassing default_provider and disabling failover.
  • New output fields — every JSON response now includes provider; when failover fires, escalated_from names the primary that timed out.
  • Agent-readable README — new "Agent integration contract" section at the top with full JSON schema, exit-code table, Bash + Python wrappers, failover decision matrix, and a structured upgrade guide.
  • i18n — escalation notice added in en / zh-CN / zh-TW.

Configuration

Add the [discord] section to your existing config (Telegram config is unchanged):

[discord]
bot_token = "..."
application_id = "..."
channel_id = "..."              # string (snowflake, avoids JSON precision loss)
trusted_user_ids = ["..."]       # strings

Optional failover:

failover_provider = "discord"
escalate_after_secs = 1800       # < default_timeout (validated at load time)

Full walkthrough: Discord setup · Failover · Upgrading from v0.2.x

Install / Upgrade

cargo install --git https://github.com/antx-code/openfeedback.git --force

Breaking changes

None. v0.2.x parsers for decision / user / feedback / exit codes continue to work unchanged.

Verified tests

Full human-in-the-loop matrix (Telegram-primary × Discord-primary × approve / reject / timeout / failover): T1–T11 all green.

v0.2.0

09 Mar 13:49

Choose a tag to compare

What's New

Reject Feedback Prompt

After clicking Reject, the bot sends a follow-up asking for a reason. The user can reply with any text message within a configurable window (default 60s). No need to "reply to" — just type and send.

Timeout UX Cleanup

When a request times out, stale inline buttons are now removed and a timeout notice is sent.

New Config

# Seconds to wait for reject feedback (0 = skip)
reject_feedback_timeout = 60

Install

cargo install --git https://github.com/antx-code/openfeedback.git

Inspired by PR #1 — thanks @wangyuyan-agent!

v0.1.0

09 Mar 09:56

Choose a tag to compare

openfeedback v0.1.0

Human-in-the-loop decision gate CLI for AI agents.

Features

  • Telegram provider with inline keyboard (Approve/Reject buttons)
  • Trusted user whitelist for authorization
  • Audit logging to JSONL
  • i18n support (English, Simplified Chinese, Traditional Chinese)
  • Configurable timeout with exit codes (0=approved, 1=rejected, 2=timeout)
  • JSON stdout for agent consumption

Install

cargo install --git https://github.com/antx-code/openfeedback.git