[Feature] macOS 项目 JDK / Maven 只保留 local.json 一份存储,移除 UserDefaults 副本
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- java, macos, typescript
- Ambito
- build-system, desktop, tooling
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
问题
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,故单独处理。
- Lingua principale
- TypeScript
- Stelle
- 1.8k
- Fork
- 151
- Merge medio
- 11h 27m
- PR unite (30g)
- 310
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di 1lck/Lithe-IDEA
-
area:editor bug P0 platform:macos review: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
1lck/Lithe-IDEA#1118 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] 进程结束的显示逻辑不够合理Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
1lck/Lithe-IDEA#1344 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] git显示问题Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
1lck/Lithe-IDEA#1342 ·
I maintainer di solito rispondono entro 1 giorno
-
area:project enhancement P2 platform:cross-platform review: medium
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
1lck/Lithe-IDEA#1340 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Agent面板继续优化Forse già presa @xiaoyumuxi l’ha presa 2 giorni fa. Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
1lck/Lithe-IDEA#1315 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di 1lck/Lithe-IDEA
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
radix-ui/primitives#4228 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SignalK/freeboard-sk#1093 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
[测试] 等待仓库加载后再记录多仓库排序基线Forse già presa @myot233 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno