mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-10 16:23:44 +00:00
|
Some checks are pending
Docker Dev Branch Images Build / build (Dockerfile, lc-dev, node) (push) Waiting to run
Docker Dev Branch Images Build / build (Dockerfile.multi, lc-dev-api, api-build) (push) Waiting to run
GitNexus Index / index (push) Waiting to run
GitNexus Index / post-index (push) Blocked by required conditions
Render assistant markdown as independently memoized top-level blocks instead of a single ReactMarkdown that re-parses and re-highlights the entire message on every streamed token. Once a block's source slice is stable it skips re-parse/re-render; only the final, still-growing block re-parses. - splitMarkdown: split a message into top-level blocks via mdast-util-from-markdown (+ gfm/directive/math extensions) using node source offsets; also report per-block executable-code and artifact index counts. - MarkdownBlocks: render each block memoized on its raw slice, each wrapped in its own CodeBlock/Artifact providers seeded with prefix-summed base indices, so the document-order indices used to match code-execution results stay stable under memoization (verified by OLD-vs-NEW parity tests across direct + streamed renders). - CodeBlockContext/ArtifactContext: add optional baseIndex (default 0, fully backward compatible) so per-block providers continue the running index. - markdownConfig: extract the shared remark/rehype plugins + components map. - deps: declare mdast-util-from-markdown, mdast-util-gfm/math/directive and the micromark gfm/math/directive extensions as direct client dependencies (previously resolved transitively via react-markdown). - Tests: splitter unit tests; index parity + DOM equivalence vs the whole-message renderer; rendering smoke tests. - Bench (MarkdownBlocks.bench.tsx, outside __tests__ so the default jest run skips it): ~88% fewer code-block renders and ~2.3x faster cumulative render across a simulated stream. |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| ActivePanelContext.tsx | ||
| AddedChatContext.tsx | ||
| AgentPanelContext.tsx | ||
| AgentsContext.tsx | ||
| AgentsMapContext.tsx | ||
| AnnouncerContext.tsx | ||
| ArtifactContext.tsx | ||
| ArtifactsContext.tsx | ||
| AssistantsContext.tsx | ||
| AssistantsMapContext.tsx | ||
| BadgeRowContext.tsx | ||
| BookmarkContext.tsx | ||
| ChatContext.tsx | ||
| ChatFormContext.tsx | ||
| CodeBlockContext.tsx | ||
| CustomFormContext.tsx | ||
| DragDropContext.tsx | ||
| EditorContext.tsx | ||
| FileMapContext.tsx | ||
| index.ts | ||
| MessageContext.tsx | ||
| MessagesViewContext.tsx | ||
| PromptGroupsContext.tsx | ||
| SearchContext.tsx | ||
| SetConvoContext.tsx | ||
| ShareContext.tsx | ||
| ToolCallsMapContext.tsx | ||