Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,10 @@ jobs:
bun test src/features/file-explorer/lib/java-clipboard-class.test.ts src/features/file-explorer/lib/paste-java-class-from-clipboard.test.ts
node .agents/skills/write-stable-tests/scripts/run-bun-tests-with-timing.mjs --suite-timeout-ms 60000 --report .artifacts/test-stability/windows-file-watcher.json -- src/features/file-system/services/file-watcher-listener.test.ts src/features/file-system/stores/file-watcher.store.test.ts

- name: Test Git gutter changes and inline review lifecycle
shell: pwsh
run: node .agents/skills/write-stable-tests/scripts/run-bun-tests-with-timing.mjs --suite-timeout-ms 60000 --report .artifacts/test-stability/windows-git-gutter.json -- src/features/git/utils/git-gutter-changes.test.ts src/features/editor/engines/monaco/git-gutter-peek-session.test.ts

- name: Test editor tab scrolling and lifecycle
shell: pwsh
run: node .agents/skills/write-stable-tests/scripts/run-bun-tests-with-timing.mjs --suite-timeout-ms 60000 --report .artifacts/test-stability/windows-tabs.json -- src/features/tabs
Expand Down
3 changes: 3 additions & 0 deletions docs/development/platform-parity-matrix.csv
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,6 @@ editor-unicode-text-classification,编辑器,文本编辑,中文 properties 与
ide-api-plugins,插件与扩展,IDE API / MCP,插件调用已授权项目的环境、Maven 与运行 API,已实现,待验证,已实现,待验证,IDE API,双端插件枚举显式授权的项目,读取环境并调用已允许的操作;撤销项目权限后拒绝调用,Windows 未声明 permissions.ide 的 Worker 无法访问。,复用 MCP 的同一应用功能和参数校验,不扩张语言包权限;原生运行验收待完成。,macos/Sources/LitheModuleAPI/Plugins/IDECapabilities.swift; macos/Sources/Lithe/Application/Composition/IdeCapabilityRegistry.swift,Plugins/win/SDK/ide-capabilities.ts; windows/tauri/src/extensions/ui/services/ide-extension-host.ts; windows/tauri/src/extensions/ui/services/ide-extension-host.test.ts
java-service-devtools-update,Run/Debug,Java 服务更新,运行中的 Spring Boot DevTools 服务手动保存并编译更新,已实现,待验证,已实现,待验证,Run/Debug,在双端运行 Spring Boot HTTP 服务,修改方法体并更新,检查响应、PID、DevTools 日志与断点暂停状态;覆盖编译失败、JVM 拒绝结构修改、连续点击、停止/重启、依赖路径变化。对比运行前后安装目录清单/哈希。Linux 仅完成共享 Core 和前端测试,原生验证待完成。,,macos/Sources/Lithe/Views/Run/RunView.swift,windows/tauri/src/features/run/components/run-pane.tsx
java-service-hot-code-replace,Run/Debug,Java 服务更新,本地 Java Debug 服务手动编译并热替换代码,已实现,待验证,已实现,待验证,Run/Debug,在双端运行 Spring Boot HTTP 服务,修改方法体并更新,检查响应、PID、DevTools 日志与断点暂停状态;覆盖编译失败、JVM 拒绝结构修改、连续点击、停止/重启、依赖路径变化。对比运行前后安装目录清单/哈希。Linux 仅完成共享 Core 和前端测试,原生验证待完成。,,macos/Sources/LitheDebugModule/Application/GenericDebugFeatureModel.swift,windows/tauri/src/features/debugger/components/java-service-update.tsx
editor-git-gutter-peek,编辑器,Git 变更,编辑器 Git 行变更标记、点击预览与变更导航,已实现,待验证,已实现,待验证,Editor / Git,在 Windows 打开已跟踪文件,新增、修改、删除内容并保存,点击标记查看差异、切换前后变更、按 Escape 关闭;确认多仓库同名文件互不影响。切换浅色、深色及自定义主色,检查面板边框、焦点和 Git 语义色;关闭 Git 标记设置后标记消失。macOS 检查对应行变更入口。Linux 单元测试不替代目标平台运行验证。,,macos/Sources/Lithe/Views/Editor/CodeEditorView.swift,windows/tauri/src/features/editor/engines/monaco/git-gutter-controller.ts; windows/tauri/src/features/editor/engines/monaco/git-gutter-peek-widget.ts; windows/tauri/src/features/git/utils/git-gutter-changes.test.ts
editor-git-gutter-stage,编辑器,Git 变更,从编辑器行变更入口暂存单处修改,已实现,待验证,已实现,待验证,Editor / Git,保存含多处增删改的已跟踪文件,单独暂存后一处修改,检查 index 只包含选中修改,邻近与前方未暂存修改保留;未保存或只读时禁用暂存。Windows 与 macOS 均需实机验证。,,macos/Sources/Lithe/Views/Editor/CodeEditorView.swift,windows/tauri/src/features/git/services/git-gutter-actions.ts; windows/tauri/src/features/git/utils/git-gutter-changes.test.ts
editor-git-gutter-setting,编辑器,Git 变更,设置中开关编辑器 Git 变更标记,平台专属,不适用,已实现,待验证,Editor / Git,Windows 默认显示 Git 变更标记;在 Git 设置中关闭时清除标记和预览,重新启用后恢复,重启后保留选择。此项记录 Windows 新增的独立开关。,,macos/Sources/Lithe/Views/Editor/CodeEditorView.swift,windows/tauri/src/features/settings/components/tabs/git-settings.tsx; windows/tauri/src/features/settings/config/default-settings.ts
11 changes: 7 additions & 4 deletions docs/development/platform-parity-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

- 最后复核:2026-09-29
- 盘点状态:initial-static-inventory(根据 macOS Views/Application/Services、Windows features/extensions 和共享契约的代码入口进行初版盘点;未替代真实运行验收。)
- 功能项:117
- macOS:实现:✅ 103 已实现,🟡 3 部分实现,❌ 7 未实现,🧩 4 平台专属;验证:✔️ 0 已验证,🔍 106 待验证,— 11 不适用
- Windows:实现:✅ 99 已实现,🟡 11 部分实现,❌ 5 未实现,🧩 2 平台专属;验证:✔️ 0 已验证,🔍 110 待验证,— 7 不适用
- 功能项:120
- macOS:实现:✅ 105 已实现,🟡 3 部分实现,❌ 7 未实现,🧩 5 平台专属;验证:✔️ 0 已验证,🔍 108 待验证,— 12 不适用
- Windows:实现:✅ 102 已实现,🟡 11 部分实现,❌ 5 未实现,🧩 2 平台专属;验证:✔️ 0 已验证,🔍 113 待验证,— 7 不适用

## 实现状态定义

Expand Down Expand Up @@ -72,7 +72,7 @@
</details>

<details>
<summary><strong>编辑器</strong> · 16 个能力点</summary>
<summary><strong>编辑器</strong> · 19 个能力点</summary>

| 功能组 | 能力点 | macOS | Windows | 负责人 | 验证方式 | 备注 |
| --- | --- | --- | --- | --- | --- | --- |
Expand All @@ -92,6 +92,9 @@
| 文本编辑 | **按指定编码重新打开文本文件**<br><sub>editor-file-encoding-reopen</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`macos/Sources/Lithe/Views/Workbench/WorkbenchView.swift`、`macos/Sources/Lithe/Views/Editor/StandaloneEditorView.swift`、`macos/Sources/Lithe/Application/Features/DocumentFeatureModel.swift`、`macos/Sources/Lithe/Platform/MacOS/FileSystem/MacDocumentEncoding.swift`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/command-palette/components/encoding-picker.tsx`、`windows/tauri/src/features/editor/services/document-encoding-workflow.ts`、`windows/tauri/crates/project/src/document_file.rs`</sub> | Editor | 在 macOS 和 Windows 实机验证 UTF-8、UTF-8 BOM 与 GBK/GB18030 的自动识别,并分别验证 Shift JIS、Windows-1252 的指定编码重新打开、编码转换保存、脏文件选择和外部修改保护。 | |
| 文本编辑 | **按指定编码保存文本文件**<br><sub>editor-file-encoding-save</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`macos/Sources/Lithe/Views/Workbench/WorkbenchView.swift`、`macos/Sources/Lithe/Views/Editor/StandaloneEditorView.swift`、`macos/Sources/Lithe/Application/Features/DocumentFeatureModel.swift`、`macos/Sources/Lithe/Platform/MacOS/FileSystem/MacDocumentEncoding.swift`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/command-palette/components/encoding-picker.tsx`、`windows/tauri/src/features/editor/stores/editor-app.store.ts`、`windows/tauri/crates/project/src/document_file.rs`</sub> | Editor | 在 macOS 和 Windows 实机验证 UTF-8、UTF-8 BOM 与 GBK/GB18030 的自动识别,并分别验证 Shift JIS、Windows-1252 的指定编码重新打开、编码转换保存、脏文件选择和外部修改保护。 | |
| 文本编辑 | **中文 properties 与未知扩展名文本的一致打开和恢复**<br><sub>editor-unicode-text-classification</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`macos/Sources/Lithe/Core/Rust/RustTextContentPolicy.swift`、`macos/Tests/LitheTests/TextContentPolicyTests.swift`、`frontend/editor/src/language-contributions.ts`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/file-system/controllers/workspace-session-restore.ts`、`windows/tauri/src/features/file-system/controllers/workspace-session-restore.test.ts`、`frontend/editor/src/language-contributions.ts`</sub> | Editor | 双端打开高中文比例的 .properties 和未知扩展名 UTF-8 文件,编辑保存后恢复会话并验证内容及编码;验证 properties 高亮、emoji 跨边界、NUL 和控制字符拒绝、读取错误独立报告,并执行 text-content-v1.json 共享规则样例。 | |
| Git 变更 | **编辑器 Git 行变更标记、点击预览与变更导航**<br><sub>editor-git-gutter-peek</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`macos/Sources/Lithe/Views/Editor/CodeEditorView.swift`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/editor/engines/monaco/git-gutter-controller.ts`、`windows/tauri/src/features/editor/engines/monaco/git-gutter-peek-widget.ts`、`windows/tauri/src/features/git/utils/git-gutter-changes.test.ts`</sub> | Editor / Git | 在 Windows 打开已跟踪文件,新增、修改、删除内容并保存,点击标记查看差异、切换前后变更、按 Escape 关闭;确认多仓库同名文件互不影响。切换浅色、深色及自定义主色,检查面板边框、焦点和 Git 语义色;关闭 Git 标记设置后标记消失。macOS 检查对应行变更入口。Linux 单元测试不替代目标平台运行验证。 | |
| Git 变更 | **从编辑器行变更入口暂存单处修改**<br><sub>editor-git-gutter-stage</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`macos/Sources/Lithe/Views/Editor/CodeEditorView.swift`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/git/services/git-gutter-actions.ts`、`windows/tauri/src/features/git/utils/git-gutter-changes.test.ts`</sub> | Editor / Git | 保存含多处增删改的已跟踪文件,单独暂存后一处修改,检查 index 只包含选中修改,邻近与前方未暂存修改保留;未保存或只读时禁用暂存。Windows 与 macOS 均需实机验证。 | |
| Git 变更 | **设置中开关编辑器 Git 变更标记**<br><sub>editor-git-gutter-setting</sub> | 🧩 平台专属<br><sub>— 不适用</sub><br><sub>`macos/Sources/Lithe/Views/Editor/CodeEditorView.swift`</sub> | ✅ 已实现<br><sub>🔍 待验证</sub><br><sub>`windows/tauri/src/features/settings/components/tabs/git-settings.tsx`、`windows/tauri/src/features/settings/config/default-settings.ts`</sub> | Editor / Git | Windows 默认显示 Git 变更标记;在 Git 设置中关闭时清除标记和预览,重新启用后恢复,重启后保留选择。此项记录 Windows 新增的独立开关。 | |

</details>

Expand Down
70 changes: 70 additions & 0 deletions shared/platform-feature-matrix.json
Original file line number Diff line number Diff line change
Expand Up @@ -3025,6 +3025,76 @@
},
"owner": "Run/Debug",
"verification": "在双端运行 Spring Boot HTTP 服务,修改方法体并更新,检查响应、PID、DevTools 日志与断点暂停状态;覆盖编译失败、JVM 拒绝结构修改、连续点击、停止/重启、依赖路径变化。对比运行前后安装目录清单/哈希。Linux 仅完成共享 Core 和前端测试,原生验证待完成。"
},
{
"id": "editor-git-gutter-peek",
"area": "编辑器",
"group": "Git 变更",
"capability": "编辑器 Git 行变更标记、点击预览与变更导航",
"macos": {
"implementationStatus": "implemented",
"verificationStatus": "pending",
"evidence": [
"macos/Sources/Lithe/Views/Editor/CodeEditorView.swift"
]
},
"windows": {
"implementationStatus": "implemented",
"verificationStatus": "pending",
"evidence": [
"windows/tauri/src/features/editor/engines/monaco/git-gutter-controller.ts",
"windows/tauri/src/features/editor/engines/monaco/git-gutter-peek-widget.ts",
"windows/tauri/src/features/git/utils/git-gutter-changes.test.ts"
]
},
"owner": "Editor / Git",
"verification": "在 Windows 打开已跟踪文件,新增、修改、删除内容并保存,点击标记查看差异、切换前后变更、按 Escape 关闭;确认多仓库同名文件互不影响。切换浅色、深色及自定义主色,检查面板边框、焦点和 Git 语义色;关闭 Git 标记设置后标记消失。macOS 检查对应行变更入口。Linux 单元测试不替代目标平台运行验证。"
},
{
"id": "editor-git-gutter-stage",
"area": "编辑器",
"group": "Git 变更",
"capability": "从编辑器行变更入口暂存单处修改",
"macos": {
"implementationStatus": "implemented",
"verificationStatus": "pending",
"evidence": [
"macos/Sources/Lithe/Views/Editor/CodeEditorView.swift"
]
},
"windows": {
"implementationStatus": "implemented",
"verificationStatus": "pending",
"evidence": [
"windows/tauri/src/features/git/services/git-gutter-actions.ts",
"windows/tauri/src/features/git/utils/git-gutter-changes.test.ts"
]
},
"owner": "Editor / Git",
"verification": "保存含多处增删改的已跟踪文件,单独暂存后一处修改,检查 index 只包含选中修改,邻近与前方未暂存修改保留;未保存或只读时禁用暂存。Windows 与 macOS 均需实机验证。"
},
{
"id": "editor-git-gutter-setting",
"area": "编辑器",
"group": "Git 变更",
"capability": "设置中开关编辑器 Git 变更标记",
"macos": {
"implementationStatus": "platform-specific",
"verificationStatus": "not-applicable",
"evidence": [
"macos/Sources/Lithe/Views/Editor/CodeEditorView.swift"
]
},
"windows": {
"implementationStatus": "implemented",
"verificationStatus": "pending",
"evidence": [
"windows/tauri/src/features/settings/components/tabs/git-settings.tsx",
"windows/tauri/src/features/settings/config/default-settings.ts"
]
},
"owner": "Editor / Git",
"verification": "Windows 默认显示 Git 变更标记;在 Git 设置中关闭时清除标记和预览,重新启用后恢复,重启后保留选择。此项记录 Windows 新增的独立开关。"
}
]
}
Loading
Loading