Skip to content

Fix roadmap crash with plugin language packs - #26860

Merged
nwparker merged 2 commits into
mainfrom
nwparker/obvious-roadmap-locale-10-09
Oct 10, 2026
Merged

nwparker merged 2 commits into
mainfrom
nwparker/obvious-roadmap-locale-10-09

Conversation

@nwparker

@nwparker nwparker commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​59 $\color{#cf222e}{\Huge{\mathbf{−}}}$​1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​58
Prod 1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​2 $\color{#cf222e}{\Huge{\mathbf{−}}}$​2 0

ELI5

Opening a GitHub Project roadmap with a community language pack could crash the Tasks page. Date labels now use the pack's real locale.

What Changed

The roadmap passed the app's internal translation resource name to the browser's date formatter. Plugin packs use a synthetic name that the formatter rejects. It now calls the existing getIntlLocale() resolver, which returns the pack's supported locale or the existing English fallback. Calendar placement and dates remain unchanged.

Why

This makes roadmap dates follow the same language rule as Orca's other date labels and preserves the user's selected pack locale. A hardcoded fallback would lose that choice. Credit to @OrcaWin for reporting the captured Windows crash and identifying this call site in #25021; this replacement uses focused rendered regressions.

Linked Issue

No dedicated GitHub issue exists for the crash reported in #25021. Related #12533 validates declared plugin locale tags and is a separate PR.

Visual Proof

Both screenshots come from the same hidden Electron renderer fixture using production language-provider, error-boundary and roadmap components with local table data.

Before: selecting the captured Portuguese pack reaches the Tasks error boundary.

before.png

After: the roadmap renders Portuguese month labels and date ranges.

after.png

Testing

  • I manually tested these changes locally
  • Automated tests added/updated, or explained why not below

Baseline render: 2 plugin failures, 11 existing tests passing. Fixed: 44 tests pass across roadmap rendering, locale resolution and calendar geometry. All project typechecks, scoped lint/format, changed-files quality checks and the production renderer build/boot-graph gate pass. The same 44 focused tests also pass on native Windows (Node 24.18.0) and Linux (Node 26.8.1). Hidden Electron proof was captured on macOS; live GitHub/SSH and native Windows/Linux Electron UI remain untested. Full CI passed all five unit shards, relay integration, static/typecheck and both packaging jobs. The ready-event run verified identical-check reuse, evaluated UI/server routing and passed aggregate verification.

Review

Independent adversarial source/test review is clean. Checked active versus resolved language, plugin registration and runtime switching, localized ticks and bar ranges, fallback, UTC placement and bounded formatter caches.

Agent skill upstream boundary

  • Not applicable; no upstream skill-installer material is copied.

Notes

Renderer formatting only. No stored settings, remote messages, credentials, host ownership, platform paths or keyboard behavior change. One existing locale lookup is performed per roadmap render.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • Before/after screenshots attached
  • Self-reviewed for correctness, security and performance
  • Cross-platform, SSH/remote and path/shortcut impact considered
  • Focused tests, all typechecks, changed-files lint/quality, renderer build, full CI and readiness checks pass

@nwparker
nwparker marked this pull request as ready for review October 9, 2026 11:41
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a75e3cf0-2a38-4911-9235-af88d8df050b

📥 Commits

Reviewing files that changed from the base of the PR and between 4845ae8 and 06c26a7.


📒 Files selected for processing (2)
  • src/renderer/src/components/github-project/ProjectRoadmap.test.tsx
  • src/renderer/src/components/github-project/ProjectRoadmap.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.



📝 Walkthrough

Walkthrough

ProjectRoadmap now gets its formatting locale through getIntlLocale(). Tests cover the pt-BR locale and an unsupported locale that falls back to DEFAULT_LOCALE. They verify the plugin resource-language identifier, localized month ticks, and scheduled-bar date-range labels. Test cleanup resets plugin language packs and restores the default renderer UI language.


Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 06c26

The roadmap page now formats dates with a supported locale, which fixes the crash with plugin language packs. No merge-blocking risk was identified.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: preventing roadmap crashes caused by plugin language packs.
Description check Passed The description is complete and aligned with the template. It explains the user impact, technical change, rationale, testing, visual proof, compatibility considerations, and review status. It does not…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.


  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Records the retained adapted contribution from #25021 in replacement PR #26860.

Co-authored-by: m4air <m4air@Mac.localdomain>
@nwparker
nwparker merged commit 48528c0 into main Oct 10, 2026
30 checks passed
@nwparker
nwparker deleted the nwparker/obvious-roadmap-locale-10-09 branch October 10, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant