fix(web): prevent fallback code line number overlap - #2347
Conversation
🦋 Changeset detectedLatest commit: 5045431 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 82fdcbce37
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
Update from our side (cc @yicun — your report and analysis were spot on, thanks!): The root cause is now fixed upstream. We traced it to kimi-code-app took the upgrade path instead of a local workaround: https://github.com/MoonshotAI/kimi-code-app/pull/160 (1.0.7 → 1.0.9-beta.1, all checks green). Suggestion for this PR: rather than shipping the compat CSS, bump
Happy to open the version-bump PR myself, or feel free to repurpose this one — either way works. (Also noting separately: since kimi-web doesn't have the |
|
Closing in favor of #2415 — thank you @yicun, the report and the scoped-CSS analysis were exactly right and led us to the real fix. Why not the local workaround after all:
Your changeset approach and verification notes were spot on — thanks again for pushing this to a proper fix. |
Related Issue
None. The problem is described below.
Problem
When a fenced code block is rendered through
markstream-vue's line-numbered fallback, the line numbers can overlap the code text or drift out of vertical alignment.In
markstream-vue@1.0.7, the standalone fallback<pre>is rendered as the component root, while its scoped layout rules are emitted as descendant selectors. Those rules do not match that root element, so the fallback loses its gutter padding, font, and line height. The line-number gutter keeps its own metrics while the code falls back to different metrics.What changed
<pre>layout: gutter space, typography, wrapping, overflow, border, background, and radius.<code>inherit the container typography and removed child padding, preventing loading fallbacks from reserving the gutter twice.@moonshot-ai/kimi-code.Verification
pnpm --filter @moonshot-ai/kimi-web check:stylepnpm --filter @moonshot-ai/kimi-web typecheckpnpm --filter @moonshot-ai/kimi-web test(34 files, 653 tests)pnpm --filter @moonshot-ai/kimi-web buildChecklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update. (No documentation update is needed because commands, configuration, and user workflows are unchanged.)