[Localization Audit] fix: add x:Uid to 9 hard-coded XAML strings (AgentEventsPage, SessionsPage, SkillsPage, VoiceSettingsPage, HubWindow)#536
Conversation
Add x:Uid attributes to controls that had user-facing text without localization support, and add matching resource keys to all 5 locale files (en-us, fr-fr, nl-nl, zh-cn, zh-tw). Fixed pages: - AgentEventsPage: LiveText indicator (invariant — Live is a universal broadcast/status term, added to InvariantOrDeferredResourceKeys) - SessionsPage: page subtitle, empty-state subtitle, Open chat button - SkillsPage: Enabled/Disabled expander headers (keys already existed) - VoiceSettingsPage: PiperPreviewLabel and PreviewVoiceLabel buttons - HubWindow: TitleStatusText (key already existed as HubWindow_Disconnected) Reduces candidate hard-coded XAML strings from 68 to 30. Remaining 30 warnings are all in CronPage.xaml (complex form) and SandboxPage.xaml (long prose description) — deferred as separate work. LocalizationValidationTests: all 10 pass. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs changes before merge. Reviewed May 25, 2026, 2:17 AM ET / 06:17 UTC. Summary Reproducibility: yes. Source inspection shows current main has the Sessions Open Chat tooltip and the PR diff removes it from the same Button while adding x:Uid; a focused app smoke would be hovering that button before and after. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge Security Review findings
Review detailsBest possible solution: Land the localization cleanup after restoring the Sessions Open Chat tooltip and confirming the required build, shared test, and tray test validation. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main has the Sessions Open Chat tooltip and the PR diff removes it from the same Button while adding x:Uid; a focused app smoke would be hovering that button before and after. Is this the best way to solve the issue? No. Adding x:Uid/resource coverage is the right narrow direction, but deleting the existing tooltip is avoidable; the maintainable repair is to preserve or separately localize that tooltip. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against ef6ac8acbab2. Label changesLabel justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
ClawSweeper PR egg 🔥 Warming up: real-behavior proof passed; findings, security review, or rank-up moves are still in progress. Hatch commandComment Hatchability rules:
What is this egg doing here?
|
|
This PR is superseded by #558 which covers these localization changes and more. |
|
Closing as superseded by #558, which covers these localization fixes as part of the broader XAML and code-behind localization pass. |
Fixes 9 hard-coded XAML string warnings found by the localization audit. Reduces candidate warnings from 68 → 30.
Changes
XAML — added
x:UidAgentEventsPage.xamlLiveTextAgentEventsPage_LiveTextSessionsPage.xamlSessionsPage_SubtitleSessionsPage.xamlSessionsPage_EmptySubtitleSessionsPage.xamlSessionsPage_OpenChatSkillsPage.xamlEnabledHeaderTextSkillsPage_Enabled(key existed)SkillsPage.xamlDisabledHeaderTextSkillsPage_Disabled(key existed)VoiceSettingsPage.xamlPiperPreviewLabelVoiceSettingsPage_PiperPreviewLabelVoiceSettingsPage.xamlPreviewVoiceLabelVoiceSettingsPage_PreviewVoiceLabelHubWindow.xamlTitleStatusTextHubWindow_Disconnected(key existed)Resources — new keys added to all 5 locales (en-us, fr-fr, nl-nl, zh-cn, zh-tw)
AgentEventsPage_LiveText.Text— invariant ("Live" is a universal UI term)SessionsPage_Subtitle.TextSessionsPage_EmptySubtitle.TextSessionsPage_OpenChat.ContentVoiceSettingsPage_PiperPreviewLabel.TextVoiceSettingsPage_PreviewVoiceLabel.TextAgentEventsPage_LiveText.Textis added toInvariantOrDeferredResourceKeysin the test — "Live" is an internationally recognised broadcast/status label (same precedent as "Version", "Hardware").Remaining 30 warnings (deferred)
All in
CronPage.xaml(complex form with 57 strings) andSandboxPage.xaml(long prose). Tracked as follow-up localization debt.Validation
Test-Localization.ps1— passes (exit 0, warnings 68 → 30)LocalizationValidationTests— 10/10 passdotnet build tests/OpenClaw.Tray.Tests— succeeded