chore(release): v4.2.0 — AI Provider Abstraction & BYO-AI #504

Merged
claude-bot merged 1 commit from chore/release-v4.2.0 into main 2026-09-05 06:22:11 +00:00
Contributor

Release commit for the v4.2.0 milestone: APP_VERSION and BOT_EXPECTED_APP_VERSION → 4.2.0 (scripts/check_version_sync.py passes), changelog stamped with the preamble self-hosters read before upgrading.

What ships (all merged since v4.1.2): provider contracts with swappable adapters — the bundled WhisperX server's API v2 (Rhoving/iac-repo#396) and an OpenAI-compatible ASR adapter covering OpenAI and Groq (#350, #496); per-campaign BYO-AI behind an instance switch (#128, #501); campaign vocabulary bias (#355, #491); real word timestamps carried through the pipeline (#352, #499); provider-aware concurrency caps with a queue the GM can see (#356, #495); per-session usage and cost with admin rollups (#357, #494, #503); capability gaps explained in plain language (#358, #492); a hardware preflight, a CPU profile and measured hardware profiles (#353, #354, #500); a conformance suite every adapter must pass plus a monthly canary (#359, #493); the committed synthetic session that tests transcription end to end (#433, #497); and the provider evaluation with its isolation test (#360, #498).

Five additive migrations, verified up/down/up: a5b6c7d8e9fab6c7d8e9fa0bc7d8e9fa0b1cd8e9fa0b1c2de9fa0b1c2d3e, single head. Bot contract unchanged (v1); nothing under /api/bot/* changed shape.

Operator notes carried in the preamble: update the bundled transcription server to API v2 for word timings and vocabulary bias (an older server keeps working, and the capability panel says to update); six new optional .env settings with safe defaults; ~9 MB of invented audio now in the repository.

Deploy plan after tagging: dev first (with the #433 end-to-end live run through the real intake endpoint as part of validation), then production.

🤖 Generated with Claude Code

Release commit for the v4.2.0 milestone: `APP_VERSION` and `BOT_EXPECTED_APP_VERSION` → 4.2.0 (`scripts/check_version_sync.py` passes), changelog stamped with the preamble self-hosters read before upgrading. **What ships** (all merged since v4.1.2): provider contracts with swappable adapters — the bundled WhisperX server's API v2 (Rhoving/iac-repo#396) and an OpenAI-compatible ASR adapter covering OpenAI and Groq (#350, #496); per-campaign BYO-AI behind an instance switch (#128, #501); campaign vocabulary bias (#355, #491); real word timestamps carried through the pipeline (#352, #499); provider-aware concurrency caps with a queue the GM can see (#356, #495); per-session usage and cost with admin rollups (#357, #494, #503); capability gaps explained in plain language (#358, #492); a hardware preflight, a CPU profile and measured hardware profiles (#353, #354, #500); a conformance suite every adapter must pass plus a monthly canary (#359, #493); the committed synthetic session that tests transcription end to end (#433, #497); and the provider evaluation with its isolation test (#360, #498). **Five additive migrations**, verified up/down/up: `a5b6c7d8e9fa` → `b6c7d8e9fa0b` → `c7d8e9fa0b1c` → `d8e9fa0b1c2d` → `e9fa0b1c2d3e`, single head. **Bot contract unchanged (v1)**; nothing under `/api/bot/*` changed shape. **Operator notes carried in the preamble:** update the bundled transcription server to API v2 for word timings and vocabulary bias (an older server keeps working, and the capability panel says to update); six new optional `.env` settings with safe defaults; ~9 MB of invented audio now in the repository. Deploy plan after tagging: dev first (with the #433 end-to-end live run through the real intake endpoint as part of validation), then production. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore(release): v4.2.0 — AI Provider Abstraction & BYO-AI
All checks were successful
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 45s
CI / Docker image build (pull_request) Successful in 18s
CI / Bot/backend version sync (pull_request) Successful in 32s
CI / Backend lint (ruff) (pull_request) Successful in 39s
CI / Frontend tests, audit, and build (pull_request) Successful in 1m33s
CI / Bot tests and audit (pull_request) Successful in 1m53s
CI / Backend migration, tests, and audit (pull_request) Successful in 6m41s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 16m27s
60e4f2c2fa
Provider contracts and swappable adapters (bundled WhisperX v2, OpenAI/Groq),
per-campaign BYO-AI, campaign vocabulary bias, real word timestamps,
provider-aware concurrency caps, per-session usage and cost, capability
gaps and a hardware preflight, a CPU profile, a conformance suite with a
monthly canary, and a committed synthetic session that tests transcription
end to end. Five additive migrations; bot contract unchanged (v1).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
claude-bot scheduled this pull request to auto merge when all checks succeed 2026-09-05 06:04:41 +00:00
claude-bot deleted branch chore/release-v4.2.0 2026-09-05 06:22:11 +00:00
Author
Contributor

Deployed.

dev (docker-test) prod (docker-host-mcp)
deployed 2026-09-05 06:24 UTC at f7aa15e (tag), pulled to a483c87 at 07:31 (evals-only, no rebuild) 2026-09-05 07:33 UTC at a483c87
version 4.2.0 4.2.0
alembic e9fa0b1c2d3e (head), 5 migrations from f4a5b6c7d8ea same, migrate container exited 0
containers 7/7 healthy 7/7 healthy
bot handshake not observable (no Discord token on dev) Version handshake OK: backend 4.2.0, bot API contract v1, gateway connected
errors after start none none in backend or worker

Dev was validated end to end before prod went out: two synthetic sessions (#433, full and ic_only) submitted through POST /api/bot/sessions/{id}/audio and processed by the real pipeline against the bundled WhisperX v2 server and the llama.cpp endpoint. Capability discovery, the provider queue lease, usage rows, BYO-AI precedence and the monthly canary were all checked live. Numbers on #433. Three rough edges found, none affecting session processing, filed as #507 (preflight LLM probe on reasoning models), #508 (session_usage.asr_model empty) and #506 item 5 (fixture links unverified).

Operator note carried over from the release preamble: the bundled WhisperX server must be on API v2 (it is, both environments share the one at 10.3.0.28:8091).

**Deployed.** | | dev (`docker-test`) | prod (`docker-host-mcp`) | |---|---|---| | deployed | 2026-09-05 06:24 UTC at `f7aa15e` (tag), pulled to `a483c87` at 07:31 (evals-only, no rebuild) | 2026-09-05 07:33 UTC at `a483c87` | | version | 4.2.0 | 4.2.0 | | alembic | `e9fa0b1c2d3e (head)`, 5 migrations from `f4a5b6c7d8ea` | same, migrate container exited 0 | | containers | 7/7 healthy | 7/7 healthy | | bot handshake | not observable (no Discord token on dev) | `Version handshake OK: backend 4.2.0, bot API contract v1`, gateway connected | | errors after start | none | none in backend or worker | Dev was validated end to end before prod went out: two synthetic sessions (#433, `full` and `ic_only`) submitted through `POST /api/bot/sessions/{id}/audio` and processed by the real pipeline against the bundled WhisperX v2 server and the llama.cpp endpoint. Capability discovery, the provider queue lease, usage rows, BYO-AI precedence and the monthly canary were all checked live. Numbers on #433. Three rough edges found, none affecting session processing, filed as #507 (preflight LLM probe on reasoning models), #508 (`session_usage.asr_model` empty) and #506 item 5 (fixture links unverified). Operator note carried over from the release preamble: the bundled WhisperX server must be on API v2 (it is, both environments share the one at 10.3.0.28:8091).
Sign in to join this conversation.
No description provided.