Repository navigation
openab-0.9.0
A lightweight, secure, cloud-native ACP harness that bridges Discord, Slack, and webhook platforms to any ACP-compatible coding CLI.
openab 0.9.0 rolls up 12 beta releases (~150 merged PRs) since openab-0.8.5.
✨ Highlights
- Cargo workspace + unified binary — restructured into
openab-core/openab-gatewaycrates with an opt-inunifiedbuild that embeds all gateway adapters (Telegram, LINE, Feishu/Lark, Google Chat, WeCom, Teams) in one binary (#1146, #1171, #1173) - Identity trust framework (trust-none default) — a shared trust gate now guards ingress on every platform, with L3 identity phases for Discord, Slack, and the gateway (#1264, #1266, #1267, #1270, #1273, #1363, #1391)
- First-class platform config sections —
[telegram],[line],[wecom],[googlechat],[teams],[feishu]are now fully config-first (credentials + connection), with a CI conformance guard (#1265, #1381–#1385, #1387) oabctloperator for AWS ECS — provision and manage OpenAB agents on ECS Fargate, including Telegram/LINE webhook ingress (API Gateway + VPC Link + Cloud Map), scheduling, and scale commands (#1275, #1285, #1296, #1308, #1321, #1336, #1404)- Ambient mode — batch-flush dispatcher that observes configured channels/threads and lets the agent respond ambiently without @mentions (#1211, #1217, #1220, #1221, #1222)
- New agent backends & auth — Devin CLI support (#1229), Anthropic OAuth (Claude Pro/Max) for openab-agent (#1187), xAI SuperGrok / X Premium device-code OAuth (#1424), multi-vendor OAuth ADR + cross-process auth.json locking (#1190)
- S3/R2 file store — object-store-backed file attachments with streaming multipart upload (#1348, #1351)
pre_seedlifecycle phase — S3 zip/tar.gz download beforepre_boot, enabled by default, with security hardening (#1189, #1196, #1197, #1199)
⚠️ Breaking Changes
- Codex ACP adapter migrated (#1353) —
feat(codex)!: the runtime moves off@zed-industries/codex-acp(which pinned Codex core 0.137.0) to the actively maintained adapter, fixing newer-model failures likegpt-5.6-sol; existing OpenAB mode settings are preserved across upstream mode-ID changes. Review docs/codex.md before upgrading Codex deployments. - Standalone gateway WS path routed through the shared trust gate (#1391) —
feat(gateway)!: with the new trust-none default, gateway ingress that previously passed implicitly may now be denied until trust is configured. See the identity trust ADR (#1264, #1291). - Helm TOML rendering removed (#1277) — the chart no longer renders
config.tomlfrom values; useconfigTomlpass-through (#1276) orconfigUrlinstead (ADR #1271).
🚀 Features
Platforms
- Slack:
[slack].streamingtoggle for send-once mode (#1115) - Discord:
/authslash command for device-flow auth (#1185),/usagecommand backed by kiro-cli ACP usage query (#1392), image attachment URL passthrough to agent prompt (#1208) - Telegram:
allow_all_users/allowed_users(#1297), native table rendering (#1313), webhook source-IP logging (#1248), cron support (#1315) - Google Chat: scheduled-message (cron) support (#1374)
- Gateway: warn when webhook L1 auth is unenforceable (#1373), echo-on-deny (#1273)
Config & Ops
s3://config source via-c(#1183)default_config_optionsfor auto-setting agent mode/model (#1307)- Helm:
configTomlpass-through (#1276), unified image tag formatopenab:<tag>-<agent>(#1179) - Force-evict hung sessions so zombie slots cannot exhaust the pool (#1300)
🐛 Bug Fixes
- Surface error on agent EOF without a final response (#1198); diagnostic on empty 0-token
end_turn(#1213) - Slack: bound reconnect-path and socket-write calls with timeouts (#1334); collapse duplicate tool lines in Full display (#1397)
- Discord: truncate select-menu options to the 100-char cap (#1398); clickable URLs in
/authoutput (#1232, #1240) - Telegram: thinking-indicator cleanup — emoji reactions only (#1238, #1247, #1249, #1256)
- LINE: no duplicate messages when streaming (#1292)
- agy-acp: surface swallowed backend errors (quota 429) instead of "(no response)" (#1320)
- agentcore bridge: integer
protocolVersionper latest ACP spec (#1323) pre_seed: safe relative symlinks; lifecycle hooks Unix-only (#1255)- ANSI escape stripping in
/authoutput (#1206); ctl thread resolution for single-adapter bots (#1216) - oabctl: task/execution role wiring (#1280), stage-prefix stripping on private API GW (#1283), ECS-native secret
:jsonKey::suffix (#1288), service drain on delete (#1305), execute-command always on (#1314), cluster resolution from bootstrap state (#1324), scale restricted to oabctl-managed services (#1327)
🏗️ Build, CI & Security
- Runtime base upgraded to Debian Trixie (#1251); Rust builder image pinned by digest (#1246)
- Unified image repo with shared builder and tag-based variants (#1175); one build per arch with packaging fan-out (#1242); stage aliasing to skip Rust recompilation (#1227)
- CI hardening: no expression/script injection in workflows (#1393, #1395), third-party actions pinned to commit SHA (#1396)
- Windows build kept green with
cfg(unix)gating (#1231) - CLI version bumps: kiro 2.8.1, codex 0.141.0 + codex-acp 0.16.0, claude 2.1.179, gemini 0.47.0, copilot 1.0.63, cursor 2026.06.19, opencode 1.17.9, antigravity 1.1.1, pi 0.79.9, hermes v2026.6.19 (#1168, #1371, #1419)
📖 Docs
- Traditional Chinese README (#1347)
- Tailscale integration guide (#1299)
- Reference architectures: Telegram/LINE bots on AWS (#1274), GitHub App token vending machine (#1341), Kiro defined agents (#1403)
- Canary testing guide + fork-PR preview workflow (#1369); frozen Review Contract policy (#1422)
- Schema-driven platform facts knowledge base with CI conformance (#1295)
Full Changelog: openab-0.8.5...openab-0.9.0
Version Info
- Chart Version: 0.9.0
- App Version: 0.9.0
Installation
Helm Repository (GitHub Pages)
helm repo add openab https://openabdev.github.io/openab
helm repo update
helm install openab openab/openab --version 0.9.0OCI Registry
helm install openab oci://ghcr.io/openabdev/charts/openab --version 0.9.0