You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reason: MiniMax-M3 video input is rejected by the shared chat content schema, and the multimodal reader discards the video URL.
Add a typed video_url content part and preserve its URL and chat metadata through message expansion and memory-source serialization. Existing text and image routing remains covered by regression tests. This change preserves video provenance; it does not add video analysis or decoding.
ChatCompletionContentPartVideoParam is added to the union type alias but is missing from __all__. Every other constituent type imported into this module (ChatCompletionContentPartImageParam, ChatCompletionContentPartInputAudioParam, etc.) is re-exported through __all__, so omitting the new type creates an inconsistency: from .chat_completion_content_part_param import * will silently skip ChatCompletionContentPartVideoParam, breaking any downstream code that relies on star-imports from this module (e.g., the __init__.py wildcard chain).
Add "ChatCompletionContentPartVideoParam" to __all__.
The video URL is stored in the generic content field, which is inconsistent with the image_url branch that stores the URL in a dedicated image_path field. Downstream consumers that dispatch on source.type and read image_path for images will find no equivalent video_path for videos; they'll silently get None from source.image_path (or any video_path attribute) and may fall back to content unexpectedly.
For consistency and correctness, store the URL in a dedicated video_path extra field (matching the image_path convention) and leave content as None or omit it, as is done for the image branch.
Direct index access video_messages[0] is not guarded by a prior length assertion. If _expand_multimodal_messages returns no list-content items (e.g., due to a regression), this raises an opaque IndexError instead of a descriptive test failure. Add assert len(video_messages) == 1 before this line so pytest reports a clear assertion error.
Direct chained index accesses memories[0].metadata.sources[0] have no prior length guards. If parse_fast returns an empty list, or if sources is empty, the test raises a bare IndexError rather than a descriptive assertion failure. Add explicit length assertions immediately before these accesses.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
area:memory记忆存储、检索、更新、召回逻辑status:readyReady for implementation; waiting for assignee or AI dispatch | 可进入实现,等待认领或派发
3 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reason: MiniMax-M3 video input is rejected by the shared chat content schema, and the multimodal reader discards the video URL.
Add a typed
video_urlcontent part and preserve its URL and chat metadata through message expansion and memory-source serialization. Existing text and image routing remains covered by regression tests. This change preserves video provenance; it does not add video analysis or decoding.Related: #1859 covers model defaults separately.
Validation:
git commit.make format(passed; 632 files unchanged)..venv/bin/pytest tests/mem_reader/test_video_input.py -q(6 passed; the original code failed 4 regression cases)..venv/bin/pytest tests/mem_reader/ -q(77 passed).Checklist: