Releases: antx-code/openfeedback
v0.3.0 — Discord provider + failover orchestration
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 pastescalate_after_secsthe 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, bypassingdefault_providerand disabling failover. - New output fields — every JSON response now includes
provider; when failover fires,escalated_fromnames 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 = ["..."] # stringsOptional 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 --forceBreaking 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
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 = 60Install
cargo install --git https://github.com/antx-code/openfeedback.gitInspired by PR #1 — thanks @wangyuyan-agent!
v0.1.0
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