Skip to content

fix(apps): store.updates.available plural forms use %lld (base red from #30288) - #30493

Merged
teamleaderleo merged 2 commits into
feat-cmux-nextfrom
lane/fix-ar-plural-updates
Nov 1, 2026
Merged

teamleaderleo merged 2 commits into
feat-cmux-nextfrom
lane/fix-ar-plural-updates

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Base red from #30288 (e6bfd26). Building the CmuxNext package fails on its string catalog:

CmuxNext_CmuxNextApps.bundle/Localizable.xcstrings: error: Plural variation requires referencing the number in the string. ... (ar: store.updates.available)

so every package-test-lane.sh Swift suite run on a base at or after e6bfd26 fails before any test runs (seen in fleet step 894810ef811a93fabb693cc7, at a commit whose only changes are Home avatar files). That hides the signal of every Swift suite.

Xcode's catalog compiler wants every plural form to reference an integer specifier. %@ doesn't count, so the error names whichever language it checks first: ar in one run, bs in the next.

Fix:

  • every plural form of store.updates.available, in every language, uses %lld instead of %@. The Arabic zero, one and two forms, which had no specifier at all, end in (%lld).
  • formatString (webviews/src/pages/shared/i18n.ts), the Apps page's formatter, fills %d, %ld and %lld (and %N$lld) the same way it fills %@. A new i18n.test.ts case covers it.

Observed / Not run

  • Observed: bun test src/pages/shared/i18n.test.ts src/pages/apps/UpdatesView.test.tsx passes (7 tests). gen-strings.mjs apps writes the table with no errors. scripts/web-lint.sh passes. After this change, every form of the key contains %lld (checked by script).
  • Pending: the fleet package-test-lane.sh build at this head. Its result goes in a comment.

Risk: low (one string catalog).

Changelog

none

Agent session: agent session

🤖 Generated with Claude Code

…ence the number (base red from #30288)

Xcode's string catalog compiler refuses a plural variation that doesn't reference
its number ("Plural variation requires referencing the number in the string",
ar: store.updates.available), so the CmuxNext package test build failed at
e6bfd26 and every Swift suite run after it went red before any test ran.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3a05ae6e302bba4a7be8

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (claude-sonnet-5-5): SHIP at 3d32fe3

… page formatter now fills

Xcode's catalog compiler wants an integer specifier in every plural variation, not
%@: the package build failed on ar, then on bs, for every language of the key.
formatString substitutes %d, %ld and %lld (and %N$lld) like %@.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-3a05ae6e302bba4a7be8
@teamleaderleo teamleaderleo changed the title fix(apps): Arabic store.updates.available plural forms reference the number (base red from #30288) fix(apps): store.updates.available plural forms use %lld (base red from #30288) Nov 1, 2026

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (claude-sonnet-5-5): SHIP at 1f7c1d2

@teamleaderleo
teamleaderleo merged commit 8b99db8 into feat-cmux-next Nov 1, 2026
90 of 115 checks passed
@teamleaderleo
teamleaderleo deleted the lane/fix-ar-plural-updates branch November 1, 2026 09:13
teamleaderleo added a commit that referenced this pull request Nov 1, 2026
…p the store.updates.available fix, #30493)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Nov 1, 2026
…store.updates.available fix, #30493)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
@cmux-bot

cmux-bot Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Not verified: macOS jobs did not run: compile and app tests were skipped on 1f7c1d28b2; ci-status is green without them.

CI passes on 1f7c1d28b2 (run 41287207504 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

Shipped in:

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 1f7c1d28 Deployed Nov 1, 2026 by teamleaderleo via wait for same-key tree publisher #94829
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant