From 2bd236b7f82610cb1ff163a9880337d8eed1e3c4 Mon Sep 17 00:00:00 2001 From: Yudhi Armyndharis Date: Sat, 1 Aug 2026 14:18:55 +0700 Subject: [PATCH] chore(group-translate,voice-transcription): bump tested version to 0.12.1 Both plugins have now been smoke-tested end-to-end against a live OpenWA 0.12.1 host with real backends (self-hosted LibreTranslate and faster-whisper), confirming the transformer-band hook priority fix holds. No behaviour change; testedOpenWAVersion now reflects that. Also documents that a loopback backend (the default for both plugins) requires SSRF_ALLOWED_HOSTS on the OpenWA host before it is reachable. --- README.md | 4 ++-- group-translate/CHANGELOG.md | 19 +++++++++++++++++++ group-translate/README.md | 10 +++++++--- group-translate/manifest.json | 4 ++-- plugins.json | 16 ++++++++-------- voice-transcription/CHANGELOG.md | 18 ++++++++++++++++++ voice-transcription/README.md | 14 ++++++++------ voice-transcription/manifest.json | 4 ++-- 8 files changed, 66 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 8fe1a80..15dee2f 100644 --- a/README.md +++ b/README.md @@ -38,12 +38,12 @@ This repository provides: | [`chat-flow`](./chat-flow) | Interactive, stateful auto-reply: a trigger word starts a greeting + numbered menu, replies traverse a configurable menu tree, and per-chat state expires after 15 minutes. | 1.1.1 | stable | | [`chatwoot-adapter`](./chatwoot-adapter) | Two-way sync between a WhatsApp session and a Chatwoot inbox: relays WhatsApp messages (1:1 and groups, with media) into Chatwoot as an API-channel inbox, sends agent replies back to WhatsApp, and hands a chat over to a human agent — silencing other OpenWA bots — when an agent takes it in Chatwoot. First consumer of the OpenWA Integration SDK v1; runs sandboxed in the plugin worker. | 0.8.0 | stable | | [`faq-bot`](./faq-bot) | Auto-replies to inbound WhatsApp messages from configurable FAQ keyword/regex rules. | 0.2.1 | stable | -| [`group-translate`](./group-translate) | Auto-translates group messages between participants' languages via a LibreTranslate backend. Configure in-chat with /tr commands. Admin-gated; disabled until enabled. | 1.1.0 | stable | +| [`group-translate`](./group-translate) | Auto-translates group messages between participants' languages via a LibreTranslate backend. Configure in-chat with /tr commands. Admin-gated; disabled until enabled. | 1.1.1 | stable | | [`gsheets-logger`](./gsheets-logger) | Logs WhatsApp message events to a Google Sheet via a service account. | 0.3.2 | stable | | [`http-action`](./http-action) | Triggers safe REST API requests from WhatsApp commands and renders JSON responses back to chat. | 0.2.1 | stable | | [`supabase-otp-hook`](./supabase-otp-hook) | Deliver Supabase Auth phone OTPs over WhatsApp. | 0.3.0 | beta | | [`typebot-connector`](./typebot-connector) | Runs a Typebot flow as the brain of a WhatsApp bot: inbound messages drive a Typebot chat session via the live Chat API, and the bot's replies — text, media, and numbered-choice inputs — are sent back to WhatsApp. Auto-starts every chat, handles file-upload steps, and resets when the flow ends or after an idle timeout. Runs sandboxed in the plugin worker; no public URL or webhook required. | 0.2.1 | stable | -| [`voice-transcription`](./voice-transcription) | Transcribes inbound WhatsApp voice notes to text via an OpenAI-compatible speech-to-text backend (self-hosted Speaches/faster-whisper or hosted Groq/OpenAI) and delivers a `message.transcription` event to your webhook — so bots and AI can read and reply to audio. Off the message-delivery path; disabled until enabled. | 1.2.0 | beta | +| [`voice-transcription`](./voice-transcription) | Transcribes inbound WhatsApp voice notes to text via an OpenAI-compatible speech-to-text backend (self-hosted Speaches/faster-whisper or hosted Groq/OpenAI) and delivers a `message.transcription` event to your webhook — so bots and AI can read and reply to audio. Off the message-delivery path; disabled until enabled. | 1.2.1 | beta | The table above is generated from each plugin's `manifest.json` + `CHANGELOG.md` by `npm run catalog` diff --git a/group-translate/CHANGELOG.md b/group-translate/CHANGELOG.md index 006e1f0..190d35e 100644 --- a/group-translate/CHANGELOG.md +++ b/group-translate/CHANGELOG.md @@ -8,6 +8,25 @@ The version here always matches `manifest.json`'s `version`. ## [Unreleased] +## [1.1.1] — 2026-08-01 + +No behaviour change. 1.1.0 has now been smoke-tested against a newer host, so the tested-version field +is updated to match. + +### Verified + +- **Confirmed against a live OpenWA 0.12.1 host**, with a connected WhatsApp session, driven by real + WhatsApp messages from a second connected number in a real WhatsApp group, against a real self-hosted + LibreTranslate instance (English + Indonesian models) reachable at `http://localhost:7001` from inside + the host container. `/tr status` reported `Translator: ok` — a live health probe of LibreTranslate + through the host-proxied `ctx.net.fetch`. `/tr on` returned `✅ Translation activated.`, and both + `/tr setlang en` (self) and `/tr setlang id ` applied and read back correctly in `/tr status`. + The message `good morning, how are you today` was answered with + `ID: selamat pagi, bagaimana kabarmu hari ini`. +- **The transformer-band fix from 1.1.0 holds**: the hook registered at priority 50, the Transformer + band assigned in `PLUGIN-STANDARD.md`. +- **Not covered:** load or concurrency. + ## [1.1.0] — 2026-07-31 ### Fixed diff --git a/group-translate/README.md b/group-translate/README.md index fe662b2..f4ae99e 100644 --- a/group-translate/README.md +++ b/group-translate/README.md @@ -14,13 +14,13 @@ | Field | Value | | ----- | ----- | | **Identifier** | `group-translate` | -| **Version** | 1.1.0 | -| **Released** | 2026-07-31 | +| **Version** | 1.1.1 | +| **Released** | 2026-08-01 | | **Status** | stable | | **Author** | Yudhi Armyndharis | | **License** | MIT | | **Type** | `extension` | -| **Requires OpenWA** | ≥ 0.7.0 (tested 0.8.1) | +| **Requires OpenWA** | ≥ 0.7.0 (tested 0.12.1) | | **Keywords** | translation, libretranslate, i18n, groups, whatsapp, openwa | | **Repository** | [OpenWA-plugins/group-translate](https://github.com/rmyndharis/OpenWA-plugins/tree/main/group-translate) | @@ -56,6 +56,10 @@ Default prefix `/tr` (configurable). Read-only commands are open; the rest are a 1. **Run a LibreTranslate instance.** The plugin calls its `/translate` endpoint over `ctx.net.fetch`. Add the instance's `host:port` to the manifest `net.allow` before packaging, and — if it's on `localhost`/a private host — also set `SSRF_ALLOWED_HOSTS` on the OpenWA host (see [Security](#security)). + The default `libretranslateUrl` (`http://localhost:7001`) *is* a loopback address, so out of the box + this plugin cannot reach its backend at all until this is done: set the environment variable + **`SSRF_ALLOWED_HOSTS`** on the OpenWA host itself — not in this plugin's config — e.g. + `SSRF_ALLOWED_HOSTS=localhost,127.0.0.1`. 2. Have OpenWA **≥ 0.7.0** running with a logged-in WhatsApp session for the group(s) you want to translate. 3. Install and enable the plugin (see [Install](#install)), then have a group admin run `/tr on`. diff --git a/group-translate/manifest.json b/group-translate/manifest.json index 4cc83a8..762e94d 100644 --- a/group-translate/manifest.json +++ b/group-translate/manifest.json @@ -1,7 +1,7 @@ { "id": "group-translate", "name": "Group Auto-Translation", - "version": "1.1.0", + "version": "1.1.1", "type": "extension", "main": "dist/index.js", "description": "Auto-translates group messages between participants' languages via a LibreTranslate backend. Configure in-chat with /tr commands. Admin-gated; disabled until enabled.", @@ -19,7 +19,7 @@ ], "status": "stable", "minOpenWAVersion": "0.7.0", - "testedOpenWAVersion": "0.8.1", + "testedOpenWAVersion": "0.12.1", "provides": [ "translation" ], diff --git a/plugins.json b/plugins.json index beceded..6b42913 100644 --- a/plugins.json +++ b/plugins.json @@ -833,7 +833,7 @@ { "id": "group-translate", "name": "Group Auto-Translation", - "version": "1.1.0", + "version": "1.1.1", "type": "extension", "status": "stable", "description": "Auto-translates group messages between participants' languages via a LibreTranslate backend. Configure in-chat with /tr commands. Admin-gated; disabled until enabled.", @@ -848,12 +848,12 @@ "openwa" ], "minOpenWAVersion": "0.7.0", - "testedOpenWAVersion": "0.8.1", - "releasedAt": "2026-07-31", + "testedOpenWAVersion": "0.12.1", + "releasedAt": "2026-08-01", "repoPath": "group-translate", "repoUrl": "https://github.com/rmyndharis/OpenWA-plugins", "homepage": "https://github.com/rmyndharis/OpenWA-plugins/tree/main/group-translate", - "download": "https://github.com/rmyndharis/OpenWA-plugins/releases/download/group-translate-v1.1.0/group-translate.zip", + "download": "https://github.com/rmyndharis/OpenWA-plugins/releases/download/group-translate-v1.1.1/group-translate.zip", "i18n": { "es": { "name": "Traducción Automática de Grupos", @@ -1956,7 +1956,7 @@ { "id": "voice-transcription", "name": "Voice Note Transcription", - "version": "1.2.0", + "version": "1.2.1", "type": "extension", "status": "beta", "description": "Transcribes inbound WhatsApp voice notes to text via an OpenAI-compatible speech-to-text backend (self-hosted Speaches/faster-whisper or hosted Groq/OpenAI) and delivers a `message.transcription` event to your webhook — so bots and AI can read and reply to audio. Off the message-delivery path; disabled until enabled.", @@ -1973,12 +1973,12 @@ "openwa" ], "minOpenWAVersion": "0.7.0", - "testedOpenWAVersion": "0.8.1", - "releasedAt": "2026-07-31", + "testedOpenWAVersion": "0.12.1", + "releasedAt": "2026-08-01", "repoPath": "voice-transcription", "repoUrl": "https://github.com/rmyndharis/OpenWA-plugins", "homepage": "https://github.com/rmyndharis/OpenWA-plugins/tree/main/voice-transcription", - "download": "https://github.com/rmyndharis/OpenWA-plugins/releases/download/voice-transcription-v1.2.0/voice-transcription.zip", + "download": "https://github.com/rmyndharis/OpenWA-plugins/releases/download/voice-transcription-v1.2.1/voice-transcription.zip", "i18n": { "es": { "name": "Transcripción de Notas de Voz", diff --git a/voice-transcription/CHANGELOG.md b/voice-transcription/CHANGELOG.md index bb010f8..56da0a8 100644 --- a/voice-transcription/CHANGELOG.md +++ b/voice-transcription/CHANGELOG.md @@ -6,6 +6,24 @@ All notable changes to the Voice Note Transcription plugin are documented here. ## [Unreleased] +## [1.2.1] — 2026-08-01 + +No behaviour change. 1.2.0 has now been smoke-tested against a newer host, so the tested-version field +is updated to match. + +### Verified + +- **Confirmed against a live OpenWA 0.12.1 host**, with a connected WhatsApp session, against a real + self-hosted faster-whisper server (`Systran/faster-whisper-small.en`) speaking the OpenAI-compatible + `/v1/audio/transcriptions` API at `http://localhost:9010`, with `chatDelivery: reply`. A genuine + Ogg/Opus WhatsApp voice note was sent from a second connected number; the plugin downloaded the media + through the host, uploaded it as multipart through `ctx.net.fetch`, and the ASR server logged + `POST /v1/audio/transcriptions 200`. The spoken sentence came back into the chat as text, matching what + was said. +- **The transformer-band fix from 1.2.0 holds**: the hook registered at priority 40, the Transformer + band assigned in `PLUGIN-STANDARD.md`. +- **Not covered:** load, concurrency, or long audio. + ## [1.2.0] — 2026-07-31 ### Fixed diff --git a/voice-transcription/README.md b/voice-transcription/README.md index 4ce804b..dc4ea8c 100644 --- a/voice-transcription/README.md +++ b/voice-transcription/README.md @@ -14,13 +14,13 @@ | Field | Value | | ----- | ----- | | **Identifier** | `voice-transcription` | -| **Version** | 1.2.0 | -| **Released** | 2026-07-31 | +| **Version** | 1.2.1 | +| **Released** | 2026-08-01 | | **Status** | beta | | **Author** | Yudhi Armyndharis | | **License** | MIT | | **Type** | `extension` | -| **Requires OpenWA** | ≥ 0.7.0 (tested 0.8.1) | +| **Requires OpenWA** | ≥ 0.7.0 (tested 0.12.1) | | **Keywords** | transcription, speech-to-text, stt, whisper, voice, audio, whatsapp, openwa | | **Repository** | [OpenWA-plugins/voice-transcription](https://github.com/rmyndharis/OpenWA-plugins/tree/main/voice-transcription) | @@ -88,9 +88,11 @@ out of order — do not assume ordering). whatever you configure without you having to edit and re-package the plugin. The manifest also ships a static `net.allow` for `localhost`, `127.0.0.1`, `api.groq.com:443` and `api.openai.com:443`, which is what covers a plain-`http` local backend (config-derived hosts are https-only). -3. **For a localhost STT/delivery target**, also set `SSRF_ALLOWED_HOSTS` on the OpenWA host (the SSRF guard - blocks loopback by default), e.g. `SSRF_ALLOWED_HOSTS=127.0.0.1,localhost`. Prefer a literal - `http://127.0.0.1:PORT` target (nothing to DNS-rebind). +3. **For a localhost STT/delivery target** — any self-hosted Speaches/faster-whisper deployment; a hosted + Groq/OpenAI endpoint needs nothing here — also set the environment variable `SSRF_ALLOWED_HOSTS` on the + OpenWA host itself (not in this plugin's config; the SSRF guard blocks loopback by default), e.g. + `SSRF_ALLOWED_HOSTS=127.0.0.1,localhost`. Prefer a literal `http://127.0.0.1:PORT` target (nothing to + DNS-rebind). 4. **Stand up your delivery endpoint** (an n8n webhook, a Worker, your bot) and put its URL in **Delivery webhook URL**. diff --git a/voice-transcription/manifest.json b/voice-transcription/manifest.json index 9c81621..c876a86 100644 --- a/voice-transcription/manifest.json +++ b/voice-transcription/manifest.json @@ -1,7 +1,7 @@ { "id": "voice-transcription", "name": "Voice Note Transcription", - "version": "1.2.0", + "version": "1.2.1", "type": "extension", "main": "dist/index.js", "description": "Transcribes inbound WhatsApp voice notes to text via an OpenAI-compatible speech-to-text backend (self-hosted Speaches/faster-whisper or hosted Groq/OpenAI) and delivers a `message.transcription` event to your webhook — so bots and AI can read and reply to audio. Off the message-delivery path; disabled until enabled.", @@ -21,7 +21,7 @@ ], "status": "beta", "minOpenWAVersion": "0.7.0", - "testedOpenWAVersion": "0.8.1", + "testedOpenWAVersion": "0.12.1", "provides": [ "transcription" ],