Skip to content

v2.2.39

@mabou7agar mabou7agar tagged this 01 Jun 03:40
Stateless conversation_history hydration:
  - Dedup guard prevents double user-turn on stateless replays
  - History hard-cap (max_messages) stops unbounded context growth
  - null content normalised to '' (OpenAI tool_calls entries)
  - Multipart/vision array content flattened to text in hydration + compactor

Robustness:
  - askAI() and routeThroughPipeline() now catch \Throwable, not just \Exception
  - RAG-to-orchestrator reroute unsets stale conversation_history key
  - Conversational maxTokens configurable via options/config (was hard-coded 200)
  - Caller contract documented on hydrateConversationHistory (lowercase roles required)

Tests:
  - 12 new unit tests in ConversationHistoryHardeningTest
  - Full suite: 1360 tests, 7684 assertions — all green
Assets 2
Loading