fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(web): prevent numbered list markers from being clipped - #7339

Closed
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter
Closed

fix(web): prevent numbered list markers from being clipped#7339
G-R3 wants to merge 1 commit into
pingdotgg:mainfrom
G-R3:list-marker-gutter

Conversation

@G-R3

@G-R3G-R3 commented Aug 17, 2026

Copy link
Copy Markdown

Collapsed user messages could clip the leading digit from two-digit ordered list markers because the default marker gutter was too narrow.

Widen the gutter based on the largest list marker, starting with two-digit lists. Add regression coverage for a collapsed list numbered 10 through 19.

BeforeAfter
Screenshot 2026-08-17 at 5 32 21 PMScreenshot 2026-08-17 at 5 32 55 PM

Testing

  • vp test run apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp lint apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx
  • vp fmt apps/web/src/components/ChatMarkdown.tsx apps/web/src/components/ChatMarkdown.test.tsx apps/web/src/components/chat/MessagesTimeline.test.tsx apps/web/src/index.css --check

Built with GPT-5.6 Sol using the Codex harness in T3 Code.


Note

Low Risk
Localized chat markdown list styling and tests; no auth, data, or API changes.

Overview
Fixes clipped leading digits on two-digit ordered list markers (e.g. items 10–19), especially in collapsed long user messages where overflow hides markers painted outside the default gutter.

orderedListGutterStyle now applies inline --list-gutter when the widest marker is two or more characters (threshold was three+). Single-digit lists still use the default 1.25rem gutter; wider lists keep scaling by marker width plus one ch.

Regression tests cover the helper and a collapsed timeline message with start="10" and --list-gutter:3ch. CSS comments in index.css were updated to describe multi-digit widening.

Reviewed by Cursor Bugbot for commit 7dd06e1. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix clipped numbered list markers by widening gutter for multi-character markers

  • Changes the threshold in ChatMarkdown.orderedListGutterStyle from markerWidth <= 2 to markerWidth <= 1, so lists with markers wider than one character (e.g. two-digit items or negative starts) get a wider --list-gutter (3ch for two-digit markers).
  • Updates tests in ChatMarkdown.test.tsx and MessagesTimeline.test.tsx to expect widened gutters for multi-character markers.
  • Behavioral Change: lists starting at 10+ or with negative two-digit starts now render with --list-gutter: 3ch instead of the default, which may shift list indentation in existing content.

Macroscope summarized 7dd06e1.

@coderabbitai

coderabbitaiBot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 602a311e-1152-4b32-84ef-aa0dcda6fed4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Aug 17, 2026
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 17, 2026
@macroscopeapp

macroscopeappBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7dd06e1

Macroscope's review found this PR approvable — This is a small, self-contained web rendering fix that widens ordered-list gutters only for multi-character markers, with focused regression coverage. Other changes are comments, tests, or PR asset images, and there are no broader API, data, security, or deployment effects.

You can add or adjust custom eligibility rules. Learn more.

@G-R3
G-R3force-pushed the list-marker-gutter branch from 4700d7f to de532f4CompareAugust 17, 2026 21:44
@G-R3
G-R3force-pushed the list-marker-gutter branch from de532f4 to 7dd06e1CompareAugust 26, 2026 01:14
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 26, 2026 01:14

Dismissing prior approval to re-evaluate 7dd06e1

@shivamhwp

Copy link
Copy Markdown
Collaborator

gpt-5.6-sol on behalf of shivamhwp.

Thank you for working on clipped numbered-list markers. We are closing this PR because #6527 and #7856 have already landed the complete fix on main. ChatMarkdown now reserves width for longer ordered-list markers and handles the wider edge cases this branch was trying to address.

The current implementation covers the bug, so this older patch is no longer needed.

@G-R3

G-R3 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Hey @shivamhwp, I retested this against the latest main. The bug remains for markers from 10 through 99.

#6527 fixes 100+ markers, while #7856 handles other wide-marker edge cases. Both retain the two-character threshold. This PR completes the general fix by applying the existing dynamic gutter sizing to two-character markers.

On main, the marker is 22.35px wide but has only 20px of gutter inside an overflow-hidden message, causing the clipping. This PR increases the gutter to 26.45px.

The attached video shows the difference.

t3code-list-marker-bug.mp4

disclaimer: I asked GPT 5.6 sol to record this video [using t3code ofc :)]

@shivamhwp

Copy link
Copy Markdown
Collaborator

GPT-5.6 Sol on behalf of @shivamhwp.

Thanks for following up. We retested this and confirmed you were right. The clipping still exists for markers 10 through 99 on current main, and your change fixes it.

Sorry, we closed this based on the incorrect assumption that #6527 and #7856 already covered this case.

I tried to reopen #7339, but GitHub will not allow it because the list-marker-gutter branch was replaced with a newer version while the PR was closed. This is a GitHub limitation, not a problem with your code.

Could you open a new PR from the current list-marker-gutter branch?

We tested the current branch against current main. It merges cleanly, and the focused tests, lint, typecheck, build, and browser check all passed.

@G-R3

G-R3 commented Sep 1, 2026

Copy link
Copy Markdown
Author

@shivamhwp TY for taking a look and confirming! I opened a replacement PR at #9101 :)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S10-29 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@G-R3@shivamhwp