v1.12.0

NVIDIA/NeMo-Speech.cppv1.12.0Oct 8, 2026by realcodesiman

Upgrading?

AI Summary

Introduces a new Connection/ConnectSession model and extensive bot routing features for WhatsApp and Messenger.

Key Highlights

  • New Connection model behind all channel integrations
  • Bot simulator tool added to the builder
  • WhatsApp and Messenger conversation routing
  • Per-page AI hand-over settings

Breaking Changes

  • Requires database migrations to add `Connection` and `ConnectSession` tables
  • Requires backfilling `Connection` rows for existing inboxes
  • `REALTIME_BROADCAST_SECRET` must be at least 32 characters

New Features

  • Connection model foundation
  • Bot simulator tool
  • Channel step support enforcement
  • Product import and audience preview routes
  • Ref links with embeddable chat widgets

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at main -->

## 📋 Upgrade Notes

### Connections
v1.12.0 introduces the new `Connection` / `ConnectSession` model behind all channel and integration connects (#1404, #1411, #1415). Existing channels and integrations keep working, and nothing changes for end users. Self-hosted deployments should complete these steps after upgrading:

1. **Run database migrations** (adds the `Connection` and `ConnectSession` tables):
   ```bash
   pnpm --filter @chatbotx.io/database db:migrate
   ```
2. **Backfill `Connection` rows** for existing inboxes and integrations. Preview with a dry run first, then apply:
   ```bash
   pnpm --filter @chatbotx.io/database db:backfill-connections -- --dry-run
   pnpm --filter @chatbotx.io/database db:backfill-connections
   ```
   Optional flags: `--provider=<integrationType>` and `--workspace=<id>` limit the run to one provider or one workspace.
3. **Verify the backfill.** The first three counters must all be `0`:
   ```bash
   pnpm --filter @chatbotx.io/database db:backfill-connections -- --verify
   ```

### Environment
- `REALTIME_BROADCAST_SECRET` must be **at least 32 characters**. Generate one with `openssl rand -base64 32`.
- New optional variables:
  - `REDIS_QUEUE_URL` and `REDIS_QUEUE_BULK_URL` split queue Redis by role. Both fall back to `REDIS_URL`. Drain bulk jobs and restart every producer and consumer before the cutover.
  - `PROFILE_SNAPSHOT_JOBS_PER_SECOND`
  - `FACEBOOK_BUSINESS_AI_APP_ID` enables Messenger "return to bot" in conversation routing.

## What's Changed
### ✨ New Features
* Connections 1 foundation by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1404
* feat(connections): complete connection engine by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1411
* Connections 3 builder api by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1415
* feat(builder): add bot simulator tool by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1380
* feat(message-templates): raise messenger body variable limit to 15 by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1381
* feat(threads-comments): add post picker for threads comment automation by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1382
* feat(flows): enforce channel step support by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1379
* feat(conversation-routing): add WhatsApp and Messenger conversation routing by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1378
* feat(ai-handover): per-page AI hand-over settings and apply to all customers by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1391
* feat(contact-filter): add Instagram profile and commented-on-post filters by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1384
* feat(flows): configure quick reply settings by @hoangle398 in https://github.com/ChatbotXIO/ChatbotX/pull/1406
* feat(comment-automation): add facebook and instagram live comment automation by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1407
* feat(api): expose coupons and booking URLs by @nguyenvantruc92 in https://github.com/ChatbotXIO/ChatbotX/pull/1414
* feat(public-api): add missing endpoints and fix gaps against the builder by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1410
* feat(public-api): expose remaining tools endpoints for cli and mcp by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1418
* feat(public-api): add product import, audience preview, bulk tagging and CAPI routes by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1417
* feat(media): improve attachment loading in the inbox by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1420
* perf(media): optimize attachment loading with per-channel storage by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1426
* perf(inbox): optimize attachment loading in conversations by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1425
* feat(public-api): open workspace advanced settings and channel disconnects by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1429
* feat(reflinks): add embeddable chat widget for ref links by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1434
* feat(public-api): fill broadcast templates with flat templateParams by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1439
* feat(public-api): simpler inputs for templates, imports and channel settings by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1440
* feat(reflinks): let ref link chat widgets use their own logo and brand by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1444
* feat(reflinks): read and update the chat widget through the public api by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1454
### 🐛 Bug Fixes
* fix(threads-comments): use thumbnail for video posts in post picker by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1385
* fix(broadcasts): show unknown for audience filter values that no longer exist by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1366
* fix(conversation-routing): fix Types check broken on main by #1378 by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1389
* fix(bot-simulator): hide support chat bubble on simulator page by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1390
* fix(comment-automation): validate flowId exists before saving a reply by @rawdaymx in https://github.com/ChatbotXIO/ChatbotX/pull/1235
* fix: surface expired Meta connect sessions by @baokimho in https://github.com/ChatbotXIO/ChatbotX/pull/1183
* fix(triggers): let the five WhatsApp call conditions match their events by @rawdaymx in https://github.com/ChatbotXIO/ChatbotX/pull/1402
* fix(i18n): repair the Spanish trigger.* strings mangled by a word-fragment replace by @rawdaymx in https://github.com/ChatbotXIO/ChatbotX/pull/1400
* fix(tools): remove beta badge from tiktok comment automation by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1408
* fix(tools): update tools list test for removed tiktok beta badge by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1409
* fix(env): ship a schema-valid REALTIME_BROADCAST_SECRET example by @rawdaymx in https://github.com/ChatbotXIO/ChatbotX/pull/1396
* fix(instagram-facebook): reject unaccepted thread handovers by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1413
* fix(connections): restore dropped behaviors and fix engine regressions by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1419
* fix(public-api): validate flow ids on write and give colliding CLI commands distinct names by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1421
* fix(connections): rebuild oauth redirect_uri from credential on connect-session callback by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1428
* fix(connections): write jsonb columns without db default on channel insert by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1431
* fix(connections): wire token refresh, teardown, and backfill into engine writes by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1422
* fix(public-api): declare the error codes public routes really throw by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1423
* fix(messenger): stop dropping page labels during tag sync by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1441
* fix(quota): write workspace usage through the caller's transaction by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1442
* fix(quota): hand quota back when a connect or workspace-create transaction rolls back by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1445
* fix(error-logs): close the delete dialog after a successful delete by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1451
* fix(messenger): tag contacts with the ad on referral-only webhooks by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1452
### ⚡ Improvements
* refactor(error-logs): delete error logs through the business service by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1447
* refactor(whatsapp): load and verify manual webhooks through the business service by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1448
* refactor(workspaces): store channel profile logos through the workspace service by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1449
* refactor(workspace-members): create invitations through the invitation service by @sung17 in https://github.com/ChatbotXIO/ChatbotX/pull/1450
### 🔧 Internal / Chore
* chore: remove unused kafka package, split queue redis, add scaling ADRs by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1201
* test(database): update retention interval SQL assertion by @realcodesiman in https://github.com/ChatbotXIO/ChatbotX/pull/1412
* docs(public-api): make route descriptions match what the code does by @viethung0o0 in https://github.com/ChatbotXIO/ChatbotX/pull/1424


**Full Changelog**: https://github.com/ChatbotXIO/ChatbotX/compare/v1.11.0...v1.12.0

Related Repositories