Skip to content

refactor: complete LocaleSmith rename and compatibility migration - #2

Merged
DZXH-TX merged 2 commits into
mainfrom
codex/docs-readme-license
Aug 10, 2026
Merged

refactor: complete LocaleSmith rename and compatibility migration#2
DZXH-TX merged 2 commits into
mainfrom
codex/docs-readme-license

Conversation

@DZXH-TX

@DZXH-TX DZXH-TX commented Aug 10, 2026

Copy link
Copy Markdown
Owner

概要

完成从 JaxI18n 到 LocaleSmith 的全仓库品牌、技术标识、原生 ABI、打包身份与兼容迁移改造,并修复 WinUI 三种主题下导航窗格颜色不同步的问题。

本 PR 共包含 227 个文件变更(2497 行新增、812 行删除)。旧名称只保留在读取旧数据、旧凭据和旧格式所必需的兼容路径及其测试中。

更新项

1. 产品品牌与显示名称

  • 中文显示名统一为 LocaleSmith | 译匠
  • 英文显示名统一为 LocaleSmith
  • 同步更新窗口标题、程序集元数据、MSIX 双语资源、欢迎文本、帮助文本和无障碍文本。
  • MCP 对外服务器名改为 localesmith-mcp,标题改为 LocaleSmith Local Tools
  • npm 工作区包名改为 @localesmith/workspace

2. .NET 项目与命名空间

  • JaxI18n.slnx 重命名为 LocaleSmith.slnx
  • App、Application、Archive、Core、Infrastructure、Mcp、McpHost、NativeInterop、Presentation 九个源码项目全部改为 LocaleSmith.*
  • 九个测试/探针项目同步改名。
  • 同步更新项目目录、csproj、AssemblyName、RootNamespace、namespace、using、XAML x:Class、项目引用、InternalsVisibleTo、发布配置和原生 DLL 复制规则。

3. Rust、DLL 与 C ABI

  • native/jax_i18n_core 重命名为 native/localesmith_core
  • Rust crate 和 DLL 改为 localesmith_core
  • 头文件改为 localesmith_core.h
  • C ABI 从 jax_i18n_* 全部迁移到 localesmith_*
  • C 类型、错误码和宏同步迁移到 localesmith_error_codeLOCALESMITH_*
  • .NET P/Invoke 入口和动态库解析全部改用 localesmith_core.dll

4. MSIX 与 SignPath

  • 打包目录改为 packaging/LocaleSmith.Package,WAP 工程改为 LocaleSmith.Package.wapproj
  • Manifest 测试身份为 LocaleSmith.Desktop,版本为 0.1.0.2,架构为 x64。
  • Publisher 与 SignPath CR Tech 证书主题保持一致。
  • 保留 Full Trust 与 Windows App Runtime 依赖。
  • 项目内签名继续关闭,由 SignPath 在构建后执行 Authenticode 签名。
  • 已验证双语 PRI、payload、签名、时间戳、本机安装、升级和启动。
  • 签名 MSIX、APPX、APPXSYM、证书及本地 SignPath 配置均未提交。
  • 上架微软商店前仍需替换为 Partner Center 分配的正式 Identity/Publisher。

5. 旧配置、凭据和加密数据迁移

  • 新数据根目录改为 %LOCALAPPDATA%\LocaleSmith
  • 动态发现当前用户注册的旧 JaxI18n.Desktop PFN,不硬编码 Publisher hash。
  • 优先读取旧 MSIX Packages\<PFN>\LocalCache\Local\JaxI18n,保留 unpackaged %LOCALAPPDATA%\JaxI18n fallback。
  • 对候选路径进行确定性排序、去重、containment 校验,并拒绝路径遍历和重解析点。
  • 仅在新配置不存在时迁移旧 settings.jaxcfg,绝不覆盖现有 settings.localesmithcfg
  • 新配置 purpose 改为 LocaleSmith.ApplicationSettings.v1,AAD 改为 LocaleSmith.Config;旧 purpose/AAD 仅用于兼容解密。
  • 增加原子 SaveIfAbsentAsync,降低多实例迁移覆盖风险。
  • 凭据前缀改为 LocaleSmith;缺失时从旧 JaxI18n 存储懒迁移。
  • 增加跨进程锁、并发保护和 tombstone,防止新凭据被旧值覆盖或删除后复活。
  • 敏感字符和哈希临时缓冲在使用后清零。
  • Translation Memory 使用 localesmith.translation-memory/v2,可从旧 schema/槽位读取并原子复制,旧数据不删除。
  • 旧默认路径仅在精确匹配时迁移:Documents\JaxI18nDocuments\LocaleSmithTemp\JaxI18n\SandboxTemp\LocaleSmith\Sandbox
  • 用户自定义目录即使包含 JaxI18n 字样也保持不变。

6. System / Light / Dark 主题修复

  • 根容器和 NavigationView 同步应用 RequestedTheme。
  • 移除会冻结上一个主题颜色的 NavigationView Pane 画刷覆盖,恢复 WinUI ThemeResource 语义颜色。
  • 标题栏同步改为低优先级 Dispatcher 回调,确保读取主题切换后的资源。
  • 合并重复同步请求,并在窗口关闭后取消主题订阅,避免已关闭 AppWindow 的延迟访问。

7. 测试与文档

  • 新增旧 AppData 定位、配置迁移、Translation Memory 迁移和凭据迁移测试。
  • 扩充 AAD 兼容、非覆盖保存、并发初始化、PFN 排序、fallback、越界/重解析点防护、tombstone、敏感缓冲清零及自定义路径保持测试。
  • README 更新品牌、Logo 路径、目录结构、构建命令、Native 路径、MSIX 0.1.0.2 与 Partner Center 注意事项。
  • LICENSE 沿用当前分支已有 Apache-2.0 文件,本提交没有修改许可证。

根因

  • 主题问题源于运行时把旧主题的具体颜色复制进 NavigationView 资源,主题切换后该画刷不再随 ThemeResource 更新。
  • 旧配置迁移问题源于已打包应用的数据位于旧 Package Family Name 的 LocalCache 虚拟化边界,而原逻辑只检查全局 LocalAppData。

验证

  • dotnet build LocaleSmith.slnx -c Release --no-restore:0 警告、0 错误。
  • dotnet test LocaleSmith.slnx -c Release --no-build --no-restore:282/282 通过。
  • Rust fmt、clippy(-D warnings)、release build:通过。
  • Rust tests:26/26 通过。
  • x64 MSIX 0.1.0.2:构建成功;包内无旧 JaxI18n payload 名称。
  • SignPath Authenticode:Valid,带 DigiCert 时间戳。
  • 本机升级安装:Package Status = Ok;应用进程响应正常,未产生新的 Application Error。

安全与仓库卫生

  • 未提交 API token、凭据 XML、证书、私钥、用户配置或签名二进制。
  • bin/obj/、Rust target/AppPackages/ 和 SignPath 外部目录均保持忽略。
  • 提交由已配置的 GPG 密钥签名。

用户影响

  • 新安装和升级后的 UI、项目结构、Native DLL 与对外技术标识统一为 LocaleSmith。
  • 已有用户可继续读取旧配置、凭据和翻译记忆;迁移保留旧数据并避免覆盖当前数据。
  • 三种主题下导航区域、内容区和标题栏保持一致。

@DZXH-TX
DZXH-TX marked this pull request as ready for review August 10, 2026 14:12
Copilot AI balanced review requested due to automatic review settings August 10, 2026 14:12
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Fixed
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Fixed
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Fixed
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Fixed
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Fixed
return true;
}
catch (IOException) when (!overwrite && File.Exists(_filePath))
{
Comment thread src/LocaleSmith.Infrastructure/Security/SecurityOperationLock.cs Fixed
Comment thread src/LocaleSmith.Infrastructure/Security/SecurityOperationLock.cs Fixed

Copilot AI 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.

Pull request overview

Completes the repository-wide JaxI18n-to-LocaleSmith rename, adds backward-compatible state migration, updates native/package identities, and fixes WinUI theme synchronization.

Changes:

  • Renames .NET, Rust, ABI, MSIX, MCP, and workspace identities.
  • Migrates legacy configuration, credentials, paths, and translation memory.
  • Synchronizes WinUI navigation and title-bar themes.

Reviewed changes

Copilot reviewed 210 out of 227 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/LocaleSmith.Presentation.Tests/OutputPathAndSettingsTests.cs Updates namespaces and paths.
tests/LocaleSmith.Presentation.Tests/OnboardingAndShellTests.cs Updates test namespaces.
tests/LocaleSmith.Presentation.Tests/ModelSourcesViewModelTests.cs Updates test namespaces.
tests/LocaleSmith.Presentation.Tests/LocaleSmith.Presentation.Tests.csproj Updates project reference.
tests/LocaleSmith.Presentation.Tests/DashboardViewModelTests.cs Updates test namespaces.
tests/LocaleSmith.Presentation.Tests/CliConfirmationViewModelTests.cs Updates namespaces and audit path.
tests/LocaleSmith.Presentation.Tests/AssistantViewModelTests.cs Updates test namespaces.
tests/LocaleSmith.NativeInterop.Tests/NativeCoreClientTests.cs Renames native test namespace/path.
tests/LocaleSmith.NativeInterop.Tests/LocaleSmith.NativeInterop.Tests.csproj Updates native project and DLL.
tests/LocaleSmith.Mcp.Tests/McpStdioServerTests.cs Updates MCP test namespaces.
tests/LocaleSmith.Mcp.Tests/McpModelToolExecutorTests.cs Updates MCP test namespaces.
tests/LocaleSmith.Mcp.Tests/LocaleSmith.Mcp.Tests.csproj Updates MCP references.
tests/LocaleSmith.Infrastructure.Tests/TerminalEnvironmentTests.cs Updates infrastructure namespaces.
tests/LocaleSmith.Infrastructure.Tests/TemporaryDirectory.cs Renames test temp path.
tests/LocaleSmith.Infrastructure.Tests/SafeCliTests.cs Updates CLI identity assertions.
tests/LocaleSmith.Infrastructure.Tests/ModelAdapterTests.cs Updates model namespaces.
tests/LocaleSmith.Infrastructure.Tests/MigratingSecretStoreTests.cs Tests credential migration and tombstones.
tests/LocaleSmith.Infrastructure.Tests/LocaleSmith.Infrastructure.Tests.csproj Updates infrastructure references.
tests/LocaleSmith.Infrastructure.Tests/EncryptedConfigurationStoreTests.cs Tests non-overwrite and legacy AAD.
tests/LocaleSmith.Core.Tests/ModelToolContractTests.cs Updates core test namespace.
tests/LocaleSmith.Core.Tests/ModelServiceRegistryTests.cs Updates core test namespace.
tests/LocaleSmith.Core.Tests/ModelProviderPresetTests.cs Updates core test namespace.
tests/LocaleSmith.Core.Tests/LocaleSmith.Core.Tests.csproj Updates core reference.
tests/LocaleSmith.Core.Tests/IncrementalTranslationPlannerTests.cs Updates core test namespace.
tests/LocaleSmith.Core.Tests/CliCommandTests.cs Updates core test namespace.
tests/LocaleSmith.CliProbe/Program.cs Renames probe namespace.
tests/LocaleSmith.CliProbe/LocaleSmith.CliProbe.csproj Renames probe assembly.
tests/LocaleSmith.Archive.Tests/TestArchiveScanner.cs Updates archive namespaces.
tests/LocaleSmith.Archive.Tests/SafeSubsetExternalizationPipelineTests.cs Updates namespaces and temp paths.
tests/LocaleSmith.Archive.Tests/MojangComponentLiteralClassFileRewriterTests.cs Updates archive test namespace.
tests/LocaleSmith.Archive.Tests/LocaleSmith.Archive.Tests.csproj Updates archive project and DLL.
tests/LocaleSmith.Archive.Tests/FolderFixture.cs Renames fixture temp path.
tests/LocaleSmith.Archive.Tests/ClassFileFixtureBuilder.cs Updates fixture namespace.
tests/LocaleSmith.Archive.Tests/ArchiveWorkspaceBackendTests.cs Updates namespaces and workspace paths.
tests/LocaleSmith.Archive.Tests/ArchiveFixture.cs Renames fixture temp path.
tests/LocaleSmith.Application.Tests/TranslationPipelineTests.cs Updates namespaces and test paths.
tests/LocaleSmith.Application.Tests/TranslationMemoryKeyTests.cs Tests legacy memory identity.
tests/LocaleSmith.Application.Tests/ModelTranslationEngineTests.cs Updates application namespaces.
tests/LocaleSmith.Application.Tests/ModelToolOrchestratorTests.cs Updates application namespaces.
tests/LocaleSmith.Application.Tests/LocaleSmith.Application.Tests.csproj Updates application references.
tests/LocaleSmith.App.Tests/SecureAppStateServiceTests.cs Tests default-path migration.
tests/LocaleSmith.App.Tests/PipelineTranslationQueueServiceTests.cs Updates queue paths/namespaces.
tests/LocaleSmith.App.Tests/ModelAssistantServiceTests.cs Updates app namespaces and paths.
tests/LocaleSmith.App.Tests/LocaleSmith.App.Tests.csproj Updates app references.
tests/LocaleSmith.App.Tests/LegacyAppDataMigratorTests.cs Tests state migration and preservation.
tests/LocaleSmith.App.Tests/LegacyAppDataLocatorTests.cs Tests legacy root discovery safety.
tests/LocaleSmith.App.Tests/FileTranslationMemoryStoreMigrationTests.cs Tests legacy cache copying.
src/LocaleSmith.Presentation/ViewModels/ViewModelBase.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/ShellViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/SettingsViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/OnboardingViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/ModelSourcesViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/DashboardViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/ViewModels/CliConfirmationViewModel.cs Renames CLI view-model types.
src/LocaleSmith.Presentation/ViewModels/AssistantViewModel.cs Renames presentation namespace.
src/LocaleSmith.Presentation/Services/DefaultOutputPathStrategy.cs Renames presentation service.
src/LocaleSmith.Presentation/Models/TranslationQueueModels.cs Renames queue model types.
src/LocaleSmith.Presentation/Models/OnboardingModelPath.cs Renames model namespace.
src/LocaleSmith.Presentation/Models/AppConfiguration.cs Renames configuration namespace.
src/LocaleSmith.Presentation/Models/AnimationPreferencePolicy.cs Renames policy namespace.
src/LocaleSmith.Presentation/LocaleSmith.Presentation.csproj Defines renamed presentation project.
src/LocaleSmith.Presentation/Abstractions/PresentationServices.cs Renames presentation contracts.
src/LocaleSmith.NativeInterop/NativeMethods.cs Defines LocaleSmith P/Invoke ABI.
src/LocaleSmith.NativeInterop/NativeCoreLibraryResolver.cs Resolves renamed native DLL.
src/LocaleSmith.NativeInterop/NativeCoreException.cs Renames exception namespace.
src/LocaleSmith.NativeInterop/NativeCoreErrorCode.cs Renames error-code namespace.
src/LocaleSmith.NativeInterop/NativeCoreClient.cs Renames native client namespace.
src/LocaleSmith.NativeInterop/LocaleSmith.NativeInterop.csproj Renames native assembly.
src/LocaleSmith.NativeInterop/ArchiveScanManifest.cs Renames manifest namespace.
src/LocaleSmith.McpHost/Properties/PublishProfiles/win-x64.pubxml Adds x64 publish profile.
src/LocaleSmith.McpHost/Program.cs Renames host and sandbox path.
src/LocaleSmith.McpHost/LocaleSmith.McpHost.csproj Renames host assembly/references.
src/LocaleSmith.Mcp/Protocol/JsonRpcWriter.cs Renames protocol namespace.
src/LocaleSmith.Mcp/Protocol/JsonRpcParser.cs Renames protocol namespace.
src/LocaleSmith.Mcp/Protocol/JsonRpcModels.cs Renames protocol namespace.
src/LocaleSmith.Mcp/Protocol/FixedWindowRateLimiter.cs Renames protocol namespace.
src/LocaleSmith.Mcp/Protocol/BoundedUtf8LineReader.cs Renames protocol namespace.
src/LocaleSmith.Mcp/OutputSanitizer.cs Renames MCP namespace.
src/LocaleSmith.Mcp/McpToolCatalog.cs Renames MCP catalog types.
src/LocaleSmith.Mcp/McpStdioServer.cs Renames MCP server identity.
src/LocaleSmith.Mcp/McpServerOptions.cs Renames options namespace.
src/LocaleSmith.Mcp/McpModelToolExecutor.cs Renames executor namespace.
src/LocaleSmith.Mcp/LocaleSmith.Mcp.csproj Updates MCP core reference.
src/LocaleSmith.Infrastructure/Security/WindowsCredentialSecretStore.cs Changes credential prefix.
src/LocaleSmith.Infrastructure/Security/SecurityOperationLock.cs Adds cross-process security lock.
src/LocaleSmith.Infrastructure/Security/MigratingSecretStore.cs Adds lazy credential migration.
src/LocaleSmith.Infrastructure/Security/InMemorySecretStore.cs Renames security namespace.
src/LocaleSmith.Infrastructure/Security/EncryptedJsonConfigurationStore.cs Adds AAD selection and save-if-absent.
src/LocaleSmith.Infrastructure/Security/CredentialManagerMasterKeyStore.cs Adds cross-process key creation lock.
src/LocaleSmith.Infrastructure/Models/SafeModelHttpClientFactory.cs Renames model namespace.
src/LocaleSmith.Infrastructure/Models/OpenAiCompatibleModelService.cs Renames model service namespace.
src/LocaleSmith.Infrastructure/Models/OllamaModelService.cs Renames model service namespace.
src/LocaleSmith.Infrastructure/Models/HttpModelServiceBase.cs Renames model service namespace.
src/LocaleSmith.Infrastructure/Models/AnthropicModelService.cs Renames model service namespace.
src/LocaleSmith.Infrastructure/LocaleSmith.Infrastructure.csproj Updates reference and test visibility.
src/LocaleSmith.Infrastructure/Environment/TerminalEnvironmentDetector.cs Renames environment namespace.
src/LocaleSmith.Infrastructure/Environment/SafeSystemPromptContextProvider.cs Renames environment namespace.
src/LocaleSmith.Infrastructure/Cli/WindowsRestrictedProcessLauncher.cs Renames private desktop identity.
src/LocaleSmith.Infrastructure/Cli/WindowsProcessJob.cs Renames CLI namespace.
src/LocaleSmith.Infrastructure/Cli/WindowsPrivilegeContext.cs Renames CLI namespace.
src/LocaleSmith.Infrastructure/Cli/TrustedCliExecutableDiscovery.cs Renames CLI namespace.
src/LocaleSmith.Infrastructure/Cli/SafeCliRunner.cs Renames CLI namespace.
src/LocaleSmith.Infrastructure/Cli/SafeCliCommandPolicy.cs Renames CLI namespace.
src/LocaleSmith.Infrastructure/Cli/RestrictedProcessContracts.cs Renames CLI contracts.
src/LocaleSmith.Infrastructure/Cli/JsonLinesCliAuditSink.cs Renames audit namespace.
src/LocaleSmith.Infrastructure/Cli/CliApprovalService.cs Renames approval namespace.
src/LocaleSmith.Core/Services/ModelServiceRegistry.cs Renames core service namespace.
src/LocaleSmith.Core/Services/IncrementalTranslationPlanner.cs Renames core service namespace.
src/LocaleSmith.Core/Models/TranslationModels.cs Renames core model namespace.
src/LocaleSmith.Core/Models/TerminalEnvironmentContext.cs Renames core model namespace.
src/LocaleSmith.Core/Models/SecretValue.cs Renames secret model namespace.
src/LocaleSmith.Core/Models/ModelToolModels.cs Renames tool model namespace.
src/LocaleSmith.Core/Models/ModelSource.cs Renames source model namespace.
src/LocaleSmith.Core/Models/ModelServiceException.cs Renames exception namespace.
src/LocaleSmith.Core/Models/ModelResponse.cs Renames response namespace.
src/LocaleSmith.Core/Models/ModelRequest.cs Renames request namespace.
src/LocaleSmith.Core/Models/ModelProviderPreset.cs Renames preset namespace.
src/LocaleSmith.Core/Models/ModelProviderKind.cs Renames provider namespace.
src/LocaleSmith.Core/Models/ModelMessage.cs Renames message namespace.
src/LocaleSmith.Core/Models/CliModels.cs Renames CLI model namespace.
src/LocaleSmith.Core/Models/AvailableModelInfo.cs Renames model namespace.
src/LocaleSmith.Core/LocaleSmith.Core.csproj Defines renamed core project.
src/LocaleSmith.Core/Abstractions/TerminalEnvironmentContracts.cs Renames environment contracts.
src/LocaleSmith.Core/Abstractions/SecretContracts.cs Renames secret contracts.
src/LocaleSmith.Core/Abstractions/IModelServiceRegistry.cs Renames registry contract.
src/LocaleSmith.Core/Abstractions/IModelService.cs Renames model contract.
src/LocaleSmith.Core/Abstractions/CliContracts.cs Renames CLI contracts.
src/LocaleSmith.Archive/TransactionJournal.cs Renames archive namespace.
src/LocaleSmith.Archive/LocaleSmith.Archive.csproj Defines renamed archive project.
src/LocaleSmith.Archive/LangResourceEditor.cs Renames archive namespace.
src/LocaleSmith.Archive/JsonResourceEditor.cs Renames archive namespace.
src/LocaleSmith.Archive/IArchiveScanner.cs Renames scanner contract.
src/LocaleSmith.Archive/FolderSnapshotBuilder.cs Renames archive namespace.
src/LocaleSmith.Archive/ClassFile/ParsedClassFile.cs Renames class-file namespace.
src/LocaleSmith.Archive/ClassFile/MojangComponentLiteralClassFileRewriter.cs Renames class-file namespace.
src/LocaleSmith.Archive/ClassFile/JavaBytecodeDecoder.cs Renames class-file namespace.
src/LocaleSmith.Archive/ClassFile/ClassFileRewriteModels.cs Renames class-file namespace.
src/LocaleSmith.Archive/ClassFile/ClassFileBinary.cs Renames class-file namespace.
src/LocaleSmith.Archive/ArchiveWorkspaceOptions.cs Renames archive namespace.
src/LocaleSmith.Archive/ArchiveWorkspaceBackend.cs Renames workspace temp root.
src/LocaleSmith.Archive/ArchiveWorkspace.cs Renames archive dependencies.
src/LocaleSmith.Archive/ArchivePathSafety.cs Renames archive namespace.
src/LocaleSmith.Archive/ArchiveEntrySnapshot.cs Renames archive namespace.
src/LocaleSmith.Application/TranslationContractException.cs Renames application namespace.
src/LocaleSmith.Application/Services/TranslationPipeline.cs Renames pipeline dependencies.
src/LocaleSmith.Application/Services/TranslationJsonModels.cs Renames service namespace.
src/LocaleSmith.Application/Services/PlaceholderValidator.cs Renames service namespace.
src/LocaleSmith.Application/Services/PipelineQueue.cs Renames queue namespace.
src/LocaleSmith.Application/Services/PipelineJobHandle.cs Renames job namespace.
src/LocaleSmith.Application/Services/ModelTranslationEngineOptions.cs Renames options namespace.
src/LocaleSmith.Application/Services/ModelTranslationEngine.cs Renames engine dependencies.
src/LocaleSmith.Application/Services/ModelToolOrchestrator.cs Renames orchestrator namespace.
src/LocaleSmith.Application/PipelineException.cs Renames pipeline exception.
src/LocaleSmith.Application/Models/TranslationMemoryModels.cs Adds current and legacy cache identities.
src/LocaleSmith.Application/Models/PipelineModels.cs Renames pipeline models.
src/LocaleSmith.Application/LocaleSmith.Application.csproj Defines renamed application project.
src/LocaleSmith.Application/Abstractions/ITranslationMemoryStore.cs Renames memory contract.
src/LocaleSmith.Application/Abstractions/ITranslationEngine.cs Renames engine contract.
src/LocaleSmith.Application/Abstractions/IPipelineJobScheduler.cs Renames scheduler contract.
src/LocaleSmith.Application/Abstractions/IArchiveWorkspace.cs Renames workspace contracts.
src/LocaleSmith.App/Themes/Controls.xaml Updates behavior namespace.
src/LocaleSmith.App/Strings/zh-CN/Resources.resw Standardizes Chinese branding.
src/LocaleSmith.App/Services/WinUiTextProvider.cs Renames app service namespace.
src/LocaleSmith.App/Services/SecureAppStateService.cs Normalizes legacy default paths.
src/LocaleSmith.App/Services/PipelineTranslationQueueService.cs Renames queue service.
src/LocaleSmith.App/Services/ModelAssistantService.cs Renames assistant service.
src/LocaleSmith.App/Services/LegacyDefaultPathNormalizer.cs Adds exact default-path migration.
src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Migrates legacy app state.
src/LocaleSmith.App/Services/LegacyAppDataLocator.cs Discovers safe legacy roots.
src/LocaleSmith.App/Services/FileTranslationMemoryStore.cs Adds legacy cache-slot migration.
src/LocaleSmith.App/Services/DispatcherQueueUiDispatcher.cs Renames dispatcher service.
src/LocaleSmith.App/Services/CliConfirmationViewModelFactory.cs Renames factory contracts.
src/LocaleSmith.App/Services/AppMotionService.cs Renames motion service.
src/LocaleSmith.App/Properties/PublishProfiles/win-x64.pubxml Adds x64 publish profile.
src/LocaleSmith.App/Pages/SettingsPage.xaml.cs Renames settings code-behind.
src/LocaleSmith.App/Pages/SettingsPage.xaml Renames settings XAML types.
src/LocaleSmith.App/Pages/OnboardingPage.xaml.cs Renames onboarding code-behind.
src/LocaleSmith.App/Pages/OnboardingPage.xaml Renames onboarding XAML types.
src/LocaleSmith.App/Pages/ModelSourcesPage.xaml.cs Renames model-source code-behind.
src/LocaleSmith.App/Pages/ModelSourcesPage.xaml Renames model-source XAML types.
src/LocaleSmith.App/Pages/DashboardPage.xaml.cs Renames dashboard code-behind.
src/LocaleSmith.App/Pages/DashboardPage.xaml Renames dashboard XAML types.
src/LocaleSmith.App/Pages/AssistantPage.xaml.cs Renames assistant code-behind.
src/LocaleSmith.App/Pages/AssistantPage.xaml Renames assistant XAML types.
src/LocaleSmith.App/MainWindow.xaml.cs Fixes theme/chrome synchronization.
src/LocaleSmith.App/MainWindow.xaml Updates window branding/types.
src/LocaleSmith.App/LocaleSmith.App.csproj Defines renamed WinUI app.
src/LocaleSmith.App/Dialogs/CliConfirmationDialog.xaml.cs Renames dialog code-behind.
src/LocaleSmith.App/Dialogs/CliConfirmationDialog.xaml Renames dialog XAML types.
src/LocaleSmith.App/Converters/BooleanToVisibilityConverter.cs Renames converter namespace.
src/LocaleSmith.App/Behaviors/AppMotion.cs Renames behavior namespace.
src/LocaleSmith.App/App.xaml.cs Integrates migration and new DI stores.
src/LocaleSmith.App/App.xaml Renames application XAML types.
src/LocaleSmith.App/app.manifest Renames assembly identity.
src/JaxI18n.Presentation/JaxI18n.Presentation.csproj Removes old presentation project.
src/JaxI18n.NativeInterop/NativeMethods.cs Removes old native ABI projection.
src/JaxI18n.Archive/JaxI18n.Archive.csproj Removes old archive project.
src/JaxI18n.Application/JaxI18n.Application.csproj Removes old application project.
src/JaxI18n.App/JaxI18n.App.csproj Removes old WinUI project.
README.md Updates branding, paths, and build guidance.
packaging/LocaleSmith.Package/Strings/zh-CN/Resources.resw Updates Chinese package branding.
packaging/LocaleSmith.Package/Strings/en-US/Resources.resw Updates publisher branding.
packaging/LocaleSmith.Package/Package.appxmanifest Updates package identity/runtime dependency.
packaging/LocaleSmith.Package/LocaleSmith.Package.wapproj Updates package project references.
packaging/LocaleSmith.Package/Assets/StoreLogo.png Adds renamed store logo.
packaging/LocaleSmith.Package/Assets/Square44x44Logo.png Adds renamed application logo.
package.json Renames npm workspace package.
native/localesmith_core/tests/archive_scan.rs Renames Rust crate and ABI tests.
native/localesmith_core/src/metadata.rs Adds renamed metadata implementation.
native/localesmith_core/src/lib.rs Updates crate documentation.
native/localesmith_core/src/ffi.rs Renames exported C ABI.
native/localesmith_core/src/error.rs Adds renamed error definitions.
native/localesmith_core/include/localesmith_core.h Defines renamed public C header.
native/localesmith_core/Cargo.toml Renames Rust crate/library.
native/localesmith_core/Cargo.lock Updates locked crate identity.
native/localesmith_core/.gitignore Ignores Rust build output.
native/jax_i18n_core/include/jax_i18n_core.h Removes old C header.
LocaleSmith.slnx Defines renamed solution.
JaxI18n.slnx Removes old solution.
Suppressed comments (1)

src/LocaleSmith.App/Services/FileTranslationMemoryStore.cs:55

  • If another process creates or updates the LocaleSmith slot after sourcePath is selected, CopyFileAtomicallyAsync treats the failed move as a successful idempotent migration, but this method still returns the stale legacy snapshot. The pipeline can then merge from that stale state and later overwrite the newer slot, losing cached translations. When the destination wins the race, reload and return the destination snapshot (or hold a cross-process lock across selection, copy, and read).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b8fd63df55

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/LocaleSmith.App/App.xaml.cs Outdated
Comment thread src/LocaleSmith.App/Services/FileTranslationMemoryStore.cs Outdated
Comment thread src/LocaleSmith.App/Services/LegacyAppDataMigrator.cs Outdated
Copilot AI review requested due to automatic review settings August 10, 2026 17:43
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

await using var scheduler = new RecordingScheduler();
var service = new PipelineTranslationQueueService(scheduler);
var outputDirectory = Path.GetDirectoryName(outputPath)!;
Assert.False(Directory.Exists(outputDirectory));
TestContext.Current.CancellationToken);
var result = await handle.Completion.WaitAsync(TestContext.Current.CancellationToken);

Assert.False(Directory.Exists(outputDirectory));
OpenAiTokenLimitParameter.MaxCompletionTokens,
harness.Registry.Sources.Single().TokenLimitParameter);
Assert.Equal(directories.LogDirectoryPath, configurationStore.Persisted.LogDirectoryPath);
Assert.True(Directory.Exists(directories.LogDirectoryPath));
Path.GetTempPath(),
"LocaleSmith.Tests",
Guid.NewGuid().ToString("N"));
Directory.CreateDirectory(testRoot);
Assert.True(await settings.FlushPendingChangesAsync(cancellationToken));
}

var encryptedBytes = await File.ReadAllTextAsync(configurationPath, cancellationToken);
await workspace.DisposeAsync();
}

Assert.False(Directory.Exists(workspacePath));

Assert.False(Directory.Exists(workspacePath));
File.Move(journalPath, renamedJournal);
Assert.True(File.Exists(renamedJournal));
});
writerField.SetValue(journal, failingWriter);
originalWriter.Dispose();


await Assert.ThrowsAsync<InvalidDataException>(
() => workspace.StagePackageAsync(
request.OutputPath,

Copilot AI 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.

Pull request overview

Copilot reviewed 238 out of 254 changed files in this pull request and generated no new comments.

Suppressed comments (1)

packaging/LocaleSmith.Package/Package.appxmanifest:9

  • Changing both Identity.Name and Publisher creates a different package family ({PackageName}_{publisherId}), so this package cannot upgrade the existing JaxI18n.Desktop installation in place; Windows installs it side-by-side and leaves the old app registered. This conflicts with the PR's upgrade claim. Preserve the existing package identity and rebrand only display resources if an in-place upgrade is required, or explicitly document and handle side-by-side replacement/cleanup if the new identity is intentional.

@DZXH-TX
DZXH-TX merged commit 3d8a72f into main Aug 10, 2026
4 of 5 checks passed
@DZXH-TX
DZXH-TX deleted the codex/docs-readme-license branch August 10, 2026 18:13
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.

3 participants