Skip to content

fix(ship): i18n ship-repo-section literal strings — unblock main CI#104

Merged
prellr merged 1 commit into
mainfrom
fix/ship-repo-section-i18n-lint
May 16, 2026
Merged

fix(ship): i18n ship-repo-section literal strings — unblock main CI#104
prellr merged 1 commit into
mainfrom
fix/ship-repo-section-i18n-lint

Conversation

@prellr
Copy link
Copy Markdown
Owner

@prellr prellr commented May 16, 2026

Problem

main CI has been red since #100 (ROA-264 ship-repo-sections) merged. Every CI run since fails at the @multica/views#lint step:

packages/views/ship/components/ship-repo-section.tsx
  69:35  error  disallow literal string: <span ...>{summary.readyToMerge} ready</span>
  74:30  error  disallow literal string: <span ...>{summary.blocked} blocked</span>
  79:28  error  disallow literal string: <span ...>{summary.draft} draft</span>
  90:75  error  disallow literal string: <p ...>No pull requests</p>
✖ 4 problems (4 errors, 0 warnings)

ship-repo-section.tsx shipped with raw JSX text + hard-coded aria-label strings that trip i18next/no-literal-string. Turbo stops the frontend pipeline at lint, so views typecheck/test never even run — the whole frontend CI job is red.

This is not from the upstream-sync PRs (#91/#92/#93). It's a gap in the ROA-264 feature merge; the sync PRs were green where they touched and are unrelated to this file.

Fix

  • Reuse the existing project_summary.{ready,blocked,draft}_pill keys (already have {{count}} interpolation in both en and zh-Hans) for the count pills.
  • Add a small repo_section block (expand / collapse aria-labels + empty state) to both ship.json locale files so locales/parity.test.ts stays green.
  • Wire useT("ship") and the selector-form t(($) => $.…) calls, matching the pattern used across the other ship components.

No behavioral change — same rendered text, now translatable.

Verification (local, on top of current main)

  • pnpm -F @multica/views run lintexit 0 (was: 4 errors)
  • pnpm -F @multica/views typecheck → clean
  • pnpm -F @multica/views test652/652 pass (includes locales/parity.test.ts, mention-suggestion.test.tsx, ship-release-page.test.tsx)

🤖 Generated with Claude Code

ROA-264 (#100) added ship-repo-section.tsx with raw JSX strings that
trip i18next/no-literal-string — 4 hard eslint errors that turned
@multica/views#lint red on main, failing every CI run since the merge.

- Reuse existing project_summary.{ready,blocked,draft}_pill keys
  (already have {{count}} interpolation in en + zh-Hans).
- Add a repo_section block (expand/collapse aria-labels + empty state)
  to both locale files so the parity test stays green.
- Wire useT("ship") + the selector-form t($ => ...) calls.

Verification:
- pnpm -F @multica/views run lint  -> exit 0 (was: 4 errors)
- pnpm -F @multica/views typecheck -> clean
- @multica/views test              -> 652/652 pass (incl. locale parity)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
@prellr prellr force-pushed the fix/ship-repo-section-i18n-lint branch from c29d921 to 31f6a55 Compare May 16, 2026 22:39
@prellr prellr merged commit 201d313 into main May 16, 2026
2 checks passed
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