Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused mobile markdown bug fix that groups iOS quoted paragraphs for native selection while preserving rich-block boundaries and Android rendering. Production changes are localized and accompanied by targeted regression tests, with no schema, infrastructure, security, billing, default, or static-analysis configuration impact. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughBlockquotes now group consecutive selectable content into chunks on iOS. Other platforms render blockquote children as rich chunks. Later paragraphs in list items receive a list break, spacing, and hanging indents. Tests cover blockquote regions and list paragraph runs. ChangesBlockquote selection and list paragraph rendering
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk is established. The change groups selectable iOS quote content while retaining rich-block boundaries and non-iOS rendering. Android device validation remains unreported, but this alone does not establish a regression. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Dismissing prior approval to re-evaluate 7e32f98
iOS text selection stops at the first paragraph of a blockquote because each paragraph owns a separate native text view. Dragging a selection handle or choosing Select All cannot copy a quoted email with several paragraphs.
On iOS, group consecutive plain blockquote children using the existing document chunker, so paragraphs and lists share one native selection region. The quote border remains on the parent; code, tables, images and nested quotes keep their dedicated rendering. Keep list indentation local to the quote, preserving paragraph boundaries within list items and the alignment of continuation paragraphs. Quoted paragraphs use the same spacing as normal Markdown paragraphs. Android keeps its existing blockquote and list renderer because selectable-text paragraph indents are implemented only on iOS.
Fixes #14288. This follows the maintainer triage and intended scope.
Before / after
On an iPhone 17 Pro simulator running iOS 26.5, using a local development client and isolated test state:
Selection-handle recordings: before (6 seconds), after (14 seconds). Evidence is hosted on the fork; no screenshots or videos are committed.
Verification
vp test run apps/mobile/modules/t3-markdown-text/src/NativeMarkdownBlock.test.tsx apps/mobile/src/lib/nativeMarkdownText.test.ts: 64 tests passed. Regression coverage checks native selection boundaries, rich-block separation, local indentation for quotes inside outer lists, multi-paragraph list items and preservation of the dedicated Android list renderer. Each new regression was confirmed to fail before its corresponding fix and pass afterward.vp run typecheckinapps/mobilepassed.The new blockquote grouping applies only to iOS. Android retains its existing blockquote rendering and was not tested on a device; its renderer path is covered by a regression test. Selection still stops at separate rich blocks. Web and desktop use a different renderer and are unaffected. No protocol, provider or dependency changes.
Model: GPT-6.1-Sol. Harness: Codex in T3 Code.