Skip to content

fix(desktop): 跟进 Core #26/#27,固定到 0be1d34 并改用 rust/crates/ 路径 - #1872

Merged
xiaoyumuxi merged 3 commits into
previewfrom
chore/core-crates-layout-pin
Nov 13, 2026
Merged

xiaoyumuxi merged 3 commits into
previewfrom
chore/core-crates-layout-pin

Conversation

@xiaoyumuxi

@xiaoyumuxi xiaoyumuxi commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

关联 Issue / Linked issue

PR 类型 / Type

  • feat:新功能或用户可见的改进
  • fix:缺陷修复
  • docs:文档、Agent Note、Skill 等规则文件
  • release:稳定版发布准备

改动说明 / What changes

背景 / Why

Core #26 把所有 crate 从 rust/lithe-*/ 移到了 rust/crates/<去掉 lithe- 前缀>/,C 头文件现在在 rust/crates/core/include/lithe_core.h。它还删除了 community.discourse.* 命令和 core-rules 的 wasm 构建。

Core #27 又把 protocol、network、terminal、process、diff、github 拆成独立 crate,并把 keymap 和动作搜索并入 lithe-core-rules;命令、JSON、错误码和头文件都没有变。

本仓库原来固定在 f113e9e,构建脚本仍从旧路径复制头文件。Skill、笔记、文档、资源清单和功能矩阵里也有大量指向旧路径、wasm 资源和社区功能的内容。把 pin 升到 0be1d34 后,这些内容必须一起更新,否则构建失败,文档也会指向不存在的路径。

改动 / Changes

Core 固定修订与构建

Core 路径(rust/lithe-* → rust/crates/*)

  • 用脚本对照 Core 的文件清单批量改名,只改在新修订里确实存在的路径。改完后,本仓库所有 rust/crates/... 路径在 0be1d34 中都存在(固定修订链接除外)。下面几类不改:
    • 固定修订链接,例如 blob/<40 位 sha>/rust/lithe-core/...。
    • 已删除文件的历史记录,即“已迁出:原 …”、archived 笔记,以及“已随 #… 移除”这类说明。
  • 涉及的文件:
    • AGENTS.md(插件协议文件路径)
    • .agents/skills/develop-lithe/references/logging.md
    • .agents/skills/lithe-code-review/references/*
    • .agents/notes/implemented/** 中引用现存 Core 文件的笔记
    • docs/ci-builds.md(remote 路径)
    • docs/development/windows-ai-commit.md:AI 代码改为 rust/crates/ai/src/...,测试命令改为 -p lithe-ai --lib
    • docs/development/macos-plugin-api-plan.md:原来的相对链接改成 Core 仓库 main 上的 rust/crates/core/src/plugins/...、rust/crates/ide-host/src/catalog.rs
    • scripts/resources/worktree-resources.json 及其测试(catalog_generated 路径)
  • shared/platform-feature-matrix/features/*.json:90 个文件的证据路径和说明改成新路径;ai-inline-edit、ai-pull-request-description 改成 rust/crates/ai/src/。
  • [Feature] 有关扩展还有LSP实现方案的讨论 #27 移动的文件:
    • keymap-customization、search-global 改到 rust/crates/core-rules/src/;
    • network-proxy-settings、process-termination-policy、run-processes-end-with-ide、terminal-interaction、git-rebase-stash 改到 rust/crates/{network,process,terminal,protocol}/src/;
    • 两篇 GitHub 笔记改到 rust/crates/github/src/lib.rs;
    • workbench UI 贡献笔记改到 rust/crates/core-rules/src/action_search.rs。

develop-lithe Skill 的 Core 范围

  • 平台表、逻辑归属表和 Rust 注释规范的适用范围改成“rust/crates/ 下的每个 crate”,C ABI 入口是 rust/crates/core/。
  • 运行时只读一节的示例,去掉了已不在 Core 里的 JDT 源文件路径。

删除 core-rules wasm 的残留

  • 删除 worktree-resources.json 的 core-rules-wasm 条目,以及 reuse-worktree-resources.mjs 中的两行 wasm 注释。
  • 删除 test-reuse-worktree-resources.mjs 中对应的测试。
  • 删除 docs/ci-builds.md 里“Windows 前端用到的纯规则……wasm”这一段。
  • 笔记 2026-11-05-core-rules-wasm-sync-bridge.md 改名为 2026-11-05-core-rules-sync-crate.md,内容改写为:
    • wasm 已于 2026-11-13 删除;
    • 保留 lithe-core-rules crate 的原因:由编译器保证规则不依赖 I/O;
    • 规则清单、取舍和验证方法;
    • 桌面端的调用点。
    • 另外补上了 [Feature] 有关扩展还有LSP实现方案的讨论 #27 移入的 keymap.parseContext、keymap.evaluateContext、keymap.analyzeConflicts、keymap.schemes.reduce 和 search.actions,以及 unicode-normalization 依赖。

删除社区功能

NOTICE

  • 原来列的两个派生文件,MacLoginShellEnvironment.swift 和 java_selection.rs,都已不在本仓库。
  • 现在只列本仓库仍有的 OpenIDEA 派生文件 desktop/internal/loginenv/loginenv.go。
  • 注明 JDK 自动选择策略已迁到 Java Support 插件,该插件的 NOTICE 已写明出处。

不在本 PR 范围内 / Out of scope

  • 下面这些旧客户端(macos/、windows/tauri/)的遗留内容按之前的约定等用户决定,本 PR 没有改:
    • 功能矩阵里 windows/tauri/...、macos/... 的证据路径,包括 windows-startup-feedback.json 中已删除的 rust/lithe-agent-host/* 和 git-status-commit.json 中已删除的 git_path_roundtrip.rs。这两处属于旧 Windows 客户端的证据列表。
    • .gitattributes、测试稳定性脚本里的旧目录前缀。

类型专属:fix

复现与根因

检查项

  • [N/A] 已先写回归测试,确认它在修复前失败、修复后通过;测试路径与修复前的失败输出:这是目录跟进,没有行为变化。desktop_go_test.go 已改为模拟新的头文件路径。
  • [N/A] 无法自动化时,已写明手动复现与验证步骤:已在本地完整运行桌面端测试,见“验证”。
  • 已搜索被修改函数、类型、契约字段的全部调用方(含另一平台、插件、SDK、脚本和按字符串分发的调用):已全仓搜索 rust/lithe-,剩下的都是固定修订链接、已删除文件的历史记录,或上面列出的旧客户端证据路径。
  • [N/A] 已检查另一平台是否有同类缺陷(有则本 PR 一并修复,或已提交 Issue):桌面端只有一套构建脚本。
  • 只改了修复所需的代码,没有夹带重构;修复过程中发现的其他问题已提交 Issue:顺手发现的过时路径、wasm 和社区残留已在本 PR 一并处理(用户要求一次处理完),没有新建 Issue。
  • [N/A] 修复改变了行为约束或容易复发,已在 .agents/notes/implemented/bug-fix/ 记录:没有改变行为约束;core-rules 的取舍记录在改名后的架构笔记里。

范围检查 / Scope checks

功能矩阵 / Feature matrix

  • 已更新 shared/platform-feature-matrix/features/<id>.json:删除两条社区记录,更新 90 个文件的 Core 证据路径;实现状态和验证状态都没有改。
  • 已运行 ./scripts/platform-feature-matrix/verify-platform-feature-matrix.sh 和 ./scripts/platform-feature-matrix/verify-platform-feature-matrix-change.sh origin/preview HEAD。
  • 没有提交 .artifacts/ 下生成的矩阵视图。
  • [N/A] 没有更新矩阵的,理由:已更新。

统一日志系统 / Structured logging

N/A:没有改动日志事件或失败路径。

界面文案 / i18n

N/A:没有界面文案改动(已运行两项 i18n 检查,均通过)。

逻辑归属 / Logic placement

N/A:没有业务逻辑改动。

性能与内存 / Performance and memory

N/A:没有运行时改动。

设置 / Settings

N/A:没有设置改动。

插件契约 / Plugin contract

发行包与资源 / Bundle and resources

  • [N/A] 运行时不向已安装的 app bundle 写入:没有运行时资源改动。
  • 已同步 scripts/resources/worktree-resources.json、reuse-worktree-resources.mjs、对应测试和 docs/ci-builds.md:删除 core-rules-wasm 条目和说明。

无用代码与重构 / Dead code and refactoring

  • 本次改动导致变成无用的代码已在本 PR 删除:包括 wasm 资源条目、测试、社区矩阵记录和 NOTICE 中的过时条目。
  • [N/A] 本次之前就存在的无用代码或可重构之处,已提交带 refactor 标签的 Issue:用户要求一次处理完,能修的已在本 PR 修掉;旧客户端遗留等用户决定,见“不在本 PR 范围内”。

验证 / Verification

命令或操作 平台 结果
scripts/desktop/desktop-go.sh test ./...,分别在 439f42f 和 0be1d34 上拉取并构建 Core macOS 两次都通过(53 个包)
./scripts/agent-notes/verify-agent-notes.sh macOS 通过
node scripts/resources/test-reuse-worktree-resources.mjs macOS 通过
./scripts/platform-feature-matrix/verify-platform-feature-matrix.sh macOS 通过
./scripts/platform-feature-matrix/verify-platform-feature-matrix-change.sh origin/preview HEAD macOS 通过
node scripts/platform-feature-matrix/test-platform-feature-matrix.mjs macOS 通过
node scripts/i18n/verify-app-language-localization.mjs、node scripts/i18n/generate-i18n.mjs --check macOS 通过

未能执行的检查和原因: 没有在 Windows 上构建。这次只改了路径和固定修订,Windows CI 会在标记 ready 后运行。

提交前确认 / Final checks

  • 分支从最新的 preview 创建(已 rebase 到 cc403726a);目标分支:preview
  • 以 Draft 提交,本地验证通过后才标记 ready
  • 没有无关改动,没有提交产物、凭据、个人路径或日志
  • 本次测试没有启动 Lithe 应用,没有进程残留

- build-desktop-core.sh 固定 Lithe-core-rust 439f42f,头文件改从
  rust/crates/core/include/lithe_core.h 复制;desktop_go_test.go 与
  errors.go 注释同步新路径
- 笔记、AGENTS.md、develop-lithe 与 lithe-code-review Skill、文档、
  资源清单和平台功能矩阵里的 rust/lithe-* 路径改成 rust/crates/*,
  只改 439f42f 中存在的路径;固定修订链接和已删除文件的历史记录不动
- develop-lithe 的 Core 范围改成 rust/crates/ 下的所有 crate
- 删除 core-rules wasm 的资源清单条目、复用脚本注释、测试和
  ci-builds.md 段落;core-rules 笔记改名为同步规则 crate 并说明保留原因
- 删除 community-auth、community-feed 两条矩阵记录,viva-migration.md
  记录“不做:社区论坛”
- NOTICE 只列本仓库仍在的 OpenIDEA 派生文件 loginenv.go,JDK 选择策略
  指向 Java Support 插件
@ghfind-review ghfind-review Bot added the review: high ghfind author score; see https://ghfind.com label Nov 13, 2026
- build-desktop-core.sh 固定 Lithe-core-rust 0be1d34(#27:拆出
  protocol、network、terminal、process、diff、github crate,keymap
  与动作搜索并入 lithe-core-rules;命令、JSON、错误码和头文件不变)
- errors.go 注释、功能矩阵和两篇 GitHub 笔记里的 Core 路径改到新 crate
- core-rules 笔记补上 keymap.* 与 search.actions 规则、
  unicode-normalization 依赖和 editor_essentials.go 调用点
@xiaoyumuxi xiaoyumuxi changed the title fix(desktop): 跟进 Core #26,固定到 439f42f 并改用 rust/crates/ 路径 fix(desktop): 跟进 Core #26/#27,固定到 0be1d34 并改用 rust/crates/ 路径 Nov 13, 2026
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review November 13, 2026 18:30
@xiaoyumuxi
xiaoyumuxi merged commit 955ef70 into preview Nov 13, 2026
4 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: high ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant