Skip to content

fix(webui): complete i18n coverage for exposed routes - #7052

Merged
think-in-universe merged 4 commits into
mainfrom
issue-7051-webui-i18n-coverage
Aug 4, 2026
Merged

think-in-universe merged 4 commits into
mainfrom
issue-7051-webui-i18n-coverage

Conversation

@italic-jinxin

Copy link
Copy Markdown
Contributor

Summary

  • Completes non-English locale coverage for exposed WebUI routes, chat artifact downloads, and generic channel pairing flows.
  • Localizes the Extensions → Tools navigation, custom MCP registration workflow, validation messages, status copy, and empty states across all 10 non-English locale packs.
  • Adds locale contract tests that enforce complete English-key coverage, interpolation-parameter parity, and localization of exposed extension workflow copy.
  • Aligns previously copied MCP strings with the current credential-detection and post-registration setup flow.

Change Type

  • Bug fix
  • New feature
  • Refactor
  • Documentation
  • CI/Infrastructure
  • Security
  • Dependencies

Linked Issue

Closes #7051

Validation

  • pnpm exec vitest run src/lib/i18n.test.ts — 25 tests passed
  • env TZ=UTC pnpm test — 1,044 tests passed
  • pnpm typecheck
  • pnpm lint:conventions
  • pnpm build — production build and bundle budgets passed
  • git diff --check
  • cargo test -p ironclaw_webui --all-features — compiled successfully; 188 tests passed and 21 OAuth/mock HTTP tests were blocked by the local environment returning 502 Bad Gateway for loopback requests

Test Strategy

User behavior:

Users selecting a non-English locale see localized navigation, chat artifact download actions, channel pairing instructions, and custom MCP registration copy instead of English fallback text.

Risk areas:

  • Model behavior
  • Browser
  • Side effect
  • Persistence
  • Security or permissions
  • External provider
  • Cross-component behavior

Tests added or updated:

  • Unit or contract: Added full locale key parity, interpolation-placeholder parity, and exposed Extensions workflow localization assertions.
  • Reborn integration: Not applicable: no product workflow or runtime behavior changed.
  • Recorded fixture: Not applicable: no model behavior changed.
  • Browser E2E: Not applicable: only static locale data changed; routing, state, and browser interaction behavior are unchanged.
  • Backend or runtime: Not applicable: no backend or runtime behavior changed.
  • Live canary: Not applicable: no model or external-provider behavior changed.

What the tests prove:

Every supported non-English locale covers the full English key set, preserves all interpolation parameters, and does not retain English fallback copy for exposed Extensions/MCP workflow strings.

Commands run:

  • pnpm exec vitest run src/lib/i18n.test.ts
  • pnpm typecheck
  • pnpm lint:conventions
  • env TZ=UTC pnpm test
  • pnpm build
  • git diff --check
  • cargo test -p ironclaw_webui --all-features

Security Impact

None. This changes static presentation strings and locale contract tests only.

Reborn Trust-Boundary Checklist

N/A: no trust boundaries, authorization, persistence, runtime execution, network behavior, or public contracts changed.

Database Impact

None. No schema, migration, or persistence behavior changes.

Blast Radius

Limited to WebUI locale packs and i18n contract tests. English copy and application behavior are unchanged.

Rollback Plan

Revert this PR to restore the previous locale packs and selected-key i18n tests.

Review Follow-Through

A native-speaker review of the new translations would be useful but is not required for functional correctness. No known technical follow-up remains.


Review track: A

@italic-jinxin italic-jinxin added size: XL 500+ changed lines risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Aug 3, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@railway-app

railway-app Bot commented Aug 3, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the ironclaw-pr-7052 environment in ironclaw-ci-preview

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Aug 3, 2026 at 1:21 pm

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7052 August 3, 2026 11:37 Destroyed
@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ee3dd7a1-ee55-4c52-9f51-f2488244c2fc

📥 Commits

Reviewing files that changed from the base of the PR and between eb3b535 and 281839d.

📒 Files selected for processing (1)
  • crates/ironclaw_webui/frontend/src/lib/i18n.test.ts

📝 Walkthrough

Summary by CodeRabbit

  • Localization
    • Expanded Arabic, German, Spanish, French, Hindi, Japanese, Korean, Brazilian Portuguese, Ukrainian, and Simplified Chinese translations.
    • Localized extension and tool labels, empty states, custom server setup, authentication, web pairing, error messages, and artifact download actions.
    • Improved translated guidance for validation, registration results, connection instructions, expiration, and disconnection states.
  • Tests
    • Added checks for translation completeness, interpolation consistency, and localization of user-facing workflow text.

Walkthrough

The WebUI localization packs now translate extension, custom MCP, artifact download, and web pairing strings across ten non-English locales. Tests verify key completeness, interpolation parity, and extension workflow localization.

Changes

WebUI localization

Layer / File(s) Summary
Localized extension labels and artifact actions
crates/ironclaw_webui/frontend/src/i18n/*.ts
Translates extension and tool labels, empty states, and run/thread artifact download actions across ten locales.
Custom MCP registration localization
crates/ironclaw_webui/frontend/src/i18n/*.ts
Adds translations for registration steps, fields, validation, authentication, results, and setup guidance.
Web pairing localization
crates/ironclaw_webui/frontend/src/i18n/*.ts
Adds translations for pairing instructions, QR and link actions, expiration, renewal, disconnect, and failure states.
Locale parity and translation tests
crates/ironclaw_webui/frontend/src/lib/i18n.test.ts
Checks complete locale key coverage, interpolation parity, and localized extension workflow strings.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: benkurrek, think-in-universe

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title follows Conventional Commits style and accurately summarizes the i18n coverage changes.
Description check ✅ Passed The description covers the required sections, validation results, test strategy, security, database, blast radius, rollback, and review follow-through.
Linked Issues check ✅ Passed The changes satisfy the linked issue by covering 15 keys, translating Extensions/MCP strings across 10 locales, preserving placeholders, and adding parity tests [#7051].
Out of Scope Changes check ✅ Passed All changes are limited to locale data and i18n contract tests required by the linked issue.

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.

@italic-jinxin italic-jinxin added the skip-regression-check Bypass regression test CI gate (tests exist but not in tests/ dir) label Aug 3, 2026
@ironloopai

ironloopai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

🔎 Review · PR #7052

🟢 Completed · Review submitted

Submitted review →

Reviewed the complete trusted base-to-head comparison. The ten locale packs consistently add or update the intended WebUI translations, preserve interpolation parameters, and share the same changed key set. The expanded locale contract tests are appropriate. No concrete actionable findings were identified.

Automatic · PR opened + CI failed · attempt 1 of 3 · completed in 2m 17s

Run details
  • Repository: nearai/ironclaw
  • Base: main at 4b71aaa
  • Head: issue-7051-webui-i18n-coverage at c4dca51
  • Created: Aug 3, 2026, 11:42 AM UTC
  • Updated: Aug 3, 2026, 11:44 AM UTC
  • Run: 41d099c1-9768-40a2-94c9-7f439759b6ed
  • Latest attempt: 1 · Completed · 31ffce2d-5445-4ff1-937c-4441a2206300

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/ironclaw_webui/frontend/src/lib/i18n.test.ts`:
- Around line 118-142: Extend the extensionWorkflowKeys selection in the
“non-English locale packs localize exposed extension workflow copy” test to
include chat.downloadRunArtifact, chat.downloadThreadArtifact, and every key
starting with pairing.web., while preserving the existing technicalTerms
exclusions and localization assertions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0e4315c8-6b30-487a-a23f-50f9180d0b32

📥 Commits

Reviewing files that changed from the base of the PR and between 4b71aaa and c4dca51.

📒 Files selected for processing (11)
  • crates/ironclaw_webui/frontend/src/i18n/ar.ts
  • crates/ironclaw_webui/frontend/src/i18n/de.ts
  • crates/ironclaw_webui/frontend/src/i18n/es.ts
  • crates/ironclaw_webui/frontend/src/i18n/fr.ts
  • crates/ironclaw_webui/frontend/src/i18n/hi.ts
  • crates/ironclaw_webui/frontend/src/i18n/ja.ts
  • crates/ironclaw_webui/frontend/src/i18n/ko.ts
  • crates/ironclaw_webui/frontend/src/i18n/pt-BR.ts
  • crates/ironclaw_webui/frontend/src/i18n/uk.ts
  • crates/ironclaw_webui/frontend/src/i18n/zh-CN.ts
  • crates/ironclaw_webui/frontend/src/lib/i18n.test.ts

Comment thread crates/ironclaw_webui/frontend/src/lib/i18n.test.ts Outdated

@ironloopai ironloopai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Review complete · PR #7052

✅ No actionable findings

Reviewed the complete trusted base-to-head comparison. The ten locale packs consistently add or update the intended WebUI translations, preserve interpolation parameters, and share the same changed key set. The expanded locale contract tests are appropriate. No concrete actionable findings were identified.

Validation and technical details
  • Inspected all 11 changed files and surrounding i18n loader, interpolation, and affected UI call sites.
  • Confirmed every non-English locale changes the same key set.
  • pnpm exec vitest run src/lib/i18n.test.ts: 25 tests passed.
  • pnpm typecheck: passed; environment warned that Node 24.18.0 differs from the supported Node 22 line.
  • git diff --check refs/ironloop/base..refs/ironloop/head: passed.
  • Base: main
  • Head: issue-7051-webui-i18n-coverage at c4dca51
  • Run: 41d099c1-9768-40a2-94c9-7f439759b6ed

@italic-jinxin

Copy link
Copy Markdown
Contributor Author

@claude review

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7052 August 3, 2026 12:11 Destroyed
@italic-jinxin italic-jinxin removed the skip-regression-check Bypass regression test CI gate (tests exist but not in tests/ dir) label Aug 3, 2026
@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7052 August 3, 2026 12:41 Destroyed
@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7052 August 3, 2026 13:11 Destroyed
@think-in-universe
think-in-universe added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit d06f804 Aug 4, 2026
39 checks passed
@think-in-universe
think-in-universe deleted the issue-7051-webui-i18n-coverage branch August 4, 2026 16:06
@italic-jinxin italic-jinxin self-assigned this Aug 5, 2026
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026
* fix(webui): complete i18n coverage for exposed flows

* test(webui): enforce translations for exposed workflows

* test(webui): make i18n regression assertion detectable

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-7052 — 2c129b43 Deployed Aug 3, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: low Changes to docs, tests, or low-risk modules size: XL 500+ changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[WebUI] Complete i18n coverage for exposed routes and extension flows

2 participants