Normalize OpenAI-style and LangChain standard image blocks into LangChain
standard content blocks so provider block_translators auto-convert for
either OpenAI or Anthropic. Flatten multimodal content to plain text when
persisting history and computing term embeddings.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The unused 'from sympy.printing.cxx import none' was accidentally added
by IDE autocomplete. sympy is not installed in the image, so importing
agent/deep_assistant.py raised ModuleNotFoundError and the API server
crash-looped on startup.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Update langfuse CallbackHandler to use trace_context instead of removed trace_id/session_id/user_id params
- Pass session_id/user_id via LangChain metadata with langfuse_ prefix
- Move dereference param from TarFile.add() to tarfile.open()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert all Chinese comments, docstrings, logger/print output,
HTTPException detail messages, and API response messages to English
across the entire codebase. Functional zh/ja localized strings
(e.g. prompt templates, timezone display names, date formats) are
preserved as-is.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. Fix "all environment values must be bytes or str" error in hook execution
by ensuring all env values are converted to str (getattr may return None
when attribute exists but is None). Also sanitize shell_env values.
2. Increase MEM0_POOL_SIZE default from 20 to 50 to address "connection pool
exhausted" errors under high concurrency.
Fixes: sparticleinc/felo-mygpt#2519
Co-authored-by: zhuchao <zhuchaowe@163.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>