Repository navigation
🧱 refactor: Move Message Row Leaves into @librechat/chat - #17523
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Give packages/chat a lint-only Tailwind entry so the design rules resolve the library's theme utilities, allow the app status selectors its components carry, expose the active language from @librechat/client, and let the locale check accept keys that resolve through plural forms.
Move the hover style helpers, SubRow, SiblingSwitch, the elapsed timer with its duration labels, HeaderLabel and the system event header into packages/chat/src/components/messages, export them from @librechat/chat/components, and point the client at the package.
0da842a to
f378f4f
Compare
|
@codex review Please review the current PR head f378f4f. State the exact reviewed commit and ignore findings that apply only to earlier heads. Purpose supplied by the requester: retry: Codex round on f378f4f stuck running over 2.5h with no result; head is the conflict-only rebase of the thumbs-up 0da842a |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Pull Request
Summary
The message list UI still lives in
client/src/components/Chat/Messages, so@librechat/chatcannot render a message row on its own. This is the first link of the message-list extraction: it moves the leaf pieces every row uses intopackages/chat/src/components/messagesand exports them from@librechat/chat/components, with the client importing them from there. Rendering is unchanged.Moved: the hover and footer style helpers,
SubRow,SiblingSwitch,Elapsed/ElapsedTimerwith the duration label helpers,HeaderLabelwith its model-name helpers, and the system event header.~/utilskeeps serving the duration helpers through a re-export, so the tool cards that use them are untouched.Supporting changes:
@librechat/clientgainsuseLanguage()so package components can read the active i18next language without depending onreact-i18next;packages/chat/src/theme.cssis a lint-only Tailwind entry (mirroring the library'stheme/theme.css) so the design rules resolve theme utilities such asduration-theme-normalin chat sources;shimmerandtool-status-textjoin the allow list of app stylesheet markers; and the package locale check accepts keys that resolve through_one/_otherplural forms.Type of change
Testing
Tested environments/configuration:
Automated tests:
packages/chat:npx tsc --noEmitclean;npx jest55 suites, 584 tests pass (movedstyles,HeaderLabelanddurationspecs run there now).client:npx tsc --noEmitclean;npx jest src/components src/routes src/Providers522 suites, 6942 tests pass.npx eslinton every touched file clean; design-lint suppressions re-recorded for the three moved files and pruned.Screenshots / recordings
No user-facing change
Risk / compatibility
Client specs that mocked a moved module now mock the
@librechat/chat/componentsexport instead, and specs that stubbed~/hooksuseLocalizealso stub the library'suseLocalizewhere a moved component renders text.Checklist