Repository navigation
Releases: xanthous-tech/RespondKit
Release list
RespondKit 0.6.4 — every SDK string from the translated catalog
RespondKit 0.6.4
Release notes
Every string RespondKit shows comes from the translated catalog. 0.6.3 translated the empty state, the "Ask us anything" subtitle and the attach menu; the email ask, composer, delivery statuses, retry and error states, and accessibility labels stayed English. They now follow the user's language on iOS, Android, web and React Native, with the 0.6.3 fallbacks.
- Native views. SwiftUI looks every string up in RespondKitUI's bundle instead of the host's main bundle. Compose reads string resources and formats transcript dates in the activity locale.
- Store text. The body of an attachment-only message, the length and closed-conversation errors, and the logout, history-save and unverified-identity errors come from the catalog through the new
RespondKitStringson the Swift and Kotlin stores.RespondKitScreensets it, and a store used without a screen keeps English. - Ten new keys in all 51 locales:
respondkit_message_too_long,respondkit_message_limit,respondkit_closed_start_new,respondkit_logout_failed,respondkit_history_save_failed,respondkit_done,respondkit_unread_reply,respondkit_reconnecting,respondkit_conversation_label,respondkit_identity_unverified. - Errors. Network, HTTP, protocol and storage failures show catalog text ("Support request failed.", "Upload failed", "Support chat could not be started.") instead of the SDK's English diagnostics or server messages. The Swift, Kotlin and React Native stores keep the original text in a new
errorDetail. - Default title. When the host passes no title, iOS, web and React Native show the translated "Support", as Compose already did.
- Guard.
pnpm readyfails if any file in the SwiftUI or Compose module gains an English literal, including lowercase labels, interpolated labels and transcript helpers. Exception messages are exempt, because they are no longer shown.
Upgrade and compatibility
Use 0.6.4 for the npm packages, v0.6.4 for SwiftPM and 0.6.4 for Maven. No protocol change.
- Swift:
RespondKitScreen(title:)is nowString?(defaultnil, meaning the catalog's "Support"); existing calls compile unchanged. errorMessage(native) anderror(React Native) no longer carry raw diagnostics; readerrorDetailfor logging.- An attachment-only message is sent with the translated "Attached files" body, so operators see it in the customer's language.
Operator checklist
- Publish GitHub release
v0.6.4, which runs the npm publish workflow. Publish Maven Central perdocs/native/releases.md. - Point ReceiptGenie at 0.6.4.
RespondKit 0.6.3 — client strings translated into 51 locales
RespondKit 0.6.3
Release notes
The shared client catalog is translated. The strings 0.6.2 moved into localization/messages now show in the user's language on iOS, Android, web and React Native: the empty state, the "Ask us anything" subtitle and the attach menu.
- 51 locales. ar, bg, bn, ca, cs, da, de, el, es, et, fi, fil, fr, fr-CA, gu, he, hi, hr, hu, id, it, ja, kn, ko, lt, lv, ml, mr, ms, nb, nl, or, pa, pl, pt-BR, pt-PT, ro, ru, sk, sl, sr, sv, ta, te, th, tr, uk, ur, vi, zh-Hans and zh-Hant. This is ReceiptGenie's shipped set, which also covers Captioner and SubPorter. Every key in the catalog is translated, not only the three surfaces that read it today. Other views still use English literals.
- Locale fallbacks. Web and React Native map legacy codes (
iw,in,tl,no), choose Traditional Chinese forzh-TW,zh-HKandzh-MO, send Portuguese outside Brazil topt-PT, reduce regional variants to the base language, and fall back to English. iOS uses Foundation's matching. On Android, Hebrew and Indonesian ship asvalues-iwandvalues-in, the codes Android still reports, and Bokmål also ships asvalues-no. - Web without a host locale. When
context.localeis unset, the web widget now reads the catalog and formats transcript dates using the browser language. Before, it used English.
Upgrade and compatibility
Use 0.6.3 for the npm packages, v0.6.3 for SwiftPM and 0.6.3 for Maven. No API or protocol change.
- iOS: the host app must declare a language for RespondKit's strings to show in it (ReceiptGenie declares all 51).
- Android hosts that override RespondKit strings for Hebrew or Indonesian must place the overrides in
values-iworvalues-in.
Operator checklist
- Publish GitHub release
v0.6.3, which runs the npm publish workflow. Publish Maven Central perdocs/native/releases.md. - Point ReceiptGenie at 0.6.3.
RespondKit 0.6.2 — no email-ask flash, Android attach icon, translated client strings
RespondKit 0.6.2
Release notes
A client patch for three problems found in ReceiptGenie's iOS and Android apps with 0.6.1.
- No email-ask flash. The native stores and the React Native store now wait until the contact lookup for the current identity has succeeded before asking for an email (
asksForEmail). A failed or interrupted lookup keeps the ask hidden and is retried with the next request on the same session. The ask never appears when the host supplied an email or the server already stores one. Before, iOS, Android and React Native showed the ask for a moment while the stored contact was being fetched. The web widget already waited, and new tests guard it. - Android attach button. The Compose composer's text "Attach files" button above the input is now a paperclip icon button to the left of the message field. It matches the web and iOS composers.
- Translated strings. The SwiftPM
RespondKitUItarget and the Compose module now bundle the resources generated fromlocalization/messages, and the web and React Native packages ship a generatedmessages.ts. The empty state, the "Ask us anything" subtitle and the attach menu read from that catalog on every client (web bycontext.locale, React Native by the device locale). Other strings remain English literals for now. The catalog ships English only. Other languages need a reviewedmessages/{locale}.json.
Upgrade and compatibility
Use 0.6.2 for the npm packages, v0.6.2 for SwiftPM and 0.6.2 for Maven. No API or protocol change.
RespondKitStore.asksForEmail(Swift, Kotlin state) andSupportSnapshot.asksForEmail(React Native) are new. Custom screens that show their own ask should use them instead of checking the email for null.- Android: the Compose module's own
res/values/strings.xmlis gone, and its strings come from the shared catalog.respondkit_newno longer exists (userespondkit_new_conversation), andrespondkit_intronow holds the longer intro line, with the short one inrespondkit_intro_short. Hosts that override either name must update their overrides.
Operator checklist
- Publish GitHub release
v0.6.2, which runs the npm publish workflow. Publish Maven Central perdocs/native/releases.md. - Point ReceiptGenie 2.9.0 at 0.6.2.
RespondKit 0.6.1 — attachments on the hosted API and aligned composer controls
RespondKit 0.6.1
Release notes
A patch release for two problems found on SubPorter's web widget with 0.6.0.
- Attachments work on the hosted API. The production Worker had no
ATTACHMENTSR2 binding, so every upload answered "Attachments are not configured." (and email ingress could not store raw mail).apps/api/wrangler.jsoncnow bindsATTACHMENTSto therespondkit-attachments-stagingbucket in thestagingenvironment (api.respondkit.dev) andrespondkit-attachmentsby default. Uploads and downloads both pass through the Worker (PUT /v1/attachments/:id/parts/:part,GET /v1/files/:token), so the bucket stays private and needs no CORS rule. - Web composer alignment. The attach button was 36px (
icon-lg) beside the 44px message box and send button, and the row bottom-aligns, so the paperclip sat low. It now has the same 44px box, and neither button shrinks.
Upgrade and compatibility
Use 0.6.1 for the npm packages. No API or protocol change; 0.6.0 clients work against the fixed API.
Operator checklist
- Create the bucket once:
cd apps/api && pnpm exec wrangler r2 bucket create respondkit-attachments-staging. - Deploy the API:
cd apps/api && pnpm exec wrangler deploy --env staging, then upload a file from a test widget and open its download link. - Publish GitHub release
v0.6.1, which runs the npm publish workflow.
RespondKit 0.6.0 — React Native, email follow-up, and attachments
RespondKit 0.6.0 adds a React Native client and brings email follow-up and file attachments to support conversations across web, SwiftUI, Android Compose, and React Native.
- React Native client: native React Native UI, conversation history, read acknowledgements, draft persistence, identity isolation, device context, and native photo/file pickers. The file-picker module requires a native build; use an Expo development build rather than Expo Go.
- Thread email: configure a sender per site/app inbox. Unread operator messages are emailed after a default ten-minute delay, and reading them cancels pending delivery. Replies to the email return to the same customer thread. The minute-based sender normally delivers after 10–11 minutes; emails already handed to the provider cannot be recalled.
- Client improvements: configurable greeting for a fresh session, email collection when no address is known, and native device/OS diagnostics.
- Attachments: multiple files through web file inputs and system photo/document pickers on native clients, stored in private R2. Completed files have no product expiration or configured product size cap; platform limits still apply. Inbound email attachments are not supported.
- Operator and developer tools: optional conversation translation, Discord customer-activity links, refreshed human and agent-readable documentation, and private Paraglide compilers for Apple String Catalogs and Android resources.
AI support-agent credentials/jobs/reply APIs remain a proposal. Localization compilers generate resources, but translated SDK controls and UI language selection are not yet integrated. Host-provided titles/greetings remain host-localized.
Upgrade and compatibility
Use the shared 0.6.0 version for all four npm packages, dev.respondkit:respondkit-core, dev.respondkit:respondkit-compose, and SwiftPM tag v0.6.0 after publication is verified. SwiftUI requires Swift 6 and iOS 18+; Compose requires Android API 26+. React Native peers and installation steps are in its README.
Deploy the compatible API and migrations before rolling out SDK upgrades. Keep old SDKs working during the transition and first upgrade one pilot app. Do not claim email/files work until the target environment has their provider configuration and passes a live smoke test.
Package publication runs through GitHub Actions. The first React Native publication requires one-time npm bootstrap. This release does not deploy the API, configure Cloudflare email/R2, or update host applications.
RespondKit 0.5.3 — iOS read receipts
Fix iOS customer read acknowledgements when support replies become visible. The SwiftUI transcript now refreshes its visibility observer for each loaded cursor, allowing Discord read checkmarks to update while retaining foreground and open-chat guards.
Regression coverage verifies first replies, subsequent replies, closed-chat unread state, and reopening. All 17 Swift package tests and 4 SDK iOS UI tests passed; npm, Swift, and Android release checks passed in PR #28.
Shared version 0.5.3 for SwiftPM, npm, and Maven Central. npm and Maven publication is handled by the release workflow.
RespondKit 0.5.2 — iOS accent foreground colors
SwiftUI hosts can now set accentForegroundColor on RespondKitScreen, allowing dark Send icons on light brand colors. Existing integrations keep white icons by default.
RespondKitScreen(
store: store,
accentColor: .green,
accentForegroundColor: .black
)Outgoing bubbles retain the web widget’s 10% accent fill and dark text.
This shared version is available through the SwiftPM v0.5.2 tag, npm (@respondkit/protocol, @respondkit/api-client, @respondkit/react), and Maven Central (dev.respondkit:respondkit-core, dev.respondkit:respondkit-compose). Android and web behavior are unchanged in this patch.
RespondKit 0.5.1
RespondKit 0.5.1 makes URLs in messages clickable across the web, SwiftUI, and Compose widgets.
- Automatically recognizes
https://,http://, andwww.addresses, with underlined links in the widget accent color. - Web links open a new tab while preserving the conversation and draft.
- Native links use SwiftUI's
openURLand Compose'sLocalUriHandler, so host apps can customize routing. - Preserves message text and excludes surrounding sentence punctuation from link destinations.
All distributions use version 0.5.1:
- Swift Package Manager:
https://github.com/xanthous-tech/RespondKit.git, version0.5.1. - Android:
dev.respondkit:respondkit-compose:0.5.1(includesrespondkit-core). - npm:
@respondkit/react@0.5.1,@respondkit/api-client@0.5.1, and@respondkit/protocol@0.5.1.
Verified with shared URL fixtures, browser and native simulator tap tests, and clean npm/Maven consumer builds. Registry publication runs automatically after this release is published.
Changes: #26
Full changelog: v0.5.0...v0.5.1
RespondKit 0.5.0 — SwiftUI and Compose widgets
RespondKit 0.5.0 adds native SwiftUI and Jetpack Compose support widgets, using the same version as the web SDK.
Native widgets
- One conversation screen with the web widget's styling, native icons, customizable accent colors, and inherited SwiftUI tint / Compose primary color.
- App-owned triggers and unread indicators; present with a SwiftUI full-screen cover or a full-screen Compose destination.
- Foreground unread polling with silent refreshes, secure local persistence, drafts, retries, read acknowledgements, and verified identity support.
- Text-only conversations. This release does not add push notifications, attachment uploads, or app-icon badges.
Install
SwiftPM (Swift 6, iOS 18+):
.package(url: "https://github.com/xanthous-tech/RespondKit.git", from: "0.5.0")Add the RespondKitUI and RespondKitCore products to your app.
Android (API 26+, JDK 17, Kotlin 2.2-compatible toolchain):
implementation("dev.respondkit:respondkit-compose:0.5.0")Use google() and mavenCentral(). Compose includes respondkit-core transitively.
Web:
npm install @respondkit/react@0.5.0@respondkit/protocol and @respondkit/api-client also use version 0.5.0.
Native integration guide · Release process
The release workflow validates all three platforms before publishing npm and Maven Central artifacts. Registry availability follows completion of those jobs.
v0.4.1 — Discord customer read receipts
Fix missing Discord read checkmarks. The React widget now sends and retries authenticated read acknowledgements after displaying a transcript in an open, visible chat. Includes the typed API client read-receipt endpoint.
Deploy the API read-receipt endpoint and migration before upgrading the SDK. The server projects ✅ onto read Discord replies and retries delayed reactions.