Avoid caching raw HTTP response objects in TMDb request helpers so Redis no longer fails on embedded locks. Add an isolated regression test for sync and async request snapshots.
Refs #5763
* fix(telegram): handle caption messages in group chat @mention detection
Telegram media messages (photos, videos, etc.) store their text in
`message.caption` and mention entities in `message.caption_entities`,
not `message.text` / `message.entities`. The previous code only checked
`message.text`, so commands and @mentions sent with media were silently
skipped with "No text..." in the debug log.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(telegram): use correct entity field pairing and UTF-16 offsets for mention detection
- Explicitly pair message.entities with text messages and caption_entities
with media messages, avoiding false fallthrough on empty entity lists
- Decode mention text via UTF-16-LE encoding to respect Telegram's UTF-16
based offset/length values, fixing incorrect slicing when emojis are present
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Read the latest LLM connection settings when building runtime clients so Web updates take effect immediately instead of reusing module-import defaults.
Closes#5757
When a plugin requires a newer minor version of a non-core dependency
(e.g. sentry-sdk ~=2.59.0 while 2.58.0 is installed), the conflict
check now distinguishes upgrade-only conflicts from downgrade conflicts.
Non-core packages that only need upgrading are allowed through; the
runtime constraints file uses >= instead of == for non-core packages so
pip can satisfy the upgrade without risking a downgrade.
Core packages (fastapi, pydantic, sqlalchemy, etc.) remain strictly
pinned and any version mismatch is still rejected.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Return configured download directories as API-ready save_path values so external integrations can choose download destinations without guessing local or remote path syntax.
Fixes#5737
Keep transfer recognition results ready for scraping without fetching images twice on the same path. Also ensure redo-by-path transfer recognition still populates image data before metadata scraping.
Default title and path recognition to skip image fetching, while keeping scrape entrypoints and transfer-to-scrape paths populated with image data. This preserves lightweight recognition behavior without breaking metadata scraping.
Route title and path lookups through the fallback-aware entrypoints so auxiliary matches can reuse pre-assist keywords without forcing image fetches in lightweight flows. Also reduce noisy agent shutdown logging during cleanup.
Add a global cleanup switch, per-table retention periods, and scheduler config reload support so data cleanup can be managed and applied without restarting.