[Feature] macOS 项目 JDK / Maven 只保留 local.json 一份存储,移除 UserDefaults 副本
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- java, macos, typescript
- 領域
- build-system, desktop, tooling
調査の方向性
Trace macOS toolchain reads through Core runConfig.inspect, ProjectRuntimeService.adoptProjectToolchain, ProjectRuntimeSettings, ProjectLoadState.hasLoadedDocuments, and MavenService. Review the migration cases and existing tests, then run ./scripts/test-macos.sh and ./scripts/verify-service-boundaries.sh; done requires one source of truth, migration coverage, updated architecture notes, and real Mac validation.
索引モデルが issue の本文から書いたものです。
説明
问题
macOS 上项目 JDK、Maven、Maven JDK 仍然存了两份:
.lithe/run/local.json的toolchain:运行配置实际使用,Windows 与 Core 也以它为准;- UserDefaults
lithe.project-runtime-settings.<项目路径>里的ProjectRuntimeSettings:设置页表单、Maven 进程环境、环境检查使用。
#809 定下了「local.json 为唯一真源,UserDefaults 只是副本」,靠一组同步规则维持一致:
- 运行配置读完项目文档后,
ProjectRuntimeService.adoptProjectToolchain以local.json覆盖副本; - 本机层从未保存过默认值时,保留副本,下次保存时写入;
- 服务编辑器保存写
savedProjectToolchain ?? 副本; - 设置表单准备完成前禁用,关闭时只在准备完成后保存;
- 运行文档未读完时不写
local.json(ProjectLoadState.hasLoadedDocuments)。
#809 审查中修复的问题,多数出在这两份数据之间的同步时序上:加载中保存空值、旧副本反向覆盖、编辑器写入空默认值、准备期间的修改被还原。只要还有两份,这类问题就可能再出现。
期望
- macOS 读取项目 JDK、Maven、Maven JDK 的地方(
javaHomeURL、mavenJavaHomeURL、mavenExecutable、设置表单)直接读local.json的toolchain(经 CorerunConfig.inspect),UserDefaults 不再保存这三个字段。 - 一次性迁移:
local.json没有toolchain、而 UserDefaults 里有值时,把它写入local.json,然后清除 UserDefaults 中的这三个字段。迁移只执行一次,失败时保留原值并报告。 - 迁移完成后删除只为同步存在的代码:
adoptProjectToolchain、savedProjectToolchain ?? 副本的回退、mergeImportedSettings中这三个字段的补齐逻辑等。 - 同时梳理
ProjectRuntimeSettings里的 Mavensettings.xml与本地仓库路径:它们和MavenService自己的本机配置也是两份,应明确由 Maven 本机配置持有。
风险
- 涉及 macOS 启动、Maven 进程、环境检查的 JDK 来源,必须在 Mac 上实机验证:运行、Maven 目标、测试运行、切换项目、首次打开未生成配置的项目。
- 迁移需要覆盖:只有 UserDefaults、只有
local.json、两边都有且不同、local.json损坏。
验收
- macOS 这三个字段只有
local.json一个存储 - 一次性迁移覆盖上述四种情况,并有测试
- 删除同步用代码,Run / Maven / 环境检查读取同一来源
- Maven
settings.xml/ 本地仓库路径只有一个持有方 -
./scripts/test-macos.sh与./scripts/verify-service-boundaries.sh通过,实机验证通过 - 更新
.agents/notes/implemented/architecture/2026-09-21-maven-settings-reach-the-language-server.md中的真源规则
背景
来自 #809(关联 #749)合并前的评审,属于长期可维护性问题,范围大于 #809,故单独处理。
- 主要言語
- TypeScript
- スター
- 1.8k
- フォーク
- 151
- 平均マージ
- 7時間 51分
- マージ済み PR(30日)
- 351
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
1lck/Lithe-IDEA のほかの issue
-
area:editor bug P0 platform:macos review: low
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
1lck/Lithe-IDEA#1118 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
area:editor issue-form:feature P1 platform:windows review: low
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
1lck/Lithe-IDEA#1129 ·
メンテナーはふだん 1 日以内に返信
-
area:editor issue-form:feature P1 platform:windows review: low
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
1lck/Lithe-IDEA#1128 ·
メンテナーはふだん 1 日以内に返信
-
[Feature] 修复commit区按钮、弹窗、下拉框样式対応中かも @arkleselect が 1 日前に担当しました。 オープンarea:ui enhancement issue-form:feature P1 platform:macos review: medium
1lck/Lithe-IDEA#1125 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] Windows 版本对比重复显示相同内容対応中かも @puppyben1 が 1 日前に担当しました。 オープンarea:git bug P0 platform:windows review: low
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
1lck/Lithe-IDEA#1123 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
1lck/Lithe-IDEA の issue をすべて見る
似ている issue
-
Add: YRF Music Nepalオープンstreams:add
難易度 1/5 1時間未満 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
walletbeat/walletbeat#1558 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
hawk-digital-environments/HAWKI#438 ·
メンテナーはふだん 1 日以内に返信
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
GiganticMinecraft/seichi-portal-frontend#1165 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信