Skip to content

Ecbot v0.1.0

Latest

Choose a tag to compare

@blackmouse572 blackmouse572 released this 01 Nov 17:01
· 16 commits to main since this release
a3b959d

Ecbot v0.1.0

The first self-hostable release. Covers merged PRs through #452.

Self-host

  • Run the full stack with docker compose --profile full up -d --build (#417). Caddy serves the app with automatic TLS for your domain (SITE_URL) and proxies /api.
  • A one-shot migrate service applies migrations and the required seeds (countries, roles, API keys; no demo users) before the API starts.
  • The Postgres password comes from POSTGRES_PASSWORD in a root .env, generated by pnpm setup:local. Redis is pinned to 7-alpine. Nothing is published beyond 127.0.0.1 except what Caddy serves.
  • Create the first account with user:create. No email provider is needed.
  • Facebook, Instagram and Zalo OAuth callbacks are derived from SITE_URL.
  • New guide: docs/self-hosting.md.
  • The ai service no longer crashes on a blank or malformed SENTRY_DSN (#429).

Channels

  • New: Threads (replies and mentions) (#428, #431).
  • Shipped: Messenger, Zalo OA, Telegram, WhatsApp Business, website widget, REST API channel.
  • Threads and Instagram are built but hidden until configured, and go live after Meta App Review.
  • Telegram, the website widget and the REST API channel need no platform approval. Messenger, Instagram, Threads and WhatsApp Business need your own approved Meta app. Zalo needs your own approved Zalo app.
  • Channels you unlink are freed, so another workspace can connect them (#430).
  • Personal Facebook and Instagram profiles are hidden from channel lists (#406).
  • Website widget: restart starts a fresh conversation (#425). Resolved conversations reopen and handoffs stay open (#426).

Agents and tools

  • HTTP tools: {name} placeholders in URLs, and a Path/Query/Body choice per parameter (#432).
  • Agent and knowledge display fixes (#424).

Workspace and admin

  • Admins can impersonate users whose password expired or whose email is unverified (#413).
  • Admin users list can be sorted by last seen (#443). Admin agent and knowledge pages show what the client shows (#420).

App

  • Cmd/Ctrl+K command palette (#451).
  • The getting-started checklist separates "connect a channel" from "link an agent" (#405), and a "Connect to an agent" step follows a channel connection (#421).
  • Polish (#419): dates and times follow the UI language, labelled send buttons, widget name placeholder.

Reliability

  • The token-refresh job no longer blocks every account when a key rotation makes all tokens undecryptable. It logs once and skips the run (#418, closes #13).

Under the hood

  • Linting moved from ESLint to oxlint (#449, #450, #452).
  • Shared skill form and steps editor as @repo/ui/skill-steps (#446).
  • certifi bumped in apps/ai (#422).
  • README links the website, docs, blog and use cases (#404).

Known limitations

  • No prebuilt images. The compose file builds from source.
  • Background jobs run through the Cloud Tasks emulator, which keeps its queue in memory. Jobs still waiting at a restart are lost.
  • Self-host sends no frame-ancestors header for the website widget. The API checks allowed sites, but the browser does not refuse framing on other sites.
  • Open issues: #77 and #14 (API end-to-end tests), #18 (check-types not enforced), #181 (Telegram replies take 15-20 s), #153 (embed guides for Haravan, Sapo and similar), #251 (production walkthrough).

Licence: AGPL-3.0.