AI SDK
Ethora 26.09: Encrypted Mobile Storage, Per-Agent Knowledge, and Self-Serve Push
Version 26.09 of the Ethora platform is out. It wraps up our August development cycle, a month we set aside for architecture and plumbing, and the result is a release that makes the platform safer on the device, smarter behind your AI agents, and easier to operate on your own infrastructure.
Here is what shipped and why it matters.
What is new in Ethora 26.09?
- Encrypted-at-rest credentials and message cache in the React Native SDK
- Knowledge sources scoped per AI agent, with live web indexing in the admin panel
- The embeddable AI widget now ships inside the web app, with a public control API
- Self-serve push credentials: upload your APNs key or Firebase account from app settings
- Short-lived chat session tokens, issued and rotated by the platform
- Unread counts and last-message previews straight from the chat list API
- React 19 support in the React chat component
- Invite-only installs and per-profile UI language
What does encrypted at rest mean for a mobile chat app?
Transport encryption is table stakes. The harder question is what happens to the data that lives on the phone: the tokens that can act as a user, and the message history the app caches so conversations open instantly.
With 26.09, the React Native chat SDK answers that by default. Session credentials, meaning the REST access and refresh tokens, the chat password and the secure-media file token, now live in the iOS Keychain or Android’s Keystore-backed encrypted preferences. The cached message history and room list are encrypted with AES-256, with the key held in that same secure store. You get all of this by adding one standard Expo dependency. Apps that do not add it keep working exactly as before, with a single logged warning.
The SDK also gained a proper sign-out. A built-in Sign out item in the room-list menu runs a full teardown, closing the chat connection and clearing every persisted cache, with hooks for your own session logic before and after. If you would rather build your own button, the same teardown is exported as a hook.
For teams building in healthcare or finance, this closes the device-side half of the story that our healthcare chat SDK page describes on the server side.
How does per-agent knowledge work?
Until now, every AI agent in an app shared one list of indexed web sources. That was fine for a single assistant and awkward for anything else. In 26.09 knowledge is scoped per agent: each agent sees and manages its own sources, existing installs are migrated automatically, and an agent with no sources of its own falls back to the app-level index so answers keep flowing during the transition.
The indexing pipeline underneath was rebuilt around this. Crawls are now asynchronous and tracked as jobs, pages arrive in batches with progress events, and failures are reported instead of silently dropped. Large sites are crawled in bounded, prioritised batches with capped browser concurrency, so indexing a big documentation site no longer competes with the rest of the platform for memory.
In the admin panel you see the crawl start and watch the index fill in real time. You can open the stored markdown of any indexed page, remove pages in bulk, page through large indexes, and get a re-crawl offer when a URL is already there. The Ethora AI SDK page covers how agents, knowledge and chat fit together.
What changed in the embeddable AI widget?
The embeddable AI agent widget reached version 26.7.1 and moved in-house: the web app now serves the widget itself as a pinned dependency, so an install no longer depends on an external widget host. Host pages get a public control API to drive the widget programmatically, and every supported embed attribute is listed in a machine-readable manifest.
Visitors notice the smaller things. A configurable starter message greets them by default, the desktop widget is roomier, and the greeting now survives history loads, hidden room-join notices and resumed sessions. Media features are off by default for leaner embeds.
How do I set up push notifications now?
Mobile push credentials are self-serve. From the app settings screen you can upload, check and remove both an APNs authentication key and a Firebase service account. No support ticket, no waiting. The same operations are available through the API, and the push endpoints are documented in the public API reference.
The platform’s public config now also exposes the install’s chat-server host, so clients on self-hosted deployments discover the right endpoint without hand configuration.
What changed about chat session security?
Chat sessions now run on short-lived signed tokens (JWT) instead of static per-user chat credentials. The platform issues them, re-issues them whenever the API session refreshes, and the chat server verifies them with a signing secret that the deploy tooling provisions automatically. Token lifetimes are configurable per install: short for interactive sessions, long for embedded-widget visitors, so security and visitor convenience are both tunable.
Both SDKs were updated to rotate sessions before the first chat connection, which is also why secure media now loads reliably in host apps that pass in an existing login.
What is new for chat UIs?
- Unread counts per room come back with the chat list, computed server-side, so badges are accurate without client-side bookkeeping.
- Last message per room comes back with the chat list too, so conversation previews need no extra requests.
- React 19 support in the React chat component: the package stops bundling React 18’s reconciler, so React 19 hosts adopt it without dependency conflicts.
- Media loading polish: the loading skeleton holds while a file token is absent or rotating, and media preloads before the skeleton swaps out. No blank flashes.
- Files on the v2 endpoint with a configurable base URL and a fallback to the previous endpoint for older self-hosted platforms.
Can I run an install as invite-only?
Yes. A per-app switch closes self-service registration, enforced at the API level, so an operator can provision every account on a private deployment. The login and registration flow presents the right door automatically.
Alongside it, UI language is becoming a per-profile setting. An install declares which languages it offers, each user’s choice persists to their profile, and single-language installs hide the language picker and the translation machinery entirely.
What else is in 26.09?
- The compliance audit trail now records room join and leave events and message creation, alongside the edit, delete and history-access events from 26.08.
- Deploy tooling runs data migrations automatically on install and update, and detects already-migrated hosts safely.
- Background job consumers self-heal after transient connection blips, so queued crawls, exports and notifications resume without a restart.
- Product analytics were wired into the web app, giving the team behavioural insight into the live admin and chat experience.
- Self-hosted installs validate their chat-server configuration at startup and supply their own secrets.
How do I get 26.09?
Hosted apps are already on it. If you self-host, update through the deploy tooling and the migrations run for you. Package versions: @ethora/chat-component 26.7.4, @ethora/chat-component-rn 26.7.2, @ethora/mcp-server 26.09. Commit-level notes for every week of the cycle are on GitHub: https://github.com/dappros/ethora/blob/main/RELEASE-NOTES.md
Try this now on the free tier: create an app at https://ethora.com/, open an agent’s Knowledge panel, and index one page of your own website. Watch the index fill in, then ask the agent about it in the playground.
Building something in a regulated space? Book a call and we will walk through the self-hosted setup and pricing.
More Articles
Chat SDK
Sep 11, 2026
Is Google Chat HIPAA Compliant? Here Is How
Is Google Chat HIPAA compliant? Only if you have a signed BAA with Google Workspace and configure it correctly. Consumer Google Chat is not.
Chat SDK
Sep 10, 2026
React Native Chat App: DMs, Typing Indicators, and Presence with Expo and TypeScript
Ship DM, typing indicators, presence, and leave-channel in a React Native chat app with Expo SDK 52, TypeScript, and a modern Chat SDK.
Try Out Ethora in Action
Experience Ethora's messaging with a dedicated demo from our CEO or start building your App right now!