This repository was archived by the owner on Oct 15, 2026. It is now read-only.
Repository navigation
Conversation
Co-Authored-By: Codex <noreply@openai.com>
This branch has not been deployed
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
MessageBase.from_dict()dropstagseven thoughMessage.__init__()accepts them andto_dict()serializes them. Forward the stored tags when reconstructing a message, including through the chat-resume path. Dictionaries without the field continue to producetags=None.This is a source finding on current main. No matching existing issue was found; no issue has been published.
Validation
None, plus a compatibility assertion for a legacy dictionary withouttags.backend/tests/test_message.py; both failures reproduce dropped tags.backend/tests/test_message.pyandbackend/tests/test_modes.py.PYTHONPATH=backend python -m pytest backend/tests/test_message.py backend/tests/test_modes.py -q --tb=short --allow-hosts=127.0.0.1,::1; remote sockets are blocked, with loopback allowed for the Windows asyncio loop. The verification harness asserts the loaded source path for both baseline and patched runs.python scripts/lint.py backend/chainlit/message.py backend/tests/test_message.pyandpython scripts/format.py --check backend/chainlit/message.py backend/tests/test_message.pypass using Ruff 0.13.3.git diff --checkpasses. No new dependencies.Validation limits
scripts/type_check.py --no-incrementalcomparison reported the same 38 diagnostics in 16 files on unmodified main and the patch (109 files checked), including missing optional integration dependencies. This is not a passing whole-backend type check.AI assistance
Codex assisted with investigation, the one-line fix and regression tests. Verification results and limitations are listed above.
Summary by cubic
Fixes
MessageBase.from_dict()droppingtagswhen reconstructing messages, even thoughMessage.__init__()accepts them andto_dict()serializes them. The stored tags are now forwarded when restoring, including through the chat-resume path, while dictionaries without the field still producetags=None.Adds regression tests covering round-trip preservation for a non-empty tag list, an empty list, and
None, plus a compatibility assertion for legacy dictionaries without thetagsfield.Written for commit ad6c439. Summary will update on new commits.