CortexDB 0.9.2 — real-time webhook ingest fixed (connectors 0.2.13)
Maintenance release — no format changes, no migration: 0.9.0/0.9.1
data directories work as-is. The headline is cortexdb-connectors 0.2.13 (on PyPI now), which makes the real-time webhook path
functional against real tl;dv and Jira, plus one server-side fix to the
LLM answer router for Claude 5-family models.
Connectors 0.2.13 — webhook auth matches each provider
The serve webhook receiver previously verified every provider with
GitHub's X-Hub-Signature-256 body-HMAC scheme. Real providers don't
all sign that way, so real deliveries were rejected at the door. Both
findings were validated against a real tl;dv workspace and a captured
live delivery.
- tl;dv deliveries are accepted (was: 100% rejected with 401).
tl;dv doesn't HMAC-sign webhook bodies — its auth is a static custom
header. Configure the tl;dv webhook (Settings → Webhooks) with custom
header
Authorization: Bearer <TLDV_WEBHOOK_SECRET>. Fail-closed when no secret is configured. TranscriptReadykeeps its transcript (was: keyed by the transcript id, transcript text dropped, timestamp = ingest time). The episode is now keyed by the meeting id, the segments are ingested as the transcript through the same builder as the poll path (so poll + webhook dedup), and chronology comes from the delivery'sexecutedAt.- Jira signature verification reads the right header: Jira signs
with the same
sha256=<hex>HMAC but sends WebSub-styleX-Hub-Signature, not GitHub'sX-Hub-Signature-256. Correctly signed deliveries now verify. - Freshdesk moves to static-header auth (Freshdesk automations
can't body-sign): configure the automation rule to send
Authorization: Bearer <FRESHDESK_WEBHOOK_SECRET>.
Upgrade: pip install -U cortexdb-connectors. Action needed for tl;dv
and Freshdesk webhooks: set the Authorization header in the provider
UI as above. Jira and the poll/sync paths need no changes.
Server — answer router and Claude 5-family models
Claude 5 models enable extended thinking by default; on answer-sized
token budgets the model could spend the entire budget thinking and
return no text, which surfaced as blank completions and — under
benchmark concurrency — tripped the answer provider-health circuit. The
router now requests plain completions (thinking: disabled) from
5-family models; CORTEX_ANSWER_THINKING_BUDGET=N opts back into
thinking with an explicit budget. Older model families are unaffected.