Repository navigation
fix: hold pending streaming markers and preserve empty lists - #633
minwookshin wants to merge 2 commits into
Conversation
|
@minwookshin is attempting to deploy a commit to the Vercel Team on Vercel. A member of the Team first needs to authorize it. |
|
Fixed pending-marker handling after closed fences and inside unfinished link/image destinations. All 535 remend tests, the build, and the focused lint check pass. |
Use the shared code-region scanner for pending markers and preserve empty-list spacing through both normalization passes. Validated package builds, lint, and 1,949 tests on the current main. Co-Authored-By: OpenAI Codex <noreply@openai.com>
2fb0e64 to
2fbcf9a
Compare
|
Updated against main and reused the shared code scanner; fixed the empty-list regression from the final whitespace pass. Package builds, lint, and all 1,949 tests pass; full TypeScript checks match main’s existing diagnostics. |
|
Resolved the main conflict and kept the new optional-property types. All 2,017 tests, six package builds, lint and exact-optional type checks pass locally. Full tsc diagnostics match main (1 in remend, 210 in Streamdown). The signed commit matches the tested tree. Could a maintainer approve the pending CI workflows and Vercel preview? |
Description
Incomplete inline delimiters such as
my name is **can flash as literal text before the next token. Trimming whitespace from an empty list marker can also turn it into literal text or a setext underline.Type of Change
Related Issues
Addresses #539.
Changes Made
Add opt-in
remend={{ pendingInlineMarkers: true }}. Streamdown enables buffering only whileisAnimatingis true, so stopping or completing a stream restores legitimate trailing literals. Preserve list-marker whitespace and keep setext protection. Code, math, URLs, escaped syntax and complete markup retain their existing behavior; fenced-code handling uses the shared scanner, including list and blockquote containers.Testing
After updating against main (
7dcabc6) on October 29, all six package suites pass: 2,017 tests, including 596 remend and 1,312 Streamdown tests. All six package builds and repository-wide lint/format checks pass. The exact-optional-property type checks also pass. The 44 focused pending-marker cases cover empty list markers and leaving list/blockquote code fences. Earlier browser verification covered pending bold, the first content token, two list items, and flushing finalliteral **.The top-level
check-typestask currently executes no checks, so both affected packages were also checked directly withtsc. Those checks report the same diagnostics as current main with identical dependencies (1 in remend and 210 in Streamdown); no additional diagnostics were introduced. The final GitHub-verified commit has the exact same tree as the locally tested changes.The rendering regressions exercise successive updates of the same mounted component, including the transition from streaming to finished.
Checklist
Additional Notes
Buffering is opt-in; existing consumers keep their inline-delimiter behavior. The option is not inferred from input changing, because non-streaming consumers must retain literal trailing syntax.