Repository navigation
Conversation
Fails on main: mobile draws the NP monogram for the server-assigned message-square-dashed icon. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The server gives the No project folder the Lucide icon message-square-dashed. Mobile does not bundle Lucide, so it drew the project's initials. Map that icon to the native square.dashed symbol (Tabler IconSquareDashed on Android), tinted in the icon's color. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrow mobile rendering fix for the server-assigned No project icon, with native iOS/Android mappings and tests covering both the new case and existing fallbacks. It does not alter contracts, product configuration, or unrelated runtime paths. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe mobile project icon resolver now returns local paths for the supported ChangesMobile project icons
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Low Merge Risk: ⚪ Minimal · up to The resolver tests cover the supported icon and initials fallback, and the SVG tint contract is supported on both platforms. Android has not been simulator-tested, but no concrete issue currently prevents merging. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change keeps SVG geometry local and does not introduce new privileges or arbitrary SVG content. However, someone able to modify project metadata can select a valid icon name that repeatedly breaks mobile icon rendering. Existing screen error boundaries limit some propagation, but complete containment was not established. Retained concerns
Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
square.dashed has no speech-bubble tail, so mobile still did not match desktop. Mobile now carries the stroke paths for message-square-dashed and draws them with react-native-svg, giving the same shape on iOS and Android. This drops the SF Symbol and Tabler mapping. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Problem
Fixes #16346.
On mobile, the "No project" folder shows the initials "NP" in a gray tile. Desktop and web show a gray dashed chat bubble. The server assigns this folder the Lucide icon
message-square-dashed. Mobile does not bundle Lucide, soresolveProjectIconGlyphdraws the project's initials for every Lucide icon.Change
apps/mobile/src/lib/projectIcon.tscarries the stroke paths formessage-square-dashed, copied from lucide-react. A Lucide icon with paths resolves to alucideglyph. Lucide icons without paths still fall back to initials, as before.ProjectFavicon.tsxdraws those paths withreact-native-svg, using Lucide's 24×24 viewBox and stroke settings, so the shape matches desktop on iOS and Android. The stroke takes the icon's color through a newaccent-*class per icon color, so a user who recolors "No project" sees that color on mobile too.Neither SF Symbols nor Tabler has a dashed chat bubble. An earlier commit used
square.dashed, which lost the bubble's tail, so this draws the real shape instead.Scope and approval
This is a small fix for an obvious bug, reported in #16346. It changes one fallback in mobile's icon resolver and touches no other client or contract. Icons that users pick keep their current behavior.
Verification
apps/mobile/src/lib/projectIcon.test.tscovers the "No project" icon and the initials fallback for other Lucide icons. The first commit adds the test alone, and it fails on main withexpected { kind: 'monogram', text: 'NP', …(1) }.tsc --noEmitinapps/mobileis clean.vp fmtandvp linton the changed files are clean, apart from an existingset-state-in-effectwarning inProjectFavicon.tsx.Before/after simulator screenshots will be attached in a comment. The CLI cannot upload images to this repository.
Not checked: Android. It renders through the same
react-native-svgpath, but I did not run an emulator.Investigated and written by Claude Opus 5.5 in Claude Code, running inside T3 Code.
🤖 Generated with Claude Code